OSDN Git Service

2007-01-23 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-01-23  Richard Guenther  <rguenther@suse.de>
2
3         PR bootstrap/30541
4         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
5         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
6         (gnatboot3): Likewise.
7         (GNATBIND): Do not define.
8         * Makefile.in (GNATBIND): Do not define.
9
10 2007-01-08  Richard Guenther  <rguenther@suse.de>
11
12         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
13         * trans.c (gnat_to_gnu): Likewise.
14
15 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
16
17         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
18         * adaint.c: Likewise.
19
20 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
21
22         Merge from gimple-tuples-branch.
23
24         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
25         * ada-tree.h (lang_tree_node): Handle gimple tuples.
26         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
27         GIMPLE_MODIFY_STMT.
28
29 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
30
31         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
32         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
33         Fix typos.
34
35 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
36
37         PR ada/27936
38         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
39         if the initializer takes into account the padding.
40
41 2006-11-11  Richard Guenther  <rguenther@suse.de>
42
43         * trans.c (maybe_stabilize_reference): Remove handling of
44         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
45
46 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
47
48         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
49         (To_Target_Priority): New function.
50         Fix PR ada/29707
51
52 2006-10-31  Robert Dewar  <dewar@adacore.com>
53
54         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
55         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
56         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
57         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
58         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
59         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
60         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
61         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
62         a-szbzha.adb: Minor reformatting. Fix header.
63
64         * a-numaux-x86.adb: Add parentheses for use of unary minus
65         * a-ngcefu.adb: Supply missing parentheses for unary minus
66         * a-ngcoty.adb: Add parens for use of unary minus
67         * a-ngelfu.adb: Add missing parens for unary minus
68         * a-tifiio.adb: Add parentheses for uses of unary minus
69
70 2006-10-31  Robert Dewar  <dewar@adacore.com>
71             Bob Duff  <duff@adacore.com>
72             Ed Schonberg  <schonberg@adacore.com>
73
74         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
75         with multiplying operator.
76         (Expected_Type_Is_Any_Real): New function to determine from the Parent
77         pointer whether the context expects "any real type".
78         (Resolve_Arithmetic_Op): Do not give an error on calls to the
79         universal_fixed "*" and "/" operators when they are used in a context
80         that expects any real type. Also set the type of the node to
81         Universal_Real in this case, because downstream processing requires it
82         (mainly static expression evaluation).
83         Reword some continuation messages
84         Add some \\ sequences to continuation messages
85         (Resolve_Call): Refine infinite recursion case. The test has been
86         sharpened to eliminate some false positives.
87         Check for Current_Task usage now includes entry barrier, and is now a
88         warning, not an error.
89         (Resolve): If the call is ambiguous, indicate whether an interpretation
90         is an inherited operation.
91         (Check_Aggr): When resolving aggregates, skip associations with a box,
92         which are priori correct, and will be replaced by an actual default
93         expression in the course of expansion.
94         (Resolve_Type_Conversion): Add missing support for conversion from
95         a class-wide interface to a tagged type. Minor code cleanup.
96         (Valid_Tagged_Converion): Add support for abstact interface type
97         conversions.
98         (Resolve_Selected_Component): Call Generate_Reference here rather than
99         during analysis, and use May_Be_Lvalue to distinguish read/write.
100         (Valid_Array_Conversion): New procedure, abstracted from
101         Valid_Conversion, to incorporate accessibility checks for arrays of
102         anonymous access types.
103         (Valid_Conversion): For a conversion to a numeric type occurring in an
104         instance or inlined body, no need to check that the operand type is
105         numeric, since this has been checked during analysis of the template.
106         Remove legacy test for scope name Unchecked_Conversion.
107
108         * sem_res.ads: Minor reformatting
109
110         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
111         (PE_Current_Task_In_Entry_Body): New exception code
112         (SE_Restriction_Violation): Removed, not used
113
114         * a-except.ads:  Update comments.
115
116         * types.h, types.ads: Add definition for Validity_Check
117         (PE_Current_Task_In_Entry_Body): New exception code
118         (SE_Restriction_Violation): Removed, not used
119
120 2006-10-31  Thomas Quinot  <quinot@adacore.com>
121
122         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
123         error status.
124
125 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
126             Jose Ruiz  <ruiz@adacore.com>
127
128         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
129         part of Ada.Calendar: all subprogram raise Unimplemented.
130         (Split_W_Offset): Temp function body, raising Unimplemented
131
132         * a-calend.ads, a-calend-vms.ads: 
133         Add imported variable Invalid_TZ_Offset used to designate targets unable
134         to support time zones.
135         (Unimplemented): Temporary function raised by the body of new
136         subprograms below.
137         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
138         unit provides handling of leap seconds and is used by the new Ada 2005
139         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
140         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
141         version returns an extra value which is the offset to UTC.
142
143         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
144         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
145         (Split_W_Offset): New function body.
146         (Time_Of): When a date is close to UNIX epoch, compute the time for
147         that date plus one day (that amount is later substracted after
148         executing mktime) so there are no problems with time zone adjustments.
149
150         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
151
152         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
153         a-catizo.ads, a-catizo.adb: New files.
154
155         * impunit.adb: Add new Ada 2005 entries
156
157         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
158         Rename all occurences of "__gnat_localtime_r" to
159         "__gnat_localtime_tzoff".
160         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
161         zone data and calculate the GMT offset.
162         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
163         Use the field "tm_gmtoff" to extract the GMT offset.
164         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
165         the external variable "timezone" to calculate the GMT offset.
166
167 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
168             Jose Ruiz  <ruiz@adacore.com>
169
170         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
171         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
172         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
173         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
174         System.Any_Priority to a POSIX priority on the target.
175
176         * system-linux-ia64.ads: 
177         Extend range of Priority types on Linux to use the whole range made
178         available by the system.
179
180         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
181         function maps from System.Any_Priority to a POSIX priority on the
182         target.
183         (PTHREAD_PRIO_PROTECT): Set real value.
184         (PTHREAD_PRIO_INHERIT): Now a function.
185         (SIGCPUFAIL): New signal.
186         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
187         are documented as reserved by the OS.
188
189         * system-aix.ads: Use the full range of priorities provided by the
190         system on AIX.
191
192         * s-taprop-posix.adb: Call new function To_Target_Priority.
193         (Set_Priority): Take into account Task_Dispatching_Policy and
194         Priority_Specific_Dispatching pragmas when determining if Round Robin
195         must be used for scheduling the task.
196
197         * system-linux-x86_64.ads, system-linux-x86.ads, 
198         system-linux-ppc.ads: Extend range of Priority types on Linux to use
199         the whole range made available by the system.
200
201         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
202         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
203         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
204         when deallocating the TCB in order to avoid potential references to
205         deallocated data.
206         (Set_Priority): Take into account Task_Dispatching_Policy and
207         Priority_Specific_Dispatching pragmas when determining if Round Robin
208         or FIFO within priorities must be used for scheduling the task.
209
210         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
211         the Thread field (to be used internally by the run-time system) and the
212         kernel-level task id in the LWP field (to be used by the debugger).
213         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
214         instance, and propagate the current task options to the spawned task.
215         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
216         (Initialize): Set Round Robin dispatching when the corresponding pragma
217         is in effect.
218
219 2006-10-31  Robert Dewar  <dewar@adacore.com>
220
221         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
222         system-linux-hppa.ads, system-hpux-ia64.ads, 
223         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
224         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
225         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
226         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
227         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
228         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
229         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
230         Default_Bit_Order) to kill constant condition warnings for references
231         to this switch.
232
233 2006-10-31  Vincent Celier  <celier@adacore.com>
234             Eric Botcazou  <ebotcazou@adacore.com>
235
236         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
237         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
238         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
239         Ext_To, when building the library file name
240
241         * mlib-tgt-vxworks.adb: ditto.
242         (Get_Target_Suffix): Add support for x86 targets.
243
244         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
245
246         * mlib-tgt-darwin.adb: 
247         Use Append_To, instead of Ext_To, when building the library file name
248         (Flat_Namespace): New global variable.
249         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
250         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
251         (Link_Shared_Libgcc): Delete.
252         (Build_Dynamic_Library): Adjust for above changes.
253         Use Opt package.
254         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
255
256 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
257
258         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
259         (Initialize): Add type conversions required by above change.
260
261 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
262
263         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
264         (getpid): New body for this function that uses the underlying taskIdSelf
265         function for VxWorks 5 and VxWorks 6 in kernel mode.
266         (unsigned_int): New type, modular to allow logical bit operations.
267         (taskOptionsGet): New imported function.
268
269         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
270         field to be compliant with the type used by the corresponding operating
271         system primitive.
272
273 2006-10-31  Pascal Obry  <obry@adacore.com>
274             Eric Botcazou  <ebotcazou@adacore.com>
275             Vincent Celier  <celier@adacore.com>
276
277         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
278         ASCII version of the registry API. This is needed as the GNAT runtime
279         is now UNICODE by default.
280         Include version.h.
281         (get_gcc_version): Do not hardcode the return value.
282         (__gnat_file_time_name): On Windows properly set the default returned
283         value to -1 which corresponds to Invalid_Time.
284         (__gnat_fopen): New routine. A simple wrapper on all plateforms
285          except on Windows where it does conversion for unicode support.
286         (__gnat_freopen): Idem.
287         (__gnat_locate_exec_on_path): If environment variable PATH does not
288         exist, return a NULL pointer
289
290         * adaint.h: (__gnat_fopen): Declare.
291         (__gnat_freopen): Likewise.
292
293         * mingw32.h (_tfreopen): Define this macro here for older MingW
294         version.
295         Activate the unicode support on platforms using a MingW runtime
296         version 3.9 or newer.
297
298         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
299         This is needed for proper unicode support on Windows.
300         (freopen): Idem.
301
302 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
303             Nicolas Setton  <setton@adacore.com>
304             Olivier Hainque  <hainque@adacore.com>
305             Gary Dismukes  <dismukes@adacore.com>
306
307         * gigi.h: (tree_code_for_record_type): Declare.
308         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
309         (get_global_renaming_pointers): Rename to
310         invalidate_global_renaming_pointers.
311         (static_ctors): Delete.
312         (static_dtors): Likewise.
313         (gnat_write_global_declarations): Declare.
314         (create_var_decl): Adjust descriptive comment to indicate that the
315         subprogram may return a CONST_DECL node.
316         (create_true_var_decl): Declare new function, similar to
317         create_var_decl but forcing the creation of a VAR_DECL node.
318         (get_global_renaming_pointers): Declare.
319         (add_global_renaming_pointer): Likewise.
320
321         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
322
323         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
324         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
325         processing.
326         (gnat_to_gnu_entity): Remove From_With_Type from computation for
327         imported_p.
328         <E_Access_Type>: Use the Non_Limited_View as the full view of the
329         designated type if the pointer comes from a limited_with clause.  Make
330         incomplete designated type if it is in the main unit and has a freeze
331         node.
332         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
333         Underlying_Full_View similarly.  Return earlier if the full view already
334         has an associated tree.
335         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
336         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
337         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
338         reference type built for objects with an address clause.
339         Use create_true_var_decl with const_flag set for
340         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
341         TREE_READONLY set.
342         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
343         for Character and Wide_Character types. This info is read by the
344         dwarf-2 writer, and is needed to be able to use the command "ptype
345         character" in the debugger.
346         (gnat_to_gnu_entity): When generating a type representing
347         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
348         so that debug writers can distinguish it from ordinary integers.
349         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
350         addition to TREE_READONLY to assert the constantness of variables for
351         elaboration purposes.
352         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
353         parameters to call new Einfo function First_Formal_With_Extras.
354         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
355         protected type with its corresponding discriminant, to obtain a usable
356         declaration
357         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
358         for a multiple elaboration of the "equivalent" type.
359         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
360         into record_global_renaming_pointer.
361         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
362         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
363         <E_Array_Subtype>: Likewise.
364         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
365         incomplete subtypes and incomplete subtypes of incomplete types visible
366         through a limited with clause.
367         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
368         the base index type for the maximum size of the array only if they are
369         constant.
370         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
371         expression into a SAVE_EXPR if stabilization failed.
372
373         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
374         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
375         by lower level compilation passes.
376         (gnat_genericize): New function, lowering a function body to GENERIC.
377         Turn the type of RESULT_DECL into a real reference type if the decl
378         has been marked DECL_BY_REFERENCE, and adjust references to the latter
379         accordingly.
380         (gnat_genericize_r): New function. Tree walking callback for
381         gnat_genericize.
382         (convert_from_reference, is_byref_result): New functions. Helpers for
383         gnat_genericize_r.
384         (create_type_decl): Call gnat_pushdecl before calling
385         rest_of_decl_compilation, to make sure that field TYPE_NAME of
386         type_decl is properly set before calling the debug information writers.
387         (write_record_type_debug_info): The heuristics which compute the
388         alignment of a field in a variant record might not be accurate. Add a
389         safety test to make sure no alignment is set to a smaller value than
390         the alignment of the field type.
391         (make_dummy_type): Use the Non_Limited_View as the underlying type if
392         the type comes from a limited_with clause. Do not loop on the full view.
393         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
394         (dummy_node_table): New global variable, moved from decl.c.
395         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
396         (save_gnu_tree): Use above macros.
397         (get_gnu_tree): Likewise.
398         (present_gnu_tree): Likewise.
399         (init_dummy_type): New function, moved from decl.c. Use above macros.
400         (make_dummy_type): Likewise.
401         (tree_code_for_record_type): New function extracted from make_dummy_type
402         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
403         (static_ctors): Change it to a vector, make static.
404         (static_dtors): Likewise.
405         (end_subprog_body): Adjust for above change.
406         (build_global_cdtor): Moved from trans.c.
407         (gnat_write_global_declarations): Emit global constructor and
408         destructor, and call cgraph_optimize before emitting debug info for
409         global declarations.
410         (global_decls): New global variable.
411         (gnat_pushdecl): Store the global declarations in global_decls, for
412         later use.
413         (gnat_write_global_declarations): Emit debug information for global
414          declarations.
415         (create_var_decl_1): Former create_var_decl, with an extra argument to
416          state whether the creation of a CONST_DECL is allowed.
417         (create_var_decl): Behavior unchanged. Now a wrapper around
418         create_var_decl_1 allowing CONST_DECL creation.
419         (create_true_var_decl): New function, similar to create_var_decl but
420         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
421         (create_field_decl): Do not always mark the field as addressable
422         if its type is an aggregate.
423         (global_renaming_pointers): New static variable.
424         (add_global_renaming_pointer): New function.
425         (get_global_renaming_pointers): Likewise.
426
427         * misc.c (gnat_dwarf_name): New function.
428         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
429         (gnat_post_options): Add comment about structural alias analysis.
430         (gnat_parse_file): Do not call cgraph_optimize here.
431         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
432
433         * trans.c (process_freeze_entity): Don't abort if we already have a
434         non dummy GCC tree for a Concurrent_Record_Type, as it might
435         legitimately have been elaborated while processing the associated
436         Concurrent_Type prior to this explicit freeze node.
437         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
438         exception handler volatile if it is of variable size.
439         (process_type): Remove bypass for types coming from a limited_with
440         clause.
441         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
442         actual, convert the corresponding gnu_actual to the real destination
443         type when necessary.
444         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
445         originally TREE_READONLY but whose elaboration cannot be performed
446         statically.
447         Part of fix for F504-021.
448         (tree_transform, subprogram cases): Change loops on formal parameters to
449         call new Einfo function First_Formal_With_Extras.
450         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
451         stemming from type conversion for the lhs.
452         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
453         number of bits per unit for components of records.
454         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
455         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
456         with At_End_Proc after the SJLJ EH cleanup.
457         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
458         compilation unit.
459         (elaborate_all_entities): Do not retest type_annotate_only.
460         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
461         result type of an abstract subprogram, which may be an itype associated
462         with an anonymous access result (related to AI-318-02).
463         (build_global_cdtor): Move to utils.c.
464         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
465         this choice is not a null tree nor an integer constant.
466         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
467         on the body of elaboration routines instead of mark_unvisited.
468         (add_stmt): Do not mark the tree.
469         (add_decl_expr): Tweak comment.
470         (mark_unvisited): Delete.
471         (unshare_save_expr): New static function.
472         (call_to_gnu): Issue an error when making a temporary around a
473         procedure call because of non-addressable actual parameter if the
474         type of the formal is by_reference.
475         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
476         after building the elaboration routine.
477
478 2006-10-31  Bob Duff  <duff@adacore.com>
479
480         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
481         as finalization-started, so we can raise Program_Error on 'new'.
482
483         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
484         collection has already started.
485
486         * s-finimp.ads (Collection_Finalization_Started): Added new special
487         flag value for indicating that a collection's finalization has started.
488
489         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
490         create a task whose master has already waited for dependent tasks.
491
492 2006-10-31  Robert Dewar  <dewar@adacore.com>
493
494         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
495
496         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
497         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
498         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
499         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
500         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
501         a-except-2005.ads: Add pragma Preelaborable_Warning
502
503 2006-10-31  Robert Dewar  <dewar@adacore.com>
504             Jose Ruiz  <ruiz@adacore.com>
505
506         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
507
508         * ali.adb (Get_Name): Properly handle scanning of wide character names
509         encoded with brackets notation.
510         (Known_ALI_Lines): Add S lines to this list.
511         (Scan_ALI): Acquire S (priority specific dispatching) lines.
512         New flag Elaborate_All_Desirable in unit table
513
514         * ali.ads (Priority_Specific_Dispatching): Add this range of
515         identifiers to be used for Priority_Specific_Dispatching table entries.
516         (ALIs_Record): Add First_Specific_Dispatching and
517         Last_Specific_Dispatching that point to the first and last entries
518         respectively in the priority specific dispatching table for this unit.
519         (Specific_Dispatching): Add this table for storing each S (priority
520         specific dispatching) line encountered in the input ALI file.
521         New flag Elaborate_All_Desirable in unit table
522
523         * bcheck.adb: (Check_Configuration_Consistency): Add call to
524         Check_Consistent_Dispatching_Policy.
525         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
526         verifying that the use of Priority_Specific_Dispatching,
527         Task_Dispatching_Policy, and Locking_Policy is consistent across the
528         partition.
529
530         * bindgen.adb: (Public_Version_Warning): function removed.
531         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
532         required information from ALI files in order to initialize the table
533         containing the specific dispatching policy.
534         (Gen_Adainit_Ada): Generate the variables required for priority specific
535         dispatching entries (__gl_priority_specific_dispatching and
536         __gl_num_specific_dispatching).
537         (Gen_Adainit_C): Generate the variables required for priority specific
538         dispatching entries (__gl_priority_specific_dispatching and
539         __gl_num_specific_dispatching).
540         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
541         pragma entries.
542         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
543         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
544         (Tab_To): Removed.
545         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
546         a call to gnat_set_globals.
547         Generate a string containing settings from
548         Priority_Specific_Dispatching pragma entries.
549         (Gen_Object_Files_Options): Do not include the runtime libraries when
550         pragma No_Run_Time is specified.
551
552         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
553         consistency with s-intman-posix.adb.
554         (__gnat_error_handler, case FreeBSD): Account for the fact that the
555         handler is installed with SA_SIGINFO.
556         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
557         FreeBSD ZCX support, copied from Linux version.
558         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
559         sigfillset, and sigemptyset so the routines defined by MaRTE.
560         (__gl_priority_specific_dispatching): Add this variable that stores the
561         string containing priority specific dispatching policies in the
562         partition.
563         (__gl_num_specific_dispatching): Add this variable that indicates the
564         highest priority for which a priority specific dispatching pragma
565         applies.
566         (__gnat_get_specific_dispatching): Add this routine that returns the
567         priority specific dispatching policy, as set by a
568         Priority_Specific_Dispatching pragma appearing anywhere in the current
569         partition. The input argument is the priority number, and the result
570         is the upper case first character of the policy name.
571         (__gnat_set_globals): Now a dummy function.
572         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
573         mechargs instead of sigargs, as the latter can be retrieved from the
574         former and sigargs is not what we want on ia64.
575         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
576         mechargs argument.
577         (__gnat_adjust_context_for_raise, ia64-vms): New function.
578         (tasking_error): Remove unused symbol.
579         (_abort_signal): Move this symbol to the IRIX specific part since this
580         is the only target that uses this definition.
581         (Check_Abort_Status): Move this symbol to the IRIX specific part since
582         this is the only target that uses this definition.
583         (Lock_Task): Remove unused symbol.
584         (Unlock_Task): Remove unused symbol.
585
586         * lib-writ.adb (Write_ALI): Output new S lines for
587         Priority_Specific_Dispatching pragmas.
588         Implement new flag BD for elaborate body desirable
589
590         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
591         (Specific_Dispatching): Add this table for storing the entries
592         corresponding to Priority_Specific_Dispatching pragmas.
593         Document new BD flag for elaborate body desirable
594
595         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
596         of known pragmas.
597
598 2006-10-31  Javier Miranda  <miranda@adacore.com>
599
600         * a-tags.ads, a-tags.adb: 
601         (Predefined_DT): New function that improves readability of the code.
602         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
603         Inherit_DT): Use the new function Predefined_DT to improve code
604         readability.
605         (Register_Interface_Tag): Update assertion.
606         (Set_Interface_Table): Update assertion.
607         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
608         determining progenitor interfaces in Tags.
609         (Inherit_CPP_DT): New subprogram.
610
611         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
612         analysis of the thunk code.
613         (Expand_Interface_Conversion): Handle run-time conversion of
614         access to class wide types.
615         (Expand_Dispatching_Call): When generating the profile for the
616         subprogram itype for a dispatching operation, properly terminate the
617         formal parameters chaind list (set the Next_Entity of the last formal
618         to Empty).
619         (Collect_All_Interfaces): Removed. This routine has been moved to
620         sem_util and renamed as Collect_All_Abstract_Interfaces.
621         (Set_All_DT_Position): Hidden entities associated with abstract
622         interface primitives are not taken into account in the check for
623         3.9.3(10); this check is done with the aliased entity.
624         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
625         interfacing with CPP by default.
626         (Expand_Interface_Conversion): Add missing support for static conversion
627         from an interface to a tagged type.
628         (Collect_All_Interfaces): Add new out formal containing the list of
629         abstract interface types to cleanup the subprogram Make_DT.
630         (Make_DT): Update the code to generate the table of interfaces in case
631         of abstract interface types.
632         (Is_Predefined_Dispatching_Alias): New function that returns true if
633         a primitive is not a predefined dispatching primitive but it is an
634         alias of a predefined dispatching primitive.
635         (Make_DT): If the ancestor of the type is a CPP_Class and we are
636         compiling under full ABI compatibility mode we avoid the generation of
637         calls to run-time services that fill the dispatch tables because under
638         this mode we currently inherit the dispatch tables in the IP subprogram.
639         (Write_DT): Emit an "is null" indication for a null procedure primitive.
640         (Expand_Interface_Conversion): Use an address as the type of the formal
641         of the internally built function that handles the case in which the
642         target type is an access type.
643
644 2006-10-31  Robert Dewar  <dewar@adacore.com>
645
646         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
647
648 2006-10-31  Robert Dewar  <dewar@adacore.com>
649
650         * bindusg.ads, bindusg.adb:
651         Change to package and rename procedure as Display, which
652         now ensures that it only outputs usage information once.
653
654 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
655
656         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
657         using RTPs.
658
659         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
660         when using RTPs.
661
662 2006-10-31  Robert Dewar  <dewar@adacore.com>
663             Ed Schonberg  <schonberg@adacore.com>
664
665         * treepr.adb: Use new subtype N_Membership_Test
666
667         * checks.ads, checks.adb: Add definition for Validity_Check
668         (Range_Or_Validity_Checks_Suppressed): New function
669         (Ensure_Valid): Test Validity_Check suppressed
670         (Insert_Valid_Check): Test Validity_Check suppressed
671         (Insert_Valid_Check): Preserve Do_Range_Check flag
672         (Validity_Check_Range): New procedure
673         (Expr_Known_Valid): Result of membership test is always valid
674         (Selected_Range_Checks): Range checks cannot be applied to discriminants
675         by themselves. Disabling those checks must also be done for task types,
676         where discriminants may be used for the bounds of entry families.
677         (Apply_Address_Clause_Check): Remove side-effects if address expression
678         is non-static and is not the name of a declared constant.
679         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
680         Code cleanup and new error messages.
681         (Enable_Range_Check): Test for some cases of suppressed checks
682         (Generate_Index_Checks): Suppress index checks if index checks are
683         suppressed for array object or array type.
684         (Apply_Selected_Length_Checks): Give warning for compile-time detected
685         length check failure, even if checks are off.
686         (Ensure_Valid): Do not generate a check on an indexed component whose
687         prefix is a packed boolean array.
688         * checks.adb: (Alignment_Checks_Suppressed): New function
689         (Apply_Address_Clause_Check): New procedure, this is a completely
690         rewritten replacement for Apply_Alignment_Check
691         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
692         we request a discriminal value only in case of discriminants.
693         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
694         assignments where the target subtype is unconstrained and the target
695         object is a parameter or dereference (other aliased cases are known
696         to be unconstrained).
697
698 2006-10-31  Robert Dewar  <dewar@adacore.com>
699
700         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
701         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
702         vms_conv.adb: Fix bad table increment values (much too small)
703
704         * table.adb (Realloc): Make sure we get at least some new elements
705         Defends against silly small values for table increment
706
707 2006-10-31  Robert Dewar  <dewar@adacore.com>
708             Ed Schonberg  <schonberg@adacore.com>
709             Bob Duff  <duff@adacore.com>
710
711         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
712         entities. Move other fields around to make this possible
713         (Is_Derived_Type): Add missing call to Is_Type.
714         (Extra_Formals): New function for subprograms, entries, subprogram
715         types.
716         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
717         (First_Formal_With_Extras): New function for subprogs, entries, subp
718         types.
719         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
720         Add node information for E_Return_Statement.
721         (Elaborate_Body_Desirable): New flag
722         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
723         to be Is_Inherently_Limited_Type, because return-by-reference has
724         no meaning in Ada 2005.
725         (E_Return_Statement): New entity kind.
726         (Return_Applies_To): Field of E_Return_Statement.
727         (Is_Return_Object): New flag in object entities.
728         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
729         (Must_Have_Preelab_Init): New flag
730         (Known_To_Have_Preelab_Init): New flag
731         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
732         (Is_Visible_Formal): New flag on entities in formal packages.
733         (Low_Bound_Known): New flag
734         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
735         Incomplete_Kind.
736         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
737         output when Id is an incomplete subtype.
738
739 2006-10-31  Robert Dewar  <dewar@adacore.com>
740
741         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
742         Avoid abbreviation Creat
743         (Finalize): List all sources in extended mail source if -gnatl
744         switch is active.
745         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
746         (Finalize): Implement new -gnatl=xxx switch to output listing to file
747         (Set_Specific_Warning_On): New procedure
748         (Set_Specific_Warning_Off): New procedure
749         Add implementation of new insertion \\
750         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
751         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
752         types.
753         (Error_Msg_Internal): Make sure that we set Last_Killed to
754         True when a message from another package is suppressed.
755         Implement insertion character ~ (insert string)
756         (First_Node): Minor adjustments to get better placement.
757
758         * frontend.adb: 
759         Implement new -gnatl=xxx switch to output listing to file
760
761         * gnat1drv.adb: 
762         Implement new -gnatl=xxx switch to output listing to file
763
764         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
765         (Commands_To_Stdout): New flag
766         Implement new -gnatl=xxx switch to output listing to file
767         New switch Dump_Source_Text
768         (Warn_On_Deleted_Code): New warning flag for -gnatwt
769         Define Error_Msg_Line_Length
770         (Warn_On_Assumed_Low_Bound): New switch
771
772         * osint.ads, osint.adb
773         (Normalize_Directory_Name): Fix bug.
774         Implement new -gnatl=xxx switch to output listing to file
775         (Concat): Removed, replaced by real concatenation
776         Make use of concatenation now allowed in compiler
777         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
778         we find the 'lib' or 'bin' directory even when the tool has been
779         invoked with a relative path.
780         (Executable_Name): New function taking string parameters.
781
782         * osint-c.ads, osint-c.adb: 
783         Implement new -gnatl=xxx switch to output listing to file
784
785         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
786
787         * switch-c.adb: 
788         Implement new -gnatl=xxx switch to output listing to file
789         Recognize new -gnatL switch
790         (no longer keep in old warning about old style usage)
791         Use concatenation to simplify code
792         Recognize -gnatjnn switch
793         (Scan_Front_End_Switches): Clean up handling of -gnatW
794         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
795
796 2006-10-31  Robert Dewar  <dewar@adacore.com>
797
798         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
799         (Set_Specific_Warning_Off): New procedure
800         (Warning_Specifically_Suppressed): New function
801         (Validate_Specific_Warnings): New procedure
802         (Output_Msg_Text): Complete rewrite to support -gnatjnn
803
804         * err_vars.ads: Implement insertion character ~ (insert string)
805
806 2006-10-31  Bob Duff  <duff@adacore.com>
807             Ed Schonberg  <schonberg@adacore.com>
808
809         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
810         the parent part is a build-in-place function call, generate assignments.
811         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
812         are build-in-place function calls.
813         (Replace_Self_Reference): New subsidiary of
814         Make_OK_Assignment_Statement, to replace an access attribute that is a
815         self-reference into an access to the appropriate component of the
816         target object. Generalizes previous mechanism to handle self-references
817         nested at any level.
818         (Is_Self_Referential_Init): Remove, not needed.
819         (Is_Self_Referential_Init): New predicate to simplify handling of self
820         referential components in record aggregates.
821         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
822         check for presence of entity before checking for self-reference.
823         (Has_Default_Init_Comps): Return True if a component association is a
824         self-reference to the enclosing type, which can only come from a
825         default initialization.
826         (Make_OK_Assignment_Statement): If the expression is of the form
827         Typ'Acc, where Acc is an access attribute, the expression comes from a
828         default initialized self-referential component.
829         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
830         that has been derived from several abstract interfaces we must also
831         initialize the tags of the secondary dispatch tables.
832
833 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
834             Thomas Quinot  <quinot@adacore.com>
835             Javier Miranda  <miranda@adacore.com>
836             Robert Dewar  <dewar@adacore.com>
837         
838         * exp_attr.adb: 
839         (Expand_Access_To_Protected_Op): If the context indicates that an access
840         to a local operation may be transfered outside of the object, create an
841         access to the wrapper operation that must be used in an external call.
842         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
843         target, pass the Valid attribute applied to a floating-point prefix on
844         to the back end without expansion.
845         (Storage_Size): Use the new run-time function Storage_Size to retrieve
846         the allocated storage when it is specified by a per-object expression.
847         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
848         Nothing to do here, the attribute has been rewritten during semantic
849         analysis.
850         (Expand_Attribute_Reference): Handle expansion of the new Priority
851         attribute
852         (Find_Fat_Info): Handle case of universal real
853         (Expand_Access_To_Protected_Op): Fix use of access to protected
854         subprogram from inside the body of a protected entry.
855         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
856         'Access and 'Unrestricted_Access, to transform the attribute reference
857         into a fat pointer.
858         (Is_Constrained_Aliased_View): New predicate to help determine whether a
859         subcomponent's enclosing variable is aliased with a constrained subtype.
860         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
861         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
862         an aliased prefix must be known to be constrained in order to use True
863         for the attribute value, and now it's possible for some aliased views
864         to be unconstrained.
865
866 2006-10-31  Robert Dewar  <dewar@adacore.com>
867
868         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
869         (Expand_Entity_Reference): Correct error of not handling subprogram
870         formals in current_value processing.
871
872 2006-10-31  Javier Miranda  <miranda@adacore.com>
873             Robert Dewar  <dewar@adacore.com>
874             Ed Schonberg  <schonberg@adacore.com>
875             Gary Dismukes  <dismukes@adacore.com>
876
877         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
878         register in the final list objects containing class-wide interfaces;
879         otherwise we incorrectly register the tag of the interface in the final
880         list.
881         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
882         generate the wrapper if the parent primitive is abstract. This is
883         required to report the correct error message.
884         (Expand_N_Subtype_Indication): Do validity checks on range
885         (Clean_Task_Names): If an initialization procedure includes a call to
886         initialize a task (sub)component, indicate that the procedure will use
887         the secondary stack.
888         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
889         compatibility for interfacing with CPP by default.
890         (Expand_N_Object_Declaration): Only build an Adjust call when the
891         object's type is a nonlimited controlled type.
892         * exp_ch3.adb: Add with and use of Exp_Ch6.
893         (Expand_N_Object_Declaration): Check for object initialization that is a
894         call to build-in-place function and apply Make_Build_In_Place_Call_In_
895         Object_Declaration to the call.
896         (Freeze_Type): When the designated type of an RACW was not frozen at the
897         point where the RACW was declared, validate the primitive operations
898         with respect to E.2.2(14) when it finally is frozen.
899         (Build_Initialization_Call,Expand_Record_Controller): Rename
900         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
901         return-by-reference has no meaning in Ada 2005.
902         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
903         to register tag of the immediate ancestor interfaces in the
904         run-time structure.
905         (Init_Secondary_Tags): Moved to the specification to allow the
906         initialization of extension aggregates with abstract interfaces.
907         (Build_Master_Renaming): Make public, for use by function declarations
908         whose return type is an anonymous access type.
909         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
910         Insert_List_Before_And_Analyze after the generation of the specs
911         associated with null procedures.
912         (Expand_Tagged_Root): Update documentation in its specification.
913         (Init_Secondary_Tags): Update documentation.
914         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
915         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
916         then generate code to inherit the contents of the dispatch table
917         directly from the ancestor.
918         (Expand_Record_Controller): Insert controller component after tags of
919         implemented interfaces.
920         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
921         create null procedure overridings when null procedures are inherited
922         from interfaces.
923         (Make_Null_Procedure_Specs): New procedure to generate null procedure
924         declarations for overriding null primitives inherited from interfaces.
925         (Is_Null_Interface_Procedure): New function in
926         Make_Null_Procedure_Specs.
927         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
928         immediate ancestor of a tagged type is an abstract interface type we
929         must generate the specification of the predefined primitives associated
930         with controlled types (because the dispatch table of the ancestor is
931         null and hence these entries cannot be inherited). This is required to
932         elaborate well the dispatch table.
933
934 2006-10-31  Javier Miranda  <miranda@adacore.com>
935             Ed Schonberg  <schonberg@adacore.com>
936             Bob Duff  <duff@adacore.com>
937             Gary Dismukes  <dismukes@adacore.com>
938             Robert Dewar  <dewar@adacore.com>
939         
940         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
941         conversion.
942         (Expand_N_In): Do validity checks on range
943         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
944         (Expand_N_Allocator): For "new T", if the object is constrained by
945         discriminant defaults, allocate the right amount of memory, rather than
946         the maximum for type T.
947         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
948         when the allocator is initialized by a build-in-place call, since the
949         allocator is already rewritten as a reference to the function result,
950         and this prevents an unwanted duplication of the function call.
951         Add with and use of Exp_Ch6.
952         (Expand_Allocator_Expresssion): Check for an allocator whose expression
953         is a call to build-in-place function and apply
954         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
955         untagged designated types).
956         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
957         optimization if source or target is biased.
958         (Expand_N_Allocator): Add comments for case of an allocator within a
959         function that returns an anonymous access type designating tasks.
960         (Expand_N_Allocator): apply discriminant checks for access
961         discriminants of anonymous access types (AI-402, AI-416)
962
963 2006-10-31  Bob Duff  <duff@adacore.com>
964             Robert Dewar  <dewar@adacore.com>
965             Gary Dismukes  <dismukes@adacore.com>
966             Ed Schonberg  <schonberg@adacore.com>
967
968         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
969
970         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
971         (Expand_N_Assignment_Statement): Call
972         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
973         build-in-place function call. Currently, this can happen only for
974         assignments that come from aggregates.
975         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
976         in order to alleviate the upward compatibility introduced by AI-318.
977         (Expand_N_Extended_Return_Statement): Add support for handling the
978         return object as a build-in-place result.
979         (Expand_Non_Function_Return): Implement simple return statements nested
980         within an extended return.
981         (Enable_New_Return_Processing): Turn on the new processing of return
982         statements.
983         (Expand_Non_Function_Return): For a return within an extended return,
984         don't raise Program_Error, because Sem_Ch6 now gives a warning.
985         (Expand_N_Extended_Return_Statement): Implement AI-318
986         (Expand_Simple_Function_Return): Ditto.
987         (Expand_N_If_Statement): Handle new -gnatwt warning
988         (Expand_N_Case_Statement): Handle new -gnatwt warning
989         (Expand_N_Assignment): Handle assignment to the Priority attribute of
990         a protected object.
991         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
992         validity checking of assignments to elementary record components.
993         (Expand_N_Return_Statement): return Class Wide types on the secondary
994         stack independantly of their controlled status since with HIE runtimes,
995         class wide types are not potentially controlled anymore.
996
997         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
998         node kind.
999
1000         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
1001         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
1002         it expects a block, procedure, or task. The return statement will get
1003         turned into a block, and Expand_Cleanup_Actions will happen then.
1004
1005 2006-10-31  Robert Dewar  <dewar@adacore.com>
1006             Ed Schonberg  <schonberg@adacore.com>
1007             Bob Duff  <duff@adacore.com>
1008             Gary Dismukes  <dismukes@adacore.com>
1009
1010         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
1011         capability.
1012         (Expand_Inlined_Call): Tagged types are by-reference types, and
1013         therefore should be replaced by a renaming declaration in the expanded
1014         body, as is done for limited types.
1015         (Expand_Call): If this is a call to a function with dispatching access
1016         result, propagate tag from context.
1017         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
1018         CPP by default.
1019         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
1020         build-in-place when the right-hand side of an assignment is a
1021         build-in-place function call.
1022         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
1023         of the explicit dereference of the allocator to the result subtype of
1024         the build-in-place function. This is needed to satisfy type checking
1025         in cases where the caller's return object is created by an allocator for
1026         a class-wide access type and the type named in the allocator is a
1027         specific type.
1028         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
1029         conversion of the reference to the declared object to the result subtype
1030         of the build-in-place function. This is needed to satisfy type checking
1031         in cases where the declared object has a class-wide type. Also, in the
1032         class-wide case, change the type of the object entity to the specific
1033         result subtype of the function, to avoid passing a class-wide object
1034         without explicit initialization to the back end.
1035         (Register_Interface_DT_Entry): Moved outside the body of
1036         Freeze_Subprogram because this routine is now public; it is called from
1037         Check_Dispatching_Overriding to handle late overriding of abstract
1038         interface primitives.
1039         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
1040         adding an implicit access actual on a call to a build-in-place function.
1041         (Expand_Actuals): Test for an actual parameter that is a call to a
1042         build-in-place function and apply
1043         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
1044         (Is_Build_In_Place_Function): New function to determine whether an
1045         entity is a function whose calls should be handled as build-in-place.
1046         (Is_Build_In_Place_Function_Call): New function to determine whether an
1047         expression is a function call that should handled as build-in-place.
1048         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
1049         calls to build-in-place functions as the initialization of an allocator.
1050         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
1051         handling calls to build-in-place functions in contexts that do not
1052         involve init of a separate object (for example, actuals of subprogram
1053         calls).
1054         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
1055         handling calls to build-in-place functions as the initialization of an
1056         object declaration.
1057         (Detect_Infinite_Recursion): Add explicit parameter Process to
1058         instantiation of Traverse_Body to avoid unreferenced warning.
1059         (Check_Overriding_Inherited_Interfaces): Removed.
1060         (Register_Interface_DT_Entry): Code cleanup.
1061         (Register_Predefined_DT_Entry): Code cleanup.
1062         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
1063         inlined statements if within a transient scope.
1064         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
1065         formal parameters with occurrences of actuals in inlined body, establish
1066         visibility on the proper view of the actual's subtype for the body's
1067         context.
1068         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
1069         compatibility mode and we have an imported CPP subprogram because
1070         for now we assume that imported CPP primitives correspond with
1071         objects whose constructor is in the CPP side (and therefore we
1072         don't need to generate code to register them in the dispatch table).
1073         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
1074         aligned selected component.
1075         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
1076         the actual of an in-mode parameter is a type conversion.
1077         (Expand_Actuals): If the call does not come from source and the actual
1078         is potentially misaligned, let gigi handle it rather than rejecting the
1079         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
1080         Class Wide types as returning by reference independantly of their
1081         controlled status since with HIE runtimes class wide types are not
1082         potentially controlled anymore.
1083
1084 2006-10-31  Ed Schonberg  <schonberg@adacore.com>             
1085
1086         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
1087         references that are private components of the protected object.
1088         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
1089         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
1090         instantiation to deal with warnings.
1091         (Initialize_Protection): If expression for priority is non-static, use
1092         System_Priority as its expected type, in case the expression has not
1093         been analyzed yet.
1094
1095 2006-10-31  Robert Dewar  <dewar@adacore.com>
1096
1097         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
1098         initialization of Homonym_Len.
1099         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
1100         names from fully qualified name. Fixes problem of duplicate
1101         external names differing only in the presence of such a block name.
1102
1103 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1104             Pablo Oliveira  <oliveira@adacore.com>
1105         
1106         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
1107         subprogram Ids, even if they are not yet assigned.
1108         (Build_Subprogram_Id): It is now this function that will take care of
1109         calling Assign_Subprogram_Ids if necessary.
1110         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
1111         should be done only once they are assigned.
1112         (Build_From_Any_Function, case of tagged types): Add missing call to
1113         Allocate_Buffer.
1114         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
1115         type for an RACW type.
1116         (Add_RACW_Features): When processing an RACW declaration for which the
1117         designated type is already frozen, enforce E.2.2(14) rules immediately.
1118         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
1119         special reordering of controlling formals.
1120
1121         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
1122         associated stub type for an RACW type.
1123
1124 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1125
1126         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
1127         fixed-point operations in an integer context, i.e. as operands of a
1128         conversion to an integer type, indicate that result must be rounded.
1129
1130 2006-10-31  Robert Dewar  <dewar@adacore.com>
1131
1132         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
1133         cases, pass the encoding method, since it is now required by the run
1134         time.
1135
1136         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
1137         assumption that Str'First = 1.
1138         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
1139         it on to the Value_Wide_Wide_Character call.
1140         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
1141         properly handles a string of the form quote-encoded_wide_char-quote.
1142
1143         * s-wchcnv.adb: Minor reformatting
1144
1145 2006-10-31  Javier Miranda  <miranda@adacore.com>
1146         
1147         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1148         run-time membership test to ensure that the constructed object
1149         implements the target abstract interface.
1150
1151 2006-10-31  Robert Dewar  <dewar@adacore.com>
1152
1153         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
1154         Machine_Attribute pragma internally to implement the user pragma.
1155         Add processing for pragma Interface so that it is now completely
1156         equivalent to pragma Import.
1157
1158         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
1159         so that it can be applied to all entities, including record components
1160         and enumeration literals.
1161         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
1162         priority ranges are correct, verify compatibility against task
1163         dispatching and locking policies, and if everything is correct an entry
1164         is added to the table containing priority specific dispatching entries
1165         for this compilation unit.
1166         (Delay_Config_Pragma_Analyze): Delay processing
1167         Priority_Specific_Dispatching pragmas because when processing the
1168         pragma we need to access run-time data, such as the range of
1169         System.Any_Priority.
1170         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
1171         Allow pragma Unreferenced as a context item
1172         Add pragma Preelaborable_Initialization
1173         (Analyze_Pragma, case Interface): Interface is extended so that it is
1174         now syntactically and semantically equivalent to Import.
1175         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
1176         insertion characters.
1177         Add handling for Pragma_Wide_Character_Encoding
1178         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
1179         never supercedes a real restriction, and that a real restriction
1180         always supercedes a warning.
1181         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
1182         appropriate form.
1183
1184 2006-10-31  Bob Duff  <duff@adacore.com>
1185             Ed Schonberg  <schonberg@adacore.com>
1186             Robert Dewar  <dewar@adacore.com>
1187
1188         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
1189         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
1190         Is_Inherently_Limited_Type, because return-by-reference has no meaning
1191         in Ada 2005.
1192         (Find_Node_To_Be_Wrapped): Use new method of determining the result
1193         type of the function containing a return statement, because the
1194         Return_Type field was removed. We now use the Return_Applies_To field.
1195
1196         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
1197         (Build_Task_Image_Decl): If procedure is not called from an
1198         initialization procedure, indicate that function that builds task name
1199         uses the sec. stack. Otherwise the enclosing initialization procedure
1200         will carry the indication.
1201         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
1202         N_Object_Declaration instead.
1203         (Kill_Dead_Code): New interface to implement -gnatwt warning for
1204         conditional dead code killed, and change implementation accordingly.
1205         (Insert_Actions): Add N_Return_Object_Declaration case.
1206         Correct comment to mention N_Extension_Aggregate node.
1207         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
1208         attempts to save information for global variables which cannot be
1209         safely tracked.
1210         (Get_Current_Value_Condition): Handle conditions the other way round
1211         (constant on left). Also handle right operand of AND and AND THEN
1212         (Set_Current_Value_Condition): Corresponding changes
1213         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
1214         (Get_Current_Value_Condition): Handle simple boolean operands
1215         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
1216         (Get_Current_Value_Condition): If the variable reference is within an
1217         if-statement, does not appear in the list of then_statments, and does
1218         not come from source, treat it as being at unknown location.
1219         (Get_Current_Value_Condition): Enhance to allow while statements to be
1220         processed as well as if statements.
1221         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
1222         come from source.
1223         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
1224         of loop. This is safe now that we fixed Kill_Current_Values.
1225         (OK_To_Do_Constant_Replacement): Check whether current scope is
1226         Standard, before examining outer scopes.
1227
1228 2006-10-31  Vincent Celier  <celier@adacore.com>
1229
1230         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
1231         When True, apply VMS treatment to children of packages A, G, I and S.
1232         For F320-016
1233
1234         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
1235
1236 2006-10-31  Robert Dewar  <dewar@adacore.com>
1237             Ed Schonberg  <schonberg@adacore.com>
1238
1239         * freeze.adb: Add handling of Last_Assignment field
1240         (Warn_Overlay): Supply missing continuation marks in error msgs
1241         (Freeze_Entity): Add check for Preelaborable_Initialization
1242
1243         * g-comlin.adb: Add Warnings (Off) to prevent new warning
1244
1245         * g-expect.adb: Add Warnings (Off) to prevent new warning
1246
1247         * lib-xref.adb: Add handling of Last_Assignment field
1248         (Generate_Reference): Centralize handling of pragma Obsolescent here
1249         (Generate_Reference): Accept an implicit reference generated for a
1250         default in an instance.
1251         (Generate_Reference): Accept a reference for a node that is not in the
1252         main unit, if it is the generic body corresponding to an subprogram
1253         instantiation.
1254
1255         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
1256
1257         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
1258         -gnatwq/Q.
1259         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
1260         exception handler.
1261         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
1262         use clauses, to avoid messages on packages used to qualify, and also
1263         to avoid messages from obsolescent units.
1264         (Warn_On_Useless_Assignments): Don't generate messages for imported
1265         and exported variables.
1266         (Warn_On_Useless_Assignments): New procedure
1267         (Output_Obsolescent_Entity_Warnings): New procedure
1268         (Check_Code_Statement): New procedure
1269
1270         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
1271         Change name Is_Ada_2005 to Is_Ada_2005_Only
1272         (Last_Assignment): New field for useless assignment warning
1273
1274 2006-10-31  Olivier Hainque  <hainque@adacore.com>
1275
1276         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
1277         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
1278
1279 2006-10-31  Bob Duff  <duff@adacore.com>
1280             Robert Dewar  <dewar@adacore.com>
1281             Ed Schonberg  <schonberg@adacore.com>
1282
1283         * g-awk.adb (Default_Session, Current_Session): Compile this file in
1284         Ada 95 mode, because it violates the new rules for AI-318.
1285
1286         * g-awk.ads: Use overloaded subprograms in every case where we used to
1287         have a default of Current_Session. This makes the code closer to be
1288         correct for both Ada 95 and 2005.
1289
1290         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
1291         code, relying on the fact that the compiler generates a warning
1292         instead of an error in -gnatg mode.
1293
1294         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
1295         E_Return_Statement entity kind.
1296         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
1297
1298         * par.adb (P_Interface_Type_Definition): Addition of one formal to
1299         report an error if the reserved word abstract has been previously found.
1300         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
1301         
1302         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
1303         parenthesized range attribute usage
1304         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
1305
1306         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
1307         in the syntax for extended_return_statement. This is not in the latest
1308         RM, but the ARG is expected to issue an AI allowing this.
1309         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
1310         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
1311         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
1312         P_Return_Statement): Parse the new syntax for extended_return_statement.
1313
1314         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
1315         Output_End_Missing): Add error-recovery code for the new
1316         extended_return_statement syntax; that is, the new E_Return entry on
1317         the scope stack.
1318
1319         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
1320         limited to nonlimited, because otherwise we violate the new Ada 2005
1321         rules about returning limited types in function Create_AST_Handler in
1322         s-asthan.adb.
1323
1324         * sem.adb (Analyze): Add cases for new node kinds
1325         N_Extended_Return_Statement and N_Return_Object_Declaration.
1326
1327         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
1328         type is in the same category as type of context before applying check,
1329         to prevent anomalies in instantiations.
1330         (Resolve_Aggregate): Remove test for limited components in aggregates.
1331         It's unnecessary in Ada 95, because if it has limited components, then
1332         it must be limited. It's wrong in Ada 2005, because limited aggregates
1333         are now allowed.
1334         (Resolve_Record_Aggregate): Move check for limited types later, because
1335         OK_For_Limited_Init requires its argument to have been resolved.
1336         (Get_Value): When copying the component default expression for a
1337         defaulted association in an aggregate, use the sloc of the aggregate
1338         and not that of the original expression, to prevent spurious
1339         elaboration errors, when the expression includes function calls.
1340         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
1341         were missing. We also didn't handle qualified expressions. Now also
1342         allow function calls. Use new common routine OK_For_Limited_Init.
1343         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
1344         with space can upper case letter).
1345
1346         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
1347         Has_Static_Discriminants flag
1348         (Record_Type_Declaration): Diagnose an attempt to declare an interface
1349         type with discriminants.
1350         (Process_Range_Expr_In_Decl): Do validity checks on range
1351         (Build_Discriminant_Constraints): Use updated form of
1352         Denotes_Discriminant.
1353         (Process_Subtype): If the subtype is a private subtype whose full view
1354         is a concurrent subtype, introduce an itype reference to prevent scope
1355         anomalies in gigi.
1356         (Build_Derived_Record_Type, Collect_Interface_Primitives,
1357         Record_Type_Declaration):  The functionality of the subprograms
1358         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
1359         is now performed by a single routine.
1360         (Build_Derived_Record_Type): If the type definition includes an explicit
1361         indication of limitedness, then the type must be marked as limited here
1362         to ensure that any access discriminants will not be treated as having
1363         a local anonymous access type.
1364         (Check_Abstract_Overriding): Issue a detailed error message when an
1365         abstract subprogram was not overridden due to incorrect mode of its
1366         first parameter.
1367         (Analyze_Private_Extension_Declaration): Add support for the analysis of
1368         synchronized private extension declarations. Verify that the ancestor is
1369         a limited or synchronized interface or in the generic case, the ancestor
1370         is a tagged limited type or synchronized interface and all progenitors
1371         are either limited or synchronized interfaces.
1372         Derived_Type_Declaration): Check for presence of private extension when
1373         dealing with synchronized formal derived types.
1374         Process_Full_View): Enchance the check done on the usage of "limited" by
1375         testing whether the private view is synchronized.
1376         Verify that a synchronized private view is completed by a protected or
1377         task type.
1378         (OK_For_Limited_Init_In_05): New function.
1379         (Analyze_Object_Declaration): Move check for limited types later,
1380         because OK_For_Limited_Init requires its argument to have been resolved.
1381         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1382         in order to alleviate the upward compatibility introduced by AI-318.
1383         (Constrain_Corresponding_Record): If the constraint is for a component
1384         subtype, mark the itype as frozen, to avoid out-of-scope references to
1385         discriminants in the back-end.
1386         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
1387         this subprogram against wrong sources.
1388         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
1389         discriminant of limited type completed with a protected type, when the
1390         discriminant is used to constrain a private component of the type, and
1391         expansion is disabled.
1392         (Find_Type_Of_Object): Do not treat a return subtype that is an
1393         anonymous subtype as a local_anonymous_type, because its accessibility
1394         level is the return type of the enclosing function.
1395         (Check_Initialization): In -gnatg mode, turn the error "cannot
1396         initialize entities of limited type" into a warning.
1397         (OK_For_Limited_Init): Return true for generated nodes, since it
1398         sometimes violates the legality rules.
1399         (Make_Incomplete_Declaration): If the type for which an incomplete
1400         declaration is created happens to be the currently visible entity,
1401         preserve the homonym chain when removing it from visibility.
1402         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
1403         inherited subprograms.
1404         (Access_Definition): If this is an access to function that is the return
1405         type of an access_to_function definition, context is a type declaration
1406         and the scope of the anonymous type is the current one.
1407         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
1408         incomplete subtype to the set of private dependents of the original
1409         incomplete type.
1410         (Constrain_Discriminated_Type): Emit an error message whenever an
1411         incomplete subtype is being constrained.
1412         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
1413         corresponding subtype of the full view of the original incomplete type.
1414         (Check_Incomplete): Properly detect invalid usage of incomplete types
1415         and subtypes.
1416
1417 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1418
1419         * g-catiio.ads, g-catiio.adb (Value): New function.
1420         Given an input String, try and parse a valid Time value.
1421
1422 2006-10-31  Vincent Celier  <celier@adacore.com>
1423
1424         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1425         Integer_Address arithmetic, as in Set_Valid.
1426
1427 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1428             Robert Dewar  <dewar@adacore.com>
1429
1430         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
1431         handling executable extension manually and duplicating code.
1432
1433         * make.adb: Implement new -S switch
1434         (Gnatmake): Use new function Osint.Executable_Name instead
1435         of handling executable extension manually.
1436
1437         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
1438         is specified, the executable name ends with this suffix.
1439         Take advantage of Osint.Executable_Name instead of duplicating code.
1440
1441         * switch-m.adb: Recognize new gnatmake -S switch
1442
1443         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
1444         variable.
1445         (Get_Target_Parameters): Set Executable_Extension_On_Target if
1446         available.
1447
1448         * makeusg.adb: Add line for gnatmake -S switch
1449
1450 2006-10-31  Vincent Celier  <celier@adacore.com>
1451
1452         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
1453         call it with -static-libgcc, as there are some platforms, such as
1454         Darwin, where one of these two switches is compulsory to link.
1455
1456 2006-10-31  Vincent Celier  <celier@adacore.com>
1457         
1458         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
1459         instead of ADA_PROJECT_PATH, for the project path.
1460         (Gnatls): When displaying the project path directories, use host dir
1461         specs.
1462
1463         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
1464         names in the project path, as absolute paths may correspond to
1465         multi-valued VMS logical names.
1466
1467 2006-10-31  Vincent Celier  <celier@adacore.com>
1468
1469         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
1470         absolute path name.
1471         (Locate_Regular_File): Ditto
1472         (Change_Dir): Remove, no longer used
1473         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
1474         on Windows. Get it calling Get_Current_Dir.
1475         (OpenVMS): Remove imported boolean, no longer needed.
1476         (Normalize_Pathname)[VMS]: Do not resolve directory names.
1477         (Pid_To_Integer): New function to convert a Process_Id to  Integer
1478
1479 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1480
1481         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
1482         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
1483         to No_Socket.
1484         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
1485         W_Sig_Socket.
1486
1487 2006-10-31  Robert Dewar  <dewar@adacore.com>
1488
1489         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1490         initial letter o as a zero.
1491
1492 2006-10-31  Robert Dewar  <dewar@adacore.com>
1493
1494         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1495
1496 2006-10-31  Robert Dewar  <dewar@adacore.com>
1497
1498         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
1499         variant records
1500         (Layout_Variant_Record): Retrieve the discriminants from the entity
1501         rather than from the type definition, because in the case of a full
1502         type for a private type we need to take the discriminants from the
1503         partial view.
1504         (Layout_Component_List): When applying the Max operator to variants with
1505         a nonstatic size, check whether either operand is static and scale that
1506         operand from bits to storage units before applying Max.
1507         (Layout_Type): In VMS, if a C-convention access type has no explicit
1508         size clause (and does not inherit one in the case of a derived type),
1509         then the size is reset to 32 from 64.
1510
1511 2006-10-31  Vincent Celier  <celier@adacore.com>
1512
1513         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
1514         its file has already been loaded, according to the unit being loaded,
1515         not to the current value of Multiple_Unit_Index.
1516
1517 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1518             Eric Botcazou  <ebotcazou@adacore.com>
1519             Arnaud Charlet  <charlet@adacore.com>
1520
1521         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
1522         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
1523         possible.
1524         (a-except.o): Pass it to the compiler.
1525         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
1526         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
1527         a-calend-mingw.adb version.
1528
1529         * Makefile.rtl: Added s-dsaser.
1530         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
1531         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
1532         Ada.Dispatching.Round_Robin.
1533         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
1534
1535         * Make-lang.in: Remove all references to gt-ada-decl.h.
1536         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
1537         sources.
1538         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
1539         Update dependencies.
1540
1541         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
1542
1543 2006-10-31  Vincent Celier  <celier@adacore.com>
1544
1545         * mlib-utl.adb (Initialized): Remove, no longer used
1546         (Initialize): Remove, no longer used
1547         (Ar): If Ar_Exec is null, get the location of the archive builder and,
1548         if there is one, the archive indexer. Fail if the archive builder cannot
1549         be found.
1550         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
1551         be found.
1552
1553 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1554
1555         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
1556         Process_Body_Clauses): If the context of a body includes a use clause
1557         for P.Q then a with_clause for P in the same body is not redundant,
1558         even if the spec also has a with_clause on P.
1559         Add missing continuation mark to error msg
1560         (Build_Limited_Views): A limited view of a type is tagged if its
1561         declaration includes a record extension.
1562         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
1563         node, even if the subunit has errors. This avoids malfunction by
1564         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
1565         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
1566         generation of obsolescent messages for with statements (cannot do
1567         this too early, or we cannot implement avoiding the messages in the
1568         case of obsolescent units withing obsolescent units).
1569         (Install_Siblings): If the with_clause is on a remote descendant of
1570         an ancestor of the current compilation unit, find whether there is
1571         a sibling child unit that is immediately visible.
1572         (Remove_Private_With_Clauses): New procedure, invoked after completing
1573         the analysis of the private part of a nested package, to remove from
1574         visibility the private with_clauses of the enclosing package
1575         declaration.
1576         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
1577         now centralized in Generate_Reference.
1578         (Install_Limited_Context_Clauses): Remove superfluous error
1579         message associated with unlimited view visible through use
1580         and renamings. In addition, at the point in which the error
1581         is reported, we add the backslash to the text of the error
1582         to ensure that it is reported as a single error message.
1583         Use new // insertion for some continuation messages
1584         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
1585         to create implicit with_clause for parent unit mentioned in original
1586         limited_with_clause.
1587         (Install_Limited_With_Unit): Set entity of parent identifiers if the
1588         unit is a child unit. For ASIS queries.
1589         (Analyze_Subunit): If the subunit appears within a child unit, make all
1590         ancestor child units directly visible again.
1591
1592 2006-10-31  Robert Dewar  <dewar@adacore.com>
1593
1594         * par-ch10.adb (P_Context_Clause): Minor error message fix
1595
1596 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1597             Javier Miranda  <miranda@adacore.com>
1598
1599         * par-ch12.adb: Grammar update and cleanup.
1600         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
1601         support for synchronized derived type definitions.
1602         Add the new actual Abstract_Present to every call to
1603         P_Interface_Type_Definition.
1604         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
1605         a formal object declaration with an access definition or a subtype mark
1606         with a null exclusion.
1607         (P_Generic_Association): Handle association with box, and others_choice
1608         with box, to support Ada 2005 partially parametrized formal packages.
1609
1610 2006-10-31  Robert Dewar  <dewar@adacore.com>
1611             Javier Miranda  <miranda@adacore.com>
1612         
1613         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
1614         (P_Type_Declaration): Remove barrier against the reserved word "limited"
1615         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
1616         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
1617         private extensions.
1618         (P_Type_Declaration): Add the new actual Abstract_Present to every call
1619         to P_Interface_Type_Definition.
1620         (P_Interface_Type_Definition): Addition of one formal to report an error
1621         if the reserved word abstract has been previously found.
1622         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
1623         object renaming declaration with an access definition or subtype mark
1624         with a possible null exclusion.
1625
1626         * par-ch9.adb: Minor error msg fix
1627
1628         * par-load.adb: Add missing continuation mark to error msg
1629
1630         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
1631
1632 2006-10-31  Vincent Celier  <celier@adacore.com>
1633
1634         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
1635         unknown attribute in unknown package or in package that does not need
1636         to be checked.
1637         (Parse_Package_Declaration): Do not issue warning for unknown package in
1638         quiet output.
1639
1640 2006-10-31  Vincent Celier  <celier@adacore.com>
1641
1642         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
1643         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
1644         Packages_To_Check.
1645
1646 2006-10-31  Vincent Celier  <celier@adacore.com>
1647
1648         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
1649         on VMS, change "__" to '.' before checking the name.
1650         (Record_Ada_Source): Always add the source file name in the list of
1651         of sources, even if it is not the first time, as it is for another
1652         source index.
1653         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
1654         dot, instead of replacing only the first '_'.
1655
1656         * prj-part.adb (Parse): Convert project file path to canonical form
1657
1658         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
1659         extended, the project id of the project extending it is recorded in its
1660         data, even when it has already been processed as an imported project.
1661
1662 2006-10-31  Robert Dewar  <dewar@adacore.com>
1663
1664         * repinfo.adb (List_Entities): Don't list entities from renaming
1665         declarations.
1666
1667 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1668             Robert Dewar  <dewar@adacore.com>
1669
1670         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
1671         only a restriction warning is active for the given restriction. This is
1672         desirable because we do not want to modify code in the case where only
1673         a warning is set.
1674         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
1675         causes overriding of real restrictions.
1676         Take advantage of new No_Restrictions constant.
1677
1678         * raise.h: (__gnat_set_globals): Change profile.
1679
1680 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1681         
1682         * rtsfind.adb: Remove s-polint from comment as it exists no more.
1683
1684         * rtsfind.ads: 
1685         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
1686         Move all the entities in obsolete package System.PolyORB_Interface to
1687         System.Partition_Interface.
1688         (RE_Storage_Size): New function in System.Tasking.
1689         (RE_Get_Ceiling): New entity.
1690         (RE_Set_Ceiling): New entity.
1691         (RO_PE_Get_Ceiling): New entity.
1692         (RO_RE_Set_Ceiling): New entity.
1693         (Inherit_CPP_DT): New entity
1694
1695 2006-10-31  Robert Dewar  <dewar@adacore.com>
1696
1697         * scng.adb (Scan, case of numeric literal): Better msg for identifier
1698         starting with a digit.
1699
1700 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1701             Thomas Quinot  <quinot@adacore.com>
1702             Javier Miranda  <miranda@adacore.com>
1703             Gary Dismukes  <dismukes@adacore.com>
1704
1705         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
1706         properly an attempt to apply Unchecked_Access to a protected operation.
1707         (OK_Self_Reference): New subprogram to check the legality of an access
1708         attribute whose prefix is the type of an enclosing aggregate.
1709         Generalizes previous mechanism to handle attribute references nested
1710         arbitrarily deep within the aggregate.
1711         (Analyze_Access_Attribute): An access attribute whose prefix is a type
1712         can appear in an aggregate if this is a default-initialized aggregate
1713         for a self-referential type.
1714         (Resolve_Attribute, case Access): Ditto.
1715         Add support for new implementation defined attribute Stub_Type.
1716         (Eval_Attribute, case Attribute_Stub_Type): New case.
1717         (Analyze_Attribute, case Attribute_Stub_Type): New case.
1718         (Stream_Attribute_Available): Implement using new subprogram from
1719         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
1720         Has_Specified_Stream_Attribute flag.
1721         Disallow Storage_Size and Storage_Pool for access to subprogram
1722         (Resolve_Attribute, case 'Access et al): Take into account anonymous
1723         access types of return subtypes in extended return statements. Remove
1724         accessibility checks on anonymous access types when Unchecked_Access is
1725         used.
1726         (Analyze_Attribute): Add support for the use of 'Class to convert
1727         a class-wide interface to a tagged type.
1728         Add support for the attribute Priority.
1729         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
1730         whether the designated type is discriminated with a constrained partial
1731         view and require static matching in that case.
1732         Add local variable Des_Btyp. The Designated_Type
1733         of an access to incomplete subtype is either its non-limited view if
1734         coming from a limited with or its etype if regular incomplete subtype.
1735
1736         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
1737         Fix predicate to identify and allow cases of (expander-generated)
1738         references to tag of designated object of a RACW.
1739         (Validate_Static_Object_Name): In Ada 2005, a formal object is
1740         non-static, and therefore cannot appear as a primary in a preelaborable
1741         package.
1742         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
1743         Has_Read_Write_Attributes.
1744         (Has_Read_Write_Attributes): Reimplement in termes of
1745         Has_Stream_Attribute_Definition.
1746         (Missing_Read_Write_Attributes): When checking component types in a
1747         record, unconditionally call Missing_Read_Write_Attributes recursively
1748         (remove guard checking for Is_Record_Type / Is_Access_Type).
1749
1750 2006-10-31  Robert Dewar  <dewar@adacore.com>
1751
1752         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
1753         useless assignments here and conditionalize it on absence of exception
1754         handlers.
1755         (Analyze_Exception_Handlers): Small code reorganization of error
1756         detection code, for new handling of formal packages.
1757
1758 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1759             Hristian Kirtchev  <kirtchev@adacore.com>
1760         
1761         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
1762         that has been constant-folded, preserve information of original tree,
1763         for ASIS uses.
1764         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
1765         generated private extension declaration if the formal derived type is
1766         synchronized. Carry synchronized present over to the generated private
1767         extension.
1768         (Validate_Derived_Type_Instance): Ensure that the actual of a
1769         synchronized formal derived type is a synchronized tagged type.
1770         (Instantiate_Formal_Package): When creating the instantiation used to
1771         validate the actual package of a formal declared without a box, check
1772         whether the formal itself depends on a prior actual.
1773         (Instantiate_Formal_Subprogram): Create new entities for the defining
1774         identifiers of the formals in the renaming declaration, for ASIS use.
1775         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
1776         a renaming declaration or a subtype declaration for an actual in an
1777         instance, capture location information of declaration in generic, for
1778         ASIS use.
1779         (Instantiate_Formal_Package): Add comments on needed additional tests.
1780         AI-317 (partial parametrization) is fully implemented.
1781         (Validate_Private_Type_Instance): Add check for actual which
1782         must have preelaborable initialization
1783         Use new // insertion for some continuation messages
1784         (Analyze_Formal_Object_Declaration): Change usage of Expression to
1785         Default_Expression. Add type retrieval when the declaration has an
1786         access definition. Update premature usage of incomplete type check.
1787         (Check_Access_Definition): New subsidiary routine. Check whether the
1788         current compilation version is Ada 05 and the supplied node has an
1789         access definition.
1790         (Instantiate object): Alphabetize local variables. Handle the creation
1791         of new renaming declarations with respect to the kind of definition
1792         used - either an access definition or a subtype mark. Guard against
1793         unnecessary error message in the context of anonymous access types after
1794         they have been resolved. Add check for required null exclusion in a
1795         formal object declaration.
1796         (Switch_View): A private subtype of a non-private type needs to be
1797         switched (the base type can have been switched without its private
1798         dependents because of the last branch of Check_Private_View.
1799         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
1800         value from BT.
1801         (Instantiate_Type): Emit an error message whenever a class-wide type of
1802         a tagged incomplete type is used as a generic actual.
1803         (Find_Actual_Type): Extend routine to handle a component type in a child
1804         unit that is imported from a formal package in a parent.
1805         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
1806         agree on constrainedness, rather than checking against ultimate ancestor
1807         (Instantiate_Subprogram_Body): Create a cross-reference link to the
1808         generic body, for navigation purposes.
1809
1810 2006-10-31  Robert Dewar  <dewar@adacore.com>
1811             Thomas Quinot  <quinot@adacore.com>
1812
1813         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
1814         type.
1815         (New_Stream_Subprogram): When processing an attribute definition clause
1816         for a stream-oriented subprogram, record an entity node occurring at
1817         the point of clause to use for checking the visibility of the clause,
1818         as defined by 8.3(23) as amended by AI-195.
1819         (New_Stream_Subprogram): New procedure, factoring behaviour from both
1820          New_Stream_Function and New_Stream_Procedure.
1821         (New_Stream_Function, New_Stream_Procedure): Removed.
1822         (Analyze_Attribute_Definition_Clause, case Address): Check new
1823         Alignment_Check check
1824
1825 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1826             Javier Miranda  <miranda@adacore.com>
1827             Robert Dewar  <dewar@adacore.com>
1828
1829         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
1830         generate the same errors compiling under -gnatc.
1831         (Try_Object_Operation): If no candidate interpretation succeeds, but
1832         there is at least one primitive operation with the right name, report
1833         error in call rather than on a malformed selected component.
1834         (Analyze_Selected_Component): If the prefix is an incomplete type from
1835         a limited view, and the full view is available, use the full view to
1836         determine whether this is a prefixed call to a primitive operation.
1837         (Operator_Check): Verify that a candidate interpretation is a binary
1838         operation before checking the type of its second formal.
1839         (Analyze_Call): Add additional warnings for function call contexts not
1840         yet supported.
1841         (Analyze_Allocator): Move the check for "initialization not allowed for
1842         limited types" after analyzing the expression. This is necessary,
1843         because OK_For_Limited_Init looks at the structure of the expression.
1844         Before analysis, we don't necessarily know what sort of expression it
1845         is. For example, we don't know whether F(X) is a function call or an
1846         indexed component; the former is legal in Ada 2005; the latter is not.
1847         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
1848         were missing. We also didn't handle qualified expressions. Now also
1849         allow function calls. Use new common routine OK_For_Limited_Init.
1850         (Analyze_Type_Conversion): Do not perform some legality checks in an
1851         instance, because the error message will be redundant or spurious.
1852         (Analyze_Overloaded_Selected_Component): Do not do style check when
1853         setting an entity, since we do not know it is the right entity yet.
1854         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
1855         (Analyze_Overloaded_Selected_Component): Same change
1856         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
1857         since regular incomplete subtypes are transformed into corresponding
1858         subtypes of their full views.
1859         (Complete_Object_Operation): Treat name of transformed subprogram call
1860         as coming from source, for browsing purposes.
1861         (Try_Primitive_Operation): If formal is an access parameter, compare
1862         with base type of object to determine whether it is a primitive
1863         operation.
1864         (Operator_Check): If no interpretation of the operator matches, check
1865         whether a use clause on any candidate might make the operation legal.
1866         (Try_Class_Wide_Operation): Check whether the first parameter is an
1867         access type whose designated type is class-wide.
1868
1869 2006-10-31  Robert Dewar  <dewar@adacore.com>
1870             Ed Schonberg  <schonberg@adacore.com>
1871             Gary Dismukes  <dismukes@adacore.com>
1872
1873         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
1874         warn on infinite loops.
1875         Add \\ to some continuation messages
1876         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
1877         (Process_Bounds): If the bounds are integer literals that result from
1878         constant-folding, and they carry a user-defined type, preserve that type
1879         rather than treating this as an integer range.
1880         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
1881         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
1882         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
1883         left hand side of assignment.
1884         (Analyze_Assignment): Add suport to manage assigments to the attribute
1885         priority of a protected object.
1886         (Check_Possible_Current_Value_Condition): Allow fully qualified names
1887         not just identifiers.
1888         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
1889         or AND THEN for possible tracking.
1890         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
1891         case of while loops so we can track values in the loop body.
1892
1893 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1894             Hristian Kirtchev  <kirtchev@adacore.com>
1895             Bob Duff  <duff@adacore.com>
1896         
1897         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
1898         procedure cannot be a protected operation (it is a basic_declaration,
1899         not a subprogram_declaration).
1900         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
1901         Subp. Add logic for entry processing.
1902         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
1903         Determine whether an entry or subprogram of a protected or task type
1904         override an inherited primitive of an implemented interface.
1905         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
1906         Update the actual used in calls to Check_Overriding_Indicator.
1907         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
1908         generate the proper reference to the parent unit, for cross-reference.
1909         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
1910         Is_Formal.
1911         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1912         (Add_Extra_Formal): Revise procedure to allow passing in associated
1913         entity, scope, and name suffix, and handle setting of the new
1914         Extra_Formals field.
1915         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
1916         pass new parameters. Add support for adding the new extra access formal
1917         for functions whose calls are treated as build-in-place.
1918         (Analyze_A_Return_Statement): Correct casing in error message.
1919         Move Pop_Scope to after Analyze_Function_Return, because an extended
1920         return statement really is a full-fledged scope. Otherwise, visibility
1921         doesn't work right. Correct use of "\" for continuation messages.
1922         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
1923         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
1924         the node doesn't get properly marked as analyzed.
1925         (Analyze_Subprogram_Body): If subprogram is a function that returns
1926         an anonymous access type that denotes a task, build a Master Entity
1927         for it.
1928         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
1929         proper usage of null exclusion in a result definition.
1930         (Process_Formals): Code cleanup and new error message.
1931         (Process_Formals): Detect incorrect application of null exclusion to
1932         non-access types.
1933         (Conforming_Types): Handle conformance between [sub]types and itypes
1934          generated for entities that have null exclusions applied to them.
1935         (Maybe_Primitive_Operation): Add an additional type retrieval when the
1936          base type is an access subtype. This case arrises with null exclusions.
1937         (New_Overloaded_Entity): Do not remove the overriden entity from the
1938         homonym chain if it corresponds with an abstract interface primitive.
1939         (Process_Formals): Replace membership test agains Incomplete_Kind with a
1940         call to the synthesized predicate Is_Incomplete_Type.
1941         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
1942         primitives.
1943         (Analyze_Subprogram_Declaration): Check that abstract interface
1944         primitives are abstract or null.
1945         (Analyze_Subprogram_Specification): Remove previous check for abstract
1946         interfaces because it was not complete.
1947         (Has_Interface_Formals): Removed.
1948
1949 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1950             Javier Miranda  <miranda@adacore.com>
1951
1952         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
1953         of Analyze_Package_Body, to create Itype references for anonymous
1954         access types created in the package declaration, whose designated types
1955         may have only a limited view.
1956         (Analyze_Package_Specification): For the private part of a nested
1957         package, install private_with_clauses of enclosing compilation unit if
1958         we are in its visible part.
1959         (Declare_Inherited_Private_Subprograms): Complete barrier
1960         to ensure that the primitive operation has an alias to some parent
1961         primitive. This is now required because, after the changes done for the
1962         implementation of abstract interfaces, the contents of the list of
1963         primitives has entities whose alias attribute references entities of
1964         such list of primitives.
1965         (Analyze_Package_Specification): Simplify code that handles parent units
1966         of instances and formal packages.
1967         (Uninstall_Declarations): Check the convention consistency among
1968         primitive overriding operations of a tagged record type.
1969
1970 2006-10-31  Robert Dewar  <dewar@adacore.com>
1971             Hristian Kirtchev  <kirtchev@adacore.com>
1972             Javier Miranda  <miranda@adacore.com>
1973             Ed Schonberg  <schonberg@adacore.com>
1974         
1975         * sem_ch8.adb: Minor error msg rewording
1976         (Undefined): When checking for misspellings, invert arguments (to get
1977         expected and found set right)
1978         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
1979         (Analyze_Generic_Renaming): Same fix
1980         (Use_One_Package): Do not take into account the internal entities of
1981         abstract interfaces during the analysis of entities that are marked
1982         as potentially use-visible.
1983         (Find_Type): Handle the case of an attribute reference for
1984         implementation defined attribute Stub_Type (simply let the analysis of
1985         the attribute reference rewrite it).
1986         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
1987         type that appears in a Use_Type clause.
1988         (Analyze_Object_Renaming): Add support for renaming of the Priority
1989         attribute.
1990         (Find_Type): In Ada 2005, a task type can be used within its own body,
1991         when it appears in an access definition.
1992         (Analyze_Object_Renaming): Remove warning on null_exclusion.
1993         (Analyze_Object_Renaming): Introduce checks for required null exclusion
1994          in a formal object declaration or in a subtype declaration.
1995         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
1996         (Check_Null_Exclusion): New local routine to
1997         Analyze_Subprogram_Renaming. Check whether the formals and return
1998         profile of a renamed subprogram have required null exclusions when
1999         their counterparts of the renaming already impose them.
2000         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
2001         Determine whether an entity is inside a generic scope.
2002         (In_Open_Scope): First pass of documentation update.
2003         (Find_Expanded_Name): Add support for shadow entities associated with
2004         limited withed packages. This is required to handle nested packages.
2005         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
2006         that makes a renaming of a limited withed package illegal.
2007
2008 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2009             Ed Schonberg  <schonberg@adacore.com>
2010
2011         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
2012         Check_Overriding_Indicator.
2013         (Analyze_Task_Definition): Ditto.
2014         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
2015         (Check_Overriding_Indicator): To find overridden interface operation,
2016         examine only homonyms that have an explicit subprogram declaration, not
2017         inherited operations created by an unrelated type derivation.
2018         (Check_Overriding_Indicator): When checking for the presence of "null"
2019         in a procedure, ensure that the queried node is a procedure
2020         specification.
2021         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
2022         type when the formal is an access to variable.
2023         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
2024         (Analyze_Task_Type): Same addition
2025         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
2026         provide navigation capabilities for entries.
2027
2028 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2029             Ed Schonberg  <schonberg@adacore.com>
2030             Javier Miranda  <miranda@adacore.com>
2031             Gary Dismukes  <dismukes@adacore.com>
2032
2033         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
2034         inherited from an interface ancestor by another interface in the
2035         context of an instance as 'late'.
2036         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
2037         of a call to a function that dispatches on access result.
2038         (Check_Dispatching_Operation): In case of late overriding of a primitive
2039         that covers abstract interface subprograms we register it in all the
2040         secondary dispatch tables associated with abstract interfaces.
2041         (Check_Dispatching_Call): Add check that a dispatching call is not made
2042         to a function with a controlling result of a limited type. This is a
2043         current implementation restriction.
2044         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
2045         (Check_Dispatching_Operation): Do no emit a warning if the controlling
2046         argument is an interface type that is a generic formal.
2047         (Is_Interface_Subprogram): Removed.
2048         (Check_Dispatching_Operation): If the subprogram is not a dispatching
2049         operation, check the formals to handle the case in which it is
2050         associated with an abstract interface type.
2051
2052 2006-10-31  Robert Dewar  <dewar@adacore.com>
2053             Ed Schonberg  <schonberg@adacore.com>
2054
2055         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
2056         Add new calls to this procedure during traversal
2057         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
2058         another unit if expansion is disabled.
2059
2060 2006-10-31  Robert Dewar  <dewar@adacore.com>
2061
2062         * sem_eval.adb (Compile_Time_Compare): Make use of information from
2063         Current_Value in the conditional case, to evaluate additional
2064         comparisons at compile time.
2065
2066 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2067             Hristian Kirtchev  <kirtchev@adacore.com>
2068             Javier Miranda  <miranda@adacore.com>
2069
2070         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
2071         subprogram type to provide better diagnostics in case of ambiguity.
2072         (Covers): Handle coverage of formal and actual anonymous access types in
2073         the context of generic instantiation.
2074         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
2075         abstract interface types; this is required to handle concurrent types
2076         with discriminants and abstract interface types.
2077         (Covers): Include type coverage of both regular incomplete subtypes and
2078         incomplete subtypes of incomplete type visibles through a limited with
2079         clause.
2080
2081 2006-10-31  Robert Dewar  <dewar@adacore.com>
2082             Hristian Kirtchev  <kirtchev@adacore.com>
2083             Ed Schonberg  <schonberg@adacore.com>
2084         
2085         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
2086         messages for entities in packages which are not used.
2087         (Collect_Synchronized_Interfaces): New procedure.
2088         (Overrides_Synchronized_Primitive): New function.
2089         (Denotes_Discriminant): Extend predicate to apply to task types.
2090         Add missing continuation marks in error msgs
2091         (Unqualify): New function for removing zero or more levels of
2092         qualification from an expression. There are numerous places where this
2093         ought to be used, but we currently only deal properly with zero or one
2094         level.
2095         (In_Instance); The analysis of the actuals in the instantiation of a
2096         child unit is not within an instantiation, even though the parent
2097         instance is on the scope stack.
2098         (Safe_To_Capture_Value): Exclude the case of variables that are
2099         renamings.
2100         (Check_Obsolescent): Removed
2101         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
2102         is an aliased view, even when rewritten as a reference to the target
2103         object in an assignment.
2104         (Get_Subprogram_Entity): New function
2105         (Known_To_Be_Assigned): New function
2106         (Type_Access_Level): Compute properly the access level of a return
2107         subtype that is an anonymous access type.
2108         (Explain_Limited_Type): Correct use of "\" for continuation messages.
2109         (Is_Transfer): The new extended_return_statement causes a transfer of
2110         control.
2111         (Has_Preelaborable_Initialization): New function
2112         (Has_Null_Exclusion): New function. Given a node N, determine whether it
2113         has a null exclusion depending on its Nkind.
2114         Change Is_Lvalue to May_Be_Lvalue
2115         (May_Be_Lvalue): Extensive additional code to deal with subprogram
2116         arguments (IN parameters are not Lvalues, IN OUT parameters are).
2117         (Safe_To_Capture_Value): Extend functionality so it can be used for
2118         the current value condition case.
2119         (Has_Compatible_Alignment): New function
2120         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
2121         objects to handle the Ada 2005 case, where aliasedness no longer implies
2122         that the object is constrained. In particular, for dereferenced names,
2123         the designated object must be assumed to be unconstrained.
2124         (Kill_Current_Values): Properly deal with the case where we encounter
2125         a loop in the scope chain.
2126         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
2127         a value.
2128         (Compile_Time_Constraint_Error): Improve error message in error case
2129
2130         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
2131         associated with entities of abstract interface primitives.
2132         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
2133
2134 2006-10-31  Robert Dewar  <dewar@adacore.com>
2135
2136         * s-osinte-tru64.adb: 
2137         Mark Asm statements Volatile to prevent warnings (seems a
2138         reasonable change anyway)
2139         Fixes new warnings
2140
2141         * s-mastop-irix.adb: Add Volatile to Asm statements
2142         Suppresses warning, and seems appropriate in any case
2143
2144         * s-osinte-vms.adb: Add Volatile to Asm statement
2145
2146         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
2147
2148         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
2149         returned.
2150         Add call to Check_Code_Statement
2151
2152 2006-10-31  Robert Dewar  <dewar@adacore.com>
2153             Ed Schonberg  <schonberg@adacore.com>
2154             Bob Duff  <duff@adacore.com>
2155
2156         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
2157         Synchronized_Present): Add Formal_Derived_Type_Definition and
2158         Private_Extension_Declaration to the list of assertions.
2159         (Is_Entry_Barrier_Function): New flag
2160         (Has_Self_Reference): New flag on aggregates, to indicate that they
2161         contain a reference to the enclosing type, inserted through a default
2162         initialization.
2163         (Next_Rep_Item): Move from Node4 to Node5.
2164         (Entity): Add this field for N_Attribute_Definition_Clause.
2165         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
2166         (N_Return_Object_Declaration): Remove this node kind. We now use
2167         N_Object_Declaration instead.
2168         (Actual_Designated_Subtype): Move to a different place to make room in
2169         N_Extended_Return_Statement.
2170         (Procedure_To_Call): Move to a different place to make room in
2171         N_Extended_Return_Statement.
2172         (Return_Type): Removed this field to make room in return statements
2173         (both kinds).
2174         (Return_Statement_Entity): New field in return statements, in part to
2175         replace Return_Type, and in part to support the fact that return
2176         statements are now pushed on the scope stack during semantic analysis.
2177         (Return_Object_Declarations): New field to support extended return
2178         statements.
2179         (N_Extended_Return_Statement): New node for extended_return_statement
2180         nonterminal.
2181         (N_Return_Object_Declaration): New node for part of
2182         extended_return_statement nonterminal. Needed because all the necessary
2183         fields won't fit in N_Extended_Return_Statement.
2184         Generic_associations now carry the Box_Present flag, to indicate a
2185         default for an actual in a partially parametrized formal package.
2186
2187         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
2188         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
2189         and for the new predefined dispatching policies: EDF_Across_Priorities,
2190         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
2191         Introduce new name Stub_Type for implementation defined attribute.
2192         Add pragma Preelaborable_Initialization
2193         Add entry for Priority attribute.
2194         Add Pragma_Wide_Character_Encoding
2195         (Get_Convention_Name): Given a convention id, this function returns the
2196         corresponding name id from the names table.
2197
2198 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2199             Robert Dewar  <dewar@adacore.com>
2200             Bob Duff  <duff@adacore.com>
2201
2202         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
2203         print null exclusion twice in the case of an access definition,
2204         Implement new -gnatL switch
2205         Remove N_Return_Object_Declaration. We now use
2206         N_Object_Declaration instead. Implement the case for
2207         N_Extended_Return_Statement. Alphabetize the cases.
2208         Add cases for new nodes N_Extended_Return_Statement and
2209         N_Return_Object_Declaration. The code is not yet written.
2210         Update the output for N_Formal_Object_Declaration
2211         and N_Object_Renaming_Declaration.
2212         (Write_Itype): Account for the case of a modular integer subtype whose
2213         base type is private.
2214
2215 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2216
2217         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
2218         Remove elaboration code, now done in the binder.
2219
2220         * s-rident.ads: Make this unit Preelaborate.
2221         (No_Restrictions): New constant used to clean up code and follow
2222         preelaborate constraints.
2223
2224         * s-stalib.adb: 
2225         Add System.Restrictions dependence, referenced directly from the
2226         binder generated file.
2227
2228 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
2229
2230         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
2231         True when AAMP extended floating-point is in use (48-bit). Change type
2232         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
2233         the two byte array types on AFloat. Change type of IV_Ilf overlay
2234         variable from Byte8 to ByteLF. Add appropriate initializations of
2235         floating-point overlays for AAMP cases.
2236
2237 2006-10-31  Javier Miranda  <miranda@adacore.com>
2238
2239         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
2240         (Get_Ceiling): New subprogram that returns
2241         the ceiling priority of the protected object.
2242         (Set_Ceiling): New subprogram that sets the new ceiling priority of
2243         the protected object.
2244
2245         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
2246
2247         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
2248
2249 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2250
2251         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
2252         requeuing to the same protected object to give higher priority tasks
2253         the opportunity to execute.
2254
2255 2006-10-31  Robert Dewar  <dewar@adacore.com>
2256
2257         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
2258         add more precise check for the character sequence that follows '[' to
2259         avoid possible confusion in case if '[' is the last character of a
2260         string literals.
2261         (Scan_Wide): Always allow brackets encoding
2262
2263 2006-10-31  Olivier Hainque  <hainque@adacore.com>
2264
2265         * s-stchop.ads: make this unit preelaborate. This is desirable in
2266         general and made mandatory by the use of this unit by s-taprop which
2267         is itself preelaborate.
2268
2269         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
2270         Td_Events component.
2271
2272 2006-10-31  Vincent Celier  <celier@adacore.com>
2273
2274         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2275         in file names.
2276
2277 2006-10-31  Vincent Celier  <celier@adacore.com>
2278
2279         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2280
2281 2006-10-31  Vincent Celier  <celier@adacore.com>
2282
2283         * makegpr.adb (Check_Compilation_Needed): Take into account path names
2284         with spaces.
2285         (Check_Compilation_Needed): When checking a C or C++ source, do not
2286         resolve symbolic links.
2287         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
2288         When not in verbose mode and Ellipse is True, display "..." for the
2289         first argument with Display set to False.
2290         (Build_Global_Archive): Always set Display True for the first object
2291         file. Call Display_Command with Ellipse set to True.
2292
2293 2006-10-31  Matt Heaney  <heaney@adacore.com>
2294
2295         * a-crbtgo.ads: Commented each subprogram
2296
2297         * a-crbtgo.adb: Added reference to book from which algorithms were
2298         adapted.
2299
2300         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
2301         indicate which child.
2302         (Generic_Conditional_Insert): changed parameter name from "Success" to
2303         "Inserted".
2304         (Generic_Unconditional_Insert_With_Hint): improved algorithm
2305
2306         * a-coorse.adb (Replace_Element): changed parameter name in call to
2307         conditional insert operation.
2308
2309         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
2310
2311         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
2312         Generic_Iteration
2313
2314         * a-ciorse.adb (Replace_Element): changed parameter name in call to
2315         conditional insert operation.
2316
2317         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
2318         Generic_Iteration.
2319
2320         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
2321         instead of mode inout.
2322
2323         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
2324         draft
2325         (Generic_Read): preserve existing buckets array if possible
2326         (Generic_Write): don't send buckets array length anymore
2327
2328         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
2329         instead of mode inout.
2330
2331         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
2332         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2333
2334         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
2335         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2336         (Replace_Element): local operation is now an instantiation
2337
2338         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
2339         check current length.
2340         (Generic_Replace_Element): new operation
2341
2342 2006-10-31  Doug Rupp  <rupp@adacore.com>
2343
2344         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2345         Call TBK$SYMBOLIZE without omitting parameters.
2346
2347 2006-10-31  Vincent Celier  <celier@adacore.com>
2348
2349         * symbols-processing-vms-ia64.adb,
2350         symbols-processing-vms-alpha.adb (Process): Do not include symbols
2351         that come from generic instantiations in bodies.
2352
2353 2006-10-31  Pat Rogers  <rogers@adacore.com>
2354
2355         * a-rttiev.ads, a-rttiev.adb: 
2356         This is a significant redesign primarily for the sake of automatic
2357         timer task termination but also to fix a design flaw.
2358         Therefore we are now using an RTS lock, instead of a protected
2359         object, to provide mutual exclusion to the queue of pending events
2360         and the type Timing_Event is no longer a protected type.
2361
2362 2006-10-31  Robert Dewar  <dewar@adacore.com>
2363             Cyrille Comar  <comar@adacore.com>
2364             Ben Brosgol  <brosgol@adacore.com>
2365
2366         * debug.adb:  Update flags documentation
2367
2368         * gnat_ugn.texi: Add documentation for new -gnatwq switch
2369         Clean up documentation for several other warning switches
2370         Clarify how task stack size can be specified with various
2371         versions of Windows.
2372         Add note that -gnatVo includes ranges including loops
2373         Add documentation for -gnatL switch
2374         Add note on elaboration warning for initializing variables
2375         Add documentation for new -gnatwt warning switch
2376         Document new form of pragma Warnings (On|Off, string)
2377         Add comment on use of pragma Warnings to control warnings
2378         Add documentation for -gnatjnn switch
2379         Modify section on interfacing with C for VMS 64-bit.
2380         Add doc for -gnatVe/E
2381         Add documentation of new warning flags -gnatww/-gnatwW
2382         Add warnings about address clause overlays to list of warnings
2383         (Exception Handling Control): Document that the option --RTS must be
2384         used consistently for gcc and gnatbind.
2385         Clarify that inlining is not always possible
2386         Update documentation on pragma Unchecked_Union.
2387
2388         * gnat_rm.texi: 
2389         Add documentation for new extended version of pragma Obsolescent
2390         Add documentation for implementation defined attribute 'Stub_Type.
2391         Add note on use of Volatile in asm statements
2392         Add documentation on use of pragma Unreferenced in context clause
2393         Document new form of pragma Warnings (On|Off, pattern)
2394         Document pragma Wide_Character_Encoding
2395         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
2396         enforced if code generation is active.
2397         Add section on pragma Suppress to document GNAT specific check
2398         Alignment_Check
2399         Clarify difference between No_Dispatching_Calls & No_Dispatch.
2400         Add documentation for pragma Restrictions (No_Elaboration_Code)
2401
2402         * gnat-style.texi: 
2403         Add comments on layout of subprogram local variables in the
2404         presence of nested subprograms.
2405
2406         * ug_words: Resync.
2407
2408         * elists.ads: Minor reformatting
2409         Node returns Node_Or_Entity_Id (doc change only)
2410
2411         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
2412
2413         * g-arrspl.ads (Create): Update comments.
2414
2415         * sem.ads: Add details on the handling of the scope stack.
2416
2417         * usage.adb: Update documentation.
2418
2419         * validsw.ads, validsw.adb: 
2420         Add definition of Validity_Check_Components and implement -gnatVe/E
2421
2422         * vms_data.ads: Add missing VMS qualifiers.
2423
2424         * s-addope.ads: Add documentation on overflow and divide by zero
2425
2426 2006-10-31  Robert Dewar  <dewar@adacore.com>
2427             Thomas Quinot  <quinot@adacore.com>
2428             Arnaud Charlet  <charlet@adacore.com>
2429
2430         * fmap.adb: Put routines in alpha order
2431
2432         * g-boumai.ads: Remove redundant 'in' keywords
2433
2434         * g-cgi.adb: Minor reformatting
2435
2436         * g-cgi.ads: Remove redundant 'in' keywords
2437
2438         * get_targ.adb: Put routines in alpha order
2439
2440         * prj-attr.ads: Minor reformatting
2441
2442         * s-atacco.ads: Minor reformatting
2443
2444         * scn.adb: Put routines in alpha order
2445
2446         * sinput-l.adb: Minor comment fix
2447
2448         * sinput-p.adb: Minor comment fix
2449
2450         * s-maccod.ads: Minor reformatting
2451
2452         * s-memory.adb: Minor reformatting
2453
2454         * s-htable.adb: Fix typo in comment.
2455
2456         * s-secsta.adb: Minor comment update.
2457
2458         * s-soflin.adb: Minor reformatting
2459
2460         * s-stoele.ads: 
2461         Add comment about odd qualification in Storage_Offset declaration
2462
2463         * s-strxdr.adb: 
2464         Remove unnecessary 'in' keywords for formal parameters.
2465
2466         * treeprs.adt: Minor reformatting
2467
2468         * urealp.adb: Put routines in alpha order
2469
2470         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
2471         taking string.
2472
2473         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2474
2475         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
2476
2477         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
2478         workaround as on other platforms.
2479
2480         * g-eacodu-vms.adb: Remove redundant 'in' keywords
2481         * g-expect-vms.adb: Remove redundant 'in' keywords
2482
2483         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
2484         clear error message if the list-of-files file cannot be opened.
2485
2486         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
2487         equality operator is always visible.
2488
2489         * lang.opt: Woverlength-strings: New option.
2490
2491         * nmake.adt: 
2492         Update copyright, since nmake.ads and nmake.adb have changed.
2493
2494         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
2495         (Binder_Output_Time_Stamps_Set): removed.
2496         (Old_Binder_Output_Time_Stamp): idem.
2497         (New_Binder_Output_Time_Stamp): idem.
2498         (Recording_Time_From_Last_Bind): idem.
2499         (Recording_Time_From_Last_Bind): Make constant.
2500
2501         * output.ads, output.adb (Write_Str): Allow LF characters
2502         (Write_Spaces): New procedure
2503
2504         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
2505
2506         * inline.adb: Minor reformatting
2507
2508         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2509
2510         * s-mastop-vms.adb: Remove redundant 'in' keywords
2511
2512         * s-osprim-vms.adb: Remove redundant 'in' keywords
2513
2514         * s-trafor-default.adb: Remove redundant 'in' keywords
2515
2516         * 9drpc.adb: Remove redundant 'in' keywords
2517
2518         * s-osinte-mingw.ads: Minor reformatting
2519
2520         * s-inmaop-posix.adb: Minor reformatting
2521
2522         * a-direio.ads: Remove quotes from Compile_Time_Warning message
2523
2524         * a-exexda.adb: Minor code reorganization
2525
2526         * a-filico.adb: Minor reformatting
2527
2528         * a-finali.adb: Minor reformatting
2529
2530         * a-nudira.ads: Remove quote from Compile_Time_Warning message
2531
2532         * a-numeri.ads: Minor reformatting
2533
2534         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
2535
2536         * exp_pakd.ads: Fix obsolete comment
2537
2538         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
2539         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
2540         Probably not a bug, but certainly neater and more efficient.
2541
2542         * a-tienio.adb: Minor reformatting
2543
2544         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
2545         Avoid assuming low bound of string is 1.
2546
2547         * gnatbind.adb: Change Bindusg to package and rename procedure as
2548         Display, which now ensures that it only outputs usage information once.
2549         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
2550
2551         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
2552         Table'First.
2553
2554         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
2555         warning.
2556         (Match): Add pragma Assert to ensure that Matches'First is zero
2557
2558         * g-regpat.ads (Match): Document that Matches lower bound must be zero
2559
2560         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
2561         documented preconditions (also kills warnings about bad indexes).
2562
2563         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
2564         is 1.
2565         (Build_Import_Library): Ditto;
2566
2567         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
2568
2569         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
2570
2571         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
2572         lower bound of choice table is 1.
2573
2574         * sem_case.ads (Analyze_Choices): Document that lower bound of
2575         Choice_Table is 1.
2576
2577         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
2578         string is 1.
2579
2580         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
2581         and add appropriate Assert pragma to suppress warnings.
2582
2583         * atree.h, atree.ads, atree.adb
2584         Change Elist24 to Elist25
2585         Add definitions of Field28 and Node28
2586         (Traverse_Field): Use new syntactic parent table in sinfo.
2587
2588         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2589
2590         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2591
2592         * exp_tss.adb: Put routines in alpha order
2593
2594         * fe.h: Remove redundant declarations.
2595
2596 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
2597         * utils.c (builtin_function): Rename to gnat_builtin_function.
2598         Move common code to add_builtin_function.
2599         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2600         gnat_builtin_function.
2601         * gigi.h (builtin_function): Rename to gnat_builtin_function.
2602         Change the signature.
2603
2604 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2605
2606         * Makefile.in: Add TEXI2PDF definition.
2607         * Make-lang.in: Add "ada.pdf" target.
2608
2609 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2610
2611         * decl.c, utils.c: Fix comment typos.
2612         * utils.c: Fix a typo.
2613
2614 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2615
2616         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
2617         on "pure" Ada subprograms if SJLJ exceptions are used.
2618         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
2619         on the declaration node of JMPBUF_SAVE.
2620         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
2621         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
2622         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
2623
2624 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
2625
2626         PR ada/28716
2627         g-socket.adb (Bind_Socket): Call Set_Address.
2628
2629 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2630
2631         PR ada/15802
2632         * decl.c (same_discriminant_p): New static function.
2633         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
2634         subtype and we have discriminants, fix up the COMPONENT_REFs
2635         for the discriminants to make them reference the corresponding
2636         fields of the parent subtype after it has been built.
2637
2638 2006-09-15  Roger Sayle  <roger@eyesopen.com>
2639
2640         PR ada/18817
2641         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
2642         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
2643
2644 2006-09-13  Olivier Hainque  <hainque@adacore.com>
2645
2646         PR ada/29025
2647         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
2648         of a SAVE_EXPR, just make the operand addressable/not-readonly and
2649         let the common gimplifier code make and propagate a temporary copy.
2650         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
2651         out/in-out actuals and defer setting the addressable/readonly bits
2652         to the gimplifier.
2653
2654 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2655
2656         PR ada/28591
2657         * decl.c (components_to_record): Defer emitting debug info for the
2658         record type associated with the variant until after we are sure to
2659         actually use it.
2660
2661 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2662
2663         PR ada/21952
2664         * gigi.h (gnat_internal_attribute_table): Declare.
2665         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
2666         * utils.c (gnat_internal_attribute_table): New global variable.
2667         (builtin_function): Always call decl_attributes on the builtin.
2668         (handle_const_attribute): New static function.
2669         (handle_nothrow_attribute): Likewise.
2670
2671 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2672
2673         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2674
2675 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2676
2677         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
2678         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
2679
2680 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
2681             Eric Botcazou  <ebotcazou@adacore.com>
2682
2683         PR ada/18692
2684         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2685         check-gnat into check-acats.
2686
2687 2006-06-17  Karl Berry  <karl@gnu.org>
2688
2689         * gnat-style.texi (@dircategory): Use "Software development"
2690         instead of "Programming", following the Free Software Directory.
2691
2692 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2693
2694         PR ada/27944
2695         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2696
2697 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
2698
2699         PR ada/27769
2700         mlib-utl.adb: Use Program_Name.
2701         
2702 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2703
2704         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
2705         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
2706         trans.c, utils.c: Fix comment typos.  Follow spelling
2707         conventions.
2708         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
2709         conventions.
2710
2711 2006-05-19  Nicolas Setton  <setton@adacore.com>
2712
2713         * misc.c (gnat_dwarf_name): New function.
2714         (LANG_HOOKS_DWARF_NAME): Define to it.
2715
2716 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2717
2718         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
2719         (ada/misc.o): Likewise.
2720         (ada/utils.o): Likewise.
2721
2722 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
2723
2724         * Makefile.in: Add Ada support for GNU/kFreeBSD.
2725         * s-osinte-kfreebsd-gnu.ads: New file.
2726
2727 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2728
2729         * Make-lang.in: Rename docdir to gcc_docdir.
2730
2731 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2732
2733         * gigi.h (get_ada_base_type): Delete.
2734         * utils2.c (get_ada_base_type): Likewise.
2735         * trans.c (convert_with_check): Operate in the real base type.
2736
2737 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2738
2739         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2740
2741 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2742
2743         * utils.c (create_var_decl): Use have_global_bss_p when deciding
2744         whether to make the decl common.
2745
2746 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2747
2748         * Make-lang.in (Ada): Remove
2749         (.PHONY): Remove Ada
2750
2751 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2752
2753         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
2754         aggregate, check the interpretations of the other operand to find one
2755         that may be a boolean array.
2756
2757         (Analyze_Selected_Component): Fix flow-of-control typo in case where
2758         the prefix is a private extension.
2759
2760 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
2761
2762         PR ada/26315
2763
2764         * utils2.c (find_common_type): If both input types are BLKmode and
2765         have the same constant size, keep using the first one.
2766
2767         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
2768
2769         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
2770
2771         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
2772
2773 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
2774
2775         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
2776         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2777         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
2778         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
2779         Abort_Defer/Undefer pairs to avoid the possibility of a task being
2780         aborted while owning a lock.
2781
2782 2006-02-17  Javier Miranda  <miranda@adacore.com>
2783             Robert Dewar  <dewar@adacore.com>
2784
2785         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
2786         through an access to class-wide interface we force the displacement of
2787         the pointer to the allocated object to reference the corresponding
2788         secondary dispatch table.
2789         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
2790         if Long_Shifts are supported on the target, even if 64 bit divides
2791         are not supported (configurable run time mode).
2792         (Expand_N_Type_Conversion): Do validity check if validity checks on
2793         operands are enabled.
2794         (Expand_N_Qualified_Expression): Do validity check if validity checks
2795         on operands are enabled.
2796
2797 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2798
2799         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
2800         must be materialized when the renamed expression is an explicit
2801         dereference.
2802
2803 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2804
2805         * freeze.adb (Statically_Discriminated_Components): Return false if
2806         the bounds of the type of the discriminant are not static expressions.
2807
2808         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
2809         the bounds of the discriminant type are not static.
2810
2811 2006-02-17  Robert Dewar  <dewar@adacore.com>
2812
2813         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
2814         then we close To if it is valid.
2815
2816 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2817
2818         * init.c (facility_resignal_table): new array
2819         (__gnat_default_resignal_p): enhance default predicate to resignal if
2820         VMS condition has one of the predefined facility codes.
2821
2822 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2823
2824         * Makefile.in: Use VMS64 specialized versions of several units in
2825         Interfaces.C hierarchy to be compatible with HP C default size choices.
2826         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
2827
2828 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2829
2830         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
2831         instantiation, the corresponding entity is the related_instance of the
2832         wrapper package created for the instance.
2833
2834 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2835
2836         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
2837         the current instance is nested within another instance in a child unit.
2838
2839 2006-02-17  Javier Miranda  <miranda@adacore.com>
2840             Ed Schonberg  <schonberg@adacore.com>
2841
2842         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
2843         type we cannot inherit the primitive operations; we inherit the
2844         Corresponding_Record_Type (which has the list of primitive operations).
2845         (Check_Anonymous_Access_Types): When creating anonymous access types for
2846         access components, use Rewrite in order to preserve the tree structure,
2847         for ASIS use.
2848         (Analyze_Object_Declaration): For limited types with access
2849         discriminants with defaults initialized by an aggregate, obtain
2850         subtype from aggregate as for other mutable types.
2851         (Derived_Type_Declaration): If the derived type is a limited interface,
2852         set the corresponding flag (Is_Limited_Record is not sufficient).
2853
2854 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2855
2856         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
2857         to inline a function that returns an unconstrained type, the return
2858         expression must be the first variable declared in the body of the
2859         function.
2860
2861 2006-02-17  Javier Miranda  <miranda@adacore.com>
2862
2863         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
2864         abstract interface type, the static analysis is not enough to know if
2865         the interface is implemented or not by the source tagged type. Hence
2866         we must pass the work to the expander to generate the required code to
2867         evaluate the conversion at run-time.
2868         (Resolve_Equality_Op): Do not apply previous
2869         transformation if expansion is disasbled, to prevent anomalies when
2870         locating global references in a generic unit.
2871
2872 2006-02-17  Vincent Celier  <celier@adacore.com>
2873
2874         * snames.ads, snames.adb: New standard names for new project attributes:
2875         archive_builder, archive_indexer, compiler_pic_option,
2876         config_body_file_name, config_body_file_name_pattern,
2877         config_file_switches, config_file_unique, config_spec_file_name,
2878         config_spec_file_name_pattern, default_builder_switches,
2879         default_global_compiler_switches, default_language,
2880         dependency_file_kind, global_compiler_switches, include_path,
2881         include_path_file, language_kind, linker_executable_option,
2882         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
2883         roots, runtime_project.
2884
2885 2006-02-17  Matthew Heaney  <heaney@adacore.com>
2886
2887         * a-convec.ads, a-convec.adb: 
2888         (operator "&"): handle potential overflow for large index types
2889         (Insert): removed Contraint_Error when using large index types
2890         (Insert_Space): removed Constraint_Error for large index types
2891         (Length): moved constraint check from Length to Insert
2892
2893         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
2894         as not null access.
2895         Explicit raise statements now include an exception message.
2896         (operator "&"): handle potential overflow for large index types
2897         (Insert): removed Contraint_Error when using large index types
2898         (Insert_Space): removed Constraint_Error for large index types
2899         (Length): moved constraint check from Length to Insert
2900
2901 2006-02-17  Robert Dewar  <dewar@adacore.com>
2902
2903         * s-wchcnv.adb: Document handling of [ on output (we do not change
2904         this to ["5B"] and the new comments say why not.
2905
2906         * gnat_ugn.texi: 
2907         Add note for -gnatVo that this now includes the cases of type
2908         conversions and qualified expressions.
2909         Add comments on handling of brackets encoding for Text_IO
2910
2911 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
2912             Thomas Quinot  <quinot@adacore.com>
2913             Robert Dewar  <dewar@adacore.com>
2914             Javier Miranda  <miranda@adacore.com>
2915
2916         * expander.adb: Fix typo in comment
2917
2918         * exp_pakd.adb: Fix typo
2919         Minor comment reformatting.
2920
2921         * g-dyntab.adb: Minor reformatting
2922
2923         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
2924         aliased subprograms to look for the abstract interface subprogram.
2925
2926 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2927
2928         * env.c (__gnat_setenv): Use size_t.
2929         (__gnat_unsetenv): Likewise.
2930         (__gnat_clearenv): Likewise.
2931
2932 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
2933
2934         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2935
2936 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
2937
2938         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
2939         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
2940         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
2941         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
2942         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
2943         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
2944         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
2945         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
2946         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
2947         no longer used.
2948
2949 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
2950
2951         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
2952         protection against race conditions is not needed.
2953         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
2954         fallback handler.
2955         (Set_Specific_Handler): Add mutual exclusive access to the specific
2956         handler.
2957         (Specific_Handler): Add mutual exclusive access for retrieving the
2958         specific handler.
2959
2960         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
2961         back handler.
2962
2963         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
2964         Fall_Back_Handler and Specific_Handler.
2965
2966         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
2967         termination handlers.
2968         Set two different owerflow depending on the maximal stack size.
2969
2970         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
2971         protection against race conditions is not needed when executing the
2972         task termination handler.
2973
2974 2006-02-13  Robert Dewar  <dewar@adacore.com>
2975
2976         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
2977         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
2978         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
2979         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
2980         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
2981         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
2982         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
2983         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
2984         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
2985         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
2986         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
2987         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
2988         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
2989         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
2990         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
2991         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
2992         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
2993         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
2994         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
2995         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
2996         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
2997         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
2998         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
2999         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
3000         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
3001         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
3002         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
3003         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
3004         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
3005         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
3006         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
3007         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
3008         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
3009         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
3010         reformatting.
3011
3012 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3013
3014         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
3015         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
3016         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
3017         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
3018         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
3019         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
3020         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
3021         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
3022         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
3023
3024 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3025
3026         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
3027         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
3028         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
3029         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
3030         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
3031         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
3032         replaced by anonymous access type.
3033         (pthread_sigmask): Now take an access sigset_t
3034
3035         * s-osinte-hpux.ads:  Ditto.
3036         (pthread_mutex_t, pthread_cond_t): Update definitions to support
3037         properly 32 and 64 bit ABIs.
3038
3039 2006-02-13  Pascal Obry  <obry@adacore.com>
3040
3041         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
3042         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
3043         s-taprop-linux.adb, s-taprop-solaris.adb,
3044         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
3045         adjustement is already done when calling this routine.
3046
3047 2006-02-13  Pascal Obry  <obry@adacore.com>
3048
3049         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
3050         table to take advantage of the 16 priority levels available on Windows
3051         2000 and XP. On NT4 there are only 7 priority levels, this is properly
3052         supported by this new mapping.
3053
3054 2006-02-13  Nicolas Setton  <setton@adacore.com>
3055
3056         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
3057         (get_encoding): New subprogram. Extracts the encodings from an encoded
3058         Ada name.
3059
3060 2006-02-13  Pascal Obry  <obry@adacore.com>
3061             Nicolas Roche  <roche@adacore.com>
3062             Arnaud Charlet  <charlet@adacore.com>
3063
3064         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
3065         support.
3066         (__gnat_try_lock): Add unicode support by using a specific section on
3067         Windows.
3068         (__gnat_get_current_dir): Idem.
3069         (__gnat_open_read): Idem.
3070         (__gnat_open_rw): Idem.
3071         (__gnat_open_create): Idem.
3072         (__gnat_create_output_file): Idem.
3073         (__gnat_open_append): Idem.
3074         (__gnat_open_new): Idem.
3075         (__gnat_file_time_name): Idem.
3076         (__gnat_set_file_time_name): Idem.
3077         (__gnat_stat): Idem.
3078         (win32_no_block_spawn): Idem.
3079         (__gnat_locate_exec_on_path): Idem.
3080         (__gnat_opendir): New routine.
3081         (__gnat_closedir): Idem.
3082         (__gnat_readdir): Add new parameter length (pointer to int). Update
3083         implementation to use it and add specific Win32 code for Unicode
3084         support.
3085         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
3086         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
3087         (convert_addresses): Do not define this dummy routine on VMS.
3088
3089         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
3090         runtime Unicode support will be activated.
3091         (S2WS): String to Wide-String conversion. This version just copy a
3092         string in non Unicode version.
3093         (WS2S): Wide-String to String conversion. This version just copy a
3094         string in non Unicode version.
3095
3096         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
3097         (Open): Now import __gnat_opendir from adaint.c.
3098         (Read): Change the implementation to support unicode characters. It is
3099         not possible to use strlen() on Windows as this version supports only
3100         standard ASCII characters. So the length of the directory entry is now
3101         returned from the imported __gnat_readdir routine.
3102         Update copyright notice.
3103
3104         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
3105         (opendir): Moved to adaint.c.
3106
3107         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
3108         (Get_Directory): Fix wrong indexing.
3109         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
3110         __gnat_getenv from env.c
3111         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
3112         from env.c
3113
3114         * env.h, env.c: New file.
3115
3116         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
3117         adaint.c by __gnat_getenv from env.c
3118
3119         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
3120         adaint.c by __gnat_getenv from env.c
3121
3122         * Make-lang.in: Add env.o in the list of C object needed by gnat1
3123         and gnatbind.
3124         Update dependencies.
3125
3126 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3127             Olivier Hainque  <hainque@adacore.com>
3128             Eric Botcazou  <ebotcazou@adacore.com>
3129
3130         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
3131         
3132         * gigi.h (value_factor_p): Add prototype and description, now public.
3133
3134         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
3135         promotion for field with rep clause if the associated size was proven
3136         to be in error.
3137         Expand comments describing attempts to use a packable type.
3138         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
3139         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
3140         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
3141         necessary since these are not different types and pointers may
3142         actually designate any subtype in this hierarchy.
3143         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
3144         discriminants but put them into record only if not Unchecked_Union;
3145         pass flag to components_to_record showing Unchecked_Union.
3146         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
3147         components before variants; don't set TYPE_UNCHECKED_UNION_P.
3148         (components_to_record): New argument UNCHECKED_UNION.
3149         Remove special case code for Unchecked_Union and instead use main code
3150         with small changes.
3151
3152         PR ada/26096
3153         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
3154         aligning variable with the expression being built, only its inner
3155         field.
3156
3157         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
3158         emit_sequence_entry_statements.
3159         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
3160         (establish_gnat_vms_condition_handler): Move before
3161         Subprogram_Body_to_gnu.
3162         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
3163         for a subprogram if it has a foreign convention or is exported.
3164         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
3165         substituted for a CONST_DECL.
3166         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
3167         Etype to assoc_to_constructor.
3168         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
3169         discriminants of Unchecked_Union.
3170         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
3171         don't need cluttering preprocessor directives.
3172         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
3173         condition handler as current in the compiled function.
3174         (body_with_handlers_p): New function. Tell whether a given sequence of
3175         statements node is attached to a package or subprogram body and involves
3176         exception handlers possibly nested within inner block statements.
3177         (emit_sequence_entry_statements): New function, to emit special
3178         statements on entry of sequences when necessary. Establish GNAT
3179         condition handler in the proper cases for VMS.
3180         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
3181         emit_sequence_entry_statements.
3182
3183         * utils2.c (find_common_type): If both input types are BLKmode and
3184         have a constant size, use the smaller one.
3185         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
3186         the same.
3187
3188         * utils.c (value_factor_p): Make public, to allow uses from other gigi
3189         units.
3190         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
3191         (convert, case UNION_TYPE): Remove special treatment for unchecked
3192         unions.
3193
3194         PR ada/18659
3195         (update_pointer_to): Update variants of pointer types to
3196         unconstrained arrays by attaching the list of fields of the main
3197         variant.
3198
3199 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3200             Robert Dewar  <dewar@adacore.com>
3201
3202         * a-exexpr.adb, a-exexpr-gcc.adb
3203         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
3204         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
3205         Remove code unused for exception propagation for the compiler itself
3206         from a-except.adb and update to still share separate packages.
3207
3208         * a-except.ads, a-except.adb: Ditto.
3209         Add comments that this version is now used only by the compiler and
3210         other basic tools. The full version that includes the Ada 2005 stuff
3211         is in separate files a-except-2005.ads/adb. The reason is that we do
3212         not want to cause bootstrap problems with compilers not recognizing
3213         Wide_Wide_String.
3214         Add exception reason code PE_Implicit_Return
3215         Add new exception reason code (Null Exception_Id)
3216
3217         * a-except-2005.adb, a-except-2005.ads: New files.
3218
3219         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
3220
3221         * s-wchcon.adb: New file.
3222
3223         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
3224         (traceback.o deps): Likewise.
3225         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
3226         Activate build of GMEM instrumentation library on VMS targets.
3227         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
3228         Use a-except-2005.ads/adb for all run-time library builds unless
3229         specified otherwise.
3230         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
3231         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
3232         Use s-parame.adb on all native platforms.
3233         Use s-parame-vxworks.adb on all vxworks platforms.
3234         Add env.c env.h in LIBGNAT_SRCS
3235         Add env.o in LIBGNAT_OBJS
3236         (GNATMAKE_OBJS): Remove ctrl_c.o object.
3237         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
3238         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
3239         supports VxWorks 6 RTPs.
3240         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
3241         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
3242
3243         * types.h, types.ads (Terminate_Program): New exception
3244         Add comment on modifying multiple versions of a-except.adb when the
3245         table of exception reasons is modified.
3246         Add exception reason code PE_Implicit_Return
3247         Add new exception reason code (Null Exception_Id)
3248
3249         * clean.adb (Initialize): Get the target parameters before checking
3250         if target is OpenVMS. Move the OpenVMS specific code here from package
3251         body elaboration code.
3252
3253 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3254             Vincent Celier  <celier@adacore.com>
3255             Robert Dewar  <dewar@adacore.com>
3256
3257         * ali-util.adb (Get_File_Checksum): Update to account for change in
3258         profile of Initialize_Scanner.
3259
3260         * gprep.adb (Gnatprep): Update to account for change in profile of
3261         Initialize_Scanner.
3262         (Process_One_File): Same.
3263
3264         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
3265         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
3266         that behaviour using the new Unit information recorded in the source
3267         files table, rather than going through all units every time.
3268         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
3269         (Get_Source_Unit): Same.
3270
3271         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
3272         change in profile of Initialize_Scanner.
3273         (Prepare_To_Preprocess): Same.
3274
3275         * lib.ads: Fix typo in comment (templace -> template).
3276
3277         * prj-part.adb (Parse_Single_Project): Update to account for change in
3278         profile of Initialize_Scanner.
3279
3280         * scn.adb (Initialize_Scanner): Account for change in profile of
3281         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
3282         Also record the association of the given Source_File_Index to the
3283         corresponding Unit_Number_Type.
3284
3285         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
3286         procedure.
3287         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
3288         Remove Unit formal for generic scanner: this formal
3289         is only relevant to Scn (the scanner instance used to parse Ada source
3290         files), not to other instances. Update comment accordingly.
3291         (Scan): Use new function Snames.Is_Keyword_Name.
3292
3293         * sinfo-cn.adb: Fix typo in comment.
3294
3295         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
3296         Unit.
3297
3298         * sinput.ads (Source_File_Record): New component Unit, used to capture
3299         the unit identifier (if any) associated to a source file.
3300
3301         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
3302         Unit in Source_File_Record.
3303
3304         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
3305         in profile of Initialize_Scanner.
3306
3307         * scans.adb (Initialize_Ada_Keywords): New procedure
3308
3309         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
3310         Ada keywords in the Namet table, without the need to call
3311         Initialize_Scanner.
3312
3313         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
3314         (Is_Keyword_Name): New function
3315
3316         * snames.ads: Add subtype Configuration_Pragma_Names
3317         Add pragma Ada_2005 (synonym for Ada_05)
3318         (Is_Keyword_Name): New function
3319
3320         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
3321
3322 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3323
3324         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
3325         index.
3326
3327         * a-stwima.adb (To_Set): Add extra check when N = 0.
3328
3329         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
3330
3331 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3332
3333         * s-parame-mingw.adb, s-parame-linux.adb,
3334         s-parame-solaris.adb: Removed, replaced by s-parame.adb
3335
3336         * s-parame-vxworks.ads: Fix typo.
3337
3338         * s-parame-vxworks.adb: New file.
3339
3340         * s-parame.adb: Version now used by all native platforms.
3341         (Default_Stack_Size): Use 2 megs for default stack size and use
3342         __gl_default_stack_size when available.
3343         (Minimum_Stack_Size): Use 12K.
3344
3345         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
3346         (Create_Task): Refine implementation taking advantage of the XP stack
3347         size support. On XP, we now create the thread using the flag
3348         STACK_SIZE_PARAM_IS_A_RESERVATION.
3349
3350         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
3351
3352         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
3353         XP and 0 on older Windows versions.
3354
3355         * interfac-vms.ads: Removed, no longer used.
3356
3357 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3358
3359         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
3360         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
3361         a-cohase.adb: All explicit raise statements now include an exception
3362         message.
3363
3364         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
3365         (Update_Element_Preserving_Key): renamed op to just Update_Element.
3366         Explicit raise statements now include an exception message
3367
3368         * a-cihase.ads, a-cohase.ads: Removed comment.
3369
3370         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
3371         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
3372         a-szbzha.adb, a-szfzha.ads: New files.
3373
3374 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3375
3376         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
3377         quicksort.
3378
3379 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3380
3381         * lang.opt: Wvariadic-macros: New option.
3382         Wold-style-definition: Likewise.
3383         Wmissing-format-attribute: Likewise.
3384
3385         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
3386         -Wold-style-definition and -Wmissing-format-attribute.
3387
3388 2006-02-13  Robert Dewar  <dewar@adacore.com>
3389
3390         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
3391
3392         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
3393
3394 2006-02-13  Nicolas Roche  <roche@adacore.com>
3395
3396         * a-envvar.adb, a-envvar.ads: New files.
3397
3398 2006-02-13  Douglas Rupp  <rupp@adacore.com>
3399
3400         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
3401
3402         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
3403
3404 2006-02-13  Pat Rogers  <rogers@adacore.com>
3405
3406         * a-rttiev.adb, a-rttiev.ads: New files.
3407
3408 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3409
3410         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
3411         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
3412
3413         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
3414
3415 2006-02-13  Robert Dewar  <dewar@adacore.com>
3416
3417         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
3418         sem_case.adb: Minor code reorganization (not Present should be No)
3419
3420 2006-02-13  Geert Bosch  <bosch@adacore.com>
3421             Gary Dismukes  <dismukes@adacore.com>
3422
3423         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
3424         0, since the lower bound of the actual string may be greater than one.
3425
3426         PR ada/20753
3427
3428         (Put): Fix condition to raise Layout_Error when invalid
3429         layout is requested.
3430
3431 2006-02-13  Vincent Celier  <celier@adacore.com>
3432
3433         * back_end.adb (Scan_Compiler_Arguments): Check if
3434         Search_Directory_Present is True and, if it is, add the argument in
3435         the source search directory path.
3436
3437         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
3438         Search_Directory_Present to True.
3439
3440 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
3441
3442         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
3443         volatile, to tell the compiler to preserve this variable at any level
3444         of optimization.
3445         (Gen_Versions_Ada): Temporarily work around codegen bug.
3446
3447 2006-02-13  Vincent Celier  <celier@adacore.com>
3448
3449         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
3450         gcc to link with option -shared-libgcc.
3451         (Gnatlink): Remove duplicate switches -shared-libgcc
3452
3453 2006-02-13  Robert Dewar  <dewar@adacore.com>
3454
3455         * gnatvsn.ads (Current_Year): New constant, used to easily update
3456         copyright on all GNAT tools.
3457
3458         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
3459         copyright notice.
3460
3461 2006-02-13  Robert Dewar  <dewar@adacore.com>
3462
3463         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
3464         after hyphen (small aesthetic change useful for a range of numbers
3465         using ^-^.
3466         Suppress range checks for a couple of assignments which otherwise
3467         cause validity checks with validity checking turned on.
3468
3469         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
3470         Improvement in error message for object.
3471         (Rep_Item_Too_Late): Remove '!' in warning message.
3472
3473 2006-02-13  Robert Dewar  <dewar@adacore.com>
3474             Eric Botcazou  <ebotcazou@adacore.com>
3475
3476         * err_vars.ads: Suppress range checks for a couple of assignments
3477         which otherwise cause validity checks with validity checking turned on.
3478         Update comments.
3479
3480         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
3481         Make message unconditional if it is a warning.
3482         (Error_Msg_NEL): Always output warning messages.
3483         Suppress range checks for a couple of assignments which otherwise
3484         cause validity checks with validity checking turned on.
3485
3486         * errout.ads (Message Insertion Characters): Document that '!' is
3487         implied by '?' in error messages.
3488
3489         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
3490         (Gnat1drv): Use a goto to end of main subprogram instead of
3491         Exit_Program (E_Success) so that finalization can occur normally.
3492
3493 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3494
3495         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
3496         wrapped around.
3497
3498 2006-02-13  Vincent Celier  <celier@adacore.com>
3499
3500         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
3501         Unchecked_Conversion functions.
3502         (Modification_Time): Use direct conversion of OS_Time to Calendar time
3503         when OpenVMS returns False.
3504
3505         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
3506         a-dirval.adb (OpenVMS): New Boolean function
3507
3508 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3509             Thomas Quinot  <quinot@adacore.com>
3510
3511         * checks.adb (Build_Discriminant_Checks): If the expression being
3512         checks is an aggregate retrieve the values of its discriminants to
3513         generate the check, rather than creating a temporary and a reference
3514         to it.
3515         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
3516         (Install_Null_Excluding_Check): Ditto
3517         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
3518         not for the renamed object, so that the actual itype is attached in the
3519         proper context.
3520
3521 2006-02-13  Robert Dewar  <dewar@adacore.com>
3522             Vincent Celier  <celier@adacore.com>
3523
3524         * debug.adb: Eliminate numeric switches for binder/gnatmake
3525
3526         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
3527         switches for the compiler.
3528         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
3529         (Scan_Make_Switches): When failing with an illegal switch, output an
3530         error message with the full switch.
3531         Eliminate numeric switches for binder/gnatmake
3532
3533         * switch.ads, switch.adb (Bad_Switch): New procedure
3534
3535         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
3536         Remove 0-9 as debug flag character possibilities
3537         -d is now controlling the primary stack size when its value is a
3538         positive. Also add checks against invalid values, and support for kb,
3539         mb. Ditto for -D switch.
3540
3541 2006-02-13  Robert Dewar  <dewar@adacore.com>
3542             Serguei Rybin  <rybin@adacore.com>
3543
3544         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
3545         save/restore routines.
3546         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3547         were not always properly handled previously.
3548         Since we are changing the tree format anyway, also get rid of the
3549         junk obsolete Immediate_Errors flag.
3550         (Tree_Read): Change the way of reading Tree_Version_String - now we
3551         read the version string from the tree even if its length is not the
3552         same as the length of the version string computed from Gnatvsn.
3553         (Search_Directory_Present): New Boolean flag for the compiler.
3554         Define Tree_Version_String as a dynamic string.
3555         (Default_Stack_Size): new variable, used to handle switch -d.
3556
3557         * par-prag.adb: 
3558         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
3559         only for main unit.
3560         Add pragma Ada_2005 (synonym for Ada_05)
3561         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3562         were not always properly handled previously.
3563
3564         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
3565         explicit Ada_95 to Ada_2005.
3566
3567 2006-02-13  Javier Miranda  <miranda@adacore.com>
3568             Robert Dewar  <dewar@adacore.com>
3569             Ed Schonberg  <schonberg@adacore.com>
3570
3571         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
3572         against errors in the source program: a private types for which the
3573         corresponding full type declaration is missing and pragma CPP_Virtual
3574         is used.
3575         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
3576         (Is_Known_Null): New flag
3577         (Has_Pragma_Pure): New flag
3578         (No_Return): Present in all entities, set only for procedures
3579         (Is_Limited_Type): A type whose ancestor is an interface is limited if
3580         explicitly declared limited.
3581         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
3582         entities. Only used for component marked Is_Tag. If present it stores
3583         the Offset_To_Top function used to provide this value in tagged types
3584         whose ancestor has discriminants.
3585
3586         * exp_ch2.adb: Update status of new Is_Known_Null flag
3587
3588         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
3589
3590         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
3591         the categorization sense if Is_Pure was set by pragma Pure_Function.
3592
3593 2006-02-13  Quentin Ochem  <ochem@adacore.com>
3594             Olivier Hainque  <hainque@adacore.com>
3595
3596         * bindusg.adb: Updated documentation for -d and -D switches.
3597
3598         * raise.h (__gnat_set_globals): added new parameter for
3599         Default_Stack_Size.
3600
3601         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
3602         (__gnat_handle_vms_condition): Adjust context before raise.
3603         (__gnat_install_handler): Restore the global vector setup for GCC
3604         versions before 3.4, as the frame based circtuitry is not available
3605         in this case.
3606         (__gnat_set_globals): added a parameter default_stack_size
3607         (__gl_default_stack_size): new variable.
3608
3609 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3610
3611         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
3612         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
3613         does not exist in the Ada RM.
3614         (Compatible_Int_Bounds): Determine whether two integer range bounds
3615         are of equal length and have the same start and end values.
3616         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
3617         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
3618         aggregate when it is part of an object declaration.
3619         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
3620         constrains discriminants of its parent, add explicitly the discriminant
3621         constraints of the ancestor by retrieving them from the
3622         stored_constraint of the parent.
3623
3624 2006-02-13  Robert Dewar  <dewar@adacore.com>
3625
3626         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
3627         attribute Mechanism_Code is applied to renamed subprogram, modify
3628         prefix to point to base subprogram.
3629         Max/Min attributes now violate Restriction No_Implicit_Conditionals
3630
3631         * sinfo.ads: Document that Mechanism_Code cannot be applied to
3632         renamed subprograms so that the front-end must replace the prefix
3633         appropriately.
3634
3635 2006-02-13  Javier Miranda  <miranda@adacore.com>
3636             Gary Dismukes  <dismukes@adacore.com>
3637
3638         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
3639         availability of RE_Interface_Tag.
3640         (Build_Initialization_Call): Fix wrong access to the discriminant value.
3641         (Freeze_Record_Type): Do not generate the tables associated with
3642         timed and conditional dispatching calls through synchronized
3643         interfaces if compiling under No_Dispatching_Calls restriction.
3644         When compiling for Ada 2005, for a nonabstract
3645         type with a null extension, call Make_Controlling_Function_Wrappers
3646         and insert the wrapper function declarations and bodies (the latter
3647         being appended as freeze actions).
3648         (Predefined_Primitive_Bodies): Do not generate the bodies of the
3649         predefined primitives associated with timed and conditional
3650         dispatching calls through synchronized interfaces if we are
3651         compiling under No_Dispatching_Calls.
3652         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
3653         service is available before generating a call.
3654         (Make_Controlling_Function_Wrappers): New procedure.
3655         (Expand_N_Full_Type_Declaration): Create a class-wide master for
3656         access-to-limited-interfaces because they can be used to reference
3657         tasks that implement such limited interface.
3658         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
3659         procedure spec and body of the Offset_To_Top function that is generated
3660         when the parent of a type with discriminants has secondary dispatch
3661         tables.
3662         (Init_Secondary_Tags): Handle the case in which the parent of the type
3663         containing secondary dispatch tables has discriminants to generate the
3664         correct arguments to call Set_Offset_To_Top.
3665         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
3666
3667         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
3668         Add Wide_[Wide_]Expanded_Name.
3669         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
3670         the same functionality of Get_Prim_Op_Address but applied to predefined
3671         primitive operations because the pointers to the predefined primitives
3672         are now saved in a separate table.
3673         (Parent_Size): Modified to get access to the separate table of primitive
3674         operations or the parent type.
3675         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
3676         functionality of Set_Prim_Op_Address but applied to predefined primitive
3677         operations.
3678         (Set_Signature): New subprogram used to store the signature of a DT.
3679         (Displace): If the Offset_To_Top value is not static then call the
3680         function generated by the expander to get such value; otherwise use
3681         the value stored in the table of interfaces.
3682         (Offset_To_Top): The type of the actual has been changed to Address to
3683         give the correct support to tagged types with discriminants. In this
3684         case this value is stored just immediately after the tag field.
3685         (Set_Offset_To_Top): Two new formals have been added to indicate if the
3686         offset_to_top value is static and hence pass this value to the run-time
3687         to store it in the table of interfaces, or else if this value is dynamic
3688         and then pass to the run-time the address of a function that is
3689         generated by the expander to provide this value for each object of the
3690         type.
3691
3692         * rtsfind.ads (Default_Prin_Op_Count): Removed.
3693         (Default_Prim_Op_Count): New entity
3694         (Get_Predefined_Prim_Op_Address): New entity
3695         (Set_Predefined_Prim_Op_Address): New entity
3696         (RE_Set_Signature): New entity
3697
3698 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3699             Ed Schonberg  <schonberg@adacore.com>
3700
3701         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
3702         Make_Adjust_Call done for a newly-allocated object.
3703
3704         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
3705         in a subprogram are wrapped in a cleanup block, indicate that the
3706         subprogram contains an inner block with an exception handler.
3707         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
3708         Adjust call is for a newly-allocated object. In that case we must not
3709         assume that the finalization list chain pointers are correct (since they
3710         come from a bit-for-bit copy of the original object's pointers) so if
3711         the attach level would otherwise be zero (no change), we set it to 4
3712         instead to cause the pointers to be reset to null.
3713
3714         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
3715         reset chain pointers to null.
3716
3717 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3718
3719         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
3720         string, and the context requires a loop for the assignment (e.g.
3721         because the left-hand side is packed), generate a unique name for the
3722         temporary that holds the string, to prevent spurious name clashes.
3723
3724 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3725             Javier Miranda  <miranda@adacore.com>
3726             Robert Dewar  <dewar@adacore.com>
3727             Gary Dismukes  <dismukes@adacore.com>
3728
3729         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
3730         return unconstrained arrays.
3731         Update comments.
3732         (Expand_Call):  An indirect call through an access parameter of a
3733         protected operation is not a protected call.
3734         Add circuit to raise CE in Ada 2005 mode following call
3735         to Raise_Exception.
3736         (Register_DT_Entry): Do nothing if
3737         the run-time does not give support to abstract interfaces.
3738         (Freeze_Subprogram): In case of dispatching operations, do not generate
3739         code to register the operation in the dispatch table if the source
3740         is compiled with No_Dispatching_Calls.
3741         (Register_Predefined_DT_Entry): Generate code that calls the new
3742         run-time subprogram Set_Predefined_Prim_Op_Address instead of
3743         Set_Prim_Op_Address.
3744
3745         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
3746         on array assignments if the right-hand side is a function call that has
3747         been inlined. Check is performed on the assignment in the block.
3748         (Process_Bounds): If bounds and range are overloaded, apply preference
3749         rule for root operations to disambiguate, and diagnose true ambiguity.
3750         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
3751         a tag-indeterminate right-hand side even when Expander_Active is True.
3752         Needed to ensure that dispatching calls to T'Input are allowed and
3753         get the tag of the target class-wide object.
3754
3755         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
3756         an inherited primitive operation that already overrides several
3757         abstract interface primitives. For transitivity, the new entity must
3758         also override all the abstract interface primitives covered by the
3759         inherited overriden primitive.
3760         Emit warning if new entity differs from homograph in same scope only in
3761         that one has an access parameter and the other one has a parameter of
3762         a general access type with the same designated type, at the same
3763         position in the signature.
3764         (Make_Inequality_Operator): Use source locations of parameters and
3765         subtype marks from corresponding equality operator when creating the
3766         tree structure for the implicit declaration of "/=". This does not
3767         change anything in behaviour except that the decoration of the
3768         components of the subtree created for "/=" allows ASIS to get the
3769         string images of the corresponding identifiers.
3770         (Analyze_Return_Statement): Remove '!' in warning message.
3771         (Check_Statement_Sequence): Likewise.
3772         (Analyze_Subprogram_Body): For an access parameter whose designated type
3773         is an incomplete type imported through a limited_with clause, use the
3774         type of the corresponding formal in the body.
3775         (Check_Returns): Implicit return in No_Return procedure now raises
3776         Program_Error with a compile time warning, instead of beging illegal.
3777         (Has_Single_Return):  Function returning unconstrained type cannot be
3778         inlined if expression in unique return statement is not an identifier.
3779         (Build_Body_To_Inline): It is possible to inline a function call that
3780         returns an unconstrained type if all return statements in the function
3781         return the same local variable. Subsidiary procedure Has_Single_Return
3782         verifies that the body conforms to this restriction.
3783
3784         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
3785         same type, and  one of them is of an anonymous access type, convert
3786         the other operand to it, so that this is a valid binary operation for
3787         gigi.
3788         (Resolve_Type_Conversion): Handle subtypes of protected types and
3789         task types when accessing to the corresponding record type.
3790         (Resolve_Allocator): Add '\' in 2-line warning message.
3791         Remove '!' in warning message.
3792         (Resolve_Call): Add '\' in 2-line warning message.
3793         (Valid_Conversion): Likewise.
3794         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
3795         resulting type may be an access type with an implicit dereference.
3796         Obtain the proper component from the designated type.
3797         (Make_Call_Into_Operator): Handle properly a call to predefined equality
3798         given by an expanded name with prefix Standard, when the operands are
3799         of an anonymous access type.
3800         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
3801         Explicit_Dereference and Resolve_Selected_Component, to verify that the
3802         prefix of the expression is not of an incomplete type. Allows full
3803         diagnoses of all semantic errors.
3804         (Resolve_Actuals): If the actual is an allocator whose directly
3805         designated type is a class-wide interface we build an anonymous
3806         access type to use it as the type of the allocator. Later, when
3807         the subprogram call is expanded, if the interface has a secondary
3808         dispatch table the expander will add a type conversion to force
3809         the displacement of the pointer.
3810         (Resolve_Call): If a function that returns an unconstrained type is
3811         marked Inlined_Always and inlined, the call will be inlined and does
3812         not require the creation of a transient scope.
3813         (Check_Direct_Boolean_Op): Removed
3814         (Resolve_Comparison_Op): Remove call to above
3815         (Resolve_Equality_Op): Remove call to above
3816         (Resolve_Logical_Op): Inline above, since this is only call.
3817         (Valid_Conversion): Handle properly conversions between arrays of
3818         convertible anonymous access types.
3819
3820         PR ada/25885
3821
3822         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
3823         the literal in an unchecked conversion, because GCC 4.x needs a static
3824         value for a string bound.
3825
3826 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3827             Hristian Kirtchev  <kirtchev@adacore.com>
3828
3829         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
3830         components of the corresponding record, take into account component
3831         definitions that are access definitions.
3832         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
3833         procedure is not considered a dispatching call and will be expanded
3834         properly.
3835
3836 2006-02-13  Javier Miranda  <miranda@adacore.com>
3837
3838         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
3839         controlling argument of the dispatching call is an abstract interface
3840         class-wide type then we use it directly.
3841         Check No_Dispatching_Calls restriction.
3842         (Default_Prim_Op_Position): Remove the code that looks for the last
3843         entity in the list of aliased subprograms. This code was wrong in
3844         case of renamings.
3845         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
3846         when the source is compiled with the No_Dispatching_Calls restriction.
3847         (Init_Predefined_Interface_Primitives): No need to inherit primitives
3848         if we are compiling with restriction No_Dispatching_Calls.
3849         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
3850         subprograms if we are compiling under No_Dispatching_Calls restriction.
3851         (Make_DT): Generate a dispatch table with a single dummy entry if
3852         we are compiling with the No_Dispatching_Calls restriction. In
3853         addition, in this case we don't generate code that calls to the
3854         following run-time subprograms: Set_Type_Kind, Inherit_DT.
3855         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
3856         of this subprogram if compiling with the No_Dispatching_Calls
3857         restriction.
3858         (Expand_Type_Conversion): Instead of using the actual parameter,
3859         the argument passed as parameter to the conversion function was
3860         erroneously referenced by the expander.
3861         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
3862         Set_Predefined_Primitive_Op_Address and Set_Signature.
3863         (Expand_Dispatching_Call): Generate call to
3864         Get_Predefined_Prim_Op_Address for predefined primitives.
3865         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
3866         predefined primitives.
3867         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
3868         primitives we reserve one dummy entry to ensure that the tag does not
3869         point to some memory that is associated with some other object. In
3870         addition, remove all the old code that generated the assignments
3871         associated with the signature of the dispatch table and replace them
3872         by a call to the new subprogram Set_Signature.
3873         (Set_All_DT_Position): Change the algorithm because now we have a
3874         separate dispatch table associated with predefined primitive operations.
3875         (Expand_Interface_Conversion): In case of non-static offset_to_top
3876         add explicit dereference to get access to the object after the call
3877         to displace the pointer to the object.
3878         (Expand_Interface_Thunk): Modify the generation of the actual used
3879         in the calls to the run-time function Offset_To_Top to fulfil its
3880         new interface.
3881         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
3882
3883 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3884
3885         * exp_dist.adb (Copy_Specification): For access parameters, copy
3886         Null_Exclusion flag, which will have been set for stream subprograms
3887         in Ada2005 mode.
3888
3889 2006-02-13  Pascal Obry  <obry@adacore.com>
3890
3891         * expect.c (__gnat_expect_portable_execvp): New implementation. The
3892         previous implementation was using the C runtime spawnve routine but
3893         the corresponding wait was using directly the Win32 API. This was
3894         causing some times a lock when waiting for an event using
3895         WaitForSingleObject in __gnat_waitpid. This new implementation uses
3896         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
3897         API fixes this problem.
3898
3899 2006-02-13  Robert Dewar  <dewar@adacore.com>
3900
3901         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
3902         call.
3903
3904 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3905
3906         * exp_pakd.ads: Fix typos in comments.
3907
3908         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
3909         array reference that is an explicit dereference, mark the converted
3910         (packed) array reference as analyzed to prevent a forthcoming
3911         reanalysis from resetting its type to the original (non-packed) array
3912         type.
3913
3914 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3915             Javier Miranda  <miranda@adacore.com>
3916             Eric Botcazou  <ebotcazou@adacore.com>
3917
3918         * exp_util.ads, exp_util.adb (Find_Prim_Op,
3919         Is_Predefined_Primitive_Operation): When
3920         searching for the predefined equality operator, verify that operands
3921         have the same type.
3922         (Is_Predefined_Dispatching_Operation): Remove the code that looks
3923         for the last entity in the list of aliased subprograms. This code
3924         was wrong in case of renamings.
3925         (Set_Renamed_Subprogram): New procedure
3926         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
3927         Exp_Type constant computed when entering this subprogram.
3928         (Known_Null): New function
3929         (OK_To_Do_Constant_Replacement): New function
3930         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
3931         (Side_Effect_Free): An attribute reference 'Input is not free of
3932         side effect, unlike other attributes that are functions. (from code
3933         reading).
3934         (Remove_Side_Effects): Expressions that involve packed arrays or records
3935         are copied at the point of reference, and therefore must be marked as
3936         renamings of objects.
3937         (Is_Predefined_Dispatching_Operation): Return false if the operation is
3938         not a dispatching operation.
3939
3940         PR ada/18819
3941         (Remove_Side_Effects): Lift enclosing type conversion nodes for
3942         elementary types in all cases.
3943
3944 2006-02-13  Javier Miranda  <miranda@adacore.com>
3945
3946         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
3947         task types when accessing to the corresponding record type.
3948         Remove '!' in warning message.
3949
3950 2006-02-13  Olivier Hainque  <hainque@adacore.com>
3951
3952         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
3953         to avoid useless and space inefficient overalignments on targets where
3954         Max_Alignment is larger than 16.
3955
3956 2006-02-13  Pascal Obry  <obry@adacore.com>
3957
3958         * g-catiio.adb (Sec_Number): New type used to compute the number of
3959         seconds since 1-1-1970.
3960         (Image) [Natural]: The parameter was an Integer, as we can't deal with
3961         negative numbers (years, months...) it is better to have a Natural here.
3962         Code clean-up.
3963         (Image) [Number]: Change parameter from Long_Integer to Number.
3964         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
3965         overflow for dates past year 2038.
3966
3967 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3968
3969         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
3970         Constraint_Error.
3971
3972 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3973
3974         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
3975         native platforms.
3976         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
3977         finalization can occur normally.
3978
3979 2006-02-13  Vincent Celier  <celier@adacore.com>
3980
3981         * gnatcmd.adb (Rules_Switches): New table
3982         (Add_To_Rules_Switches): New procedure
3983         (GNATCmd): For command CHECK, put all options following "-rules" in the
3984         Rules_Switches table. Append these -rules switches after the -cargs
3985         switches.
3986
3987 2006-02-13  Robert Dewar  <dewar@adacore.com>
3988
3989         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
3990         These two cases were generating incorrect output, and if this unit
3991         was built with checks on, generated a discriminant mismatch constraint
3992         error.
3993
3994 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3995             Robert Dewar  <dewar@adacore.com>
3996
3997         * lib-xref.adb (Get_Type_Reference): For a private type whose full
3998         view is an array type, indicate the component type as well, for
3999         navigation purposes.
4000         (Generate_Reference): Don't consider array ref on LHS to be a case
4001         of violating pragma Unreferenced.
4002         Do not give Ada 2005 warning except on real reference.
4003
4004 2006-02-13  Vincent Celier  <celier@adacore.com>
4005
4006         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
4007         main source, add switch -mdebug-main=_ada_ so that the executable can
4008         be debugged by the standard VMS debugger.
4009         (Gnatmake): Set No_Main_Subprogram to True when there is no main
4010         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
4011         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
4012         of the last source, as the binding and linking phases are never
4013         performed.
4014         Set all executable obsolete when rebuilding a library.
4015
4016         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
4017         options.
4018
4019 2006-02-13  Javier Miranda  <miranda@adacore.com>
4020
4021         PR ada/23973
4022
4023         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
4024         code to improve the error message reported when the program has
4025         declarations of abstract interface types and it is not compiled with
4026         the -gnat05 switch.
4027         (P_Access_Definition): Reorganize the code to improve the error
4028         message reported when the new Ada 2005 syntax for anonymous
4029         access types is used and the program is not compiled with the
4030         -gnat05 switch.
4031
4032 2006-02-13  Robert Dewar  <dewar@adacore.com>
4033
4034         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
4035         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
4036         (MODE_IN)
4037
4038 2006-02-13  Javier Miranda  <miranda@adacore.com>
4039
4040         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
4041         against source containing syntax errors.
4042
4043 2006-02-13  Vincent Celier  <celier@adacore.com>
4044
4045         * prj.adb (Reset): Initialize the first element of table Namings with
4046         the standard naming data.
4047
4048 2006-02-13  Vincent Celier  <celier@adacore.com>
4049
4050         * prj.ads (Error_Warning): New enumeration type
4051
4052         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
4053         unknown, use the location of the project to report the error.
4054         (When_No_Sources): New global variable
4055         (Report_No_Ada_Sources): New procedure
4056         (Check): New parameter When_No_Sources. Set value of global variable
4057         When_No_Sources,
4058         (Find_Sources): Call Report_No_Ada_Sources when appropriate
4059         (Get_Sources_From_File): Ditto
4060         (Warn_If_Not_Sources): Better warning messages indicating the unit name
4061         and the file name.
4062
4063         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
4064         Call Prj.Proc.Process with parameter When_No_Sources.
4065
4066         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
4067         Call Recursive_Check with parameter When_No_Sources.
4068         (Recursive_Check): New parameter When_No_Sources. Call itself and
4069         Prj.Nmsc.Check with parameter When_No_Sources.
4070         (Process): New parameter When_No_Sources. Call Check with parameter
4071         When_No_Sources.
4072         (Copy_Package_Declarations): New procedure to copy renamed parameters
4073         and setting the location of the declared attributes to the location
4074         of the renamed package.
4075         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
4076         packages.
4077
4078 2006-02-13  Vincent Celier  <celier@adacore.com>
4079
4080         * prj-makr.adb (Make): Preserve the comments from the original project
4081         file.
4082         When removing nodes (attributes Source_Dirs, Source_Files,
4083         Source_List_File and package Naming), save the comments and attach the
4084         saved comments to the newly created nodes.
4085         Do not add a with clause for the naming package if one already exists.
4086
4087 2006-02-13  Javier Miranda  <miranda@adacore.com>
4088             Gary Dismukes  <dismukes@adacore.com>
4089             Robert Dewar  <dewar@adacore.com>
4090
4091         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
4092
4093         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
4094         aliased entities to look for the overriden abstract interface
4095         subprogram.
4096         (Is_Interface_Subprogram): Complete documentation.
4097         (Check_Dispatching_Operation): Do not generate code to register the
4098         operation in the dispatch table if the source is compiled with
4099         restriction No_Dispatching_Calls.
4100         (Override_Dispatching_Operation): Check for illegal attempt to override
4101         No_Return procedure with procedure that is not No_Return
4102         (Check_Dispatching_Call): Suppress the check for an abstract operation
4103         when the original node of an actual is a tag-indeterminate attribute
4104         call, since the attribute, which must be 'Input, can never be abstract.
4105         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
4106         call to the Input attribute (even when rewritten).
4107         (Propagate_Tag): Augment comment to indicate the possibility of a call
4108         to an Input attribute.
4109
4110         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
4111         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
4112
4113         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
4114         No_Wide_Characters is no longer partition-wide
4115         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
4116         rather than GNAT
4117
4118 2006-02-13  Douglas Rupp  <rupp@adacore.com>
4119
4120         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
4121
4122 2006-02-13  Javier Miranda  <miranda@adacore.com>
4123
4124         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
4125         handles default-initialized components to keep separate the management
4126         of this feature but also avoid the unrequired resolution and
4127         expansion of components that do not have partially initialized
4128         values.
4129         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
4130         (Check_Bounds): Likewise.
4131         (Check_Length): Likewise.
4132
4133 2006-02-13  Javier Miranda  <miranda@adacore.com>
4134             Ed Schonberg  <schonberg@adacore.com>
4135
4136         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
4137         abstract interface type call analyze_and_resolve to expand the type
4138         conversion into the corresponding displacement of the
4139         reference to the base of the object.
4140         (Eval_Attribute, case Width): For systems where IEEE extended precision
4141         is supported, the maximum exponent occupies 4 decimal digits.
4142         (Accessibility_Message): Add '\' in 2-line warning message.
4143         (Resolve_Attribute): Likewise.
4144         (case Attribute_Access): Significantly revise checks
4145         for illegal access-to-subprogram Access attributes to properly enforce
4146         the rules of 3.10.2(32/2).
4147         Diagnose use of current instance with an illegal attribute.
4148
4149         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
4150         to a Node_Id.
4151         (Enclosing_Generic_Unit): New function to return a node's innermost
4152         enclosing generic declaration node.
4153         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
4154         (Type_Access_Level): The accessibility level of anonymous acccess types
4155         associated with discriminants is that of the current instance of the
4156         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
4157         (Compile_Time_Constraint_Error): Handle case of conditional expression.
4158         (Kill_Current_Values_For_Entity): New function
4159         (Enter_Name): Change formal type to Entity_Id
4160
4161 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
4162             Ed Schonberg  <schonberg@adacore.com>
4163             Gary Dismukes  <dismukes@adacore.com>
4164
4165         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
4166         Analyze_Compilation_Unit.
4167         Detect and warn on redundant with clauses detected in a package spec
4168         and/or body when -gnatwr is used.
4169         (Analyze_Context): Analyze config pragmas before other items
4170         (Install_Context_Items): Don't analyze config pragmas here
4171         (Install_Limited_Withed_Unit): Set limited entity of package in
4172         with_clause so that cross-reference information or warning messages on
4173         unused packages can be properly generated
4174         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
4175         has Error_Posted set. Prevent infinite loops in illegal programs.
4176         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
4177         to the point of the error test requiring the current unit to be private.
4178         This ensures that private with clauses are not exempted from the basic
4179         checking for being a descendant of the same library unit parent as a
4180         withed private descendant unit.
4181         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
4182         handle private with clauses properly, as well as to account for cases
4183         where the withed unit is a public descendant of a private ancestor
4184         (in which case the current unit must be a descendant of the private
4185         ancestor's parent). The spec comments were updated accordingly. Also,
4186         the old error message in this subprogram was replaced with error
4187         messages that mirror the errors tested and reported by
4188         Check_Private_Child_Unit.
4189         Parameter and variable names improved for readability.
4190         (Install_Limited_Context_Clauses): Remove test for a withed unit being
4191         private as the precondition for calling
4192         Check_Private_Limited_Withed_Unit since that subprogram has been
4193         revised to test public units as well as private units.
4194
4195 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4196             Robert Dewar  <dewar@adacore.com>
4197             Ed Schonberg  <schonberg@adacore.com>
4198             Javier Miranda  <miranda@adacore.com>
4199
4200         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
4201         that Scope_Stack.First = 1.
4202         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4203         were not always properly handled previously.
4204         (Formal_Entity): Complete rewrite, to handle properly some complex case
4205         with multiple levels of parametrization by formal packages.
4206         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
4207         to the corresponding derived type declaration for proper semantics.
4208
4209         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
4210         (Check_Component): Enforce restriction on components of
4211         unchecked_unions: a component in a variant cannot contain tasks or
4212         controlled types.
4213         (Unchecked_Union): Allow nested variants and multiple discriminants, to
4214         conform to AI-216.
4215         Add pragma Ada_2005 (synonym for Ada_05)
4216         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4217         were not always properly handled previously.
4218         Document that pragma Propagate_Exceptions has no effect
4219         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
4220         (Set_Convention_From_Pragma): Check that if a convention is
4221         specified for a dispatching operation, then it must be
4222         consistent with the existing convention for the operation.
4223         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
4224         longer required to specify an vtable-ptr component in the record. For
4225         compatibility reasons we leave the support for the previous definition.
4226         (Analyze_Pragma, case No_Return): Allow multiple arguments
4227
4228         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
4229         non-overrideen inherited operation with a controlling result as
4230         illegal only its implicit declaration comes from the derived type
4231         declaration of its result's type.
4232         (Check_Possible_Deferred_Completion): Relocate the object definition
4233         node of the subtype indication of a deferred constant completion rather
4234         than directly analyzing it. The analysis of the generated subtype will
4235         correctly decorate the GNAT tree.
4236         (Record_Type_Declaration): Check whether this is a declaration for a
4237         limited derived record before analyzing components.
4238         (Analyze_Component_Declaration): Diagnose record types  not explicitly
4239         declared limited when a component has a limited type.
4240         (Build_Derived_Record_Type): Code reorganization to check if some of
4241         the inherited subprograms of a tagged type cover interface primitives.
4242         This check was missing in case of a full-type associated with a private
4243         type declaration.
4244         (Constant_Redeclaration): Check that the subtypes of the partial and the
4245         full view of a constrained deferred constant statically match.
4246         (Mentions_T): A reference to the current type in an anonymous access
4247         component declaration  must be an entity name.
4248         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
4249         class_wide type to refer to full type, not to the incomplete one.
4250         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
4251         available. Required to give support to the certified run-time.
4252         (Analyze_Component_Declaration): In case of anonymous access components
4253         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
4254         (Process_Discriminants): For an access discriminant, use the
4255         discriminant specification as the associated_node_for_itype, to
4256         simplify accessibility checks.
4257
4258 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4259             Javier Miranda  <miranda@adacore.com>
4260
4261         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
4262         abstract interpretations on an operator, remove interpretations that
4263         yield Address or a type derived from it, if one of the operands is an
4264         integer literal.
4265         (Try_Object_Operation.Try_Primitive_Operation,
4266         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
4267         location when creating the new reference to a primitive or class-wide
4268         operation as a part of rewriting a subprogram call.
4269         (Try_Primitive_Operations): If context requires a function, collect all
4270         interpretations after the first match, because there may be primitive
4271         operations of the same type with the same profile and different return
4272         types. From code reading.
4273         (Try_Primitive_Operation): Use the node kind to choose the proper
4274         operation when a function and a procedure have the same parameter
4275         profile.
4276         (Complete_Object_Operation): If formal is an access parameter and prefix
4277         is an object, rewrite as an Access reference, to match signature of
4278         primitive operation.
4279         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
4280         by an expanded name with prefix Standard, when the operands are of an
4281         anonymous access type.
4282         (Remove_Abstract_Operations): If the operation is abstract because it is
4283         inherited by a user-defined type derived from Address, remove it as
4284         well from the set of candidate interpretations of an overloaded node.
4285         (Analyze_Membership_Op): Membership test not applicable to cpp-class
4286         types.
4287
4288 2006-02-13  Bob Duff  <duff@adacore.com>
4289
4290         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
4291         redundant use clauses.
4292         In particular, if the scope of two use clauses overlaps, but one is not
4293         entirely included in the other, we should not warn.  This can happen
4294         with nested packages.
4295         (Analyze_Subprogram_Renaming): Protect the compiler against previously
4296         reported errors. The bug was reported when the compiler was built
4297         with assertions enabled.
4298         (Find_Type): If the node is a 'Class reference and the prefix is a
4299         synchronized type without a corresponding record, return the type
4300         itself.
4301
4302 2006-02-13  Javier Miranda  <miranda@adacore.com>
4303
4304         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
4305         if this is the full-declaration associated with a private declaration
4306         that implement interfaces, then the private type declaration must be
4307         limited.
4308         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
4309         as aliased. The use of the 'access attribute is not available for such
4310         object (for this purpose the object should be explicitly marked as
4311         aliased, but being an anonymous type this is not possible).
4312
4313 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4314             Robert Dewar  <dewar@adacore.com>
4315
4316         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
4317         compilation unit is an elaboration scope.
4318         (Add_Task_Proc): Add '\' in 2-line warning message.
4319         (Activate_All_Desirable): Deal with case of unit with'ed by parent
4320
4321 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4322             Javier Miranda  <miranda@adacore.com>
4323
4324         * sem_type.adb (Write_Overloads): Improve display of candidate
4325         interpretations.
4326         (Add_One_Interp): Do not add to the list of interpretations aliased
4327         entities corresponding with an abstract interface type that is an
4328         immediate ancestor of a tagged type; otherwise we have a dummy
4329         conflict between this entity and the aliased entity.
4330         (Disambiguate): The predefined equality on universal_access is not
4331         usable if there is a user-defined equality with the proper signature,
4332         declared in the same declarative part as the designated type.
4333         (Find_Unique_Type): The universal_access equality operator defined under
4334         AI-230 does not cover pool specific access types.
4335         (Covers): If one of the types is a generic actual subtype, check whether
4336         it matches the partial view of the other type.
4337
4338 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4339
4340         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
4341         line. This is necessary to allow In_Extended_Main_Unit to provide
4342         correct results for itypes while writing out expanded source.
4343         (Close_File): No need to update the source_index_table here since it's
4344         now done for each line.
4345
4346 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4347             Robert Dewar  <dewar@adacore.com>
4348
4349         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
4350         preserve the source unit where the itype is declared, and prevent a
4351         backend abort.
4352         (Note_Implicit_Run_Time_Call): New procedure
4353         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
4354         E_Subprogram_Type)
4355
4356         * sprint.ads: Document use of $ for implicit run time routine call
4357
4358 2006-02-13  Quentin Ochem  <ochem@adacore.com>
4359
4360         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
4361         task name.
4362
4363 2006-02-13  Bob Duff  <duff@adacore.com>
4364
4365         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
4366         Scan_Unsigned, so we do not scan leading blanks and sign twice.
4367         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4368         raise Constraint_Error.
4369
4370         * s-vallli.adb (Scan_Long_Long_Integer): Call
4371         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
4372         do not scan leading blanks and sign twice.
4373         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4374         raise Constraint_Error.
4375
4376         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
4377         Scan_Long_Long_Unsigned): Split out most of the processing from
4378         Scan_Long_Long_Unsigned out into
4379         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
4380         This prevents scanning leading blanks and sign twice.
4381         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
4382         See RM-3.5(44).
4383
4384         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
4385         out most of the processing from Scan_Unsigned out into
4386         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
4387         This prevents scanning leading blanks and sign twice.
4388
4389         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
4390         use with Modular'Value attribute.
4391         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
4392         attribute.
4393
4394 2006-02-13  Robert Dewar  <dewar@adacore.com>
4395
4396         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
4397
4398 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
4399
4400         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
4401         (PPC VxWorks): Likewise.
4402         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
4403         (forced_callee): Make non-inlinable and non-pure.
4404         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
4405
4406 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4407             Ben Brosgol  <brosgol@adacore.com>
4408             Robert Dewar  <dewar@adacore.com>
4409
4410         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
4411         support.
4412         Document that gnatbind -M option is for cross environments only.
4413         Added description of using gnatmem to trace gnat rtl allocs and deallocs
4414         Add note on use of $ to label implicit run time calls
4415         Add documentation for -gnatyI (check mode IN)
4416         Updated chapter on compatibility with HP Ada
4417         VMS-oriented edits.
4418         Ran spell and corrected errors
4419         Add documentation for gnatbind -d and rework documentation of -D
4420         at the same time.
4421         Add subprogram/data elimination section.
4422         Minor editing of annex A.
4423         Add section for gnatcheck.
4424         Add documentation for restriction No_Dispatching_Calls
4425         Add documentation for pragma Ada_2005
4426         Remove mention of obsolete pragma Propagate_Exceptions
4427         Document that pragma Unreferenced can appear after DO in ACCEPT
4428         Clarify Pure_Function for library level units
4429         Mention Max/Min in connection with No_Implicit_Conditionals
4430         No_Wide_Characters restriction is no longer partition-wide
4431         Add a nice example for Universal_Literal_String attribute
4432         Document that pragma No_Return can take multiple arguments
4433
4434         * ug_words: Added entry for gnatcheck
4435
4436         * g-ctrl_c.ads (Install_Handler): Enhance comments
4437
4438         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
4439
4440         * g-trasym.ads: Add documentation on how to do off line symbolic
4441         traceback computation.
4442
4443         * s-fatgen.adb: Add comments for Unaligned_Valid
4444
4445         * stand.ads: Fix typo in comment
4446
4447 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4448
4449         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
4450
4451 2006-02-06  Roger Sayle  <roger@eyesopen.com>
4452
4453         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
4454
4455 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4456
4457         PR target/25926
4458         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
4459         implementation that calls __main.
4460
4461 2006-01-25  Peter O'Gorman  <peter@pogma.com>
4462
4463         PR bootstrap/25859
4464         * Makefile.in (GCC_LINK): Remove quotes.
4465         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
4466         or $(GCC_LINK).
4467
4468         (powerpc-darwin): Pass -shared-libgcc when building shared library.
4469
4470 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4471
4472         PR ada/24533
4473         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
4474
4475 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4476
4477         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
4478
4479 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4480
4481         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
4482         needed.
4483
4484 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4485
4486         * Make-lang.in: Update dependencies
4487
4488 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4489
4490         * Make-lang.in: Add rule for ada/exp_sel.o
4491
4492 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4493
4494         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
4495
4496 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
4497
4498         * gnatvsn.ads (Library_Version): Bump to version 4.2
4499         (ASIS_Version_Number): Bumped.
4500
4501 2005-12-09  Doug Rupp  <rupp@adacore.com>
4502
4503         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
4504         Ada bind file prefix on VMS from b$ to b__.
4505         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
4506         __init.
4507
4508         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
4509         Targparm.OpenVMS_On_Target.
4510         (Object_Suffix): Initialize with target object suffix.
4511         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
4512
4513         * butil.adb: Change some Hostparm.OpenVMS checks to
4514         Targparm.OpenVMS_On_Target.
4515
4516         * clean.adb: Change some Hostparm.OpenVMS checks to
4517         Targparm.OpenVMS_On_Target.
4518         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
4519         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
4520         Ada bind file prefix on VMS from b$ to b__.
4521
4522         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
4523         --GCC so that Get_Target_Parameters can find system.ads.
4524         (Gnatlink): Call Get_Target_Parameters in mainline.
4525         Initialize standard packages for Targparm.
4526         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
4527         (Process_Args): Also Check for object files with target object
4528         extension.
4529         (Make_Binder_File_Names): Create with target object extension.
4530         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
4531         to b__.
4532
4533         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
4534         Targparm.OpenVMS_On_Target.
4535         ({declaration},Build_Library,Check_Library): Change Ada bind file
4536         prefix on VMS from b$ to b__.
4537
4538         * osint-b.adb: Change some Hostparm.OpenVMS checks to
4539         Targparm.OpenVMS_On_Target.
4540         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
4541         b__.
4542
4543         * targext.c: New file.
4544
4545         * Makefile.in: add support for vxworks653 builds
4546         (../../vxaddr2line): gnatlink with targext.o.
4547         (TOOLS_LIBS): Move targext.o to precede libgnat.
4548         (init.o, initialize.o): Minor clean up in dependencies.
4549         (GNATLINK_OBJS): Add targparm.o, snames.o
4550         Add rules fo building targext.o and linking it explicitly with all
4551         tools.
4552         Also add targext.o to gnatlib.
4553
4554         * Make-lang.in: Add rules for building targext.o and linking it in
4555         with gnat1 and gnatbind.
4556         Add entry for exp_sel.o.
4557
4558         * osint.adb Change some Hostparm.OpenVMS checks to
4559         Targparm.OpenVMS_On_Target.
4560         (Object_File_Name): Use target object suffix.
4561
4562         * osint.ads (Object_Suffix): Remove, no longer used.
4563         (Target_Object_Suffix): Initialize with target object suffix.
4564
4565         * rident.ads: Add special exception to license.
4566
4567         * targparm.adb (Get_Target_Parameters): Set the value of
4568         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
4569         value.
4570         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
4571         
4572         * targparm.ads: Add special exception to license.
4573
4574         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
4575         function.
4576         (Copy_File): Make sure from file is closed if error on to file
4577         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
4578
4579         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
4580         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
4581
4582         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
4583         target object suffix.
4584
4585 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
4586             Quentin Ochem  <ochem@adacore.com>
4587             Florian Villoing  <villoing@adacore.com>
4588
4589         * a-taster.ads, a-taster.adb: New files.
4590
4591         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
4592         link to the version that does nothing. This way the task termination
4593         routine is not executed twice for the environment task when finishing
4594         because of an unhandled exception.
4595
4596         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
4597         handler because of an unhandled exception.
4598
4599         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
4600         System.Tasking.Utilities instead of that in System.Tasking.Stages.
4601
4602         * s-finimp.adb (initialization code): Modify the soft link for the
4603         finalization of the global list instead of Adafinal.
4604
4605         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
4606         non-tasking version of the soft link for task termination. We do
4607         nothing since if we are using the non-tasking version it
4608         means that the task termination functionality is not used.
4609         (Null_Finalize_Global_List): Add this null version for the procedure
4610         in charge of finalizing the global list for controlled objects.
4611         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
4612         instead for handling run-time termination in a more flexible way.
4613         (Adafinal_NT): This new procedure will take care of finalizing the
4614         global list for controlled objects if needed, but no tasking
4615         finalization.
4616
4617         * s-tarest.adb (Task_Lock): Do not try to lock again the
4618         Global_Task_Lock if we already own it. Otherwise, we get blocked in
4619         some run-time operations.
4620         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
4621         until all nested locks have been released.
4622         (Task_Wrapper): Call the fall-back task termination handler. It
4623         applies to all tasks but the environment task.
4624         (Finalize_Global_Tasks): Add the call for the task termination
4625         procedure for the environment task.
4626         (Task_Wrapper): suppress warnings around declaration of
4627         Secondary_Stack_Address.
4628
4629         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
4630         moved to the Common_ATCB record.
4631         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
4632         Common_ATCB record.
4633         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
4634         Common_ATCB record.
4635
4636         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
4637         Fall_Back_Handler, and Specific_Handler.
4638
4639         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
4640         defined in Ada.Task_Termination, to avoid circular dependencies.
4641         (Termination_Handler): Redefine this type here, alredy defined in
4642         Ada.Task_Termination, for avoiding circular dependencies.
4643         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
4644         for storing task termination handlers. In addition,
4645         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
4646         Common_ATCB because it is used by both the regular and the restricted
4647         run times.
4648         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
4649         Common_ATCB because it is used by both the regular and the restricted
4650         run times.
4651         (Common_ATCB): Added a dynamic task analyzer field.
4652
4653         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
4654         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
4655         (Task_Wrapper): Call the task termination handler. It applies to all
4656         tasks but the environment task.
4657         (Finalize_Global_Tasks): Call the task termination procedure for the
4658         environment task. The call to Finalize_Global_List is now performed
4659         using the soft links mechanism.
4660         (Task_Wrapper): added dynamic stack analysis.
4661
4662         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
4663         potentially blocking operations has been moved from
4664         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
4665         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
4666         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
4667         this run-time check.
4668
4669         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
4670         of task termination procedure.
4671         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
4672         link for the task termination procedure.
4673
4674         * bindusg.adb: (Bindusg): Added documentation for -u option.
4675
4676         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
4677         (Get_Main_C): Add handling of dynamic stack analysis.
4678         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
4679
4680         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
4681         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
4682         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
4683
4684         * opt.ads: Added flags used by dynamic stack measurement.
4685         (Max_Line_Length): Remove (not used anymore)
4686
4687         * s-io.ads, s-io.adb (Standard_Error): new subprogram
4688         (Standart_Output): new subprogram
4689         (Set_Output): new subprogram
4690         (Put): now uses the value of Current_Out to know if the output has to be
4691         send to stderr or stdout.
4692         
4693         * s-stausa.ads: Complete implementation.
4694
4695         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
4696         
4697         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
4698         list of Ada 05 files.
4699         (GNAT Library Units): Add AltiVec files.
4700
4701         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
4702         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
4703         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
4704
4705 2005-12-09  Nicolas Setton  <setton@adacore.com>
4706
4707         * adaint.c (__gnat_locate_regular_file): Return immediately if
4708         file_name is empty.
4709
4710 2005-12-09  Javier Miranda  <miranda@adacore.com>
4711             Hristian Kirtchev  <kirtchev@adacore.com>
4712
4713         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
4714         to the specification because the frontend generates code that uses this
4715         subprogram.
4716         (Set_Interface_Table): Add missing assertion.
4717         Update documentation describing the run-time structure.
4718         (Displace): New subprogram that displaces the pointer to the object
4719         to reference one of its secondary dispatch tables.
4720         (IW_Membership): Modified to use the new table of interfaces.
4721         (Inherit_TSD): Modified to use the new table of interfaces.
4722         (Register_Interface_Tag): Use the additional formal to fill the
4723         contents of the new table of interfaces.
4724         (Set_Interface_Table): New subprogram that stores in the TSD the
4725         pointer to the table of interfaces.
4726         (Set_Offset_To_Top): Use the additional formal to save copy of
4727         the offset value in the table of interfaces.
4728         Update structure of GNAT Primary and Secondary dispatch table diagram.
4729         Add comment section on GNAT dispatch table prologue.
4730         (Offset_To_Signature): Update the constant value of the Signature field.
4731         (Dispatch_Table): Update comment on hidden fields in the prologue.
4732         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
4733         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
4734         the type of formal parameter T to Tag, introduce additional assertions.
4735         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
4736         conversion.
4737         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
4738
4739         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
4740         in all the calls to Expand_Interface_Thunk. Instead of referencing the
4741         record component containing the tag of the secondary dispatch table we
4742         have to use the Offset_To_Top run-time function to get this information;
4743         otherwise if the pointer to the base of the object has been displace
4744         we get a wrong value if we use the 'position attribute.
4745
4746         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
4747         all the calls to Expand_Interface_Thunk.
4748         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
4749         interfaces; hence the call to Set_Interface_Table was clearly wrong.
4750         (Collect_All_Interfaces): Modify the internal subprogram Collect to
4751         ensure that the interfaces implemented by the ancestors are placed
4752         at the header of the generated list.
4753         (Expand_Interface_Conversion): Handle the case in which the displacement
4754         associated with the interface conversion is not statically known. In
4755         this case we generate a call to the new run-time subprogram Displace.
4756         (Make_DT): Generate and fill the new table of interfaces.
4757         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
4758         Get_Tagged_Kind and Set_Tagged_Kind.
4759         (Tagged_Kind): New function that determines the tagged kind of a type
4760         with respect to limitedness and concurrency and returns a reference to
4761         RE_Tagged_Kind.
4762         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
4763         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
4764         primary dispatch table for a type.
4765         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
4766         secondary dispatch table respectively of a tagged type.
4767
4768         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
4769         (Expand_Interface_Conversion): New subprogram to indicate if the
4770         displacement of the type conversion is statically known.
4771         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
4772
4773         * rtsfind.ads (RE_Offset_To_Top): New entity
4774         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
4775         accessible to users.
4776         (Re_Displace): New entity
4777         (RE_Interface_Data): New entity
4778         (RE_Set_Interface_Data): New_Entity
4779         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
4780         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
4781         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
4782         RE_TK_Tagged, RE_TK_Task.
4783
4784         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
4785         Init_Secondary_Tags_Internal to allow its use with interface types and
4786         also to generate the code for the new additional actual required
4787         by Set_Offset_To_Top.
4788         (Build_Init_Statements): In case of components associated with abstract
4789         interface types there is no need to generate a call to its IP.
4790         (Freeze_Record_Type): Generate Select Specific Data tables only for
4791         concurrent types.
4792         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
4793         the bodies and specifications of the predefined primitive operations
4794         dealing with dispatching selects and abort, 'Callable, 'Terminated only
4795         for concurrent types.
4796
4797         * exp_sel.ads, exp_sel.adb: New files.
4798
4799         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
4800         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
4801         properly protected objects and attach handler in the case of the
4802         restricted profile.
4803         Move embeded package Select_Expansion_Utilities into a separate external
4804         package.
4805         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
4806         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
4807         (Build_K, Build_S_Assignment): New subprograms, part of the select
4808         expansion utilities.
4809         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
4810         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
4811         where the trigger is a dispatching procedure of a limited tagged type.
4812
4813 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4814
4815         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
4816         pointer initialization values. Make a SAVE_EXPR instead. Add comments
4817         about the use and expansion of SAVE_EXPRs in the various possible
4818         renaming handling cases.
4819         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
4820         abusing DECL_FCONTEXT.
4821
4822 2005-12-09  Matthew Heaney  <heaney@adacore.com>
4823
4824         * a-convec.adb (Merge): Added assertions to check whether vector params
4825         are sorted.
4826
4827         * a-coinve.adb (Merge): Added assertions to check whether vector params
4828         are sorted.
4829
4830         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
4831         draft.
4832         (Cursor'Read): raises PE
4833
4834         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
4835         to its default value.
4836
4837         * a-cihama.adb: Manually check whether cursor's key and elem are
4838         non-null
4839
4840         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
4841         (Merge): Assert that target and source lists are in order
4842         (Swap): Declare non-const temporaries, to pass to Splice
4843
4844         * a-cdlili.ads: (Splice): Changed param name and param mode
4845
4846         * a-cdlili.adb: (Splice): Changed param name and param mode
4847         (Merge): Assert that target and source lists are in order
4848         (Swap): Declare non-const temporaries, to pass to Splice
4849
4850         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
4851         (Write): declare Stream param as not null
4852
4853         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
4854         an exception message.
4855
4856 2005-12-09  Thomas Quinot  <quinot@adacore.com>
4857             Robert Dewar  <dewar@adacore.com>
4858
4859         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
4860         which is the absolute maximum length we can support.
4861
4862         * frontend.adb: For the processing of configuration pragma files,
4863         remove references to Opt.Max_Line_Length, which is not checked anymore.
4864
4865         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
4866         length.
4867
4868         * scn.adb, scng.adb: 
4869         Always check line length against the absolute supported maximum,
4870         Hostparm.Max_Line_Length.
4871
4872         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
4873         value for the maximum line length is Max_Line_Length (not
4874         Column_Number'Last).
4875         Minor error msg update
4876         (Set_Style_Check_Options): New interface returning error msg
4877         Minor code reorganization (processing for 'M' was out of alpha order)
4878
4879         * switch-c.adb: New interface for Set_Style_Check_Options
4880
4881         * stylesw.ads (Set_Style_Check_Options): New interface returning error
4882         msg.
4883
4884 2005-12-09  Javier Miranda  <miranda@adacore.com>
4885
4886         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
4887         with IP subprogram were only supported if there were limited types.
4888
4889         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
4890         records with IP subprogram were only supported if there were limited
4891         types.
4892
4893 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4894             Eric Botcazou  <ebotcazou@adacore.com>
4895
4896         * trans.c (tree_transform, emit_check): Adjust calls to
4897         build_call_raise, passing the now expected GNAT_NODE argument.
4898
4899         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
4900         source line information than what the current global locus indicates
4901         when appropriate.
4902
4903         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
4904         field has overflowed.
4905         (build_call_raise): Add a GNAT_NODE argument to convey better source
4906         line information than what the current global locus indicates when
4907         appropriate.
4908         (build_component_ref): Adjust call to build_call_raise.
4909
4910 2005-12-09  Pascal Obry  <obry@adacore.com>
4911
4912         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
4913         the iterator is quitting iteration on parent directory.
4914
4915 2005-12-09  Javier Miranda  <miranda@adacore.com>
4916
4917         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
4918         and the assignment to a class-wide object, before the assignment we
4919         generate a run-time check to ensure that the tag of the Target is
4920         covered by the tag of the source.
4921
4922 2005-12-09  Robert Dewar  <dewar@adacore.com>
4923
4924         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
4925         parameter in call to Image_Wide_Character.
4926
4927         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
4928         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
4929         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
4930         annoying FFFE/FFFF inconsistency.
4931
4932 2005-12-09  Robert Dewar  <dewar@adacore.com>
4933             Javier Miranda  <miranda@adacore.com>
4934             Ed Schonberg  <schonberg@adacore.com>
4935
4936         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
4937         of type conversion.
4938         (Find_Interface): New subprogram that given a tagged type and one of its
4939         component associated with the secondary table of an abstract interface
4940         type, return the entity associated with such abstract interface type.
4941         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
4942         base type to create anonymous subtype, because entity may be a locally
4943         declared subtype or generic actual.
4944         (Find_Interface): New subprogram that given a tagged type and one of its
4945         component associated with the secondary table of an abstract interface
4946         type, return the entity associated with such abstract interface type.
4947
4948         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
4949         conversion cannot be handled at compile time. In this case we pass this
4950         information to the expander to generate the appropriate code.
4951
4952 2005-12-09  Robert Dewar  <dewar@adacore.com>
4953             Ed Schonberg  <schonberg@adacore.com>
4954             Gary Dismukes  <dismukes@adacore.com>
4955             Javier Miranda  <miranda@adacore.com>
4956             Hristian Kirtchev  <kirtchev@adacore.com>
4957
4958         * einfo.adb (Itype_Printed): New flag
4959         (Is_Limited_Type): Derived types do not inherit limitedness from
4960         interface progenitors.
4961         (Is_Return_By_Reference_Type): Predicate does not apply to limited
4962         interfaces.
4963
4964         * einfo.ads (Itype_Printed): New flag
4965         Move Is_Wrapper_Package to proper section
4966         Add missing Inline for Is_Volatile
4967
4968         * output.ads, output.adb (Write_Erase_Char): New procedure
4969         (Save/Restore_Output_Buffer): New procedures
4970         (Save/Restore_Output_Buffer): New procedures
4971
4972         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
4973         Add missing support for anonymous access type
4974         (Write_Id): Insert calls to Write_Itype
4975         (Write_Itype): New procedure to output itypes
4976
4977         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
4978         use of "limited" in declaration.
4979
4980         * sinfo.ads, sinfo.adb: 
4981         Formal derived types can carry an explicit "limited" indication.
4982
4983         * sem_ch3.adb: Add with and use of Targparm.
4984         (Create_Component): If Frontend_Layout_On_Target is True and the
4985         copied component does not have a known static Esize, then reset
4986         the size and positional fields of the new component.
4987         (Analyze_Component_Declaration): A limited component is
4988         legal within a protected type that implements an interface.
4989         (Collect_Interfaces): Do not add to the list the interfaces that
4990         are implemented by the ancestors.
4991         (Derived_Type_Declaration): If the parent of the full-view is an
4992         interface perform a transformation of the tree to ensure that it has
4993         the same parent than the partial-view. This simplifies the job of the
4994         expander in order to generate the correct object layout, and it is
4995         needed because the list of interfaces of the full-view can be given in
4996         any order.
4997         (Process_Full_View): The parent of the full-view does not need to be
4998         a descendant of the parent of the partial view if both parents are
4999         interfaces.
5000         (Analyze_Private_Extension_Declaration): If declaration has an explicit
5001         "limited" the parent must be a limited type.
5002         (Build_Derived_Record_Type): A derived type that is explicitly limited
5003         must have limited ancestor and progenitors.
5004         (Build_Derived_Type): Ditto.
5005         (Process_Full_View): Verify that explicit uses of "limited" in partial
5006         and full declarations are consistent.
5007         (Find_Ancestor_Interface): Remove function.
5008         (Collect_Implemented_Interfaces): New procedure used to gather all
5009         implemented interfaces by a type.
5010         (Contain_Interface): New function used to check whether an interface is
5011         present in a list.
5012         (Find_Hidden_Interface): New function used to determine whether two
5013         lists of interfaces constitute a set equality. If not, the first
5014         differing interface is returned.
5015         (Process_Full_View): Improve the check for the "no hidden interface"
5016         rule as defined by AI-396.
5017
5018 2005-12-09  Robert Dewar  <dewar@adacore.com>
5019
5020         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
5021         types, not on record subtypes.
5022         (Freeze_Entity): Code cleanup. Add barrier to the loop
5023         that generates the references for primitive operations. This allows to
5024         remove an unnecessary exception handler.
5025         Code reformatting and comment clean ups.
5026
5027 2005-12-09  Vincent Celier  <celier@adacore.com>
5028
5029         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
5030         If GNAT CHECK is called with a project file, but with no
5031         source on the command line, call gnatcheck with all the compilable
5032         sources of the project.
5033         Take into account the new command Check, for gnatcheck. Treat as for
5034         other ASIS tools: take into account project, specific package Check and
5035         Compiler switches.
5036         For ASIS tools, add the switches in package Compiler for
5037         the invocation of the compiler.
5038
5039         * prj-attr.adb: Add package Check and its attributes
5040
5041         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
5042
5043         * vms_conv.adb (Initialize): Change Params of command Check to
5044         unlimited files.
5045         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
5046         Add data for new command Check
5047
5048         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
5049         ELIM.
5050         Add qualifiers for Check command options
5051         (Command_Type): New command Check
5052
5053 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5054
5055         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
5056         command line switch overruns the output buffer.
5057
5058 2005-12-09  Robert Dewar  <dewar@adacore.com>
5059
5060         * sem_prag.adb: Processing for new pragma Complete_Representation
5061         (Analyze_Pragma, case Debug): Implement two argument form.
5062
5063         * par-prag.adb: Entry for new pragma Complete_Representation
5064         (Prag, case Debug): Recognize two argument form of pragma Debug
5065         New interface for Set_Style_Check_Options.
5066
5067         * sem_ch13.adb: Implement new pragma Complete_Representation.
5068
5069         * snames.adb, snames.ads, snames.h: Entry for new pragma
5070         Complete_Representation.
5071
5072 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5073
5074         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
5075         available user-specified stream attributes on limited parameters to
5076         also test the type directly rather than only its underlying type (for
5077         Ada 95) and, in the case of Ada 2005, to check that the user-specified
5078         attributes are visible at the point of the subprogram declaration.
5079         For Ada 2005, the error message is modified to indicate that the
5080         type's stream attributes must be visible (again, only for -gnat05).
5081
5082 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5083
5084         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
5085         anonymous access types.
5086
5087         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
5088         matching of anonymous access types and anonymous access to subprogram
5089         types. 'R'M 4.9.1 (2/2).
5090
5091 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5092
5093         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
5094         rule prematurely when operands are universal, remaining ambiguities
5095         will be removed during resolution.
5096         Code cleanup.
5097
5098         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
5099         that are Ada 2005 functions.
5100         (Has_Abstract_Interpretation): Subsidiary to
5101         Remove_Conversions, to remove ambiguities caused by abstract operations
5102         on numeric types when operands are universal.
5103
5104 2005-12-09  Robert Dewar  <dewar@adacore.com>
5105
5106         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
5107         for case where spec is categorized.
5108
5109 2005-12-09  Javier Miranda  <miranda@adacore.com>
5110
5111         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
5112         types use the corresponding record type. This was not needed before
5113         the implementation of Ada 2005 synchronized types because
5114         concurrent types were never tagged types in Ada 95.
5115
5116 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5117
5118         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
5119         first subtype of the type of the expression to verify that it is a
5120         legal Time type.
5121
5122 2005-12-09  Robert Dewar  <dewar@adacore.com>
5123
5124         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
5125         decoded names.
5126
5127 2005-12-09  Quentin Ochem  <ochem@adacore.com>
5128             Robert Dewar  <dewar@adacore.com>
5129             Ed Falis  <falis@adacore.com>
5130             Florian Villoing  <villoing@adacore.com>
5131             Thomas Quinot  <quinot@adacore.com>
5132             Arnaud Charlet  <charlet@adacore.com>
5133
5134         * gnat_ugn.texi: Created section "Stack Related Tools"
5135         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
5136         "Stack Related Tools"
5137         Added subsection "Static Stack Usage Analysis"
5138         Added subsection "Dynamic Stack Usage Analysis"
5139         Include documentation of itypes in sprint listing (-gnatG)
5140         Documented gnatbind -D switch (default sec stack size for fixed sec
5141         stacks).
5142         Added Interrupt_State and Persistent_BSS to list of configuration
5143         pragmas.
5144         Add missing doc for maximum value of nnn in -gnatyMnnn
5145
5146         * gnat_rm.texi: Document the AltiVec binding.
5147         Add documentation for pragma Complete_Representation
5148         Shortened an overly long line (> 79 chars)
5149         Clarify documentation of unchecked conversion in implementation
5150         defined cases.
5151         Document two argument form of pragma Debug
5152
5153         * types.ads (Column_Number): Update documentation.
5154
5155         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
5156         library level Finalize_Storage_Only objects (these are not attached to
5157         any finalization list).
5158
5159         * system-mingw.ads: (Underlying_Priorities): Update comment.
5160
5161 2005-12-09  Robert Dewar  <dewar@adacore.com>
5162
5163         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
5164         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
5165         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
5166         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
5167         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
5168         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
5169         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
5170         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
5171         reformatting.
5172
5173 2005-12-09  Robert Dewar  <dewar@adacore.com>
5174
5175         * s-vaflop-vms-alpha.adb: (Ne_F): New function
5176         (Ne_G): New function
5177
5178         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
5179         for tag assignment.
5180         (Rewrite_Comparison): Handle case where operation is not a comparison
5181         and ignore, and also handle type conversion case.
5182
5183 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5184
5185         * exp_aggr.ads: Fix typo in comment.
5186         ???-mark Convert_Aggr_In_Assignment as needing documentation.
5187
5188 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5189
5190         * layout.adb: Replace various uses of byte by storage unit throughout.
5191         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
5192         static size, convert to storage units before returning, to conform to
5193         spec.
5194
5195 2005-12-09  Matthew Gingell  <gingell@adacore.com>
5196
5197         * g-exctra.ads: Fix typo in comment.
5198
5199 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5200
5201         * utils.c: Minor reformatting.
5202
5203 2005-12-09  Robert Dewar  <dewar@adacore.com>
5204
5205         * g-soccon.ads: 
5206         Further comment fixes to make the status of the default file clear
5207
5208         * s-bitops.adb: Clarify comment for Bits_Array
5209
5210 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5211
5212         * Make-lang.in (ada.install-normal): Remove.
5213
5214 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5215
5216         * Make-lang.in: Remove all dependencies on s-gtype.
5217
5218 2005-12-05  Richard Guenther  <rguenther@suse.de>
5219
5220         * utils.c (convert): Use fold_convert where appropriate.
5221
5222 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
5223
5224         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
5225         a period is meant.
5226
5227 2005-12-02  Richard Guenther  <rguenther@suse.de>
5228
5229         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
5230
5231 2005-12-01  Roger Sayle  <roger@eyesopen.com>
5232
5233         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
5234         nodes.
5235
5236 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
5237
5238         * mlib-prj.adb (Build_Library): Initialize Delete.
5239
5240 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
5241
5242         * socket.c: Add extern int h_errno for rtems since networking header
5243         files are not available at this point in a tool bootstrap. Newlib
5244         only has basic C library header files.
5245
5246 2005-11-19  Richard Guenther  <rguenther@suse.de>
5247         Roger Sayle  <roger@eyesopen.com>
5248
5249         PR ada/23717
5250         * misc.c (internal_error_function): Don't use vsprintf to format
5251         the error message text, instead use pp_format_text and the new
5252         pretty printer APIs.  This allows handling of %qs, %w, etc.
5253
5254 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
5255
5256         PR ada/24857
5257         * Makefile.in: Use s-auxdec-empty for RTEMS.
5258
5259 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5260
5261         PR ada/22333
5262         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
5263         a temporary if taking the address of something that is neither
5264         reference, declaration, or constant, since the gimplifier
5265         can't handle that case.
5266
5267 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
5268
5269         PR ada/24857
5270         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
5271         
5272 2005-11-16  Richard Guenther  <rguenther@suse.de>
5273
5274         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
5275
5276 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
5277
5278         PR ada/24855
5279         * raise-gcc.c: Add missing stdarg.h include.
5280  
5281 2005-11-16  Richard Guenther  <rguenther@suse.de>
5282
5283         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
5284         (ada/misc.o): Likewise.
5285
5286 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5287
5288         * g-soccon.ads: Minor reformatting. Update comments.
5289
5290         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
5291         gain visibility on the declaration of struct timeval.
5292
5293         * g-soccon-freebsd.ads,
5294         g-soccon-darwin.ads,
5295         g-soccon-tru64.ads,
5296         g-soccon-aix.ads,
5297         g-soccon-irix.ads,
5298         g-soccon-hpux.ads,
5299         g-soccon-solaris.ads,
5300         g-soccon-vms.ads,
5301         g-soccon-mingw.ads,
5302         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
5303
5304         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
5305         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
5306         g-soccon-linux-x86.ads: New files.
5307
5308         * g-socthi-mingw.adb: 
5309         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
5310
5311         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
5312         (time_t, suseconds_t): New types constructed to match the tv_sec
5313         and tv_usec fields of C struct timeval.
5314         (Timeval): Construct structure in terms of the new types.
5315         (Host_Errno): New function (imported from socket.c), returns last hosts
5316         database error.
5317
5318         * g-socthi-vxworks.adb:  Add error handling circuitry.
5319
5320         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
5321         components of struct timeval.
5322         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
5323         (Check_Selector): In error conditions, clear internal socket sets to
5324         avoid a memory leak.
5325         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
5326         Send_Timeout, Receive_Timeout.
5327
5328         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
5329         the tv_sec and tv_usec fields of C struct timeval.
5330         (Timeval): Construct structure in terms of the new types.
5331         (Host_Errno): New function (imported from socket.c), returns last hosts
5332         database error.
5333
5334         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
5335         hosts database last error code.
5336
5337         * gen-soccon.c: Complete value expansion should not be performed on
5338         TARGET, as it has the form of a math expression, and some components
5339         may be platform-defined macros.
5340         For VxWorks, generate the OK and ERROR values.
5341         New constants giving the sizes of the components of C struct timeval.
5342
5343 2005-11-14  Robert Dewar  <dewar@adacore.com>
5344             Ed Schonberg  <schonberg@adacore.com>
5345
5346         PR ada/18434
5347
5348         * types.ads: Include All_Checks in Suppress_Array
5349
5350         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
5351         not(a=b), since we no longer do this rewriting, and hence it is not
5352         needed.
5353         (Elaboration_Checks_Suppressed): Add special casing to
5354         deal with different cases of static and dynamic elaboration checks (all
5355         checks does not count in the first case, but does in the second).
5356         (Expr_Known_Valid): Do not assume that the result of any arbitrary
5357         function call is valid, since this is not the case.
5358         (Ensure_Valid): Do not apply validity check to a real literal
5359         in a universal or fixed context
5360
5361         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
5362         elementary types using the operator in standard. It is cleaner not to
5363         modify the programmers intent, especially in the case of floating-point.
5364         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
5365         it did not matter because we always rewrote a/=b to not(a=b).
5366         (Expand_Allocator_Expression): For an allocator expression whose nominal
5367         subtype is an unconstrained packed type, convert the expression to its
5368         actual constrained subtype.
5369         Implement warning for <= or >= where < or > not possible
5370         Fix to Vax_Float tests (too early in many routines, causing premature
5371         Vax_Float expansions.
5372
5373         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
5374         to be used with packages and generic packages as well as with
5375         subprograms.
5376         (Suppress): Set All_Checks, but not Elaboration_Check, for case
5377         of pragma Suppress (All_Checks)
5378         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
5379         a string literal for precise control over warnings.
5380         Avoid raise of pragma in case of unrecognized pragma and just return
5381         instead.
5382
5383         * sem_prag.ads: Minor reformatting
5384
5385         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
5386         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
5387         Switch. Do not handle any exception.
5388         Include -gnatwx as part of -gnatg (warn on redundant parens)
5389         Allow optional = after -gnatm
5390         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
5391         longer sets Elaboration_Checks.
5392         Code to set warning mode moved to Sem_Warn
5393         so that it can be shared by pragma processing.
5394
5395         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
5396         statement.
5397
5398         * s-taprop-solaris.adb: 
5399         Change some <= to =, to avoid new warning
5400
5401         * a-exexda.adb, prj-proc.adb: 
5402         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
5403         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
5404
5405 2005-11-14  Robert Dewar  <dewar@adacore.com>
5406
5407         * exp_vfpt.adb: Handle /= case
5408         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
5409         so that we do not get duplicate scaling for fixed point conversions.
5410
5411         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
5412
5413 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5414
5415         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
5416         Increase default priority on Lynx from 15 to 17, and meet the Ada
5417         requirement that Default_Priority be ((Priority'First +
5418         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
5419
5420 2005-11-14  Vincent Celier  <celier@adacore.com>
5421
5422         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5423         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
5424         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
5425         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
5426         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
5427         mlib-tgt-lynxos.adb (DLL_Prefix): New function
5428
5429 2005-11-14  Doug Rupp  <rupp@adacore.com>
5430
5431         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
5432         private part.
5433
5434 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5435
5436         * s-traces-default.adb, s-trafor-default.ads,
5437         s-tratas-default.adb: Fix compilation errors.
5438
5439 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5440
5441         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
5442         raising the exception so the memory used is freed.
5443
5444 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5445
5446         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
5447         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
5448         (convert_address): Update comments and list of platforms using this.
5449
5450         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
5451         no longer used.
5452
5453 2005-11-14  Pascal Obry  <obry@adacore.com>
5454             Vincent Celier  <celier@adacore.com>
5455
5456         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
5457         GNAT.Command_Line.
5458
5459         * memroot.adb: Remove redundant with/use clause on
5460         System.Storage_Elements.
5461
5462 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5463
5464         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
5465         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
5466         related code to a-exexpr.adb
5467         (Save_Occurrence_And_Private): Move GCC EH related code to
5468         a-exexpr-gcc.adb
5469         (Raise_Current_Excep): Add new variable Id with pragma
5470         volatile, to ensure that the variable lives on stack.
5471
5472         * a-exexpr-gcc.adb, raise-gcc.c: New file.
5473
5474         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
5475         from a-except.adb.
5476         Move GCC EH related code to a-exexpr-gcc.adb
5477
5478         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
5479         64-bit Solaris
5480         Split the Linux version of g-soccon into separate variants for 32 and 64
5481         bit platforms.
5482         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
5483         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
5484         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
5485         of host variable $(RANLIB_FLAGS).
5486         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
5487         Code clean up: remove unused/obsolete targets.
5488         (EH_MECHANISM): New variable introduced to differenciate between the
5489         two EH mechanisms statically.
5490         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
5491         (LIBGNAT_OBJS): Add raise-gcc.o
5492         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
5493         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
5494         supports VxWorks 6 RTPs.
5495         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
5496         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
5497
5498         * raise.c: Move all GCC EH-related routines to raise-gcc.c
5499
5500 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5501
5502         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
5503         deferral level, when abort is not allowed, to a later stage (the
5504         Task_Wrapper).
5505         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
5506         it will not get changed by the generated code. It was previously done
5507         in Create_Task.
5508
5509 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5510             Olivier Hainque  <hainque@adacore.com>
5511             Eric Botcazou  <ebotcazou@adacore.com>
5512
5513         * decl.c:
5514         Factor common code to build a storage type for an unconstrained object
5515         from a fat or thin pointer type and a constrained object type.
5516         (annotate_value): Handle BIT_AND_EXPR.
5517         (annotate_rep): Don't restrict the back annotation of inherited
5518         components to the type_annotate_only case.
5519         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
5520         we are not defining the type.
5521         <E_Record_Type>: Likewise.
5522         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
5523         to get advantage of the new maybe_stabilize_reference interface, to
5524         ensure that what we reference is indeed stabilized instead of relying
5525         on assumptions on what the stabilizer does.
5526         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
5527         type imported through a limited_with clause, use its non-limited view.
5528         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
5529         differentiation.
5530         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
5531         of #if sections + explicit comparisons of convention identifiers.
5532         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
5533         before early-returning for certain types when code generation is
5534         disabled.
5535         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
5536         nullification of gnu_expr we do for objects with address clause and
5537         that we are not defining.
5538         (elaborate_expression_1): Do not create constants when creating
5539         variables needed by the debug info: the dwarf2 writer considers that
5540         CONST_DECLs is used only to represent enumeration constants, and emits
5541         nothing for them.
5542         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
5543         object with an address clause into an indirect reference, drop the
5544         initializing expression.
5545         Include "expr.h".
5546         (STACK_CHECK_BUILTIN): Delete.
5547         (STACK_CHECK_PROBE_INTERVAL): Likewise.
5548         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
5549         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
5550         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
5551         corresponding to the renamed object as ignored for debugging purposes.
5552
5553         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
5554         related): For a prefix that is a dereference of a fat or thin pointer,
5555         if there is an actual subtype provided by the front-end, use that
5556         subtype to build an actual type with bounds template.
5557         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
5558         is provided by the front-end, use that subtype to compute the size of
5559         the deallocated object.
5560         (gnat_to_gnu): When adding a statement into an elaboration procedure,
5561         check for a potential violation of a No_Elaboration_Code restriction.
5562         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5563         with extra arguments to control whether to recurse through non-values
5564         and to let the caller know if the stabilization has succeeded.
5565         (gnat_stabilize_reference): Now a simple wrapper around
5566         maybe_stabilize, for common uses without restriction on lvalues and
5567         without need to check for the success indication.
5568         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
5569         pass false instead of 0 as the FORCE argument which is a bool.
5570         (Identifier_to_gnu): Remove checks ensuring that an renamed object
5571         attached to a renaming pointer has been properly stabilized, as no such
5572         object is attached otherwise.
5573         (call_to_gnu): Invoke create_var_decl to create the temporary when the
5574         function uses the "target pointer" return mechanism.
5575         Reinstate conversion of the actual to the type of the formal
5576         parameter before any other specific treatment based on the passing
5577         mechanism. This turns out to be necessary in order for PLACEHOLDER
5578         substitution to work properly when the latter type is unconstrained.
5579
5580         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
5581         common pattern.
5582         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5583         with extra arguments to control whether to recurse through non-values
5584         and to let the caller know if the stabilization has succeeded.
5585
5586         * utils2.c (gnat_build_constructor): Only sort the fields for possible
5587         static output of record constructor if all the components are constant.
5588         (gnat_build_constructor): For a record type, sort the list of field
5589         initializers in increasing bit position order.
5590         Factor common code to build a storage type for an unconstrained object
5591         from a fat or thin pointer type and a constrained object type.
5592         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
5593         types variants, and process special cases of VIEW_CONVERT expressions
5594         as their NOP_EXPR counterpart to ensure we get to the
5595         CORRESPONDING_VARs associated with CONST_DECls.
5596         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
5597         on the right-hand side.
5598
5599         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
5600         a common pattern.
5601         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
5602         are converting back to its original type.
5603         (convert) <JM input>: Fallthrough regular conversion code instead of
5604         extracting the object if converting to a type variant.
5605         (create_var_decl): When a variable has an initializer requiring code
5606         generation and we are at the top level, check for a potential violation
5607         of a No_Elaboration_Code restriction.
5608         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
5609         SIZE and SIZE_UNIT which we need for later back-annotations.
5610         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
5611         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
5612         is an unchecked union.
5613         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
5614         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
5615         main variant, just replace the VIEW_CONVERT_EXPR.
5616         <UNION_TYPE>: Revert 2005-03-02 change.
5617
5618         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
5619
5620         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
5621
5622 2005-11-14  Matthew Heaney  <heaney@adacore.com>
5623
5624         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
5625         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
5626         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
5627         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
5628         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5629         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
5630         Compiles against the spec for ordered maps described in sections
5631         A.18.6 of the most recent (August 2005) AI-302 draft.
5632
5633 2005-11-14  Olivier Hainque  <hainque@adacore.com>
5634
5635         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
5636         to ensure bias adjustments take place when need be and to prevent
5637         occurrences of intermediate overflows.
5638
5639 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5640             Olivier Hainque  <hainque@adacore.com>
5641
5642         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
5643         ia64 HP-UX.
5644
5645         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
5646         tracebacks on ia64 HP-UX and provide explanatory comment.
5647         Enable backtraces on ia64 GNU/Linux.
5648         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
5649         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
5650
5651 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
5652             Javier Miranda  <miranda@adacore.com>
5653
5654         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
5655         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
5656         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
5657         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
5658
5659         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
5660         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
5661         assertions).
5662
5663         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
5664         subprogram that generates the external name associated with a
5665         secondary dispatch table.
5666         (Get_Secondary_DT_External_Name): New subprogram that generates the
5667         external name associated with a secondary dispatch table.
5668
5669 2005-11-14  Emmanuel Briot  <briot@adacore.com>
5670
5671         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
5672         line in the ALI file to include both an instantiation reference, and a
5673         returned value.
5674
5675 2005-11-14  Vincent Celier  <celier@adacore.com>
5676
5677         * clean.adb (Check_Project): Look for Ada code in extending project,
5678         even if Ada is not specified as a language.
5679         Use new function DLL_Prefix for DLL_Name
5680         (Clean_Interface_Copy_Directory): New procedure
5681         (Clean_Library_Directory): New procedure
5682         (Clean_Directory): Remove procedure, no longer used
5683         (Clean_Project): Do not delete any file in an externally built project
5684
5685         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
5686         directory of an extending project, even when there are no Ada source
5687         present.
5688         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
5689         (Set_Ada_Paths.Add.Recursive_Add): Ditto
5690
5691         * mlib-prj.adb (Check_Library): For all library projects, get the
5692         library file timestamp.
5693         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
5694         (Build_Library): Use new function DLL_Prefix for the DLL_Name
5695         (Clean): Remove procedure, no longer used
5696         (Ultimate_Extension_Of): New function
5697         (Build_Library): When cleaning the library directory, only remove an
5698         existing library file and any ALI file of a source of the project.
5699         When cleaning the interface copy directory, remove any source that
5700         could be a source of the project.
5701
5702         * prj.ads, prj.adb (Project_Empty): Add values of new components
5703         Library_TS and All_Imported_Projects.
5704         (Project_Empty): Add values for new components of Project_Data:
5705         Library_ALI_Dir and Display_Library_ALI_Dir
5706
5707         * prj-attr.adb: New project level attribute name Library_ALI_Dir
5708
5709         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
5710         attribute Library_ALI_Dir.
5711         (Check_Library_Attributes): The library directory cannot be the same as
5712         any source directory of the project tree.
5713         (Check_Stand_Alone_Library): The interface copy directory cannot be
5714         the same as any source directory of the project tree.
5715
5716         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
5717         all temporary files.
5718
5719 2005-11-14  Robert Dewar  <dewar@adacore.com>
5720             Ed Schonberg  <schonberg@adacore.com>
5721
5722         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5723         (Check_Elab_Call): A call within a protected body is never an
5724         elaboration call, and does not require checking.
5725         (Same_Elaboration_Scope): Take into account protected types for both
5726         entities.
5727         (Activate_Elaborate_All_Desirable): New procedure
5728
5729         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
5730         desirable
5731
5732         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
5733         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
5734
5735         * lib-writ.ads, lib-writ.adb: 
5736         Implement new AD/ED for Elaborate_All/Elaborate desirable
5737         Use new Elaborate_All_Desirable flag in N_With_Clause node
5738
5739         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
5740         N_Free_Statement nodes.
5741         Define new class N_Subprogram_Instantiation
5742         Add Elaborate_Desirable flag to N_With_Clause node
5743         Add N_Delay_Statement (covering two kinds of delay)
5744
5745         * debug.adb: Introduce d.f flag for compiler
5746         Add -da switch for binder
5747
5748 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5749             Cyrille Comar  <comar@adacore.com>
5750
5751         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
5752         for task component, in the case of a limited aggregate. The enclosed
5753         object declaration will create it earlier. Otherwise, in the case of a
5754         nested aggregate, the object may appear in the wrong scope.
5755         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
5756         (Gen_Assign): If the component being assigned is an array type and the
5757         expression is itself an aggregate, wrap the assignment in a block to
5758         force finalization actions on the temporary created for each row of the
5759         enclosing object.
5760         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
5761         structures are initialized after all discriminants are set so that
5762         they can be accessed even when their offset is dynamic.
5763
5764 2005-11-14  Robert Dewar  <dewar@adacore.com>
5765             Hristian Kirtchev  <kirtchev@adacore.com>
5766
5767         * sem_attr.adb: Implement Machine_Rounding attribute
5768         (Analyze_Access_Attribute): The access attribute may appear within an
5769         aggregate that has been expanded into a loop.
5770         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
5771         'Terminated whenever the prefix is of a task interface class-wide type.
5772         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
5773         the prefix is of a task interface class-wide type.
5774
5775         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
5776         to avoid warnings.
5777
5778         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
5779         Remove pragma Inline for [Unaligned_]Valid.
5780         Add comments that Valid routines do not work for Vax_Float
5781
5782         * exp_attr.adb: Implement Machine_Rounding attribute
5783
5784         * snames.h: Add entry for Machine_Rounding attribute
5785
5786 2005-11-14  Javier Miranda  <miranda@adacore.com>
5787             Robert Dewar  <dewar@adacore.com>
5788             Hristian Kirtchev  <kirtchev@adacore.com>
5789
5790         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
5791         and related): For a prefix that is an explicit dereference of an
5792         access to unconstrained packed array type, annotate the dereference
5793         with an actual subtype so GIGI can make a correct size computation.
5794         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
5795         'Unrestricted_Access, if the designated type is an interface we
5796         add a type conversion to force the displacement of the pointer
5797         to the secondary dispatch table.
5798         Use Universal_Real instead of Long_Long_Float when we need a high
5799         precision float type for the generated code (prevents gratuitous
5800         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
5801         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
5802         'Terminated for task interface class-wide objects. Generate a call to
5803         the predefined dispatching routine used to retrieve the _task_id from
5804         a task corresponding record.
5805         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
5806
5807         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5808         (Check_Dispatching_Operation): Protect the frontend againts
5809         previously detected errors.
5810
5811         * Makefile.rtl: Add new instantiations of system.fat_gen
5812
5813         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
5814         Change name of instantiated package for better consistency
5815         with newly added system.fat_gen instantiations.
5816
5817         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
5818         s-fvagfl.ads: New files.
5819
5820 2005-11-14  Cyrille Comar  <comar@adacore.com>
5821             Thomas Quinot  <quinot@adacore.com>
5822
5823         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
5824         assignment of a value of a tagged type that has been rewritten to a
5825         block statement, it is known by construction that no checks are
5826         necessary for the statements within the block: analyze it with checks
5827         suppressed.
5828         (Expand_N_If_Statement): When killing a dead then-branch in an
5829         if-statement that has elsif_parts, recompute the Current_Value node
5830         for any entity whose value is known from the condition of the first
5831         elsif_part.
5832         (Expand_N_Return_Statement): When returning a mutable record, convert
5833         the return value into its actual subtype in order to help the backend
5834         to return the actual size instead of the maximum. This is another
5835         aftermath of not returning mutable records on the sec-stack anymore.
5836
5837         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
5838         handling of error msg for suspicious reverse range iteration.
5839         (Check_Possible_Current_Value_Condition): Move declaration from body to
5840         spec, to allow this subprogram to be called from exp_ch5.
5841
5842 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5843
5844         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
5845         generate a set of nested array aggregates instead of a single flat
5846         aggregate for multi-dimensional arrays.
5847
5848 2005-11-14  Pascal Obry  <obry@adacore.com>
5849
5850         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
5851         by spawnve is a process handle, no need to convert. Add a parameter
5852         close to control wether the process handle must be closed.
5853         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
5854         a process handle, not need to convert.
5855         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
5856
5857         * g-expect.adb: (Kill): Document the new close parameter.
5858         (Close): Do not release the process handle in the kill there as
5859         waitpid() is using it.
5860         (Send_Signal): Release the process handle.
5861
5862 2005-11-14  Robert Dewar  <dewar@adacore.com>
5863
5864         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
5865         need a high precision float type for the generated code (prevents
5866         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5867         used).
5868
5869         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
5870         need a high precision float type for the generated code (prevents
5871         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5872         used).
5873         (Expand_Width_Attribute): In configurable run-time, the attribute is not
5874         allowed on non-static enumeration subtypes. Force a load error to emit
5875         the correct diagnostic.
5876
5877 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5878             Robert Dewar  <dewar@adacore.com>
5879             Ed Schonberg  <schonberg@adacore.com>
5880
5881         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
5882         subtype to compute the size of the designated object at run-time,
5883         create such a subtype and store it in the Actual_Designated_Subtype
5884         attribute of the N_Free_Statement.
5885         Generate itype for classwide designated object in both cases of
5886         user-specified storage pool: specific and class-wide, not only in the
5887         specific case.
5888         Raise CE when trying to set a not null access type object to null.
5889         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
5890         an explicit loop, because freeze nodes make its position variable.
5891
5892         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
5893         null object.
5894
5895 2005-11-14  Javier Miranda  <miranda@adacore.com>
5896
5897         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
5898         Build_Stream_Procedure): Add the null-excluding attribute to the first
5899         formal.
5900         This has no semantic meaning under Ada95 mode but it is a
5901         requirement under Ada05 mode.
5902
5903         * par-ch3.adb (P_Access_Definition): Addition of warning message if
5904         the null exclusion is used under Ada95 mode
5905         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
5906         (P_Access_Definition): Remove assertion that forbids the use of
5907         the null-exclusion feature in Ada95.
5908
5909 2005-11-14  Robert Dewar  <dewar@adacore.com>
5910
5911         * impunit.adb: Exclude container helper units not intended for use by
5912         users.
5913
5914 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5915
5916         * freeze.adb (Freeze_Entity): For an access formal that is an access
5917         to subprogram, freeze the anonymous subprogram type at the same time,
5918         to prevent later freezing in the wrong scope, such as the enclosing
5919         subprogram body.
5920         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
5921         subprogram whenever available.
5922
5923 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5924
5925         PR ada/23732
5926         * gnatvsn.ads (Library_Version): Bump to 4.1
5927
5928 2005-11-14  Robert Dewar  <dewar@adacore.com>
5929
5930         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
5931         Storage_Offset to avoid wrap around causing invalid results.
5932
5933 2005-11-14  Pascal Obry  <obry@adacore.com>
5934
5935         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
5936         cross-compiler.
5937         (Scan_Bind_Arg): Fail with an error message if -M option is used
5938         on a native compiler.
5939
5940 2005-11-14  Robert Dewar  <dewar@adacore.com>
5941             Vincent Celier  <celier@adacore.com>
5942
5943         * gprep.adb: Implement -C switch to scan comments
5944
5945         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
5946
5947         * scans.ads: Comment updates (including new use of Tok_Comment in
5948         preprocessing)
5949
5950         * opt.ads: Add documentation for flags that are used by gprmake,
5951         currently and in the next version of gprmake.
5952         (Verbosity_Level): New variable
5953         Add Replace_In_Comments switch
5954
5955         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
5956         and -vm.
5957         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
5958
5959 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5960
5961         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
5962         message, friendlier.
5963
5964 2005-11-14  Robert Dewar  <dewar@adacore.com>
5965
5966         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
5967
5968 2005-11-14  Doug Rupp  <rupp@adacore.com>
5969
5970         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
5971
5972 2005-11-14  Robert Dewar  <dewar@adacore.com>
5973
5974         * interfac.ads: Change declarations of IEEE float types so that we no
5975         longer need a separate version of this package for VMS.
5976
5977 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5978
5979         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
5980         internal entity created for the declaration of a child subprogram body
5981         with no spec as coming from source, to generate proper cross-reference
5982         information.
5983
5984 2005-11-14  Vincent Celier  <celier@adacore.com>
5985
5986         * make.adb (Compile_Sources): Change verbose message to minimum
5987         verbosity level High for "is in an Ada library", "is a read-only
5988         library" and "is an internal library",
5989         (Create_Binder_Mapping_File): Path name of ALI file for library project
5990         must include the library directory, not the object directory.
5991         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
5992         for new switches -vl, -vm and -vh.
5993         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
5994         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
5995         (Compile_Sources): Do not attempt to compile if an ALI file is missing
5996         in a project that is externally built.
5997         (Compute_All_Imported_Projects): New procedure
5998         (Gnatmake): Check if importing libraries should be regenerated because
5999         at least an imported library is more recent.
6000         (Initialize): For each project compute the list of the projects it
6001         imports directly or indirectly.
6002         (Add_Library_Search_Dir): New procedure, used in place of
6003         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
6004         put in the search paths.
6005         (Add_Source_Search_Dir): New procedure, used in place of
6006         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
6007         put in the search paths.
6008         (Mark_Directory): Resolve the absolute path the directory before marking
6009         it.
6010
6011         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
6012         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
6013         Switch. Do not handle any exception.
6014         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
6015         so that the switch is recognized as valid.
6016         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
6017
6018 2005-11-14  GNAT Script  <nobody@adacore.com>
6019
6020         * Make-lang.in: Makefile automatically updated
6021
6022 2005-11-14  Pascal Obry  <obry@adacore.com>
6023
6024         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
6025         used.
6026         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
6027         In both cases the last argument was dropped.
6028
6029 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
6030
6031         * namet.h: (Column_Numbe): New type.
6032         (Get_Column_Number): Define to sinput__get_column_number.
6033         (Instantiation): Define to sinput__instantiation.
6034         (Get_Column_Number): Declare.
6035         (Instantiation): Likewise.
6036
6037 2005-11-14  Robert Dewar  <dewar@adacore.com>
6038
6039         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
6040         syntax, which could cause compiler hangs.
6041
6042 2005-11-14  Vincent Celier  <celier@adacore.com>
6043
6044         * prj-ext.adb: Take into account new environment variable
6045         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
6046         are defined.
6047         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
6048         normalize its path name, making it absolute and resolving symbolic
6049         links, and replace the original if resolved path is different.
6050
6051 2005-11-14  Vincent Celier  <celier@adacore.com>
6052
6053         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
6054         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
6055
6056 2005-11-14  Emmanuel Briot  <briot@adacore.com>
6057
6058         * prj-pp.adb (Print): Do not output the with statement if the
6059         associated name is empty, which happens for virtual extending projects.
6060         (Print): Preserve the "extends all" attribute when printing the project.
6061
6062         * prj-tree.ads (String_Value_Of): Add comment about returned value for
6063         a virtual extending project.
6064
6065 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6066
6067         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
6068         rhs of an assignment even if the type is unconstrained, when the
6069         context is non-expanding.
6070         In an inlined body, if the context type is private,
6071         resolve with its full view, which must be a composite type.
6072
6073 2005-11-14  Robert Dewar  <dewar@adacore.com>
6074             Ed Schonberg  <schonberg@adacore.com>
6075
6076         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
6077         Do not give obsolescent warning on with of subprogram (since we
6078         diagnose calls)
6079         (Analyze_With_Clause): Add test for obsolescent package
6080         (Install_Context_Clauses): If the unit is the body of a child unit, do
6081         not install twice the private declarations of the parents, to prevent
6082         circular lists of Use_Clauses in a parent.
6083         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
6084         compiling body of child unit.
6085         Use new class N_Subprogram_Instantiation
6086         (Expand_With_Clause): If this is a private with_clause for a child unit,
6087         appearing in the context of a package declaration, then the implicit
6088         with_clauses generated for parent units are private as well.
6089         (License_Check): Do not generate message if with'ed unit is internal
6090
6091 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6092             Ed Schonberg  <schonberg@adacore.com>
6093             Thomas Quinot  <quinot@adacore.com>
6094
6095         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
6096         names are internal, because they will not have a corresponding partner
6097         in the actual package.
6098         (Analyze_Formal_Package): Move the setting of the formal package spec's
6099         Generic_Parent field so that it occurs prior to analyzing the package,
6100         to allow proper operation of Install_Parent_Private_Declarations.
6101         (Analyze_Package_Instantiation): Set the instantiated package entity's
6102         Package_Instantiation field.
6103         (Get_Package_Instantiation_Node): Move declaration to package spec.
6104         Retrieve the N_Package_Instantiation node when the Package_Instantiation
6105         field is present.
6106         (Check_Generic_Child_Unit): Within an inlined call, the only possible
6107         instantiation is Unchecked_Conversion, for which no parents are needed.
6108         (Inline_Instance_Body): Deinstall and record the use_clauses for all
6109         parent scopes of a scope being removed prior to inlining an instance
6110         body.
6111         (Analyze_Package_Instantiation): Do not perform front-end inlining when
6112         the current context is itself an instance within a non-instance child
6113         unit, to prevent scope stack errors.
6114         (Save_References): If the node is an aggregate that is an actual in a
6115         call, rewrite as a qualified expression to preserve some type
6116         information, to resolve possible ambiguities in the instance.
6117         (Instance_Parent_Unit): New global variable to record the ultimate
6118         parent unit associated with a generic child unit instance (associated
6119         with the existing Parent_Unit_Visible flag).
6120         (type Instance_Env): New component Instance_Parent_Unit for stacking
6121         parents recorded in the global Instance_Parent_Unit.
6122         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
6123         stack.
6124         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
6125         it's not a top-level unit, and only do this if Instance_Parent_Unit is
6126         not already set. Replace test of Is_Child_Unit with test of parent's
6127         scope against package Standard. Add comments and a ??? comment.
6128         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
6129         on a child instance parent to test that the parent equals
6130         Instance_Parent rather than simply checking that the unit is not a
6131         child unit.
6132         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
6133         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
6134         a formal interface are ancestors of the corresponding actual.
6135         (Validate_Formal_Interface_Type): Additional legality checks.
6136         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
6137         interface types with ancestors.
6138         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
6139         to diagnose attempts to use generic within its own declaration.
6140
6141 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6142             Javier Miranda  <miranda@adacore.com>
6143
6144         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
6145         discriminant.
6146         (Build_Private_Derived_Type): The entity of the created full view of the
6147         derived type does not come from source. If after installing the private
6148         declarations of the parent scope the parent is still private, use its
6149         full view to construct the full declaration of the derived type.
6150         (Build_Derived_Record_Type): Relax the condition that controls the
6151         execution of the check that verifies that the partial view and
6152         the full view agree in the set of implemented interfaces. In
6153         addition, this test now only takes into account the progenitors.
6154         (Derive_Interface_Subprograms): No need to derive subprograms
6155         of ancestors that are interfaces.
6156         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
6157         associated code.
6158         Change name Is_Package to Is_Package_Or_Generic_Package
6159         (Complete_Subprograms_Derivation): Handle the case in which the full
6160         view is a transitive derivation of the ancestor of the partial view.
6161         (Process_Full_View): Rename local subprogram Find_Interface_In_
6162         Descendant to Find_Ancestor_Interface to leave the code more clear.
6163         Remove wrong code that avoids the generation of an error message
6164         when the immediate ancestor of the partial view is an interface.
6165         In addition some minor reorganization of the code has been done to
6166         leave it more clear.
6167         (Analyze_Type_Declaration): If type has previous incomplete tagged
6168         partial view, inherit properly its primitive operations.
6169         (Collect_Interfaces): Make public, for analysis of formal
6170         interfaces.
6171         (Analyze_Interface_Declaration): New procedure for use for regular and
6172         formal interface declarations.
6173         (Build_Derived_Record_Type): Add support for private types to the code
6174         that checks if a tagged type implements abstract interfaces.
6175         (Check_Aliased_Component_Type): The test applies in the spec of an
6176         instance as well.
6177         (Access_Type_Declaration): Clean up declaration of malformed type
6178         declared as an access to its own classwide type, to prevent cascaded
6179         crash.
6180         (Collect_Interfaces): For private extensions and for derived task types
6181         and derived protected types, the parent may be an interface that must
6182         be included in the interface list.
6183         (Access_Definition): If the designated type is an interface that may
6184         contain tasks, create Master_Id for it before analyzing the expression
6185         of the declaration, which may be an allocator.
6186         (Record_Type_Declaration): Set properly the interface kind, for use
6187         in allocators, the creation of master id's for task interfaces, etc.
6188
6189 2005-11-14  Javier Miranda  <miranda@adacore.com>
6190             Ed Schonberg  <schonberg@adacore.com>
6191
6192         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
6193         omitted in case of stream attribute subprograms.
6194         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
6195         appear immediately after a subprogram body, when there is no previous
6196         subprogram declaration.
6197         Change name Is_Package to Is_Package_Or_Generic_Package
6198         (Process_Formals): A non null qualifier on a non null named access
6199         type is not an error, and is a warning only if Redundant_Constructs
6200         are flagged.
6201
6202 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6203             Ed Schonberg  <schonberg@adacore.com>
6204
6205         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
6206         nested within Analyze_Package_Specification to install the private
6207         declarations and use clauses within each of the parent units of a
6208         package instance of a generic child package.
6209         (Analyze_Package_Specification): When entering a private part of a
6210         package associated with a generic instance or formal package, the
6211         private declarations of the parent must be installed (by calling new
6212         procedure Install_Parent_Private_Declarations).
6213         Change name Is_Package to Is_Package_Or_Generic_Package
6214         (Preserve_Full_Attributes): For a synchronized type, the corresponding
6215         record is absent in a generic context, which does not indicate a
6216         compiler error.
6217
6218 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6219
6220         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
6221         not try to rewrite a renamed stream attribute, because the operations
6222         on the type may not have been generated.
6223         Handle properly a renaming_as_body generated for a stream operation
6224         whose default is abstract because the object type itself is abstract.
6225         (Find_Type): If the type is incomplete and appears as the prefix of a
6226         'Class reference, it is tagged, and its list of primitive operations
6227         must be initialized properly.
6228         (Chain_Use_Clauses): When chaining the use clauses that appear in the
6229         private declaration of a parent unit, prior to compiling the private
6230         part of a child unit, find on the scope stack the proper parent entity
6231         on which to link the use clause.
6232         (Note_Redundant_Use): Emit a warning when a redundant use clause is
6233         detected.
6234         (Analyze_Object_Renaming): An attribute reference is not a legal object
6235         if it is not a function call.
6236
6237 2005-11-14  Robert Dewar  <dewar@adacore.com>
6238             Ed Schonberg  <schonberg@adacore.com>
6239
6240         * sem_eval.adb: Implement d.f flag
6241         (Subtype_Statically_Match): A generic actual type has unknown
6242         discriminants when the corresponding actual has a similar partial view.
6243         If the routine is called to validate the signature of an inherited
6244         operation in a child instance, the generic actual matches the full view,
6245
6246 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
6247             Ed Schonberg  <schonberg@adacore.com>
6248             Robert Dewar  <dewar@adacore.com>
6249             Thomas Quinot  <quinot@adacore.com>
6250
6251         * sem_res.adb (Resolve_Call): Provide a better error message whenever
6252         a procedure call is used as a select statement trigger and is not an
6253         entry renaming or a primitive of a limited interface.
6254         (Valid_Conversion): If the operand has a single interpretation do not
6255         remove address operations.
6256         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
6257         statement to inhibit warning.
6258         (Resolve_Unary_Op): Do not produce a warning when
6259         processing an expression of the form -(A mod B)
6260         Use Universal_Real instead of Long_Long_Float when we need a high
6261         precision float type for the generated code (prevents gratuitous
6262         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
6263         (Resolve_Concatenation_Arg): Improve error message when argument is an
6264         ambiguous call to a function that returns an array.
6265         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
6266         there is an implicit operator in the given scope if we are within an
6267         instance: legality check has been performed on the generic.
6268         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
6269         after resolving operand, to avoid false warnings on overloaded calls.
6270
6271 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6272             Javier Miranda  <miranda@adacore.com>
6273
6274         PR ada/15604
6275
6276         * sem_type.adb (Covers): In an inlined body, a composite type matches
6277         a private type whose full view is a composite type.
6278         (Interface_Present_In_Ancestor): Protect the frontend against
6279         previously detected errors to ensure that its compilation
6280         with assertions enabled gives the same output that its
6281         compilation without assertions.
6282         (Interface_Present_In_Ancestor): Add support for private types.
6283         Change name In_Actual to In_Generic_Actual (clean up)
6284         (Disambiguate): New predicate In_Actual, to recognize expressions that
6285         appear in the renaming declaration generated for generic actuals, and
6286         which must be resolved in the outer context.
6287
6288 2005-11-14  Robert Dewar  <dewar@adacore.com>
6289             Thomas Quinot  <quinot@adacore.com>
6290             Hristian Kirtchev  <kirtchev@adacore.com>
6291             Ed Schonberg  <schonberg@adacore.com>
6292
6293         * sem_util.ads, sem_util.adb: Change name Is_Package to
6294         Is_Package_Or_Generic_Package.
6295         (Check_Obsolescent): New procedure.
6296         (Set_Is_Public): Remove obsolete junk test.
6297         (Set_Public_Status): Do not set Is_Public on an object whose declaration
6298         occurs within a handled_sequence_of_statemets.
6299         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
6300         for a parameterless procedure.
6301         (Enter_Name): Recognize renaming declarations created for private
6302         component of a protected type within protected operations, so that
6303         the source name of the component can be used in the debugger.
6304
6305 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6306             Robert Dewar  <dewar@adacore.com>
6307
6308         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
6309         of a generic subprogram are not visible outside the body.
6310         (Set_Warning_Switch): New procedure (code to set warning mode moved
6311         here from Switch.C so that it can be shared by pragma processing.
6312         (Check_References): Special case warning for non-modified non-imported
6313         volatile objects.
6314         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
6315         form with a string literal argument
6316
6317 2005-11-14  Javier Miranda  <miranda@adacore.com>
6318
6319         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
6320         anonymous access.
6321         (Write): Addition of "not null" to the anonymous access.
6322         (Read): Addition of "not null" to the anonymous access.
6323         (Write): Addition of "not null" to the anonymous access.
6324
6325         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
6326         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
6327         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
6328         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
6329         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
6330         "not null" to the anonymous access.
6331
6332 2005-11-14  Robert Dewar  <dewar@adacore.com>
6333
6334         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
6335         offset values
6336
6337 2005-11-14  Vincent Celier  <celier@adacore.com>
6338
6339         * switch.adb (Bad_Switch): New procedure
6340         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
6341         message when in error.
6342
6343         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
6344         Too_Many_Output_Files): Remove declarations, no longer used.
6345         (Scan_Nat): New parameter Switch
6346         (Scan_Pos): Ditto
6347         (Bad_Switch): New procedure
6348
6349         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
6350         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
6351         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
6352         to Osint.Fail. Do not handle any exception.
6353
6354 2005-11-14  Vincent Celier  <celier@adacore.com>
6355
6356         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
6357         designates a non existent directory.
6358
6359 2005-11-14  Robert Dewar  <dewar@adacore.com>
6360
6361         * xgnatugn.adb: Replace invalid membership test by 'Valid
6362
6363 2005-11-14  Vincent Celier  <celier@adacore.com>
6364
6365         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
6366         there is no object directory.
6367
6368 2005-11-14  Robert Dewar  <dewar@adacore.com>
6369
6370         * usage.adb: Minor adjustment to output format, use nn instead of nnn
6371         (so that -gnateInnn does not run into next column)
6372
6373 2005-11-14  Ed Falis  <falis@adacore.com>
6374
6375         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
6376         "constrained"
6377
6378 2005-11-14  Cyrille Comar  <comar@adacore.com>
6379
6380         * s-chepoo.ads: Add comments on Dereference.
6381         Remove unnecessary inherited abstract primitives.
6382         Cosmetic cleanup.
6383
6384 2005-11-14  Robert Dewar  <dewar@adacore.com>
6385
6386         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
6387         node parameter, not needed, since it is available as Declaration_Node.
6388
6389 2005-11-14  Geert Bosch  <bosch@adacore.com>
6390
6391         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
6392         grammatically correct.
6393
6394 2005-11-14  Vincent Celier  <celier@adacore.com>
6395
6396         * s-fileio.ads: Correct spelling error in comment
6397
6398 2005-11-14  Cyrille Comar  <comar@adacore.com>
6399             Robert Dewar  <dewar@adacore.com>
6400             Vincent Celier  <celier@adacore.com>
6401             Ben Brosgol  <brosgol@adacore.com>
6402             Jose Ruiz  <ruiz@adacore.com>
6403             Pascal Obry  <obry@adacore.com>
6404
6405         * gnat_ugn.texi: 
6406         Document that -fstack-check is needed for strict compliance with the
6407         Ada 95 Reference Manual.
6408         Correct reference to VAX systems to meet HP guidelines
6409         Add documentation for new gnatmake switches -vl, -vm and -vh
6410         Replace DEC Ada by HP Ada
6411         Replace DIGITAL by HP
6412         Remove empty section on tools in compatibility section
6413         Clarify the Windows convention semantics.
6414         Document the Win32 calling convention.
6415         The Stdcall, Win32 and DLL convention are synonyms.
6416         Add a note in -gnatR description about zero size record components
6417         Note on new >= and <= warnings for -gnatwc
6418         Document that equal sign after -gnatm is optional.
6419         Note that strip is working fine on DLL built with a Library
6420         Project. The restriction apply only to DLL built with gnatdll.
6421         Update section about the way to debug a DLL.
6422         Update information about the DLL convention.
6423         Document -C switch for gnatprep
6424         Document new attribute Library_ALI_Dir
6425         Update elaboration doc to include implicit Elaborate pragmas now
6426         generated for subprogram instantiations.
6427         Document limitation on executable names that include spaces for --GCC,
6428         --GNATBIND, and --GNATLINK switches.
6429         Document that -w causes -gnatws to be added at start of gcc switches
6430
6431         * gnat_rm.texi: Document that -mieee is needed for generating infinite
6432         and NaN values in case of overflow on machines that are not fully
6433         compliant with the IEEE floating-point standard.
6434         Create a section describing the set of compiler options needed for
6435         strict compliance with the Ada 95 Reference Manual.
6436         Add documentation for pragma Obsolescent applied to a package
6437         Clarify potential issues of mixed language programs related to the
6438         I/O buffering enabling in the elaboration of the GNAT runtime.
6439         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
6440         This documentation only patch adds extra documentsion for pragma
6441         Restrictions (No_Elaboration_Code), explaining why it is not possible
6442         to document this restriction in terms of allowed source constructs.
6443         Document string literal form of pragma Warnings
6444         Document new attribute Library_ALI_Dir
6445         Add documentation on stable attributes in project files that was missing
6446
6447         * gnat-style.texi: Indicate that paragraphs within a single comment
6448         should be separated by empty comment lines
6449
6450         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
6451         /05 respectively)
6452
6453         * bindusg.adb: Minor cleanup, put -m before -M for consistency
6454
6455 2005-11-14  Robert Dewar  <dewar@adacore.com>
6456
6457         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
6458         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
6459         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
6460         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
6461         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
6462         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
6463         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
6464         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
6465         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
6466         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
6467         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
6468         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
6469         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
6470         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
6471         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
6472         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
6473         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
6474         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
6475         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
6476         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
6477         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
6478         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
6479         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
6480         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
6481         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
6482         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
6483         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
6484         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
6485         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
6486         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
6487         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
6488         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
6489         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
6490         system-interix.ads, system-solaris-sparc.ads,
6491         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
6492         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
6493         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
6494         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
6495         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
6496         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
6497         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
6498         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
6499         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
6500         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
6501         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
6502         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
6503         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
6504         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
6505         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
6506         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
6507         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
6508         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
6509         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
6510         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
6511         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
6512         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
6513         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6514         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
6515         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
6516         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
6517         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
6518         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
6519         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
6520         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
6521         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
6522         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
6523         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
6524         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
6525         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
6526         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
6527         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
6528         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
6529         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
6530         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
6531         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
6532         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
6533         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
6534         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
6535         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
6536         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
6537         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
6538         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
6539         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
6540         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
6541         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
6542         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
6543         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
6544         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
6545         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
6546         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
6547         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
6548         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
6549         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
6550         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
6551         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
6552         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
6553         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
6554         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
6555         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
6556         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
6557         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
6558         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
6559         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
6560         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
6561         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
6562         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
6563         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
6564         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
6565         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
6566         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
6567         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
6568         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
6569         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
6570         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
6571         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
6572         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
6573         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
6574         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
6575         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
6576         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
6577         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
6578         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
6579         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
6580         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
6581         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
6582         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
6583         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
6584         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
6585         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
6586         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
6587         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
6588         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
6589         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
6590         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
6591         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
6592         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
6593         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
6594         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
6595         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
6596         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
6597         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
6598         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
6599         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
6600         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
6601         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
6602         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
6603         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
6604         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
6605         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
6606         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
6607         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
6608         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
6609         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
6610         a-numaux-darwin.ads, a-numaux-darwin.adb,
6611         a-swuwha.ads, a-stunha.ads: Minor reformatting
6612
6613 2005-11-14  Robert Dewar  <dewar@adacore.com>
6614
6615         PR ada/18434
6616         * osint-m.adb: Add pragma Elaborate_All for Osint
6617
6618 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
6619
6620         PR ada/23995
6621         * trans.c (call_to_gnu): Restore statement lost in translation.
6622
6623 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6624
6625         * init.c: Use the Linux-specific section for the IA-64/Linux target.
6626         (__gnat_adjust_context_for_raise): Add conditional code so that the
6627         IA-64 is also supported.
6628
6629 2005-11-03  James E Wilson  <wilson@specifix.com>
6630
6631         PR ada/23427
6632         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6633         TREE_OVERFLOW check.
6634
6635 2005-09-21  Olivier Hainque  <hainque@adacore.com>
6636
6637         PR ada/22418
6638         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
6639         as we create them to store a size in bits.
6640
6641 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6642
6643         PR ada/21937
6644         PR ada/22328
6645         PR ada/22381
6646         PR ada/22383
6647         PR ada/22419
6648         PR ada/22420
6649         * utils2.c (build_return_expr): New helper function.
6650         * gigi.h (build_return_expr): Declare it.
6651         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
6652         of manually building the RETURN_EXPR tree.
6653         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
6654         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
6655         build_binary_op for the "target pointer" case.  Use build_return_expr
6656         instead of manually building the RETURN_EXPR tree.
6657
6658 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
6659
6660         PR ada/23788
6661         * s-tpinop.ads: Make this unit Preelaborate.
6662
6663 2005-09-16  Andreas Jaeger  <aj@suse.de>
6664
6665         * socket.c: Add string.h for memcpy.
6666
6667 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
6668
6669         * dec-io.ads, dec-io.adb: Removed, no longer used.
6670
6671 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6672
6673         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
6674
6675         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
6676         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
6677         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
6678         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
6679         dependent units are Preelaborate.
6680         (Initialize): Call Interrupt_Managemeent.Initialize and
6681         OS_Primitives.Initialize to ensure proper initialization of this unit.
6682         Remove use of System.Soft_Links
6683         Make this unit Preelaborate.
6684
6685         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
6686         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
6687         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
6688         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
6689         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
6690         s-tratas.ads, s-tasinf.ads: Minor reformatting.
6691         Add pragma Preelaborate, since these packages are suitable for this
6692         categorization.
6693         Update comments.
6694
6695         * s-traent-vms.ads, s-intman-dummy.adb,
6696         s-taprop-dummy.adb: Make this unit Preelaborate.
6697
6698         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
6699         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
6700         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
6701         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
6702         s-intman-solaris.adb, s-intman-irix-athread.adb,
6703         s-intman-irix.adb: Mark this unit Preelaborate.
6704         (Initialize): New procedure.
6705         Update comments.
6706
6707         * s-taspri-linux.ads: Removed.
6708
6709         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
6710         as done by other implementations (e.g. posix).
6711
6712         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
6713         responsible for deferring abort.
6714         Mark this unit Preelaborate.
6715
6716         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
6717         proper initialization of the tasking run-time.
6718
6719         * s-tasdeb.ads: Mark this unit Preelaborate.
6720         (Known_Tasks): Add explicit default value to avoid elaboration code.
6721
6722         * s-inmaop-vms.adb (Elaboration code): Add call to
6723         Interrupt_Management.Initialize since the elaboration code depends on
6724         proper initialization of this package.
6725
6726         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
6727         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
6728         s-osprim-posix.adb: Make this unit Preelaborate.
6729
6730         * a-calend.adb: Add call to OS_Primitives.Initialize
6731
6732         * a-elchha.adb: Update use of Except.Id.Full_Name.
6733         Minor reformatting.
6734         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
6735
6736         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
6737         Move with clauses outside Warnings Off now that dependent units are
6738         Preelaborate.
6739         Use raise xxx with "..."; Ada 2005 form.
6740
6741         * a-taside.ads, a-taside.adb:
6742         Remove some dependencies, to make it easier to make this unit truly
6743         Preelaborate.
6744         Rewrite some code to be conformant with Preelaborate rules.
6745
6746         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
6747         marked Preelaborate in the future.
6748
6749         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
6750         these units Preelaborate.
6751
6752         * s-exctab.adb: Update use of Except.Id.Full_Name.
6753
6754         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
6755         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
6756         Set_Exc_Stack_Addr): Removed, no longer used.
6757         Remove reference to *Machine_State_Addr*, no longer needed.
6758
6759         * s-stalib.ads: Mark this unit as Preelaborate[_05].
6760         (Exception_Data): Full_Name is now a System.Address so that this unit
6761         can be made Preelaborate.
6762         Clean up/simplify code thanks to Full_Name being a System.Address.
6763         Remove obsolete pragma Suppress (All_Checks), no longer needed.
6764
6765         * s-taskin.ads, s-taskin.adb:
6766         Move with clauses outside Warnings Off now that dependent units are
6767         Preelaborate.
6768         Make this unit Preelaborate.
6769         (Initialize): New proceduure, replace elaboration code and makes the
6770         set up of the tasking run-time cleaner.
6771         (Detect_Blocking): Now a function instead of a deferred boolean, to
6772         obey Preelaborate rules.
6773
6774         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
6775         soft links, no longer used.
6776
6777         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
6778         packages are suitable for this categorization.
6779
6780         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
6781         since we compile run-time sources in Ada 2005 mode.
6782         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
6783         avoid having s-taprop*.adb depend on s-soflin and to avoid code
6784         duplication.
6785         Remove reference to *Machine_State_Addr*, no longer needed.
6786
6787 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6788
6789         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
6790         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6791         Remove reference to System.Exceptions.
6792
6793         * s-mastop-x86.adb: Removed, no longer used.
6794
6795         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
6796
6797         * a-excach.adb: Minor reformatting.
6798
6799         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
6800         instead fix new warnings that were hidden by this change.
6801         (AAA, ZZZ): Removed, replaced by...
6802         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
6803         are used instead of constants, to help make Ada.Exception truly
6804         preelaborate.
6805         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
6806         Raise_Storage_Error): File is now a System.Address, to simplify code.
6807         (Elab code): Removed, no longer used.
6808         (Null_Occurrence): Remove Warnings Off and make this construct
6809         preelaborate.
6810         Remove code related to front-end zero cost exception handling, since
6811         it is no longer used.
6812         Remove -gnatL/-gnatZ switches.
6813
6814         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
6815         Update use of Except.Msg.
6816
6817         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
6818         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
6819         to front-end zero cost exception handling, since it is no longer used.
6820         Remove -gnatL/-gnatZ switches.
6821
6822         * lib-writ.ads: Minor reformatting
6823         Remove doc of UX
6824
6825         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
6826
6827         * Make-lang.in: Remove references to s-except.ads
6828
6829         * s-except.ads: Removed, no longer used.
6830
6831         * s-mastop.ads, s-mastop.adb:
6832         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6833         Remove reference to System.Exceptions.
6834
6835         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
6836         switch-b.adb: Remove code related to front-end zero cost exception
6837         handling, since it is no longer used.
6838         Remove -gnatL/-gnatZ switches.
6839
6840 2005-09-01  Robert Dewar  <dewar@adacore.com>
6841             Gary Dismukes  <dismukes@adacore.com>
6842             Javier Miranda  <miranda@adacore.com>
6843
6844         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
6845         type by valid test and generate warning.
6846         (Tagged_Membership): Generate call to the run-time
6847         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
6848         Change formal name Subtype_Mark to Result_Definition in several calls to
6849         Make_Function_Specification.
6850         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
6851         check for proper accessibility of the operand of a class-wide allocator.
6852         The check can be left out if checks are suppressed or if the expression
6853         has a specific tagged type whose level is known to be safe.
6854
6855         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
6856         generates the run-time check associated with null-excluding entities.
6857         (Expand_N_Return_Statement): Add tests to determine if the accessibility
6858         check on the level of the return expression of a class-wide function
6859         can be elided. The check usually isn't needed if the expression has a
6860         specific type (unless it's a conversion or a formal parameter). Also
6861         add a test for whether accessibility checks are suppressed. Augment
6862         the comments to describe the conditions for performing the check.
6863
6864 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
6865             Javier Miranda  <miranda@adacore.com>
6866             Gary Dismukes  <dismukes@adacore.com>
6867             Ed Schonberg  <schonberg@adacore.com>
6868
6869         * a-tags.adb (IW_Membership): Give support to
6870         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
6871         subprogram has been extended to look for the tag in the ancestors tag
6872         table.
6873         Update the structure of the GNAT Dispatch Table to reflect the
6874         additional two tables used in dispatching selects.
6875         Introduce appropriate array types and record components in
6876         Type_Specific_Data to reflect the two tables.
6877         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
6878         the TSD of a tag, indexed by position.
6879         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
6880         operation kind in the TSD of a tag, indexed by position.
6881
6882         * a-tags.ads: Introduce an enumeration type to capture different
6883         primitive operation kinds. Define a constant reflecting the number of
6884         predefined primitive operations.
6885         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
6886         of an entry wrapper.
6887         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
6888         callable entity of a primitive operation.
6889
6890         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
6891         primitive operations used in dispatching selects for limited
6892         interfaces, limited tagged, task and protected types what implement a
6893         limited interface.
6894         (Freeze_Type): Generate the bodies of the primitive operations used in
6895         dispatching selects for limited tagged, task and protected types that
6896         implement a limited interface. Generate statements to populate the two
6897         auxiliary tables used for dispatching in select statements.
6898         (Freeze_Record_Type): Add call to initialize the dispatch table entries
6899         associated with predefined interface primitive operations.
6900         (Build_Dcheck_Function): Change Set_Subtype_Mark to
6901         Set_Result_Definition.
6902         (Build_Variant_Record_Equality): Change Subtype_Mark to
6903         Result_Definition.
6904         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
6905         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
6906         (Build_Assignment): Simplify the code that adds the run-time-check.
6907         (Expand_N_Object_Declaration): Code cleanup.
6908
6909         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
6910         entries when there is a protected type that implements a limited
6911         interface.
6912
6913         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
6914         common routines used in expansion of dispatching selects.
6915         (Add_Private_Declarations): Select the appropriate protection type when
6916         there is a protected type that implements a limited interface.
6917         (Build_Parameter_Block): Generate a wrapped parameter block.
6918         (Build_Protected_Subprogram_Body): Select the appropriate type for
6919         locking entries when there is a protected type that implements a
6920         limited interface.
6921         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
6922         classified as entry wrappers.
6923         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
6924         asynchronous selects.
6925         (Expand_N_Conditional_Entry_Call): Add support for expansion of
6926         dispatching conditional selects.
6927         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
6928         protection when there is a protected type that implements limited
6929         interfaces.
6930         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
6931         timed selects.
6932         (Extract_Dispatching_Call): Extract the entity of the name of a
6933         dispatching call, the object parameter, actual parameters and
6934         corresponding formals.
6935         (Make_Initialize_Protection): Correct logic of protection initialization
6936         when there is a protected type that implements a limited interface.
6937         (Parameter_Block_Pack): Populate a wrapped parameter block with the
6938         values of actual parameters.
6939         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
6940         block and assign them to the original actual parameters.
6941
6942         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
6943         (Build_Protected_Sub_Specification): Change the type and name of the
6944         last formal to account for the increased variety of protection modes.
6945
6946         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
6947         entities. Used to save the value of the Is_Hidden attribute when the
6948         limited-view is installed.
6949         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
6950         the attribute of procedures classified as entry wrappers.
6951         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
6952         entity of a primitive wrapper.
6953         (Write_Entity_Flags): Output the name and value of the
6954         Is_Primitive_Wrapper attribute.
6955         (Write_Field27_Name): Output the name and entity of the field Wrapped_
6956         Entity.
6957         (Underlying_Type): If we have an incomplete entity that comes from
6958         the limited view then we return the Underlying_Type of its non-limited
6959         view if it is already available.
6960         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
6961         including operators.
6962         (Write_Field26_Name): Add entry for Overridden_Operation
6963         (Overridden_Operation): New attribute of functions and procedures.
6964
6965         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
6966         predefined position in the dispatch table for the primitive operations
6967         used in dispatching selects.
6968         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
6969         predefined primitive operations and replace it with
6970         Default_Prim_Op_Count.
6971         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6972         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
6973         the names of the generated primitive operations used in dispatching
6974         selects.
6975         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
6976         case of abstract interface types. They will be inherit by the objects
6977         implementing the interface.
6978         (Make_DT): There is no need to inherit the dispatch table of the
6979         ancestor interface for the elaboration of abstract interface types.
6980         The dispatch table will be inherited by the object implementing the
6981         interface.
6982         (Copy_Secondary_DTs): Add documentation.
6983         (Validate_Position): Improve this static check in case of
6984         aliased subprograms because aliased subprograms must have
6985         the same position.
6986         (Init_Predefined_Interface_Primitives): New subprogram that initializes
6987         the entries associated with predefined primitives of all the secondary
6988         dispatch tables.
6989         (Build_Anonymous_Access_Type): Removed.
6990         (Expand_Interface_Actuals): With the previous cleanup there is no need
6991         to build an anonymous access type. This allows further cleanup in the
6992         code generated by the expander.
6993         (Expand_Interface_Conversion): If the actual is an access type then
6994         build an internal function to handle the displacement. If the actual
6995         is null this function returns null because no displacement is
6996         required; otherwise performs a type conversion that will be
6997         expanded in the code that returns the value of the displaced actual.
6998         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
6999         conversions that have no effect in the generated code because no
7000         displacement is required. Code cleanup; use local variables to
7001         avoid repeated calls to the subprogram directly_designated_type().
7002
7003         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
7004         Classify the primitive operations used in dispatching selects as
7005         predefined.
7006         (Implements_Limited_Interface): Determine whether some type either
7007         directly implements a limited interface or extends a type that
7008         implements a limited interface.
7009         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
7010         (Expand_Subtype_From_Expr): Do not build actual subtype if the
7011         expression is limited.
7012         (Find_Interface_Tag): Add code to handle class-wide types and
7013         entities from the limited-view.
7014
7015         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
7016         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
7017         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
7018         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
7019         Set_Prim_Op_Kind.
7020
7021         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
7022         of procedure name or prefix that appears as a trigger in a triggering
7023         alternative.
7024
7025         * uintp.ads: Introduce constants Uint_11 and Uint_13.
7026
7027 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7028
7029         * s-tataat.adb, a-tasatt.adb:
7030         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
7031
7032         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
7033         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
7034         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
7035         longer used.
7036
7037 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7038             Jose Ruiz  <ruiz@adacore.com>
7039
7040         * s-taprop-vxworks.adb:
7041         Move with clauses outside Warnings Off now that dependent units are
7042         Preelaborate.
7043         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
7044         initialization of this unit.
7045         (Specific): Add new procedures Initialize and Delete so that this
7046         package can be used for VxWorks 5.x and 6.x
7047         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
7048         differences between VxWorks 5.x and 6.x
7049         Minor reformatting.
7050         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
7051         caller.
7052         Use only Preelaborate-compatible constructs.
7053
7054         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
7055         Primitives.Operations.
7056         (Delete, Initialize): New procedures.
7057
7058         * s-osinte-vxworks.adb: Body used to handle differences between
7059         VxWorks 5.x and 6.x
7060         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
7061
7062         * s-osinte-vxworks.ads: Minor reformatting.
7063         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
7064         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
7065         and 6.
7066         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
7067         between Vxworks 5 and 6.
7068         (taskLock, taskUnlock): Removeed, no longer used.
7069
7070         * adaint.c: The wait.h header is not located in the sys directory on
7071         VxWorks when using RTPs.
7072         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
7073         using RTPs.
7074         (__gnat_dup): dup is available on Vxworks when using RTPs.
7075         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
7076
7077         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
7078
7079         * expect.c: The wait.h header is not located in the sys directory on
7080         VxWorks when using RTPs.
7081
7082 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7083
7084         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
7085
7086         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
7087
7088         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7089         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7090         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
7091         g-soccon-freebsd.ads: Add new constants:
7092          IP_MULTICAST_IF
7093          SO_RCVTIMEO/SO_SNDTIMEO
7094          IOV_MAX
7095
7096         * gen-soccon.c:
7097         Move all target-specific file inclusions and macro definitions to
7098         gsocket.h, in order to ensure that any C code in socket.c will see a
7099         set of constants that is consistent with the contents of g-soccon.ads.
7100
7101         * gsocket.h: Code imported from gen-soccon.c:
7102         Move all target-specific file inclusions and macro definitions to
7103         gsocket.h, in order to ensure that any C code in socket.c will see a set
7104         of constants that is consistent with the contents of g-soccon.ads.
7105         This change also makes gen-soccon self-contained (removing dependencies
7106         upon GCC internal headers).
7107
7108         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
7109         iovecs at a time.
7110         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
7111
7112         * socket.c: Minor reformatting.
7113
7114 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7115             Thomas Quinot  <quinot@adacore.com>
7116
7117         * fname-sf.adb, mlib-tgt.ads,
7118         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
7119         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
7120         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
7121         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
7122         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
7123         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
7124         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
7125         makegpr.adb: Remove redundant use_clauses.
7126
7127 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7128
7129         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
7130         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
7131         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
7132         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
7133         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
7134         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
7135         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
7136         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
7137         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7138         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
7139         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
7140         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
7141         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
7142         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
7143         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
7144         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7145         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7146         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
7147         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
7148         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7149         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
7150         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
7151         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
7152         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
7153         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
7154         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
7155         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
7156         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
7157         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
7158         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
7159         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
7160         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
7161         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
7162         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
7163         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
7164         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
7165         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
7166         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
7167         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
7168         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
7169         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
7170         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
7171         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
7172         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
7173         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
7174         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
7175         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
7176         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
7177         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
7178         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
7179         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
7180         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
7181         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
7182         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
7183         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
7184         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
7185         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
7186         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
7187         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
7188         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
7189         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
7190         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
7191         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
7192         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
7193         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
7194         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
7195         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
7196         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
7197         and always use the no parameter form for consistency.
7198
7199         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
7200
7201 2005-09-01  Robert Dewar  <dewar@adacore.com>
7202
7203         * binde.adb: Minor reformatting
7204         (Find_Elab_Order): Output warning if -p used with static elab order
7205
7206 2005-09-01  Robert Dewar  <dewar@adacore.com>
7207
7208         * checks.adb (Check_Needed): New procedure, deals with removing checks
7209         based on analysis of short-circuited forms. Also generates warnings for
7210         improper use of non-short-circuited forms.
7211         Code clean ups.
7212
7213 2005-09-01  Robert Dewar  <dewar@adacore.com>
7214
7215         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
7216         with 'Valid tests.
7217
7218 2005-09-01  Robert Dewar  <dewar@adacore.com>
7219
7220         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
7221         spec.
7222         Implement new insertion char < (conditional warning)
7223         * errutil.adb, erroutc.adb: Implement new insertion char <
7224         (conditional warning).
7225         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
7226         (Error_Msg_Warn): New variable for < insertion char.
7227         * prj-nmsc.adb: Implement new errout insertion char < (conditional
7228         warning).
7229         (Check_For_Source): Change value of Source_Id only after the current
7230         source has been dealt with.
7231
7232 2005-09-01  Robert Dewar  <dewar@adacore.com>
7233             Doug Rupp  <rupp@adacore.com>
7234
7235         * exp_attr.adb: Handle vax fpt for 'Valid attribute
7236         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
7237         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
7238         (Valid_D, Valid_F, Valid_G): New functions
7239
7240 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7241             Hristian Kirtchev  <kirtchev@adacore.com>
7242             Javier Miranda  <miranda@adacore.com>
7243
7244         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
7245         from object notation, the original node is unanalyzed and carries no
7246         semantic information, so that accessiblity checks must be performed on
7247         the type of the actual itself.
7248         (Expand_N_Subprogram_Declaration): Change last actual parameter for
7249         compatibility with Build_Protected_Sub_Specification.
7250         (Check_Overriding_Inherited_Interfaces): Add suport to handle
7251         overloaded primitives.
7252         (Register_Interface_DT_Entry): Use the new name of the formal
7253         the the calls to Expand_Interface_Thunk
7254
7255         * exp_dbug.ads: Augment comments on encoding of protected types to
7256         include the generation of dispatching subprograms when the type
7257         implements at least one interface.
7258
7259         * lib.ads: Extend information in Load_Stack to include whether a given
7260         load comes from a Limited_With_Clause.
7261
7262         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
7263         whether a potential circularity is harmless, because it includes units
7264         loaded through a limited_with clause. Extends previous treatment which
7265         did not handle properly arbitrary combinations of limited and
7266         non-limited clauses.
7267
7268 2005-09-01  Nicolas Setton  <setton@adacore.com>
7269
7270         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
7271         to be encoded as typ___XBLU_lowerbound__upperbound instead of
7272         typ___XB_lowerbound__upperbound.
7273
7274 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7275
7276         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
7277         dummy access formal for RACW/RAS TypeCode TSS.
7278         (Build_TypeCode_Call): Do not generate dummy null access actual for
7279         calls to the TypeCode TSS.
7280
7281 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7282
7283         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
7284         fully qualified name, to distinguish instances with the same local name.
7285
7286         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
7287         fully qualified.
7288
7289 2005-09-01  Robert Dewar  <dewar@adacore.com>
7290
7291         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
7292         packed arrays.
7293
7294 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
7295
7296         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
7297         (Free): New deallocation procedure for filter elements
7298         (Close): Deallocate any existing filter for the concerned connection
7299
7300 2005-09-01  Laurent Pautet  <pautet@adacore.com>
7301
7302         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
7303         position set is provided, we compute one in order to reduce the maximum
7304         length of the keys.  This computation first selects a character
7305         position between 1 and the minimum length of the keys in order to
7306         avoid reducing one of the keys to an empty string.
7307         (Initialize, Compute): When the ratio V to K is too low, the algorithm
7308         does not converge. The initialization procedure now comes with a
7309         maximum number of iterations such that when exceeded, an exception is
7310         raised in Compute. The user can initialize this ratio to another value
7311         and try again
7312         Reformating and updated headers.
7313
7314 2005-09-01  Javier Miranda  <miranda@adacore.com>
7315
7316         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
7317         that given an entity T creates and returns an Itype that duplicates the
7318         contents of T. The returned Itype has the null-exclusion
7319         attribute set to True, and its Etype attribute references T
7320         to keep the association between the two entities.
7321         Update copyright notice
7322
7323         * sem_aggr.adb (Check_Can_Never_Be_Null,
7324         Aggregate_Constraint_Checks, Resolve_Aggregate,
7325         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
7326
7327         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
7328
7329 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
7330             Robert Dewar  <dewar@adacore.com>
7331             Hristian Kirtchev  <kirtchev@adacore.com>
7332
7333         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
7334         Result_Definition.
7335
7336         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
7337         function specs.
7338         Call Set_Result_Definition instead of Set_Subtype_Mark.
7339         (P_Subprogram_Specification): Add parsing of anonymous access result
7340         plus null exclusions. Call Set_Result_Definition instead of
7341         Set_Subtype_Mark.
7342
7343         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7344         (P_Access_Type_Definition): Add parsing for an anonymous access result
7345         subtype, plus parsing for null exclusions. Call Set_Result_Definition
7346         instead of Set_Subtype_Mark.
7347
7348         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7349         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
7350         (Result_Definition): New function for N_Function_Specifications.
7351         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
7352         N_Function_Specification.
7353         (Set_Null_Exclusion_Present): Allow this flag for
7354         N_Function_Specification.
7355         (Set_Result_Definition): New procedure for N_Function_Specifications.
7356         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
7357         and N_Function_Specification.
7358
7359         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
7360         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
7361         Add support for LIMITED NEW for Ada 2005 AI-419
7362         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
7363         syntax for anonymous access results.
7364         Replace Subtype_Mark field by Result_Definition in
7365         N_Function_Specification and N_Access_Definition specs.
7366         Add Null_Exclusion_Present to spec of N_Function_Specification.
7367         (Result_Definition): New function for N_Function_Specification and
7368         N_Access_Function_Definition.
7369         (Set_Result_Definition): New procedure for N_Function_Specification and
7370         N_Access_Function_Definition.
7371
7372         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
7373         Result_Definition for cases of N_Access_Function_Definition and
7374         N_Function_Specification.
7375         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
7376
7377 2005-09-01  Vincent Celier  <celier@adacore.com>
7378
7379         * lib-writ.adb: Update Copyright notice
7380         (Write_With_Lines): On platforms where file names are case-insensitive,
7381         record the file names in lower case.
7382         (Write_ALI): For D lines, on platforms where file names are
7383         case-insensitive, record the file names in lower case.
7384
7385 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7386             Emmanuel Briot  <briot@adacore.com>
7387
7388         * lib-xref.adb (Output_Overridden_Op): Display information on
7389         overridden operation.
7390
7391         * lib-xref.ads: Add documentation on overridden operations.
7392
7393         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
7394         information.
7395
7396         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
7397         overriding entity information.
7398
7399 2005-09-01  Vincent Celier  <celier@adacore.com>
7400
7401         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
7402         including those that are inherited.
7403
7404 2005-09-01  Robert Dewar  <dewar@adacore.com>
7405
7406         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
7407
7408         * par-prag.adb: Implement new pragma Debug_Policy
7409
7410         * sem_prag.adb Implement new pragma Debug_Policy
7411         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
7412         Component_Size attribute specification. Give warning for ignored pragma
7413         Pack.
7414
7415         * snames.h, snames.ads, snames.adb: Introduce entries in
7416         Preset_Names for Name_Disp_Asynchronous_Select,
7417         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
7418         Name_Disp_Timed_Select.
7419         New pragma Debug_Policy
7420
7421         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
7422         explicitly.
7423         Switch -gnata also sets Debug_Pragmas_Enabled
7424
7425         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
7426         handle an explicit -gnata when compiling predefined files.
7427
7428 2005-09-01  Vincent Celier  <celier@adacore.com>
7429
7430         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
7431         directories of projects that have no Ada sources.
7432
7433 2005-09-01  Robert Dewar  <dewar@adacore.com>
7434
7435         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
7436         (makes a difference for wide characters)
7437
7438         * widechar.adb, widechar.ads:
7439         Add Wide_Char_Byte_Count feature to count chars vs bytes
7440
7441 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7442             Ed Schonberg  <schonberg@adacore.com>
7443             Robert Dewar  <dewar@adacore.com>
7444
7445         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
7446         'Address attribute reference with an overloaded prefix, use the
7447         location of the prefix (not the location of the attribute reference) as
7448         the error location.
7449         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
7450         a function renaming thereof, is a valid prefix for 'Size (where it is
7451         intepreted as a function call).
7452         (Statically_Denotes_Entity): New predicate to determine whether the
7453         prefix of an array attribute can be considered static.
7454
7455         PR ada/9087
7456         (Eval_Attr): Fix failure to evaluate Component_Size for
7457         unconstrained arrays (resulted in wrong value in packed case, since
7458         back end cannot handle this case)
7459
7460 2005-09-01  Robert Dewar  <dewar@adacore.com>
7461
7462         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
7463         error msgs for most common cases.
7464         Use new errout insertion char < (conditional warning)
7465
7466 2005-09-01  Javier Miranda  <miranda@adacore.com>
7467             Ed Schonberg  <schonberg@adacore.com>
7468
7469         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
7470         become local to the whole package.
7471         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
7472         the package was already analyzed the new algorithm "replaces" the
7473         real entities by the shadow ones. This is required to ensure that
7474         the order of these entities in the homonym chains does not change;
7475         otherwise we can have undefined references at linking time because
7476         in case of conflicts the external name of the entities will have
7477         a suffix that depends on the order of the entities in the chain.
7478         (Remove_Limited_With_Clause): Complementary code that completes the
7479         new algorithm and replaces the shadow entities by the real ones.
7480         (Install_Limited_Withed_Unit): When unchaining entities before the
7481         installation of the shadow entities, only regular entities of the
7482         public part must be taken into account. This is required to
7483         keep this routine in synch with the work done by Remove_Limited_
7484         With_Clause
7485         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
7486         even if unit is analyzed, because the analysis of the unit is
7487         idempotent in any case, and the limited view of the unit may have to
7488         be installed for proper visibility.
7489         (Expand_Limited_With_Clause): Even if the unit in the implicit
7490         with_clause has been analyzed already, a limited view of the package
7491         must be built for the current context, if it does not exist yet.
7492
7493 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7494             Javier Miranda  <miranda@adacore.com>
7495             Gary Dismukes  <dismukes@adacore.com>
7496
7497         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
7498         defining entity for the instance body, make a new defining identifier
7499         rather than copying the entity of the spec, to prevent accidental
7500         sharing of the entity list.
7501         (Check_Private_View): When exchanging views of private types, build the
7502         list of exchanged views as a stack, to ensure that on exit the exchanges
7503         are undone in the proper order.
7504         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
7505         Restore the compilation environment in case of instantiation_error.
7506         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
7507         for an anonymous access result.
7508         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
7509         (Formal_Entity): Handle properly the case of a formal package that
7510         denotes a generic package renaming.
7511
7512 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7513
7514         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
7515         clause if the array aggregate is surrounded by parentheses.
7516
7517 2005-09-01  Cyrille Comar  <comar@adacore.com>
7518             Gary Dismukes  <dismukes@adacore.com>
7519             Ed Schonberg  <schonberg@adacore.com>
7520             Javier Miranda  <miranda@adacore.com>
7521
7522         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
7523         underlying type
7524         to check if a type is Constrained in cases related to code generation
7525         (rather than semantic checking) since otherwise we do not generate
7526         similar code for mutable private types depending if their
7527         discriminants are visible or not.
7528         (Check_Abstract_Overriding): Do not complain about failure to override
7529         the primitive operations used in dispatching selects since they will
7530         always be overriden at the freeze point of the type.
7531         (Access_Definition): Separate out handling for resetting the scope
7532         of an anonymous access function result type. Retrieve the scope
7533         of the associated function rather than using Current_Scope, which
7534         does not have a consistent value (depends on whether we're in the
7535         middle of analyzing formal parameters). Add ??? comment about
7536         finding a cleaner way to handle the special cases of scope setting.
7537         (Process_Incomplete_Dependents): A protected operation is never a
7538         dispatching operation (only its wrapper may be).
7539         (Build_Derived_Record_Type): In case of tagged private types that
7540         implement interfaces add derivation of predefined primitive
7541         operations.
7542         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
7543         by two parameters that are used in case of derivation from abstract
7544         interface types: No_Predefined_Prims is used to avoid the derivation
7545         of predefined primitives from the interface, and Predefined
7546         Prims_Only is used to complete the derivation predefined primitives
7547         in case of private tagged types implementing interfaces.
7548         Fix typo in comments
7549         (Find_Interface_In_Descendant): Protect the frontend against
7550         wrong code with large circularity chains.
7551         (Is_Private_Overriding): Add support for entities overriding interface
7552         subprograms. The test failed because Entities associated with overriden
7553         interface subprograms are always marked as hidden (and used to build
7554         the secondary dispatch table); in this case the overriden entity is
7555         available through the field abstract_interface_alias (cf. override_
7556         dispatching_operation)
7557         (Access_Definition): Set the scope of the type to Current_Scope for the
7558         case of a function with an anonymous access result type.
7559         (Access_Subprogram_Declaration): Handle creation of the type entity for
7560         an access-to-function type with an anonymous access result.
7561         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
7562         in handling for N_Access_Function_Definition.
7563         (Analyze_Subtype_Declaration): Modify the text of error message.
7564         (Derived_Type_Declaration): Modify the text of error message.
7565         (Process_Subtype): Modify the text of error message plus cleanup
7566         of one redundant error message.
7567         (Analyze_Component_Declaration): Code cleanup.
7568         (Analyze_Object_Declaration): Code cleanup.
7569         (Analyze_Subtype_Declaration): Propagate the null-exclusion
7570         attribute in case of access types. Code cleanup.
7571         (Array_Type_Declaration): Code cleanup.
7572         (Process_Discriminants): Create the new null-excluding itype
7573         if required. Code cleanup.
7574         (Process_Subtype): Create the new null-excluding itype if
7575         required. Code cleanup.
7576         (Build_Derived_Record_Type): Code cleanup to avoid calling
7577         twice the subprogram derive_subprograms in case of private
7578         types that implement interfaces. In this particular case the
7579         subprogram Complete_Subprograms_Derivation already does the
7580         job associated with the second call.
7581
7582         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
7583         conversion to the full view when generating an operation for a
7584         discriminant whose type may currently be private.
7585
7586 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7587             Javier Miranda  <miranda@adacore.com>
7588
7589         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
7590         V (Obj.F), the rewriting does not involve the indexed component, but
7591         only the selected component itself.
7592         Do not apply the transformation if the analyzed node is an actual of a
7593         call to another subprogram.
7594         (Complete_Object_Operation): Retain the entity of the
7595         dispatching operation in the selector of the rewritten node. The
7596         entity will be used in the expansion of dispatching selects.
7597         (Analyze_One_Call): Improve location of the error message associated
7598         with interface.
7599         (Analyze_Selected_Component): No need to resolve prefix when it is a
7600         function call, resolution is done when parent node is resolved, as
7601         usual.
7602         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
7603         when attempting to resolve a call transformed from its object notation.
7604         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
7605         of the argument list for each interpretation of the operation.
7606         (Try_Object_Operation): The designated type of an access parameter may
7607         be an incomplete type obtained through a limited_with clause, in which
7608         case the primitive operations of the type are retrieved from its full
7609         view.
7610         (Analyze_Call): If this is an indirect call, and the return type of the
7611         access_to_subprogram is incomplete, use its full view if available.
7612
7613 2005-09-01  Javier Miranda  <miranda@adacore.com>
7614             Gary Dismukes  <dismukes@adacore.com>
7615
7616         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
7617         access types the null-exclusion and access-to-constant attributes must
7618         also match.
7619         (Analyze_Return_Statement): When the result type is an anonymous access
7620         type, apply a conversion of the return expression to the access type
7621         to ensure that appropriate accessibility checks are performed.
7622         (Analyze_Return_Type): For the case of an anonymous access result type,
7623         generate the Itype and set Is_Local_Anonymous_Access on the type.
7624         Add ??? placeholder for check to disallow returning a limited object
7625         in Ada 2005 unless it's an aggregate or a result of a function call.
7626         Change calls from Subtype_Mark to Result_Definition.
7627         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
7628         Result_Definition in call to Make_Function_Specification.
7629         (Build_Body_To_Inline): Change Set_Subtype_Mark to
7630         Set_Result_Definition.
7631         (Make_Inequality_Operator): Change formal Subtype_Mark to
7632         Result_Definition in call to Make_Function_Specification.
7633         (Process_Formals): Create the new null-excluding itype if required.
7634         (New_Overloaded_Entity): For an entity overriding an interface primitive
7635         check if the entity also covers other abstract subprograms in the same
7636         scope. This is required to handle the general case, that is, overriding
7637         other interface primitives and overriding abstract subprograms inherited
7638         from some abstract ancestor type.
7639         (New_Overloaded_Entity): For an overriding entity that comes from
7640         source, note the operation that it overrides.
7641         (Check_Conformance, Type_Conformant): Addition of one new formal
7642         to skip controlling formals in the analysis. This is used to
7643         handle overloading of abstract interfaces.
7644         (Base_Types_Match): Add missing case for types imported from
7645         limited-with clauses
7646         (New_Overloaded_Entity): Add barrier to protect the use of
7647         the "alias" attribute.
7648
7649 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7650
7651         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
7652         verify that the procedure and the entry are mode conformant.
7653         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
7654         as a different operator, which is often a cut-and-paste error.
7655
7656 2005-09-01  Javier Miranda  <miranda@adacore.com>
7657             Ed Schonberg  <schonberg@adacore.com>
7658
7659         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
7660         used in controlling parameters exclude null because it is necessary to
7661         read the tag to dispatch, and null has no tag.
7662         (Override_Dispatching_Operation): If the previous operation is inherited
7663         from an interface, it becomes hidden  and does not participate in later
7664         name resolution.
7665
7666 2005-09-01  Javier Miranda  <miranda@adacore.com>
7667             Ed Schonberg  <schonberg@adacore.com>
7668             Gary Dismukes  <dismukes@adacore.com>
7669
7670         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
7671         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
7672         the expander will generate the corresponding run-time check to evaluate
7673         the expression.
7674         (Resolve_Call): Check for legal type of procedure name or prefix that
7675         appears as a trigger in a triggering alternative.
7676         (Valid_Conversion): If expression is ambiguous and the context involves
7677         an extension of System, remove System.Address interpretations.
7678         (Resolve_Qualified_Expression): Reject the case of a specific-type
7679         qualification applied to a class-wide argument. Enhance comment
7680         to explain checking of Original_Node.
7681         (Resolve_Type_Conversion): The location of the error message was not
7682         general enough to handle the general case and hence it has been removed.
7683         In addition, this patch improves the text of the message.
7684         (Resolve_Type_Conversion): Add missing support for access to interface
7685         types.
7686         (Resolve_Type_Conversion): If the target is a class-wide interface type,
7687         do not expand if the expression is the actual in a call, because proper
7688         expansion will take place when the call itself is expanded.
7689         (Resolve_Allocator): If the context is an unchecked conversion, the
7690         allocator inherits its storage pool, if any, from the target type of
7691         the conversion.
7692
7693 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7694             Javier Miranda  <miranda@adacore.com>
7695
7696         * sem_type.adb (Add_One_Interp): If a candidate operation is an
7697         inherited interface operation that has an implementation, use the
7698         implementation to avoid spurious ambiguities.
7699         (Interface_Present_In_Ancestor): In case of concurrent types we can't
7700         use the Corresponding_Record_Typ attribute to look for the interface
7701         because it is set by the expander (and hence it is not always
7702         available). For this reason we traverse the list of interfaces
7703         (available in the parent of the concurrent type).
7704         (Interface_Present_In_Ancestor): Handle entities from the limited view
7705
7706 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7707
7708         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
7709         from the list of required components.
7710         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
7711         primitive procedure of a limited interface with a controlling first
7712         parameter.
7713         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
7714         of an entry.
7715         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
7716         capture if it is generated in the second operand of a short-circuit
7717         operation.
7718         Do not capture values for variables with address clauses.
7719         (Is_Object_Reference): Treat a function call as an object reference only
7720         if its type is not Standard_Void_Type.
7721
7722 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7723
7724         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
7725         to a variable that is statically known to be constant.
7726
7727 2005-09-01  Geert Bosch  <bosch@adacore.com>
7728             Robert Dewar  <dewar@adacore.com>
7729
7730         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
7731         (VAXGF_Safe_First): Idem.
7732
7733 2005-09-01  Robert Dewar  <dewar@adacore.com>
7734             Arnaud Charlet  <charlet@adacore.com>
7735
7736         * g-dirope.ads: Minor reformatting
7737         Document that bounds of result of Base_Name match the input index
7738         positions.
7739         Add documentation on environment variable syntax for Expand_Path
7740
7741         * gnat_ugn.texi: Update documentation to include mention of -m switches
7742         Document new treatment of wide characters in max line length
7743         style check.
7744         Remove -gnatL/-gnatZ switches, no longer used.
7745         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
7746         of -gnata switch.
7747
7748         * gnat_rm.texi: Add doc for two argument form of pragma
7749         Float_Representation.
7750         Add documentation for pragma No_Strict_Aliasing
7751         Add note that explicit component clause overrides pragma Pack.
7752         Add documentation of pragma Debug_Policy
7753
7754 2005-09-01  Matthew Heaney  <heaney@adacore.com>
7755
7756         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
7757         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
7758         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
7759         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
7760         draft (Draft 13, August 2005) of Ada Amendment 1.
7761
7762 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7763
7764         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
7765         Note that the platform-specific version of g-soccon.ads for VMS is now
7766         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
7767         really is a package spec).
7768         Replace s-taspri-linux.ads by s-taspri-posix.ads
7769         Remove references to s-mastop-x86.adb
7770
7771         * system-vxworks-xscale.ads: Removed, no longer used.
7772         * s-vxwork-xscale.ads: Removed, no longer used.
7773
7774 2005-09-01  Robert Dewar  <dewar@adacore.com>
7775
7776         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
7777         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
7778         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
7779         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
7780         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
7781         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
7782         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
7783         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
7784         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
7785         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
7786         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
7787         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
7788         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
7789         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
7790         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
7791         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
7792         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
7793         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
7794         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
7795         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
7796         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
7797
7798 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7799
7800         PR ada/23187
7801         * adaint.c
7802         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
7803
7804 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7805             Doug Rupp  <rupp@adacore.com>
7806
7807         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
7808         when needed.
7809         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
7810         this code in the GNAT run-time.
7811
7812         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
7813
7814         PR ada/21053
7815         * init.c (__gnat_error_handler [many]): Mark "msg" as const
7816         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
7817
7818         (__gnat_inside_elab_final_code): Moved here from
7819         Standard_Library and only defined for the compiler.
7820         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
7821         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
7822         using RTPs because directly vectored Interrupt routines are not
7823         supported on this configuration.
7824         (getpid): Do not redefine this function on VxWorks when using RTPs
7825         because this primitive is well supported by the RTP libraries.
7826         (copy_msg): Correct the code that checks for buffer overflow.
7827         Discovered during code reading.
7828
7829 2005-08-29  Olivier Hainque  <hainque@adacore.com>
7830
7831         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
7832         a library level mutable variable with an initializer, tell
7833         build_allocator to ignore the initializer's size. It may not be large
7834         enough for all the values that might be assigned to the variable later
7835         on.
7836
7837 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7838             Eric Botcazou  <ebotcazou@adacore.com>
7839
7840         * trans.c: Protect < in error msg with quote
7841         Replace GCC_ZCX by Back_End_Exceptions.
7842         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
7843         has been sufficiently aligned in the record.
7844
7845 2005-08-15  James E. Wilson  <wilson@specifix.com>
7846
7847         * system-linux-alpha.ads: Change ia64 to alpha.
7848
7849 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
7850
7851         * decl.c, utils.c: Fix comment typos.
7852
7853 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
7854
7855         * decl.c, init.c, initialize.c: Fix comment typos.
7856
7857 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
7858
7859         Make CONSTRUCTOR use VEC to store initializers.
7860         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
7861         CONSTRUCTOR_ELTS.
7862         * trans.c (extract_values): Likewise.
7863         * utils.c (convert, remove_conversions): Likewise.
7864         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
7865         gnat_build_constructor): Likewise.
7866
7867 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7868
7869         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
7870         DECL_SECTION_NAME.
7871         (compare_field_bitpos): Likewise.
7872
7873 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7874
7875         * utils.c (create_var_decl): Only set DECL_COMMON on
7876         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
7877         VAR_OR_FUNCTION_DECL_P.
7878
7879 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
7880
7881         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
7882         removed.
7883
7884 2005-07-07  Pascal Obry  <obry@adacore.com>
7885
7886         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
7887         returned type on Windows.
7888
7889         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
7890         routine.
7891
7892         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
7893         exception in this case.
7894         Simplify the code as "Image (Image'Range)" = "Image".
7895
7896 2005-07-07  Vincent Celier  <celier@adacore.com>
7897
7898         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
7899         the destructor/constructor attributes for <lib>final/<lib>init.
7900
7901         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
7902
7903 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7904
7905         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
7906         type if the parameter is not passed by copy but reference by default.
7907
7908 2005-07-07  Javier Miranda  <miranda@adacore.com>
7909
7910         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
7911         Reimplementation of the support for abstract interface types in order
7912         to leave the code more clear and easy to maintain.
7913
7914         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
7915         abstract interface types in order to leave the code clearer and easier
7916         to maintain.
7917
7918         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
7919         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
7920         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
7921         appropriate entry of the secondary dispatch table.
7922         (Make_DT): Add code to inherit the secondary dispatch tables of
7923         the ancestors.
7924
7925         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
7926         implementing both functionalities by means of a common routine, each
7927         routine has its own code.
7928
7929 2005-07-07  Javier Miranda  <miranda@adacore.com>
7930
7931         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
7932
7933         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
7934         types:
7935         --
7936           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7937         --
7938
7939         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
7940         use of tag incomplete types.
7941
7942         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
7943         give support to tagged incomplete types.
7944
7945         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
7946         expression is a discriminant reference and its type is private, as can
7947         happen within a stream operation for a mutable record, use the full
7948         view of the type to resolve the case alternatives.
7949         (Analyze_Assignment): Check wrong dereference of incomplete types.
7950
7951         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
7952         types.
7953
7954         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
7955         incomplete types.
7956
7957         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
7958         N_Incomplete_Type_Declaration nodes.
7959
7960         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
7961         Tag_Present to give support to tagged incomplete types:
7962         --
7963           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7964         --
7965
7966 2005-07-07  Olivier Hainque  <hainque@adacore.com>
7967
7968         PR ada/22301
7969
7970         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
7971         definitions for the Unwind wrappers in the compiler case.
7972
7973 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
7974             Javier Miranda  <miranda@adacore.com>
7975
7976         * par-load.adb (Load): If a child unit is loaded through a limited_with
7977         clause, each parent must be loaded as a limited unit as well.
7978
7979         * sem_ch10.adb (Previous_Withed_Unit): Better name for
7980         Check_Withed_Unit. Return true if there is a previous with_clause for
7981         this unit, whether limited or not.
7982         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
7983         the current unit.
7984         (Is_Visible_Through_Renamings): New local subprogram of install_limited
7985         _withed_unit that checks if some package installed through normal with
7986         clauses has a renaming declaration of package whose limited-view is
7987         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
7988         of the current Draft document for Ada 2005.
7989         (Analyze_Context): Complete the list of compilation units that
7990         are allowed to contain limited-with clauses. It also contains
7991         checks that were previously done by Install_Limited_Context_Clauses.
7992         This makes the code more clear and easy to maintain.
7993         (Expand_Limited_With_Clause) It is now a local subprogram of
7994         Install_Limited_Context_Clauses, and contains the code that adds
7995         the implicit limited-with clauses for parents of child units.
7996         This functionality was prevously done by Analyze_Context.
7997
7998         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
7999         incomplete type.
8000
8001         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
8002         been erroneously named in a limited-with clause of its own context.
8003         In this case the error has been previously notified by Analyze_Context.
8004
8005 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
8006
8007         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
8008         generic package that contains local declarations with the same name.
8009         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
8010
8011 2005-07-07  Bernard Banner  <banner@adacore.com>
8012
8013         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
8014         ia64 platform only on platforms that you the GCC unwind library
8015         rather than the system unwind library.
8016
8017 2005-07-07  Thomas Quinot  <quinot@adacore.com>
8018
8019         * expect.c: Minor reformatting
8020
8021 2005-07-07  Sergey Rybin  <rybin@adacore.com>
8022
8023         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
8024         --no-separate-is
8025
8026         * gnat_ugn.texi: Add description for new gnatpp option
8027         (--no-separate-is)
8028
8029 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8030
8031         * g-expect-vms.adb, g-expect.ads, g-expect.adb
8032         (Get_Command_Output): New subprogram to launch a process and get its
8033         standard output as a string.
8034
8035 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8036             Olivier Hainque  <hainque@adacore.com>
8037
8038         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
8039         fetch a code-range descriptor associated with the machine state. On
8040         failure set the machine state's PC to 0; on success, pass the
8041         descriptor to exc_virtual_unwind.
8042
8043         * init.c (Tru64 section): New function __gnat_set_code_loc.
8044
8045 2005-07-04  Vincent Celier  <celier@adacore.com>
8046
8047         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
8048         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
8049         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
8050         Remove all auto-initialization code, as this is now done through the
8051         constructor mechanism.
8052
8053         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
8054         __gnat_sals_init_using_constructors): New functions.
8055
8056         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
8057         Linker_Constructor and Linker_Destructor when switch -a is used.
8058
8059         * bindusg.adb: Add line for new switch -a
8060
8061         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
8062         (Gnatbind): When switch -a is used, check if it is allowed
8063
8064         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
8065
8066 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
8067
8068         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
8069         This prevents us from hitting a limitation during the debug info
8070         generation when using stabs.
8071         (Prims_Ptr): Likewise.
8072
8073 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8074             Ed Schonberg  <schonberg@adacore.com>
8075             Javier Miranda  <miranda@adacore.com>
8076
8077         * checks.adb (Null_Exclusion_Static_Checks): In the case of
8078         N_Object_Declaration, only perform the checks if the Object_Definition
8079         is not an Access_Definition.
8080
8081         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
8082         where the parent of an the access definition is an N_Object_Declaration
8083         when determining the Associated_Node_For_Itype and scope of an
8084         anonymous access-to-subprogram type.
8085
8086         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
8087         Corresponding_Spec on the body created for a null procedure. Add ???
8088         comment. Remove New_Copy_Tree call on body argument to
8089         Set_Body_To_Inline.
8090
8091         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
8092         discriminants, use the type of the actual as well, because the
8093         discriminants may be read by the called subprogram.
8094
8095         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
8096         access type we do not need to handle non-limited views.
8097         (Build_Derived_Record_Type): Additional check to check that in case of
8098         private types, interfaces are only allowed in private extensions.
8099
8100 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8101
8102         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
8103         <Pragma_Linker_Destructor>: Likewise.
8104
8105         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
8106         Pragma_Linker_Destructor.
8107
8108         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
8109         ATTR_LINK_DESTRUCTOR.
8110         (static_ctors, static_dtors): New variables.
8111
8112         * misc.c (gnat_expand_body): Output current function as constructor
8113         and destructor if requested.
8114
8115         * par-prag.adb: Add processing for pragma Linker_Constructor and
8116         Linker_Destructor.
8117
8118         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
8119         extracted from Check_Interrupt_Or_Attach_Handler.
8120         (Check_Interrupt_Or_Attach_Handler): Invoke it.
8121         Implement pragma Linker_Constructor and Linker_Destructor with the
8122         help of Find_Unique_Parameterless_Procedure.
8123         Replace Name_Alias with Name_Target for pragma Linker_Alias.
8124
8125         * snames.h, snames.ads, snames.adb:
8126         Add Name_Linker_Constructor and Name_Linker_Destructor.
8127         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
8128         * snames.adb: Remove Name_Alias.
8129
8130         * trans.c: Include cgraph.h.
8131         (build_global_cdtor): New function.
8132         (Compilation_Unit_to_gnu): Build global constructor and destructor if
8133         needed.
8134         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
8135         of objects too.
8136         (addressable_p) <COMPONENT_REF>: Unconditionally test
8137         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
8138
8139         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
8140         variable if it is external.
8141
8142         (static_ctors, static_dtors): New global variables.
8143         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
8144         <ATTR_LINK_DESTRUCTOR>: Likewise.
8145         (end_subprog_body): Chain function as constructor and destructor
8146         if requested.
8147
8148         * exp_util.adb (Force_Evaluation): Unconditionally invoke
8149         Remove_Side_Effects with Variable_Ref set to true.
8150         (Remove_Side_Effects): Handle scalar types first. Use a renaming
8151         for non-scalar types even if Variable_Ref is true and for class-wide
8152         expressions.
8153
8154 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8155
8156         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
8157         to prevent spurious warnings.
8158
8159 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8160
8161         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
8162         Itypes. Itypes are really unexpected there.
8163         (Build_TypeCode_Function): Generalise special processing for Itypes to
8164         handle the case of numeric implicit base types as well as enumerated
8165         ones.
8166
8167 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8168
8169         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
8170         controlled, indicate the expected type of the dereference that is
8171         created for the call to Deep_Finalize, to prevent spurious errors when
8172         the designated type is private and completed with a derivation from
8173         another private type.
8174
8175 2005-07-04  Vincent Celier  <celier@adacore.com>
8176
8177         * make.adb (Change_To_Object_Directory): When unable to change the
8178         current dir to the object directory, output the full path of the
8179         directory.
8180
8181 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8182
8183         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
8184
8185         * indepsw-linux.adb: Replace by...
8186
8187         * indepsw-gnu.adb: ...this new file
8188
8189 2005-07-04  Vincent Celier  <celier@adacore.com>
8190
8191         * mlib-prj.adb (Auto_Initialize): New constant String
8192         (SALs_Use_Constructors): New Boolean function
8193         (Build_Library): Call gnatbind with Auto_Initialize switch when
8194         SALs_Use_Constructors returns True.
8195
8196         * mlib-tgt.ads: Minor reformatting
8197
8198         * mlib-utl.ads: Minor reformatting
8199
8200         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
8201
8202 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8203
8204         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
8205         single protected declarations can have an interface list.
8206         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
8207         with seriously malformed entry declarations, and lead to compilation
8208         abandoned messages.
8209
8210 2005-07-04  Javier Miranda  <miranda@adacore.com>
8211
8212         * par-load.adb: Load the context items in two rounds.
8213
8214 2005-07-04  Robert Dewar  <dewar@adacore.com>
8215
8216         * scng.adb: Do not consider Mod used as an attribute to be a keyword
8217
8218 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8219             Javier Miranda  <miranda@adacore.com>
8220
8221         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
8222         type extension needs a limited view.
8223         Remove previous restriction on private types available through the
8224         limited-view (only tagged private types were previously allowed).
8225         (Install_Withed_Unit): In the code that implements the
8226         legality rule given in AI-377, exclude a child unit with the name
8227         Standard, because it is a homonym of the Standard environment package.
8228
8229 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8230
8231         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
8232         overloaded function call, carry interpretations from the original tree
8233         to the copy.
8234
8235 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8236
8237         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
8238         types check whether some designated type is a limited view, and use
8239         the non-limited view if available.
8240
8241 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8242
8243         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
8244         constraint of full view of a private view T1 if present, when T2 is a
8245         discriminated full view.
8246
8247 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8248
8249         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
8250         actual that is a view conversion of a bit packed array reference.
8251
8252 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8253
8254         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
8255         present before checking whether an interface type covers a synchronized
8256         type.
8257
8258 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8259
8260         * sem_util.adb (Is_Object_Reference): An indexed or selected component
8261         whose prefix is an implicit dereference is an object reference. Removes
8262         spurious errors when compiling with -gnatc.
8263
8264 2005-07-04  Robert Dewar  <dewar@adacore.com>
8265
8266         PR ada/22039
8267
8268         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
8269
8270 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8271
8272         * tracebak.c: Enable tracebacks on ia64 platforms
8273
8274 2005-07-04  Vincent Celier  <celier@adacore.com>
8275
8276         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
8277         the GNAT BIND command, as gnatbind accepts multiples ALI files with
8278         the -L or -n switches.
8279
8280 2005-07-04  Vincent Celier  <celier@adacore.com>
8281
8282         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
8283         correctly computed and the main project data is not modified while
8284         doing so.
8285         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
8286         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
8287         c++linker as this does not work on some platforms.
8288
8289 2005-07-04  Matthew Heaney  <heaney@adacore.com>
8290
8291         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
8292         was changed.
8293         * a-coinve.adb: Perform constraint checks explicitly.
8294
8295 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8296             Thomas Quinot  <quinot@adacore.com>
8297
8298         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
8299         new target gen-soccon.
8300
8301 2005-07-04  Robert Dewar  <dewar@adacore.com>
8302
8303         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
8304
8305 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8306
8307         * g-socket.ads (Check_Selector): Minor rewording of comment.
8308
8309 2005-07-04  Vincent Celier  <celier@adacore.com>
8310
8311         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
8312
8313 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8314
8315         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
8316
8317 2005-07-04  Sergey Rybin  <rybin@adacore.com>
8318
8319         * gnat_ugn.texi: Add description of --eol gnatpp option
8320
8321 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8322             Thomas Quinot  <quinot@adacore.com>
8323
8324         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
8325         if the user wants all calls of a subprogram to be flagged,
8326         independently of whether they are made from within the same unit or
8327         another unit.
8328         Mention restriction for pragma Linker_Alias on some platforms.
8329         Document pragma Linker_Constructor and Linker_Destructor.
8330         Rewrite documentation of Weak_External, Linker_Section and
8331         Linker_Alias pragmas.
8332
8333 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
8334
8335         * s-stausa.ads, s-stausa.adb: New files.
8336
8337 2005-06-30  Kelley Cook
8338
8339         * all files:  Update FSF address in copyright headers.
8340         * gen-soccon.co (main): Output new FSF address in generated files.
8341
8342 2005-06-28  Paul Brook  <paul@codesourcery.com>
8343
8344         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
8345
8346 2005-06-14  Olivier Hainque  <hainque@adacore.com>
8347             Eric Botcazou  <ebotcazou@adacore.com>
8348
8349         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
8350         exc_unwind, now that we are generating proper .debug_frame output for
8351         that target.
8352
8353         * tracebak.c: Remove the mips-irix section, as we are now using the
8354         s-mastop based unwinder again.
8355         Under SPARC/Solaris, take into account the stack bias to compute the
8356         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
8357         ABI.
8358
8359 2005-06-14  Doug Rupp  <rupp@adacore.com>
8360
8361         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
8362
8363         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
8364
8365 2005-06-14  Pascal Obry  <obry@adacore.com>
8366
8367         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
8368         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
8369         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
8370         package name).
8371
8372         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
8373         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
8374         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
8375         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
8376         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
8377         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
8378         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
8379         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
8380         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
8381         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
8382         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
8383         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
8384         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
8385         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
8386         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
8387         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
8388         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
8389         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
8390         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
8391         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
8392         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
8393         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
8394         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
8395         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
8396         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
8397         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
8398         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
8399         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
8400         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
8401         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
8402         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
8403         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
8404         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
8405         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
8406         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
8407         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
8408         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
8409         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
8410         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
8411         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
8412         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
8413         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
8414         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
8415         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
8416         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
8417         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
8418         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
8419         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
8420         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
8421         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
8422         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
8423         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
8424         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
8425         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
8426         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
8427         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
8428         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
8429         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
8430         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
8431         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
8432         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
8433         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
8434         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
8435         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
8436         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
8437         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
8438         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
8439         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
8440         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
8441         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
8442         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
8443         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
8444         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
8445         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
8446         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
8447         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
8448         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8449         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
8450         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
8451         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
8452         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
8453         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
8454         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
8455         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
8456         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
8457         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
8458         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
8459         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
8460         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
8461         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
8462         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
8463         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
8464         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
8465         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
8466         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
8467         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
8468         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
8469         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
8470         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
8471         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
8472         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
8473         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
8474         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
8475         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
8476         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
8477         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
8478         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
8479         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
8480         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
8481         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
8482         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
8483         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
8484         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
8485         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
8486         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
8487         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
8488         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
8489         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
8490         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
8491         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
8492         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
8493         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
8494         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
8495         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
8496         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
8497         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
8498         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
8499         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
8500         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
8501         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
8502         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
8503         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
8504         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
8505
8506 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
8507             Arnaud Charlet  <charlet@adacore.com>
8508
8509         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
8510         longer protected objects. They have been replaced by lower-level
8511         suspension objects made up by a mutex and a condition variable (or
8512         their equivalent given a particular OS) plus some internal data to
8513         reflect the state of the suspension object.
8514         (Initialize, Finalize): Add this initialization procedure for
8515         Suspension_Object, which is a controlled type.
8516         (Finalize): Add the finalization procedure for Suspension_Object,
8517         which is a controlled type.
8518
8519         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
8520         Ada.Synchronous_Task_Control because there is no longer a need for a
8521         VxWorks specific version of this package. Target dependencies
8522         has been moved to System.Task_Primitives.Operations.
8523
8524         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
8525         longer needed.
8526         (InitializeCriticalSection, EnterCriticalSection,
8527         LeaveCriticalSection, DeleteCriticalSection): Replace the type
8528         pCriticalSection by an anonymous access type so that we avoid problems
8529         of accessibility to local objects.
8530
8531         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
8532         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
8533         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
8534         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
8535         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
8536         set the environment task mask here.
8537         (Current_State): Add this function that returns the state of the
8538         suspension object.
8539         (Set_False): Add this procedure that sets the state of the suspension
8540         object to False.
8541         (Set_True): Add this procedure that sets the state of the suspension
8542         object to True, releasing the task that was suspended, if any.
8543         (Suspend_Until_True): Add this procedure that blocks the calling task
8544         until the state of the object is True. Program_Error is raised if
8545         another task is already waiting on that suspension object.
8546         (Initialize): Add this procedure for initializing the suspension
8547         object. It initializes the mutex and the condition variable which are
8548         used for synchronization and queuing, and it sets the internal state
8549         to False.
8550         (Finalize): Add this procedure for finalizing the suspension object,
8551         destroying the mutex and the condition variable.
8552
8553         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
8554         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
8555         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
8556         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
8557         which provides a low-level abstraction (using operating system
8558         primitives) for Ada.Synchronous_Task_Control.
8559         This object is made up by a mutex (for ensuring mutual exclusion), a
8560         condition variable (for queuing threads until the condition is
8561         signaled), a Boolean (State) indicating whether the object is open,
8562         and a Boolean (Waiting) reflecting whether there is a task already
8563         suspended on this object.
8564
8565         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
8566         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
8567         s-intman-vms.ads, s-intman-mingw.adb,
8568         (Initialize_Interrupts): Removed, no longer used.
8569
8570         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
8571         (Setup_Interrupt_Mask): New procedure.
8572
8573         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
8574
8575         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
8576
8577         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
8578         this is no longer done in the body of s-taprop
8579         (Server_Task): Explicitely test for Pending_Action in case
8580         System.Parameters.No_Abort is True.
8581
8582         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
8583         is no longer done in the body of s-taprop
8584
8585 2005-06-14  Robert Dewar  <dewar@adacore.com>
8586
8587         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
8588         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
8589         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
8590         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
8591         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8592         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
8593         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
8594         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
8595         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
8596         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
8597         system-linux-hppa.ads, system-vms_64.ads,
8598         system-vxworks-alpha.ads: Minor comment update for
8599         AI-362 (unit is Pure).
8600
8601         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
8602         Add pragma Pure_05 for AI-362
8603         Make remaining conversion functions obsolescent in Ada 95
8604
8605         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8606         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
8607         Add entries for a-wichun and a-zchuni
8608         Add a-widcha a-zchara for AI-395
8609         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
8610
8611         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8612         Add entries for a-wichun.o and a-zchuni.o
8613         Entries for a-widcha.o and a-zchara.o
8614         Add entry for a-chacon.o
8615
8616         * a-ztenau.adb: Add with of Ada.Characters.Conversions
8617
8618         * a-chacon.ads, a-chacon.adb: New files.
8619
8620         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
8621         categorization violations.
8622
8623         * a-strmap.ads: Add pragma Pure_05 for AI-362
8624         * a-strmap.ads: Add note on implicit categorization for AI-362
8625
8626         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
8627
8628         * par-prag.adb: Dummy entry for pragma Persistent_BSS
8629         Set Ada_Version_Explicit, for implementation of AI-362
8630         Add processing for pragma Pure_05 and Preelaborate_05
8631         Add entry for Assertion_Policy pragma
8632
8633         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
8634         when needed for proper processing of categorization stuff
8635
8636         * sem_cat.adb:
8637         For several cases, make errors in preealborate units warnings,
8638         instead of errors, if GNAT_Mode is set. For AI-362.
8639
8640         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
8641         preelaborate unit is now warning if in GNAT mode
8642
8643         * s-stoele.ads: Document AI-362 for pragma preelaborate
8644
8645 2005-06-14  Doug Rupp  <rupp@adacore.com>
8646
8647         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
8648         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
8649         Default_Exception_Msg_Max_Length: new parameter.
8650
8651         * a-except.ads: (Exception_Msg_Max_Length): Set to
8652         System.Parameters.Default_Exception_Msg_Max_Length
8653         Add pragma Preelaborate_05 for AI-362
8654         Add warnings off to allow categorization violations for AI-362
8655
8656 2005-06-14  Vincent Celier  <celier@adacore.com>
8657
8658         * gnatsym.adb: Adapt to modification of package Symbols: procedure
8659         Process is now in package Processing.
8660
8661         * symbols.ads, symbols.adb:
8662         (Processing): New package, containing procedure Process
8663
8664         * symbols-vms-alpha.adb:
8665         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
8666
8667         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
8668         symbols-processing-vms-ia64.adb: New files.
8669
8670 2005-06-14  Pascal Obry  <obry@adacore.com>
8671
8672         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
8673         implementation. This new version generates the proper DllMain routine
8674         to initialize the SAL. The DllMain is generated in Ada and compiled
8675         before being added as option to the library build command.
8676
8677 2005-06-14  Doug Rupp  <rupp@adacore.com>
8678             Pascal Obry  <obry@adacore.com>
8679
8680         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
8681         call to decc$translate_vms.
8682         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
8683         need to remove those quotes before catenating the filename.
8684         (__gnat_locate_exec_on_path): improvements to the Win32 section:
8685         * avoid allocating the memory twice for better efficiency;
8686         * allocate 32K buffer for environment expansion as suggested by MSDN;
8687         * prepend ".;" to the path so that current directory is searched too.
8688
8689 2005-06-14  Robert Dewar  <dewar@adacore.com>
8690
8691         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
8692         instead of raising CE (AI-241)
8693         Add warnings off to allow categorization violations for AI-362
8694
8695 2005-06-14  Robert Dewar  <dewar@adacore.com>
8696
8697         * ali-util.adb, gnatbind.adb: Remove references to
8698         Force_RM_Elaboration_Order.
8699
8700         * switch-b.adb: Remove recognition of -f switch
8701
8702 2005-06-14  Pascal Obry  <obry@adacore.com>
8703
8704         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
8705         implementation which is slightly more efficient.
8706
8707 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
8708             Javier Miranda  <miranda@adacore.com>
8709             Ed Schonberg  <schonberg@adacore.com>
8710             Hristian Kirtchev  <kirtchev@adacore.com>
8711
8712         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
8713         allocator's designated type is a class-wide type, and compiling for
8714         Ada 2005, emit a run-time check that the accessibility level of the
8715         type given in the allocator's expression is not deeper than the level
8716         of the allocator's access type.
8717
8718         (Tagged_Membership): Modified to gives support to abstract interface
8719         types.
8720
8721         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
8722         Access_Level.
8723         (Descendant_Tag): New predefined function
8724         (Is_Descendant_At_Same_Level): New predefined function
8725         (Get_Access_Level): New private function
8726         (Set_Access_Level): New private procedure
8727         (IW_Membership): New function. Given the tag of an object and the tag
8728         associated with an interface, evaluate if the object implements the
8729         interface.
8730         (Register_Interface_Tag): New procedure used to initialize the table of
8731         interfaces used by the IW_Membership function.
8732         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
8733         of the dispatch table.
8734         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
8735         table of interfaces of the parent.
8736         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
8737         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
8738         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
8739         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
8740         Ada 2005 semantics for the new predefined function.
8741
8742         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
8743         call to Descendant_Tag rather than Internal_Tag.
8744         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
8745         the accessibility level of the attribute's Item parameter is not deeper
8746         than the level of the attribute's prefix type. Tag_Error is raised if
8747         the check fails. The check is only emitted for Ada_05.
8748         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
8749         requested stream attribute, use it.
8750         (Expand_N_Attribute_Reference): If the designated type is an interface
8751         then rewrite the referenced object as a conversion to force the
8752         displacement of the pointer to the secondary dispatch table.
8753         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
8754         is a dereference of an object with a constrained partial view.
8755
8756         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
8757         type is a class-wide type, emit a run-time check that the accessibility
8758         level of the returned object is not deeper than the level of the
8759         function's master (only when compiling for Ada 2005).
8760
8761         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
8762         Action_Nb_Arg): Add entries for new Get_Access_Level and
8763         Set_Access_Level routines in these tables.
8764         (Make_DT): Generate a call to set the accessibility level of the
8765         tagged type in its TSD.
8766         (Make_DT): Code cleanup. The functionality of generating all the
8767         secondary dispatch tables has been moved to freeze_record_type.
8768         (Make_Abstract_Interface_DT): Minor code cleanup.
8769         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
8770         this subprogram implements a new algorithm that provides the
8771         same functionality and it is more clear in case of primitives
8772         associated with abstract interfaces.
8773         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
8774         clean up, the functionality of this subprogram is now provided
8775         by Set_All_DT_Position.
8776         (Write_DT): New subprogram: a debugging procedure designed to be called
8777         within gdb to display the dispatch tables associated with a tagged
8778         type.
8779         (Collect_All_Interfaces): New subprogram that collects the whole list
8780         of interfaces that are directly or indirectly implemented by a tagged
8781         type.
8782         (Default_Prim_Op_Position): New subprogram that returns the fixed
8783         position in the dispatch table of the default primitive operations.
8784         (Expand_Interface_Actuals): New subprogram to generate code that
8785         displaces all the actuals corresponding to class-wide interfaces to
8786         reference the interface tag of the actual object.
8787         (Expand_Interface_Conversion): New subprogram. Reference the base of
8788         the object to give access to the interface tag associated with the
8789         secondary dispatch table.
8790         (Expand_Interface_Thunk): New subprogram that generates the code of the
8791         thunk. This is required for compatibility with the C+ ABI.
8792         (Make_Abstract_Interface_DT): New subprogram that generate the
8793         declarations for the secondary dispatch tables associated with an
8794         abstract interface.
8795         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
8796         attribute for each primitive operation covering interface subprograms
8797         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
8798         These subprograms were upgraded to give support to abstract interfaces
8799
8800         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
8801         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
8802         RE_Set_Access_Level.
8803         (RE_Unit_Table): Add entries for new Ada.Tags operations.
8804         Add support to call the followig new run-time subprograms:
8805         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
8806
8807         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
8808         match its full declaration when both have an access definition with
8809         statically matching designated subtypes.
8810         (Analyze_Component_Declaration): Delete commented out code that was
8811         incorrectly setting the scope of an anonymous access component's type.
8812         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
8813         an access discriminant when the containing type is nonlimited.
8814         (Make_Incomplete_Type_Declaration): Create an incomplete type
8815         declaration for a record type that includes self-referential access
8816         components.
8817         (Check_Anonymous_Access_Types): Before full analysis of a record type
8818         declaration, create anonymous access types for each self-referential
8819         access component.
8820         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
8821         an access component in this context is a Local_Anonymous_Access, for
8822         proper accessibility checks.
8823         (Access_Definition): Set properly the scope of the anonymous access type
8824         created for a stand-alone access object.
8825         (Find_Type_Of_Object): An object declaration may be given with an access
8826         definition.
8827         (Complete_Subprograms_Derivation): New subprogram used to complete
8828         type derivation of private tagged types implementing interfaces.
8829         In this case some interface primitives may have been overriden
8830         with the partial-view and, instead of re-calculating them, they
8831         are included in the list of primitive operations of the full-view.
8832         (Build_Derived_Record_Type): Modified to give support to private
8833         types implemening interfaces.
8834         (Access_Definition): Reject ALL on anonymous access types.
8835         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
8836         type derivation to occur at a deeper accessibility level than the
8837         parent type.
8838         For the case of derivation within a generic body however, disallow the
8839         derivation if the derived type has an ancestor that is a formal type
8840         declared in the formal part of an enclosing generic.
8841         (Analyze_Object_Declaration): For protected objects, remove the check
8842         that they cannot contain interrupt handlers if not declared at library
8843         level.
8844         (Add_Interface_Tag_Components): New subprogram to add the tag components
8845         corresponding to all the abstract interface types implemented by a
8846         record type or a derived record type.
8847         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8848         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8849         Process_Full_View, Record_Type_Declaration): Modified to give
8850         support to abstract interface types
8851         (Collect_Interfaces): New subprogram that collects the list of
8852         interfaces that are not already implemented by the ancestors
8853         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
8854         when partial view has no discriminants and full view has defaults.
8855         (Constrain_Access): Reject a constraint on a general access type
8856         if the discriminants of the designated type have defaults.
8857         (Access_Subprogram_Declaration): Associate the Itype node with the inner
8858         full-type declaration or subprogram spec. This is required to handle
8859         nested anonymous declarations.
8860         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8861         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8862         Process_Full_View, Record_Type_Declaration): Modified to give
8863         support to abstract interface types
8864         (Derive_Subprograms): Addition of a new formal to indicate if
8865         we are in the case of an abstact-interface derivation
8866         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
8867         to the specification because it is requied to analyze all the
8868         identifiers found in a list of interfaces
8869
8870         * debug.adb: Complete documentation of flag "-gnatdZ"
8871
8872         * exp_ch3.adb: Implement config version of persistent_bss pragma
8873         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
8874         testing for TSS presence to properly enforce visibility rules.
8875         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
8876         Make_Abstract_Interfaces_DT to generate the secondary tables
8877         associated with abstract interfaces.
8878         (Build_Init_Procedure): Modified to initialize all the tags
8879         corresponding.
8880         (Component_Needs_Simple_Initialization): Similar to other tags,
8881         interface tags do not need initialization.
8882         (Freeze_Record_Type): Modified to give support to abstract interface
8883         types.
8884         (Expand_N_Object_Declaration): Do not generate an initialization for
8885         a scalar temporary marked as internal.
8886
8887         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
8888         in-out parameter that is a component in an initialization procedure,
8889         whose constraint might depend on discriminants, and that may be
8890         misaligned because of packing or representation clauses.
8891         (Is_Legal_Copy): New predicate to determine whether a possibly
8892         misaligned in-out actual can actually be passed by copy/return. This
8893         is an error in case the type is by_reference, and a warning if this is
8894         the consequence of a DEC import pragma on the subprogram.
8895         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
8896         interface types
8897         (Expand_Inlined_Call): Mark temporary generated for the return value as
8898         internal, so that no useless scalar normalization is generated for it.
8899         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
8900         null procedure can always be inlined.
8901         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
8902         procedure, generate an explicit empty body for it.
8903
8904         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
8905         Given a type implementing an interface, returns the corresponding
8906         access_disp_table value.
8907         (Find_Interface_Tag): New subprogram. Given a type implementing an
8908         interface, returns the record component containing the tag of the
8909         interface.
8910         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
8911         previous ones that return the corresponding tag and access_disp_table
8912         entities.
8913         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
8914         is a predefined primitive operation.
8915         (Expand_Subtype_From_Expr): If the expression is a selected component
8916         within an initialization procedure, compute its actual subtype, because
8917         the component may depend on the discriminants of the enclosing record.
8918
8919         * i-cpp.ads, i-cpp.adb:
8920         This package has been left available for compatibility with previous
8921         versions of the frontend. As part of the new layout this is now a
8922         dummy package that uses declarations available at a-tags.ads
8923
8924         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
8925         "constant access" and "aliased [constant] access" when not compiling
8926         with -gnat05.
8927         Suppress Ada 2005 keyword warning if -gnatwY used
8928         (P_Identifier_Declarations): Add support for object declarations with
8929         access definitions.
8930         (Private_Extension_Declaration): Complete the documentation
8931         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
8932         attribute in case of private extension declaration
8933         (P_Type_Declaration): Mark as "abstract" the type declarations
8934         corresponding with protected, synchronized and task interfaces
8935         (P_Declarative_Items): "not" and "overriding" are overriding indicators
8936         for a subprogram or instance declaration.
8937
8938         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
8939         instantiation that is a dispatching operation has controlling access
8940         parameters that are null excluding.
8941         Save and restore Ada_Version_Explicit, for implementation of AI-362
8942         (Validate_Derived_Type_Instance): Add check for abstract interface
8943         types.
8944         (Analyze_Formal_Package): Establish Instantiation source for the copy of
8945         the generic that is created to represent the formal package.
8946         (Analyze_Package_Instantiation): Instantiate body immediately if the
8947         package is a predefined unit that contains inlined subprograms, and
8948         we are compiling for a Configurable_Run_Time.
8949         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
8950         If the program has a null default, generate an empty body for it.
8951
8952         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
8953         error message condition, null procedures are correctly detected now.
8954         (New_Overloaded_Entity): Bypass trivial overriding indicator check
8955         for subprograms in the context of protected types. Instead, the
8956         indicator is examined in Sem_Ch9 while analysing the subprogram
8957         declaration.
8958         (Check_Overriding_Indicator): Check consistency of overriding indicator
8959         on subprogram stubs as well.
8960         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
8961         the library level.
8962         (Analize_Subprogram_Specification): When analyzing a subprogram in which
8963         the type of the first formal is a concurrent type, replace this type
8964         by the corresponding record type.
8965         (Analyze_Subprogram_Body): Undo the previous work.
8966         (Analyze_Procedure_Call): If the call has the form Object.Op, the
8967         analysis of the prefix ends up analyzing the call itself, after which
8968         we are done.
8969         (Has_Interface_Formals): New subprogram subsidiary to analyze
8970         subprogram_specification that returns true if some non
8971         class-wide interface subprogram is found
8972         (New_Overloaded_Entity): Modified to give support to abstract
8973         interface types
8974         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
8975         access to subprograms must be recursive.
8976         (Is_Unchecked_Conversion): Improve the test that recognizes
8977         instantiations of Unchecked_Conversion, and allows them in bodies that
8978         are to be inlined by the front-end. When the body comes from an
8979         instantiation, a reference to Unchecked_Conversion will be an
8980         Expanded_Name, even though the body has not been analyzed yet.
8981         Replace Is_Overriding and Not_Overriding in subprogram_indication with
8982         Must_Override and Must_Not_Override, to better express intent of AI.
8983         (Analyze_Subprogram_Body): If an overriding indicator is given, check
8984         that it is consistent with the overrinding status of the subprogram
8985         at this point.
8986         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
8987         always inlined.
8988         If the subprogram is a null procedure, indicate that it does not need
8989         a completion.
8990
8991         * sem_disp.adb (Check_Controlling_Type): Give support to entities
8992         available through limited-with clauses.
8993         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
8994         allowed as the last primitive of a tagged type if it has no previous
8995         spec.
8996         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
8997         to give support to abstract interface types
8998
8999         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
9000         in the case where the target type is an anonymous access type of an
9001         object or component (that is, when Is_Local_Anonymous_Access is true).
9002         Prevent the special checks for conversions of access discriminants in
9003         the case where the discriminant belongs to a nonlimited type, since
9004         such discriminants have their accessibility level defined in the same
9005         way as a normal component of an anonymous access type.
9006         (Resolve_Allocator): When an allocator's designated type is a class-wide
9007         type, check that the accessibility level of type given in the
9008         allocator's expression or subtype indication is not statically deeper
9009         than the level of the allocator's access type.
9010         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
9011         name in a discriminant constraint of a record component.
9012         (Resolve_Explicit_Dereference): Do not check whether the type is
9013         incomplete when the dereference is a use of an access discriminant in
9014         an initialization procedure.
9015         (Resolve_Type_Conversion): Handle conversions to abstract interface
9016         types.
9017         (Valid_Tagged_Conversion): The conversion of a tagged type to an
9018         abstract interface type is always valid.
9019         (Valid_Conversion): Modified to give support to abstract interface types
9020         (Resolve_Actuals): Enable full error reporting on view conversions
9021         between unrelated by_reference array types.
9022         The rule for view conversions of arrays with aliased components is
9023         weakened in Ada 2005.
9024         Call to obsolescent subprogram is now considered to be a violation of
9025         pragma Restrictions (No_Obsolescent_Features).
9026         (Check_Direct_Boolean_Operator): If the boolean operation has been
9027         constant-folded, there is nothing to check.
9028         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
9029         check on possible violation of restriction No_Direct_Boolean_Operators
9030         until after expansion of operands, to prevent spurious errors when
9031         operation is constant-folded.
9032
9033         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
9034         Has_Compatible_Type): Modified to give support to abstract interface
9035         types.
9036         (Interface_Present_In_Ancestor): New function to theck if some ancestor
9037         of a given type implements a given interface
9038
9039         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
9040         prefix is a parameterless function that returns an access_to_procedure.
9041         (Transform_Object_Operation): Handle properly function calls of the
9042         form Obj.Op (X), which prior to analysis appear as indexed components.
9043         (Analyze_One_Call): Complete the error notification to help new Ada
9044         2005 users.
9045         (Analyze_Allocator): For an allocator without an initial value, where
9046         the designated type has a constrained partial view, a discriminant
9047         constraint is illegal.
9048
9049 2005-06-14  Robert Dewar  <dewar@adacore.com>
9050
9051         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
9052         do with treatment of Set_Col when positioned at end of line character.
9053
9054 2005-06-14  Robert Dewar  <dewar@adacore.com>
9055
9056         * atree.adb: (Elist*): Protect against uninitialized field
9057
9058 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9059
9060         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
9061         for an attribute reference that returns an access type.
9062         (Apply_Discriminant_Check): No need for check if (designated) type has
9063         constrained partial view.
9064
9065         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
9066         both bound checks, rather than a conjunction.
9067         (Insert_Valid_Check): If the expression is an actual that is an indexed
9068         component of a bit-packed array, force expansion of the packed element
9069         reference, because it is specifically inhibited elsewhere.
9070
9071 2005-06-14  Vincent Celier  <celier@adacore.com>
9072
9073         * clean.adb (Clean_Project): Correctly delete executable specified as
9074         absolute path names.
9075
9076         * make.adb (Gnatmake): Allow relative executable path names with
9077         directory information even when project files are used.
9078         (Change_To_Object_Directory): Fail gracefully when unable to change
9079         current working directory to object directory of a project.
9080         (Gnatmake): Remove exception handler that could no longer be exercized
9081         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
9082         may be deallocated by Normalize_Arguments.
9083         (Collect_Arguments): Eliminate empty arguments
9084
9085         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
9086         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
9087         (Check_Project): Return False when Project is No_Project. Return True
9088         when All_Projects is True.
9089         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
9090         All_Projects to True.
9091         Minor reformatting
9092
9093 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9094             Javier Miranda  <miranda@adacore.com>
9095             Thomas Quinot  <quinot@adacore.com>
9096             Robert Dewar  <dewar@adacore.com>
9097             Hristian Kirtchev  <kirtchev@adacore.com>
9098             Gary Dismukes  <dismukes@adacore.com>
9099
9100         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
9101         anonymous access types, to indicate that the accessibility level of
9102         the type is determined by that of the enclosing declaration.
9103         (Has_Persistent_BSS): New flag
9104         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
9105         of this attribute with functions.
9106         (Is_Primitive_Wrapper): Remove the barrier.
9107         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
9108         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
9109         New subprograms.
9110         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
9111         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
9112         New subprograms.
9113         (Is_Pure_Unit_Access_Type): New flag
9114         (Abstract_Interfaces): Complete the assertion to cover all usages.
9115         (Set_Is_Interface): Complete the assertion to cover all usages.
9116         (Is_Primitive_Wrapper): New attribute.
9117         (Is_Obsolescent): Now applies to all entities (though it is only set
9118         for subprograms currently)
9119         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
9120         which solves various problems concerning access subtypes.
9121         (Has_Persistent_BSS): New flag
9122         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
9123         Remove these subprograms because this attribute is currently
9124         not used.
9125         New entity flags:
9126         Has_Specified_Stream_Input (Flag190)
9127         Has_Specified_Stream_Output (Flag191)
9128         Has_Specified_Stream_Read (Flag192)
9129         Has_Specified_Stream_Write (Flag193)
9130         Present in all type and subtype entities. Set for a given view if the
9131         corresponding stream-oriented attribute has been defined by an
9132         attribute definition clause. When such a clause occurs, a TSS is set
9133         on the underlying full view; the flags are used to track visibility of
9134         the attribute definition clause for partial or incomplete views.
9135         (Is_Pure_Unit_Access_Type): New flag
9136         Clarify use of Is_Internal.
9137         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
9138         internally generated to wrap the invocation of tasks and protected
9139         types that implement interfaces.
9140         (Implementation_Base_Type): Documentation correction
9141         (Is_Obsolescent): Now applies to all entities (though it is only set
9142         for subprograms currently)
9143         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
9144         which solves various problems concerning access subtypes.
9145
9146         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
9147         for examined parameters. Identify unequal parameter list lengths as
9148         non-conformant parameters.
9149         (Overriding_Possible): Do not check for "All" qualifier in declaration
9150         of controlling access parameter, following prescription of AI-404.
9151         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
9152         that build the procedure body that wraps an entry invocation
9153         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
9154         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
9155         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
9156         give support to abstract interface types
9157
9158         * freeze.adb (Freeze_Entity): Issue error message if
9159         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
9160         type has no storage pool (Ada 2005) AI-366.
9161         Also modified to give support to abstract interface types
9162         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
9163         Inline_Always pragma.
9164
9165         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
9166         now begin an entry declaration.
9167         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
9168         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
9169         a subprogram declaration preceded by an overriding indicator.
9170         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
9171         declarations or subprogram declarations preceded by reserved words
9172         "not" or "overriding".
9173         (P_Entry_Declaration): Update comment. Parse and check overriding
9174         indicator, set semantic flags of entry declarations.
9175         (P_Task): New error message in case of private applied
9176         to a task type declaration.
9177         (P_Protected): New error message in case of private applied
9178         to a task type declaration.
9179
9180         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
9181         in which the full view of a type implementing an interface is a
9182         concurrent type.
9183         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
9184         Declare_Inherited_Private_Subprograms): If an explicit operation
9185         overrides an operation that is inherited in the private part, mark the
9186         explicit one as overriding, to enable overriding indicator checks.
9187         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
9188         full view to partial view, to simplify handling in back-end.
9189
9190         * sprint.adb: Print interface lists where needed: derived types,
9191         protected types, task types.
9192         output "is null" for null procedures. Part of implementation of
9193
9194         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
9195         relaxation of rules for access types in pure, shared passive partitions.
9196
9197         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
9198         first read discriminants into temporary objects, performing checks on
9199         the read values, then possibly performing discriminant checks on the
9200         actual (if it is constrained), and only finally reading the components
9201         into a constrained temporary object.
9202         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
9203         case of reading discriminants of a mutable record type to recognize
9204         the new form of the code generated by
9205         Build_Mutable_Record_Read_Procedure.
9206
9207         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
9208         of a simple call to Make_TSS_Name.
9209         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
9210         buffer, in order for Is_TSS to work correctly on local TSS names.
9211
9212         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
9213         Is_Local_Anonymous_Access to check legaliy of attributes in the
9214         context of  access components and stand-alone access objects.
9215         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
9216         treated as available for a limited private type if there is an
9217         attribute_definition_clause that applies to its full view, but not in
9218         other cases where the attribute is available for the full view
9219         (specifically, the sole fact that the full view is non-limited does not
9220         make the attribute available for the partial view).
9221         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
9222         non-overloaded intrinsic subprogram.
9223         (Check_Stream_Attribute): Reject an attribute reference for an
9224         unavailable stream attribute even if the prefix is not a limited type
9225         (case of a 'Input attribute reference for an abstract, non-classwide
9226         type)
9227         (Stream_Attribute_Available): New function to determine whether a stream
9228         attribute is available at a place.
9229         (Check_Attribute): Use Stream_Attribute_Available instead of just
9230         testing for TSS presence on the implementation base type.
9231         (Analyze_Attribute): Modified to give support to task interfaces.
9232         (Analyze_Access_Attribute): Add error check for use of an Access (or
9233         Unrestricted_Access) attribute with a subprogram marked as
9234         Inline_Always.
9235         (Analyze_Attribute, case Attribute_Address): Add error check for use of
9236         an Address attribute with a subprogram marked as Inline_Always.
9237         Update Eval_Attribute to handle new value of Width from AI-395
9238
9239         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
9240         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
9241         Factor common code across the stream-oriented attribute circcuits into
9242         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
9243         processing is functionally identical to the previous duplicated one,
9244         except that an expression that denotes an abstract subprogram will now
9245         be rejected, as mandated by AI-195 item 5.
9246
9247         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
9248         Is_Local_Anonymous_Access to apply accessibility checks to access
9249         components and stand-alone access objects.
9250         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
9251         elsewhere.
9252         (Is_Potentially_Persistent_Type): New function
9253         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
9254         a heap-object whose type has a constrained partial view, the object is
9255         unconstrained and the component may depend on a discriminant, making its
9256         renaming illegal.
9257
9258         * sinfo.ads, sinfo.adb
9259         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
9260         (Must_Override): Flag applicable to N_Entry_Declaration.
9261         Indicate that interface_list can appear in single task and single
9262         protected declarations.
9263         Replace Is_Overriding and Not_Overriding with Must_Override and
9264         Must_Not_Override, to better express intent of AI.
9265         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
9266         of an overriding indicator in a subprogram or instance.
9267         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
9268         Add the overriding indicator [[not] overriding] construct to the
9269         following grammar productions:
9270          ENTRY_DECLARATION
9271          GENERIC_INSTANTIATION
9272          SUBPROGRAM_SPECIFICATION
9273
9274         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
9275         can start with an overriding indicator.
9276
9277         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
9278         flags accordingly on subrogram specifications or instances.
9279
9280         * sem_ch8.adb:
9281         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
9282         overriding_indicator, if present, is consistent with status of spec.
9283         Improve error message for null-excluding checks on controlling access
9284         parameters.
9285         (Check_In_Previous_With_Clause): Protect the frontend against
9286         previously reported critical errors in the context clauses.
9287         Save and restore Ada_Version_Explicit, for implementation of AI-362
9288         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
9289         operation verify that controlling formals of the renamed entity that
9290         are access parameters are explicitly non-null.
9291         (Find_Expanded_Name): Improve error message when prefix is an illegal
9292         reference to a private child unit.
9293
9294         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
9295         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
9296         Rewrite to correspond to new wide character names in AI-395
9297
9298         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
9299         default procedures.
9300
9301 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9302             Robert Dewar  <dewar@adacore.com>
9303
9304         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
9305         code, not on the bodies of predefined operations, to cut down on
9306         spurious noise.
9307
9308 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9309
9310         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
9311         be expanded in place. The size computation does not require a
9312         subtraction, which would raise an exception on a compiler built with
9313         assertions when the upper bound is Integer'first.
9314         (Flatten): For an array of composite components, take into account the
9315         size of the components to determine whether it is safe to expand the
9316         array into a purely positional representation.
9317
9318 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9319
9320         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
9321         denoting a formal parameter into account.
9322
9323 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9324
9325         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
9326         the entry_call alternative of a conditional entry call, wrap the
9327         conditional entry call itself.
9328
9329 2005-06-14  Nicolas Setton  <setton@adacore.com>
9330             Ed Schonberg  <schonberg@adacore.com>
9331
9332         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
9333         the "simple_choice" member in a variant record, in accordance with the
9334         description in the package spec: the information output for a constant
9335         should be "S number", not "SS number".
9336         (Get_Encoded_Name): Return at once if not generating code. Avoids name
9337         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
9338
9339 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9340
9341         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
9342         RACW without any primitives, do not generate the if statement for
9343         dispatching by name in the PolyORB/DSA case, as it would be malformed
9344         (it would have an Elsif_Parts list that is not No_List, but with a
9345         length of 0).
9346
9347 2005-06-14  Robert Dewar  <dewar@adacore.com>
9348
9349         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
9350
9351 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
9352
9353         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
9354         can determine whether pragma Suppress_Exception_Locations is in effect.
9355
9356         * utils2.c (build_call_raise): Do not pass the file name to the
9357         exception handler if pragma Suppress_Exception_Locations is in effect.
9358         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
9359
9360 2005-06-14  Emmanuel Briot  <briot@adacore.com>
9361
9362         * g-debpoo.adb (Deallocate, Dereference): Improve output.
9363
9364 2005-06-14  Nicolas Roche  <roche@adacore.com>
9365
9366         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
9367         to ""
9368         (Next_Level): Fix minor bug in handling of ../dir case
9369         (Read): Add dir separator to Directory name so that "" is understood as
9370          "/"
9371
9372 2005-06-14  Pascal Obry  <obry@adacore.com>
9373
9374         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
9375         releasing the items.
9376
9377 2005-06-14  Vincent Celier  <celier@adacore.com>
9378             Cyrille Comar  <comar@adacore.com>
9379
9380         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
9381         with output file descriptor and with output file name.
9382         (Dup, Dup2): Now global procedures as they are used by two subprograms
9383         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
9384
9385 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9386
9387         PR ada/6717
9388
9389         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
9390         broadcast address.
9391         (Create_Selector): Bind listening socket used to create the signalling
9392         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
9393         Set listen backlog to 1 to ensure that we detect socket theft by a
9394         failure of our own connect(2) call.
9395         (Check_Selector): Improve documentation of the selector mechanism.
9396         (Broadcast_Inet_Addr): New constant.
9397
9398 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9399
9400         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
9401         type which turns out to be an incomplete and incorrect fix.
9402         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
9403         of the type is declared in a record (for determination of insertion
9404         type).
9405         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
9406         a private type and ensure that the primary entity is used for the type
9407         of the newly created function's V formal by taking the Etype of the
9408         view.
9409
9410 2005-06-14  Javier Miranda  <miranda@adacore.com>
9411             Jose Ruiz  <ruiz@adacore.com>
9412             Robert Dewar  <dewar@adacore.com>
9413             Ed Schonberg  <schonberg@adacore.com>
9414
9415         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
9416         that indicates if we are parsing a compilation unit found in a
9417         limited-with clause.
9418         It is use to avoid the circularity check.
9419
9420         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
9421         we are parsing a compilation unit found in a limited-with clause. This
9422         is use to avoid the circularity check.
9423
9424         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
9425         unit as a consequence of parsing a limited-with clause. This is used
9426         to avoid the circularity check.
9427
9428         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
9429         (Analyze_Context): Limited-with clauses are now allowed
9430         in more compilation units.
9431         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
9432         againts previously reported critical errors in context clauses
9433         (Install_Limited_Withed_Unit): Code cleanup plus static detection
9434         of two further errors: renamed subprograms and renamed packages
9435         are not allowed in limited with clauses.
9436         (Install_Siblings): Do not install private_with_clauses on the package
9437         declaration for a non-private child unit.
9438         (Re_Install_Parents): When a parent of the subunit is reinstalled,
9439         reset visibility of child units properly.
9440         (Install_Withed_Unit): When a child unit appears in a with_clause of its
9441         parent, it is immediately visible.
9442
9443 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9444             Emmanuel Briot  <briot@adacore.com>
9445
9446         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
9447         declared within an inlined body as referenced, to prevent spurious
9448         warnings.
9449         (Output_One_Ref): If an entity renames an array component, indicate in
9450         the ALI file that this aliases (renames) the array. Capture as well
9451         function renamings that rename predefined operations.
9452         Add information about generic parent for package and subprogram
9453         instances.
9454         (Get_Type_Reference): For a subtype that is the renaming of an actual in
9455         an instantiation, use the first_subtype to ensure that we don't generate
9456         cross-reference information for internal types.
9457         For objects and parameters of a generic private type, retain the '*'
9458         indicator to distinguish such an entity from its type.
9459
9460         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
9461         to store information about instantiated entities.
9462
9463         * ali.adb (Scan_ALI): Add support for parsing the reference to the
9464         generic parent
9465
9466         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
9467         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
9468         information.
9469
9470 2005-06-10  Doug Rupp  <rupp@adacore.com>
9471             Arnaud Charlet  <charlet@adacore.com>
9472             Olivier Hainque  <hainque@adacore.com>
9473             Jose Ruiz  <ruiz@adacore.com>
9474
9475         * Make-lang.in: Add initialize.o when needed.
9476         Remove obsolete references to RT_FLAGS.
9477         Add missing dependencies for sdefault.o
9478
9479         * initialize.c: New file.
9480
9481         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
9482         [VMS] cond_signal_table: Fix problem in declaration.
9483         [VMS] __gnat_error_handler: rewrite.
9484         Move all __gnat_initialize() routines to initialize.c
9485         Specialize the former "hpux" section to "hppa hpux", as this is what the
9486         section really is here for and we now have other hpux ports that need
9487         different contents.
9488         (__gnat_adjust_context_for_raise) i386-linux: First version of this
9489         function for this target. Adjust PC by one in the machine context. This
9490         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
9491         it is more reliable to do that in the signal handler itself.
9492         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
9493         flags, so that the handler is passed the context structure to adjust
9494         prior to the raise.
9495         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
9496         SA_SIGINFO sigaction should look like. Call
9497         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
9498         Machine_State_Operations stuff.
9499         Add conditional code so that the x86_64 is also supported.
9500
9501 2005-06-14  Pascal Obry  <obry@adacore.com>
9502
9503         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
9504         the library name.
9505
9506 2005-06-14  Robert Dewar  <dewar@adacore.com>
9507
9508         * opt.ads, opt.adb: New flags for persistent_bss mode
9509         Add Ada_Version_Explicit, for implementation of AI-362
9510         Add Assertions_Enabled_Config and associated handling
9511         Needed since setting can be changed with Assertion_Policy pragma
9512         Add new flag Warn_On_Ada_2005_Compatibility
9513
9514         * switch-c.adb: Recognize -gnatwy/Y
9515         Set Ada_Version_Explicit, for implementation of AI-362
9516         The -gnatg switch now includes -gnatyu
9517
9518         * usage.adb: Add -gnatwy/Y
9519         Remove wrong asterisk on -gnatwX line
9520         Add line for -gnatyu switch
9521
9522 2005-06-14  Vincent Celier  <celier@adacore.com>
9523
9524         * osint.adb (Add_Default_Search_Dirs): Put source and object
9525         directories of project files before directories coming from
9526         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
9527
9528 2005-06-14  Robert Dewar  <dewar@adacore.com>
9529
9530         PR ada/15613
9531
9532         * par-ch2.adb (Scan_Pragma_Argument): New procedure
9533         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
9534
9535 2005-06-14  Vincent Celier  <celier@adacore.com>
9536
9537         * prep.adb (Preprocess): Ignore error when scanning the first token of
9538         a line.
9539
9540 2005-06-14  Vincent Celier  <celier@adacore.com>
9541
9542         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
9543         (Check_Stand_Alone_Library): If the specified reference symbol file does
9544         not exist, only issue a warning when the symbol policy is not
9545         Controlled. And, when symbol policy is Compliant, set the symbol
9546         policy to Autonomous.
9547
9548 2005-06-14  Vincent Celier  <celier@adacore.com>
9549
9550         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
9551         when the project file in a with clause is not the last one, that is the
9552         project file name is followed by a comma.
9553         * prj-pp.adb: (First_With_In_List): New Boolean global variable
9554         (Print): Issue list of project files separated by commas in with clauses
9555         according to the values returned by Is_Not_Last_In_List.
9556         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
9557         (Set_Is_Not_Last_In_List): New procedure
9558
9559 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9560
9561         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
9562
9563 2005-06-14  Robert Dewar  <dewar@adacore.com>
9564
9565         * scng.adb: Add call to new Check_EOF routine
9566         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
9567         Add some comments regarding wide character handling
9568
9569         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
9570
9571         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
9572
9573         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
9574         characters are now considered graphic characters and hence yield false
9575         in this call.
9576
9577         * nmake.adt: Modify header so that xnmake does not generate output
9578         files with multiple blank lines.
9579
9580         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9581         not have an extra blank line
9582
9583 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9584
9585         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
9586         expression when the component type is an anonymous access type to
9587         ensure that appropriate accessibility checks are done.
9588
9589         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
9590         expression of an assignment when the target object is of an anonymous
9591         access type. This ensures that required accessibility checks are done.
9592         (One_Bound): Move the check for type Universal_Integer to
9593         Process_Bounds.
9594         (Process_Bounds): Check whether the type of the preanalyzed range is
9595         Universal_Integer, and in that case set Typ to Integer_Type prior
9596         to setting the type of the original range and the calls to One_Bound.
9597
9598 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9599
9600         * sem_case.adb (Expand_Others_Choice): Improve warning.
9601
9602 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9603
9604         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
9605         constraint of full view if present, when other type is discriminated.
9606         (Eval_Relational_Op): Recognize tests of pointer values against Null,
9607         when the pointer is known to be non-null, and emit appropriate warning.
9608
9609 2005-06-14  Robert Dewar  <dewar@adacore.com>
9610             Ed Schonberg  <schonberg@adacore.com>
9611
9612         PR ada/10671
9613
9614         * sem_prag.adb: Implement pragma Persistent_BSS
9615         Remove obsolete pragma Persistent_Data, Persistent_Object
9616         Set Ada_Version_Explicit, for implementation of AI-362
9617         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
9618         Add processing for pragma Pure_05 and Preelaborate_05
9619         Add processing for Assertion_Policy pragma
9620         Add pragma identifiers for Assert
9621         (Analyze_Pragma, case Assert): Check number of arguments
9622         (Process_Inline): Additional guard against an illegal program, where the
9623         argument of the pragma is undefined, and warnings on redundant
9624         constructs are enabled.
9625         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
9626         Ada_05 to this pragma, specifying that the pragma is only active in
9627         Ada_05 mode.
9628         (Check_Arg_Order): New procedure
9629         Add appropriate calls to this procedure throughout
9630         Also throughout, check entity name before doing any other checks
9631
9632         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
9633         Remove obsolete pragma Persistent_Data, Persistent_Object
9634         Add entries for pragma Pure_05 and Preelaborate_05
9635         Add entries for Assertion_Policy pragma and associated names
9636         Add some names for pragma argument processing
9637
9638         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
9639
9640 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9641
9642         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
9643         appears within a negation (either from source or as a rewriting of
9644         inequality) adjust text of warning accordingly.
9645
9646 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9647
9648         * s-strxdr.adb: Follow AI95-00132
9649
9650 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9651
9652         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
9653
9654 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9655             Jose Ruiz  <ruiz@adacore.com>
9656
9657         * s-tposen.adb, s-tpobop.adb
9658         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
9659         the exception id.
9660         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
9661         there is no violation of the Max_Entry_Queue_Length restriction (if it
9662         has been set); Program_Error is raised otherwise.
9663         (Requeue_Call): Before requeuing the task on the target entry queue we
9664         check that there is no violation of the Max_Entry_Queue_Length
9665         restriction (if it has been set); Program_Error is raised otherwise.
9666
9667 2005-06-14  Robert Dewar  <dewar@adacore.com>
9668
9669         * styleg.adb: Fix several remaining problems in -gnatyu switch
9670         Blank line count not reset at start
9671         Scanning outside source buffer in some cases
9672         Confusing message for blanks at end of file
9673         Non-empty blank lines not recognized
9674
9675         * nmake.adt: Modify header so that xnmake does not generate output
9676         files with multiple blank lines.
9677
9678         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9679         not have an extra blank line
9680
9681 2005-06-14  Sergey Rybin  <rybin@adacore.com>
9682
9683         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
9684
9685 2005-06-14  Doug Rupp  <rupp@adacore.com>
9686             Vincent Celier  <celier@adacore.com>
9687
9688         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
9689         Update copyright.
9690
9691         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9692         Remove "Library" command.
9693         Change keyword for style check -gnatyd from NOCRLF to
9694         DOS_LINE_ENDINGS.
9695         Remove useless second style check keyword NONE
9696         Remove help documentation for inexistent style check keyword
9697         RM_COLUMN_LAYOUT.
9698         Add help documentation for style check keywords DOS_LINE_ENDINGS,
9699         UNNECESSARY_BLANK_LINES and XTRA_PARENS
9700         Add UNNECESSARY_BLANK_LINES for -gnatyu
9701         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
9702
9703         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9704
9705 2005-06-14  Vincent Celier  <celier@adacore.com>
9706
9707         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
9708         gprmake was invoked with -d.
9709         (Compile_Sources): If -d was used, output the "completed ..." message
9710         for each compilation.
9711         (Scan_Arg): Recognize new switch -d
9712         When -c and at least one main is specified, set
9713         Unique_Compile to True to guarantee that no other sources will be
9714         compiled.
9715
9716 2005-06-14  Matthew Heaney  <heaney@adacore.com>
9717
9718         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
9719         * a-swuwha.ads, a-swuwha.adb: New files
9720
9721         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
9722         * a-szuzha.ads, a-szuzha.adb: New files.
9723
9724         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9725         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
9726         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
9727         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
9728         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
9729         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
9730         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
9731         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
9732         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
9733         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
9734         Ada 2005 RM.
9735
9736 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9737             Olivier Hainque  <hainque@adacore.com>
9738             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9739             Pascal Obry  <obry@adacore.com>
9740
9741         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
9742
9743         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
9744         making a temporary around a procedure call because of non-addressable
9745         actual parameter.
9746         (process_freeze_entity): If entity is a private type, capture size
9747         information that may have been computed for the full view.
9748         (tree_transform, case N_Allocator): If have initializing expression,
9749         check type for Has_Constrained_Partial_View and pass that to
9750         build_allocator.
9751         (tree_transform, case N_Return_Statement): Pass extra arg to
9752         build_allocator.
9753
9754         * decl.c (annotate_value): Remove early return if -gnatR is not
9755         specified.
9756         (gnat_to_gnu_field): Don't make a packable type for a component clause
9757         if the position is byte aligned, the field is aliased, and the clause
9758         size isn't a multiple of the packable alignment. It serves no useful
9759         purpose packing-wise and would be rejected later on.
9760         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
9761
9762         PR ada/20515
9763         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
9764         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
9765         instead.
9766         (create_concat_name): Idem.
9767
9768 2005-06-10  Robert Dewar  <dewar@adacore.com>
9769             Eric Botcazou  <ebotcazou@adacore.com>
9770             Ben Brosgol  <brosgol@adacore.com>
9771             Cyrille Comar  <comar@adacore.com>
9772             Sergey Rybin  <rybin@adacore.com>
9773             Pascal Obry  <obry@adacore.com>
9774
9775         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
9776         Document second argument (Ada_05) of pragma Obsolescent
9777         Add note that call to subprogram marked with pragma Obsolescent
9778         is now considered to be a violation of program Restrictions
9779         (No_Obsolescent_Features).
9780         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
9781         that only machine-dependent attributes are supported.
9782
9783         * gnat_ugn.texi:
9784         Commented out menu lines and empty section for gnatclean examples
9785         Document -gnatwy/Y
9786         Fix some over long lines
9787         Clarify and enhance documentation of ADA_PROJECT_PATH.
9788         Rework section 2.11.2(3) about linking with a non-GNU compiler.
9789         Mention new switch -fcallgraph-info.
9790         Mention new switch -fstack-usage.
9791         For gnatpp, replace '-notab' with '-N' and add this option to Index
9792         Corrected VMS example.
9793         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
9794         Minor reformatting
9795         Add documentation for -gnatyu switch (unnecessary blank lines)
9796         Document new switch -U for GNAT PRETTY and GNAT METRIC
9797         Add note about Stdcall being handled as C convention on non Windows OS.
9798         Remove some junk typo in description of gnatbind -S switch
9799         Remove reference to Extensions_Allowed pragma
9800         Document the new order of the directories to be searched (source and
9801         object directories of project files before directories in ADA_*_PATH
9802         environment variables.
9803
9804         * g-trasym.ads: Document that IRIX is supported
9805
9806 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
9807
9808         * Makefile.in: Add initialize.o when needed.
9809         Adapt to new VMS package body Symbols and subunits
9810         No specialized version of a-sytaco is needed for VxWorks.
9811
9812         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
9813         * a-zchara.ads, a-widcha.ads: New files.
9814
9815         * system-hpux-ia64.ads: New file.
9816
9817         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
9818         is imported from the VxWorks kernel.
9819
9820 2005-06-14  Robert Dewar  <dewar@adacore.com>
9821
9822         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
9823         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
9824         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
9825         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
9826         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
9827         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
9828         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
9829         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
9830         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
9831         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
9832         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
9833         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
9834
9835 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9836
9837         * xeinfo.adb: Fix typo in comment
9838
9839 2005-06-14  Javier Miranda  <miranda@adacore.com>
9840
9841         * repinfo.ads: Fix typo in comment
9842
9843 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9844
9845         * s-finimp.adb (Parent_Tag): Delete this imported function (function
9846         Parent_Tag is now in the visible part of Ada.Tags).
9847         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
9848         using imported function.
9849
9850 2005-06-14  Bernard Banner  <banner@adacore.com>
9851
9852         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
9853         also apply for handling support for VxSim 653.
9854
9855 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9856
9857         * xsnames.adb: Add automatic generation of snames.h.
9858
9859 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9860
9861         * gen-soccon.c: Add IP_MULTICAST_IF constant
9862         Minor reformatting and adjustments to prevent warnings.
9863
9864 2005-06-14  Pascal Obry  <obry@adacore.com>
9865
9866         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
9867
9868 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
9869
9870         * trans.c (gnat_gimplify_expr): Call
9871         recompute_tree_invarant_for_addr_expr when we change
9872         the operand of the ADDR_EXPR.
9873
9874 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9875
9876         * misc.c: Don't include errors.h.
9877
9878 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9879
9880         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
9881
9882 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
9883
9884         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
9885         comment typos.
9886         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
9887
9888 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
9889
9890         PR ada/20270
9891         * Makefile.in: Make TGT_LIB behave correctly.
9892
9893 2005-04-23  DJ Delorie  <dj@redhat.com>
9894
9895         * misc.c: Adjust warning() callers.
9896
9897 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
9898
9899         PR ada/18847
9900         * a-nudira.adb (Value): Check for valid string.
9901         * a-nuflra.adb (Value): Likewise.
9902
9903 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
9904
9905         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
9906
9907 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
9908
9909         * adaint.c, init.c, tracebak.c: Fix comment typos.
9910         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
9911
9912 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
9913             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9914
9915         * Makefile.in: Add make ifeq define for hppa linux tasking support.
9916         * system-hpux.ads: Define Signed_Zeros to be True.
9917         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
9918
9919 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
9920
9921         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
9922         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
9923         typos.
9924
9925 2005-03-30  Tom Tromey  <tromey@redhat.com>
9926
9927         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
9928
9929 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9930
9931         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
9932
9933 2005-03-29  Robert Dewar  <dewar@adacore.com>
9934
9935         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
9936         fixed-point expression has value that is not a multiple of the Small
9937         value.
9938
9939         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
9940
9941         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
9942         nanoseconds.
9943
9944         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
9945
9946 2005-03-29  Vincent Celier  <celier@adacore.com>
9947
9948         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
9949         (Build_Dynamic_Library.Version_String): Return the empty string when
9950         Lib_Version is empty or when the symbol policy is not Autonomous.
9951
9952         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
9953         a symbol is not in the reference symbol file, increase the Major ID
9954         and set the Minor ID to 0.
9955         Use gsmatch=lequal instead of gsmatch=equal
9956
9957 2005-03-29  Doug Rupp  <rupp@adacore.com>
9958
9959         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
9960         name and translate.
9961
9962 2005-03-29  Javier Miranda  <miranda@adacore.com>
9963
9964         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
9965         (Inherit_DT): The first formal has been redefined as a Tag.
9966         This allows us the removal of the subprogram Get_TSD.
9967         (TSD): Replace the call to Get_TSD by the actual code.
9968
9969         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
9970         (Make_DT): Upgrade the call to Inherit_TSD according to the
9971         new interface: the first formal is now a Tag.
9972
9973         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
9974         redefined as a Tag.
9975         This change allows us to remove the subprogram Get_TSD.
9976         (CPP_Get_TSD): Subprogram removed.
9977         (TSD): Replace the call to CPP_Get_TSD by the actual code.
9978
9979         * rtsfind.ads: Remove support to call the run-time
9980         subprogram Get_TSD
9981
9982 2005-03-29  Robert Dewar  <dewar@adacore.com>
9983
9984         * errutil.adb, errout.adb:
9985         Minor comment updates on Line_Terminator references
9986
9987         * par-ch10.adb: Add ??? comment about line terminator
9988
9989         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
9990         (check dos line terminator).
9991         (Check_Line_Max_Length): New procedure, split off from the existing
9992         Check_Line_Terminator routine. Separating this out allows -gnatyf to
9993         be properly recognized.
9994
9995         * styleg.adb: Add ??? comment for line terminator reference
9996
9997         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
9998         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
9999
10000         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
10001         (check dos line terminator).
10002         (Check_Line_Max_Length): New procedure, split off from the existing
10003         Check_Line_Terminator routine. Separating this out allows -gnatyf to
10004         be properly recognized.
10005
10006         * stylesw.ads, stylesw.adb:
10007         Add handling for new -gnatyd switch (check dos line terminator)
10008
10009         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
10010         Recognize -gnatwb/-gnatwB switches
10011         Include Warn_On_Bad_Fixed_Value for -gnatg
10012
10013         * usage.adb:
10014         Add line for new -gnatyd switch (check dos line terminator)
10015
10016         * usage.adb: Add lines for -gnatwb/-gnatwB
10017
10018         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
10019
10020         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
10021
10022         * gnat_ugn.texi: Fix overlong lines
10023         Document new -gnatyd switch
10024         Document new -gnatwb/-gnatwB switches
10025
10026 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10027
10028         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
10029         order to retrieve the component list of the type, before examining
10030         individual components.
10031
10032         * sem_type.adb (Covers): Types are compatible if one is the base type
10033         of the other, even though their base types might differ when private
10034         views are involved.
10035
10036 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10037
10038         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
10039         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
10040         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
10041         analyzed if expansion is disabled (which could otherwise cause spurious
10042         error messages if expansion has been disabled due to previous
10043         (unrelated) errors).
10044
10045         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
10046         is disabled, the entity denoted by the argument is the access type
10047         itself, not an underlying record type, so there is no need to go back
10048         to the Corresponding_Remote_Type.
10049
10050 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
10051             Robert Dewar  <dewar@adacore.com>
10052
10053         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
10054         expand a call to an instance of
10055         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
10056         Constructor actual of the instance. A class-wide membership
10057         check is also generated, to ensure that the tag passed to the instance
10058         denotes a type in the class.
10059         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
10060         of Name_Generic_Dispatching_Constructor.
10061
10062         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
10063         05 unit for AI-260-02).
10064
10065         * a-tgdico.ads: New file.
10066
10067         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
10068         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
10069
10070         * snames.ads, snames.adb (Preset_Names): Add entry for
10071         Generic_Dispatching_Constructor.
10072
10073         PR ada/20300
10074
10075         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
10076         character type cases.
10077         (Analyze_Subprogram_Renaming): Add special handling for
10078         the case of renaming of stream attributes when the renaming denotes a
10079         generic formal subprogram association for an abstract formal subprogram.
10080         Check that the attribute is a primitive stream attribute (and not
10081         a class-wide stream attribute) and then rewrite the attribute name
10082         as the name of the appropriate compiler-generated stream primitive.
10083
10084 2005-03-29  Robert Dewar  <dewar@adacore.com>
10085
10086         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
10087         recursive calls.
10088         (Is_Possibly_Unaligned_Object): Correct typo that
10089         resulted in inaccurate result for unaligned scalars within records.
10090
10091 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10092
10093         * freeze.adb (Freeze_Record_Type): If the type of the component is an
10094         itype whose parent is controlled and not yet frozen, do not create a
10095         freeze node for the itype if expansion is disabled.
10096
10097 2005-03-29  Vincent Celier  <celier@adacore.com>
10098
10099         * make.adb (Gnatmake): Don't fail if the main project file is declared
10100         as having no Ada sources. Do not display message "no sources to
10101         compile" in quiet output.
10102
10103 2005-03-29  Doug Rupp  <rupp@adacore.com>
10104
10105         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
10106         extra tools.
10107
10108 2005-03-29  Robert Dewar  <dewar@adacore.com>
10109
10110         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
10111         child.
10112
10113 2005-03-29  Robert Dewar  <dewar@adacore.com>
10114
10115         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
10116         missing TYPE Improve the error message generated when compiling a
10117         limited interface in Ada83 or Ada95 mode.
10118
10119 2005-03-29  Robert Dewar  <dewar@adacore.com>
10120
10121         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
10122         rather than proceed ahead using a junk attribute name.
10123
10124 2005-03-29  Vincent Celier  <celier@adacore.com>
10125
10126         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
10127
10128         * prj-part.adb (Parse_Single_Project): Set the location of a project
10129         on its defining identifier, rather than on the reserved word "project".
10130
10131         * prj-proc.adb (Expression): Adapt to the fact that default of external
10132         references may be string expressions, not always literal strings.
10133         (Recursive_Process): Set Display_Name equal to Name
10134         when Location is No_Location, that is when there is no actual file.
10135         Get the Display_Name of the project from the source, when it is not a
10136         virtual project.
10137         (Process): Use the Display_Name in error messages
10138
10139         * prj-strt.adb (External_Reference): Allow default to be string
10140         expressions, not only literal strings.
10141
10142 2005-03-29  Vincent Celier  <celier@adacore.com>
10143
10144         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
10145         file and the reference symbol file to be the same file.
10146
10147 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10148
10149         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
10150         forbid conversion of a local access-to-subprogram type to a remote one.
10151
10152         * sem_util.adb (Wrong_Type): For a record type that is the expanded
10153         equivalent type for a remote access-to-subprogram type, go back to the
10154         original RAS entity when displaying an error message, so the casing is
10155         the original source casing.
10156
10157 2005-03-29  Robert Dewar  <dewar@adacore.com>
10158
10159         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
10160         on param update.
10161
10162 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10163
10164         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
10165         subtype if code is being pre-analyzed, to prevent un-expanded
10166         references to protected formals, among others.
10167         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
10168         interpretation that can be a call, include the result of the call as a
10169         possible interpretation of the dereference.
10170
10171         * sem_ch5.adb (Process_Bounds): Determine type of range by
10172         pre-analyzing a copy of the original range, and then analyze the range
10173         with the expected type.
10174
10175         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
10176         with an overloaded prefix where not all interpretations yield an
10177         access to subprogram, do not rewrite node as a call.
10178         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
10179         the node as a call once the context identifies the interpretation of
10180         the prefix whose call yields the context type.
10181         (Valid_Conversion): For the case of a conversion between
10182         local access-to-subprogram types, check subtype conformance using
10183         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
10184         detailed error message.
10185
10186 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10187
10188         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
10189         indicator, indicate that the formal can never be null.
10190         (Process_Formals): If a formal has a non_null indicator, insert the
10191         resulting subtype immediately before the enclosing subprogram decl,
10192         and not at the beginning of the corresponding declarative part, to
10193         prevent access before elaboration (Ada2005).
10194
10195 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10196
10197         PR ada/19956
10198         * utils.c (finish_record_type): Use variable_size when setting sizes.
10199
10200 2005-03-29  Robert Dewar  <dewar@adacore.com>
10201
10202         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
10203         guarantee Unix style line terminators for the output files, even when
10204         running on windows.
10205
10206 2005-03-29  Robert Dewar  <dewar@adacore.com>
10207
10208         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
10209         buffer if an exception is raised.
10210
10211 2005-03-29  Ed Falis  <falis@adacore.com>
10212
10213         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
10214         VxWorks 653 1.4
10215
10216 2005-03-29  Robert Dewar  <dewar@adacore.com>
10217
10218         * sem_util.ads: Minor reformatting
10219         * gnat_rm.texi: Minor editing.
10220
10221 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
10222
10223         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
10224         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
10225
10226 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10227
10228         * adaint.c (__gnat_portable_spawn): Adjust cast.
10229
10230 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
10231
10232         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
10233
10234 2005-03-17  Pascal Obry  <obry@adacore.com>
10235
10236         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
10237         used.
10238
10239         * expect.c (__gnat_waitpid): Moved here from adaint.c.
10240         Reimplement under Win32 using Win32 API.
10241
10242         (__gnat_kill) [Win32]: Properly close the process handle before leaving
10243         this routine.
10244
10245 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
10246
10247         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
10248         (DECL_RENAMED_OBJECT): New accessor macro.
10249         (SET_DECL_RENAMED_OBJECT): New setter macro.
10250
10251         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
10252         object in all cases.  Attach the renamed object to the VAR_DECL.
10253         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
10254         field is not prescribed.
10255
10256         * misc.c (gnat_handle_option): Handle -gnatO separately.
10257         (gnat_print_decl) <VAR_DECL>: New case.
10258         Print the DECL_RENAMED_OBJECT node.
10259
10260         * lang.opt:  Declare separate -gnatO option.
10261
10262         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
10263         pointer, replace it with the renamed object.
10264         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
10265         pointer type if the source is not a fat pointer type whose underlying
10266         array has the same non-zero alias set as that of the destination array.
10267
10268 2005-03-17  Javier Miranda  <miranda@adacore.com>
10269
10270         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
10271         (Get_Inheritance_Depth): Removed.
10272         (Set_Inheritance_Depth): Removed.
10273
10274         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
10275         subprogram Get_Expanded_Name because it is not referenced by the
10276         frontend.
10277
10278         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
10279         (CPP_Get_Inheritance_Depth): Removed.
10280         (CPP_Set_Inheritance_Depth): Removed.
10281
10282         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
10283
10284 2005-03-17  Robert Dewar  <dewar@adacore.com>
10285
10286         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
10287         3, since we now expect GCC 3 to do all the work.
10288
10289 2005-03-17  Javier Miranda  <miranda@adacore.com>
10290
10291         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
10292         of one barrier to avoid wrong usage of this attribute.
10293
10294         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
10295         First_Private_Entity.
10296
10297         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
10298         the subprogram against wrong usage.
10299         Adapt the code to traverse the entities in the
10300         scope of a record_type because in addition to its usage regarding
10301         packages, this subprogram is also called by Expand_N_Freeze_Entity
10302         to install the visible declarations of the enclosing scope of a
10303         record_type_with_private to establish the proper visibility before
10304         freezing the entity and related subprograms.
10305
10306 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10307
10308         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
10309         entry formals.
10310
10311 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10312
10313         * exp_ch3.adb (Check_Attr): New subprogram.
10314         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
10315         into a new Check_Attr subprogram, in order to provide a more
10316         explanatory error message (including the name of the missing attribute).
10317         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
10318         subprogram determines whether a default implementation exists for a
10319         given stream attribute.
10320         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
10321         Determine whether to generate a default implementation for each stream
10322         attribute separately, as this depends on the specific attribute.
10323
10324         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
10325         limited extension where a stream attribute is missing for a limited
10326         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
10327         generate a bogus reference to the missing attribute to prevent
10328         cascaded errors. Instead, generate a null statement.
10329
10330         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
10331         available for a limited type if it has been specified for an ancestor
10332         of the type.
10333
10334 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10335
10336         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
10337         entity is an operator.
10338
10339 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10340
10341         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10342         spec, to make this predicate available to other units.
10343
10344         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
10345         reimplementing it.
10346
10347         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
10348         when no distribution runtime library is available.
10349
10350         * sem_res.adb, sem_dist.adb: Disable expansion of remote
10351         access-to-subprogram types when no distribution runtime library is
10352         available.
10353         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
10354         predicate available to other units.
10355
10356         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10357         spec, to make this predicate available to other units.
10358
10359 2005-03-17  Vincent Celier  <celier@adacore.com>
10360
10361         * make.adb (Insert_Project_Sources): Make sure the Q is always
10362         initialized.
10363
10364         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
10365         the default for the tree, not the global default naming.
10366
10367         * prj-proc.adb (Recursive_Process): No need to put the default naming
10368         in the project data, it's already there.
10369
10370 2005-03-17  Doug Rupp  <rupp@adacore.com>
10371
10372         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
10373
10374         * 5xcrtl.ads: Renamed to...
10375         * s-crtl-vms64.ads: ...this new file
10376
10377 2005-03-17  Robert Dewar  <dewar@adacore.com>
10378
10379         PR ada/19519
10380
10381         * namet.adb (Copy_One_Character): Set proper wide character encoding
10382         for upper half character if we have upper half encoding.
10383
10384 2005-03-17  Robert Dewar  <dewar@adacore.com>
10385
10386         * par.adb (Par): Improved msg for attempt to recompile predefined unit
10387
10388 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10389
10390         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
10391         tagged limited type, the TSS is a newly built renaming declaration:
10392         insert it using Set_TSS, not Copy_TSS.
10393
10394 2005-03-17  Javier Miranda  <miranda@adacore.com>
10395
10396         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
10397         Try_Object_Operation): Analyze the object that is accessible
10398         through the prefix of the subprogram call before we apply
10399         the transformation of the object-operation notation.
10400
10401 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
10402
10403         * s-taprob.adb (Initialize_Protection): Initialize the protected
10404         object's owner to Null_Task.
10405         (Lock): If pragma Detect_Blocking is in effect and the caller of this
10406         procedure is already the protected object's owner then Program_Error
10407         is raised. In addition the protected object's owner is updated.
10408         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
10409         of this procedure is already the protected object's owner then
10410         Program_Error is raised.
10411         In addition the protected object's owner is updated.
10412         (Unlock): Remove the ownership of the protected object.
10413
10414         * s-taprob.ads (Protection): Add the field Owner, used to store the
10415         protected object's owner.
10416         This component is needed for detecting one type of potentially blocking
10417         operations (external calls on a protected subprogram with the same
10418         target object as that of the protected action). Document the rest of
10419         the components.
10420
10421         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
10422         Initialize the protected object's owner to Null_Task.
10423         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
10424         caller of this procedure is already the protected object's owner then
10425         Program_Error is raised.
10426         Do not raise Program_Error when this procedure is called from a
10427         protected action.
10428         (Unlock_Entries): Remove the ownership of the protected object.
10429         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
10430         of this procedure is already the protected object's owner then
10431         Program_Error is raised.
10432         Do not raise Program_Error when this procedure is called from
10433         a protected action.
10434
10435         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
10436         used to store the protected object's owner.
10437
10438         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
10439         effect and this procedure (a potentially blocking operation) is called
10440         from whithin a protected action, Program_Error is raised.
10441         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
10442         and this procedure (a potentially blocking operation) is called from
10443         whithin a protected action, Program_Error is raised.
10444
10445 2005-03-17  Vincent Celier  <celier@adacore.com>
10446             Nicolas Setton  <setton@adacore.com>
10447
10448         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
10449         switch, not supported by the linker on Darwin. Add '_' before
10450         <library>init, as this character is added unconditionally by the
10451         compiler.
10452         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
10453         correct one ".dylib". This fixes detection of the archive files when
10454         building library projects.
10455
10456 2005-03-17  Vincent Celier  <celier@adacore.com>
10457
10458         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
10459         -gnat83, -gnat95 and -gnat05.
10460
10461 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
10462
10463         * gnat_ugn.texi: Document gnatmem restriction
10464
10465 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10466
10467         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
10468         cleanup
10469
10470 2005-03-17  Robert Dewar  <dewar@adacore.com>
10471
10472         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
10473         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
10474         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
10475
10476         * casing.adb: Comment improvements
10477
10478 2005-03-17  Pascal Obry  <obry@adacore.com>
10479
10480         * g-expect.adb: Minor reformatting.
10481
10482 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
10483
10484         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
10485         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
10486         to dependencies.
10487
10488 2005-03-15  Vincent Celier  <celier@adacore.com>
10489
10490         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
10491         Add new parameter In_Tree to specify the project tree: needed
10492         by the project manager. Adapt to changes in project manager
10493         using new parameter In_Tree.
10494
10495 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
10496
10497         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
10498         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
10499         ada/bldtools to avoid make -jN failures.
10500
10501 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10502
10503         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
10504         to NULL_TREE on entry.
10505
10506 2005-03-15  Robert Dewar  <dewar@adacore.com>
10507
10508         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
10509         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
10510         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
10511         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
10512         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10513         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
10514         system-interix.ads, system-solaris-sparc.ads,
10515         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
10516         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
10517         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
10518         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
10519         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
10520         Compiler_System_Version to be False.
10521
10522         * opt.ads: Add new flag Opt.Address_Is_Private
10523
10524         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
10525         Add new parameter Compiler_System_Version to avoid checking for
10526         completeness of parameters when compiler is compiling itself.
10527         Allows old versions of GNAT to be compiled with new compiler.
10528
10529 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10530
10531         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
10532         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
10533         calling thread.
10534         (Stack_Base_Available): New flag.
10535         (Get_Page_Size): New overloaded functions imported from C.
10536         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
10537         PROT_ON, PROT_OFF): New constants.
10538         (mprotect): New function imported from C.
10539         (pthread_teb_t): New record type.
10540
10541         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
10542         (Create_Task): Account for the Yellow Zone and the guard page.
10543
10544 2005-03-15  Vincent Celier  <celier@adacore.com>
10545
10546         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10547         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10548         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
10549         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
10550         Library_File_Name_For): Add new parameter In_Tree
10551         to specify the project tree: needed by the project manager.
10552         Adapt to changes in project manager using new parameter In_Tree.
10553         Remove local imports, use functions in System.CRTL.
10554
10555         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
10556         to use the project manager.
10557
10558         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
10559         In_Tree to designate the project tree. Adapt to changes in the project
10560         manager, using In_Tree.
10561
10562         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
10563         Copy_Interface_Sources): Add new parameter In_Tree to specify the
10564         project tree: needed by the project manager.
10565         (Build_Library): Check that Arg'Length >= 6 before checking if it
10566         contains "--RTS=...".
10567
10568         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
10569         Library_File_Name_For): Add new parameter In_Tree to specify the
10570         project tree: needed by the project manager.
10571
10572         * prj.ads, prj.adb: Major modifications to allow several project trees
10573         in memory at the same time.
10574         Change tables to dynamic tables and hash tables to dynamic hash
10575         tables. Move tables and hash tables from Prj.Com (in the visible part)
10576         and Prj.Env (in the private part). Move some constants from the visible
10577         part to the private part. Make other constants deferred.
10578         (Project_Empty): Make it a variable, not a function
10579         (Empty_Project): Add parameter Tree. Returns the data with the default
10580         naming data of the project tree Tree.
10581         (Initialize): After updating Std_Naming_Data, copy its value to the
10582         component Naming of Project Empty.
10583         (Register_Default_Naming_Scheme): Use and update the default naming
10584         component of the project tree, instead of the global variable
10585         Std_Naming_Data.
10586         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
10587         Tree is not defaulted, return the default naming data of the Tree.
10588         (Initial_Buffer_Size): Constant moved from private part
10589         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
10590         variables initialized in procedure Initialize.
10591         (Add_To_Buffer): Add two in out parameters to replace global variables
10592         Buffer and Buffer_Last.
10593         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
10594         functions.
10595         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
10596         hash tables.
10597         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10598         for the project tree.
10599         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
10600         constant at the beginning of the package spec, so that they cane be used
10601         in subprograms before their full declarations.
10602         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
10603         (Empty_Project): Add parameter of type Project_Node_Ref
10604         (Private_Project_Tree_Data): Add component Default_Naming of type
10605         Naming_Data.
10606         (Buffer, Buffer_Last): remove global variables
10607         (Add_To_Buffer): Add two in out parameters to replace global variables
10608         Buffer and Buffer_Last.
10609         (Current_Packages_To_Check): Remove global variable
10610         (Empty_Name): Move to private part
10611         (No-Symbols): Make it a constant
10612         (Private_Project_Tree_Data): New type for the private part of the
10613         project tree data.
10614         (Project_Tree_Data): New type for the data of a project tree
10615         (Project_Tree_Ref): New type to designate a project tree
10616         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10617         for the project tree.
10618
10619         * prj-attr.ads: Add with Table; needed, as package Prj no longer
10620         imports package Table.
10621
10622         * prj-com.adb: Remove empty, no longer needed body
10623
10624         * prj-com.ads: Move most of the content of this package to package Prj.
10625
10626         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
10627         designate the project node tree and Packages_To_Check to replace
10628         global variable Current_Packages_To_Check.
10629         Add new parameters In_Tree and Packages_To_Check to local subprograms,
10630         when needed. Adapt to changes in project manager with project node tree
10631         In_Tree.
10632
10633         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
10634         project tree to most subprograms. Move tables and hash tables to
10635         private part of package Prj.
10636         Adapt to changes in project manager using project tree In_Tree.
10637
10638         * prj-makr.adb (Tree): New constant to designate the project node tree
10639         Adapt to change in project manager using project node tree Tree
10640
10641         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
10642         display the Library_Src_Dir and the Library_Dir.
10643         Add new parameter In_Tree to designate the project node tree to most
10644         subprograms. Adapt to changes in the project manager, using project tree
10645         In_Tree.
10646         (Check_Naming_Scheme): Do not alter the casing on platforms where
10647         the casing of file names is not significant.
10648         (Check): Add new parameter In_Tree to designate the
10649
10650         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
10651         designate the project tree.
10652         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
10653
10654         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
10655         to replace those that were in the private part of package Prj.
10656         Add new parameter In__Tree to designate the project node tree to most
10657         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10658         (Post_Parse_Context_Clause): When specifying the project node of a with
10659         clause, indicate that it is a limited with only if there is "limited"
10660         in the with clause, not necessarily when In_Limited is True.
10661         (Parse): Add new parameter In_Tree to designate the project node tree
10662
10663         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
10664         designate the project node tree. Adapt to change in Prj.Tree with
10665         project node tree In_Tree.
10666
10667         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
10668         tree In_Tree in the call to function Empty_Process to give its initial
10669         value to the project data Processed_Data.
10670         Add new parameters In_Tree to designate the project tree and
10671         From_Project_Node_Tree to designate the project node tree to several
10672         subprograms. Adapt to change in project manager with project tree
10673         In_Tree and project node tree From_Project_Node_Tree.
10674
10675         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
10676         to replace those that were in the private part of package Prj.
10677         Add new parameter In_Tree to designate the project node tree to most
10678         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10679
10680         * prj-tree.ads, prj-tree.adb: Add new parameter of type
10681         Project_Node_Tree_Ref to most subprograms.
10682         Use this new parameter to store project nodes in the designated project
10683         node tree.
10684         (Project_Node_Tree_Ref): New type to designate a project node tree
10685         (Tree_Private_Part): Change table to dynamic table and hash tables to
10686         dynamic hash tables.
10687
10688         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
10689         the project tree to most subprograms. Adapt to changes in project
10690         manager using project tree In_Tree.
10691
10692         * makegpr.adb (Project_Tree): New constant needed to use project
10693         manager.
10694
10695 2005-03-15  Olivier Hainque  <hainque@adacore.com>
10696
10697         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
10698         for sigactions with SA_SIGINFO set. Call
10699         __gnat_adjust_context_for_raise before raising, to perform the
10700         potentially required adjustments to the machine context for the GCC
10701         unwinder.
10702
10703         * raise.h (__gnat_adjust_context_for_raise): New prototype.
10704
10705         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
10706         Adjust PC by one in the provided machine context.
10707         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
10708         so that the handler is passed the context structure to adjust prior to
10709         the raise.
10710         (__gnat_error_handler) HPUX: Adjust the signature to match what an
10711         SA_SIGINFO sigaction should look like. Call
10712         __gnat_adjust_context_for_raise before actually raising.
10713         (__gnat_adjust_context_for_raise): Default noop to help PC
10714         adjustments before raise from signal handlers.
10715         (__gnat_error_handler): Indirectly call a predicate function to
10716         determine if a condition should be resignaled or not.
10717         (__gnat_set_resignal_predicate): User interface to modify the predicate.
10718         (__gnat_default_resignal_p): Default GNAT predicate.
10719
10720 2005-03-15  Doug Rupp  <rupp@adacore.com>
10721
10722         * adaint.c: Prefix #include of VMS system header files with vms/
10723         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
10724         Do not define a dummy function "convert_addresses" under Darwin,
10725         not needed.
10726
10727         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
10728         with vms/
10729
10730 2005-03-15  Nicolas Setton  <setton@adacore.com>
10731
10732         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
10733         PPC/AIX.
10734
10735 2005-03-15  Robert Dewar  <dewar@adacore.com>
10736
10737         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
10738         AI-386.
10739
10740         * a-retide.ads: Minor comment changes
10741
10742 2005-03-15  Robert Dewar  <dewar@adacore.com>
10743
10744         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
10745         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
10746         Realloc_For_Chunk to private part of package.
10747         New subprograms for AI-301
10748
10749         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
10750         Get_Line procedure.
10751         Avoid unnecessary use of Get/Set_Wide_String
10752
10753 2005-03-15  Robert Dewar  <dewar@adacore.com>
10754
10755         PR ada/13470
10756
10757         * a-stunau.ads, a-stunau.adb:
10758         Change interface to allow efficient (and correct) implementation
10759         The previous changes to allow extra space in unbounded strings had
10760         left this interface a bit broken.
10761
10762         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
10763
10764         * g-spipat.ads, g-spipat.adb: New interface for Get_String
10765         Minor reformatting (function specs)
10766
10767         * g-spitbo.adb: New interface for Get_String
10768
10769         * g-spitbo.ads: Minor reformatting
10770
10771         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
10772
10773         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
10774
10775 2005-03-15  Javier Miranda  <miranda@adacore.com>
10776             Robert Dewar  <dewar@adacore.com>
10777             Thomas Quinot  <quinot@adacore.com>
10778             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10779
10780         * atree.ads, atree.adb: Add support for Elist24 field
10781
10782         * atree.h: Fix wrong definition of Field27
10783         Add support for Elist16 field
10784         Add support for Elist24 field
10785
10786         * einfo.ads, einfo.adb (Abstract_Interfaces,
10787         Set_Abstract_Interfaces): New subprograms.
10788         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
10789         subprograms.
10790         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
10791         entities rather than a single node.
10792         (Is_Interface, Set_Is_Interface): New subprogram
10793         (First_Tag_Component): New syntesized attribute
10794         (Next_Tag_Component): New synthesized attribute
10795         (Write_Entity_Flags): Upgraded to write Is_Interface
10796         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
10797         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
10798         (Task_Body_Procedure): New subprogram to read this attribute.
10799         (Set_Task_Body_Procedure): New subprogram to set this attribute.
10800         (Has_Controlled_Component): Now applies to all entities.
10801         This is only a documentation change, since it always worked to apply
10802         this to other than composite types (yielding false), but now this is
10803         official.
10804         Update documentation on Must_Be_Byte_Aligned for new spec
10805
10806         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
10807         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
10808         uses of the Access_Disp_Table attribute to reference the first dispatch
10809         table associated with a tagged type. As
10810         part of the implementation of abstract interface types,
10811         Access_Disp_Table has been redefined to contain a list of dispatch
10812         tables (rather than a single dispatch table).
10813         Similarly, upgrade all the references to Tag_Component by the
10814         new attribute First_Tag_Component.
10815         (Find_Inherited_TSS): Moved to exp_tss.
10816         Clean up test in Expand_N_Object_Declaration for cases
10817         where we need to do a separate assignment of the initial value.
10818         (Expand_N_Object_Declaration): If the expression in the
10819         declaration of a tagged type is an aggregate, no need to generate an
10820         additional tag assignment.
10821         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
10822         is to be deleted.
10823         Bit packed array ops are only called if operands are known to be
10824         aligned.
10825         (Component_Equality): When returning an N_Raise_Program_Error statement,
10826         ensure that its Etype is set to Empty to avoid confusing GIGI (which
10827         expects that only expressions have a bona fide type).
10828         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
10829         determine the amount of data to be copied.
10830
10831         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
10832         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
10833             INTERFACE_TYPE_DEFINITION ::=
10834               [limited | task | protected | synchronized] interface
10835                 [AND interface_list]
10836
10837         * par-ch3.adb (P_Type_Declaration): Modified to give support to
10838         interfaces.
10839         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
10840         interfaces.
10841         (P_Interface_Type_Definition): New subprogram that parses the new
10842         syntax rule of Ada 2005 interfaces
10843         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
10844         messages by the correct RENAMES (quotes removed).
10845
10846         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
10847         attribute First_Tag_Component.
10848
10849         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
10850         (Interface_List, Set_Interface_List): New subprograms.
10851         (Interface_Present, Set_Interface_Present): New subprograms.
10852         (Limited_Present, Set_Limited_Present): Available also in derived
10853         type definition nodes.
10854         (Protected_Present, Set_Protected_Present): Available also in
10855         record type definition and
10856         derived type definition nodes.
10857         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
10858         (Task_Present, Set_Task_Present): New subprogram.
10859         (Task_Body_Procedure): Removed.
10860         (Set_Task_Body_Procedure): Removed.
10861         These subprogram have been removed because the attribute
10862         Task_Body_Procedure has been moved to the corresponding task type
10863         or task subtype entity to leave a field free to store the list
10864         of interfaces implemented by a task (for AI-345)
10865         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
10866         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
10867         expression flag Do_Range_Check
10868         (Exception_Junk): Change to Flag7 to accomodate above change
10869         (Box_Present, Default_Name, Specification, Set_Box_Present,
10870         Set_Default_Name, Set_Specification): Expand the expression
10871         "X in N_Formal_Subprogram_Declaration" into the corresponding
10872         two comparisons. Required to use the csinfo tool.
10873
10874         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
10875         "with string" given.
10876
10877         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
10878         expression given.
10879
10880         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
10881         in 2005 mode
10882
10883         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
10884         attribute Task_Body_Procedure rather than the old semantic field that
10885         was available in the task_type_declaration node.
10886
10887         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
10888         interface type definitions.
10889         (P_Formal_Derived_Type_Definition): Modified to handle the list of
10890         interfaces.
10891
10892         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
10893         task type declaration.
10894         (P_Protected): Modified to handle the list of interfaces in a
10895         protected type declaration.
10896
10897 2005-03-15  Doug Rupp  <rupp@adacore.com>
10898             Vincent Celier  <celier@adacore.com>
10899
10900         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
10901         (Gen_Output_File_C): Likewise.
10902         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
10903
10904 2005-03-15  Thomas Quinot  <quinot@adacore.com>
10905
10906         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
10907         is an N_Raise_Constraint_Error node, create a new copy of it without
10908         going through a call to Duplicate_Subexpr.
10909
10910 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10911             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10912             Nicolas Setton  <setton@adacore.com>
10913             Ed Schonberg  <schonberg@adacore.com>
10914
10915         PR ada/19900
10916         PR ada/19408
10917         PR ada/19140
10918         PR ada/20255
10919
10920         * decl.c (gnat_to_gnu_field): Reject aliased components with a
10921         representation clause that prescribes a size not equal to the rounded
10922         size of their types.
10923         (gnat_to_gnu_entity, case E_Component): Always look at
10924         Original_Record_Component if Present and not the entity.
10925         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
10926         of tagged extension types by not making field for components that are
10927         inside the parent.
10928         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
10929         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
10930         expression to the type of the object when the object is constant.
10931         Reverse defer_debug_incomplete_list before traversing it, so that trees
10932         are processed in the order at which they were added to the list. This
10933         order is important when using the stabs debug format.
10934         If we are deferring the output of debug information, also defer this
10935         output for a function return type.
10936         When adding fields to a record, prevent emitting debug information
10937         for incomplete records, emit the information only when the record is
10938         complete.
10939         (components_to_record): New parameter defer_debug.
10940         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
10941         (gnat_to_gnu_field_decl): New function.
10942         (substitution_list, annotate_rep): Call it.
10943         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
10944         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
10945         No longer update discriminants to not be a COMPONENT_REF.
10946         (copy_alias_set): Strip padding from input type; also handle
10947         unconstrained arrays properly.
10948
10949         * gigi.h (write_record_type_debug_info): New function.
10950         Convert to use ANSI-style prototypes. Remove unused
10951         declarations for emit_stack_check, elab_all_gnat and
10952         set_second_error_entity.
10953         (gnat_to_gnu_field_decl): New decl.
10954
10955         * utils.c (write_record_type_debug_info): New function.
10956         (finish_record_type): Delegate generation of debug information to
10957         write_record_type_debug_info.
10958         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
10959         (update_pointer_to): Fix pasto.
10960         (convert) <UNION_TYPE>: Accept slight type variations when
10961         converting to an unchecked union type.
10962
10963         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
10964         replace the N_Freeze_Entity with a null statement.
10965
10966         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
10967         within a constrained subcomponent of an enclosing record, place the
10968         freeze nodes in the scope stack entry for the enclosing record.
10969         (Undelay_Type): New Subprogram.
10970         (Set_Small_Size): Pass T, the type to modify; all callers changed.
10971         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
10972         within records; allow them to have freeze nodes if their base types
10973         aren't frozen yet.
10974
10975         * exp_util.adb (Remove_Side_Effects): Properly test for
10976         Expansion_Delayed and handle case when it's inside an
10977         N_Qualified_Expression.
10978
10979         * sem_ch3.adb (Derived_Type_Declaration): New predicate
10980         Comes_From_Generic, to recognize accurately that the parent type in a
10981         derived type declaration can be traced back to a formal type, because
10982         it is one or is derived from one, or because its completion is derived
10983         from one.
10984         (Constrain_Component_Type): If component comes from source and has no
10985         explicit constraint, no need to constrain in in a subtype of the
10986         enclosing record.
10987         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
10988         Minor change to propagate Is_Ada_2005 flag
10989
10990         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
10991         Expansion_Delayed is False.
10992         (assoc_to_constructor): Ignore fields that have a
10993         Corresponding_Discriminant.
10994         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
10995         function returns "by target", dereference the target pointer using the
10996         type of the actual return value.
10997         <all>: Be prepared for a null gnu_result.
10998         (processed_inline_subprograms): Check flag_really_no_inline
10999         instead of flag_no_inline.
11000         (set_second_error_entity): Remove unused function.
11001         (gnat_to_gnu, case N_Selected_Component): Call
11002         gnat_to_gnu_field_decl.
11003         (assoc_to_constructor): Likewise.
11004
11005 2005-03-15  Robert Dewar  <dewar@adacore.com>
11006             Ed Schonberg  <schonberg@adacore.com>
11007             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11008
11009         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
11010         Must_Be_Byte_Aligned for cases where we do not need to use a
11011         System.Pack_nn unit.
11012
11013         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
11014         as procedures.
11015         Needed now that we do some processing for IN parameters as well. This
11016         may well fix some unrelated errors.
11017         (Expand_Call): Handle case of unaligned objects (in particular those
11018         that come from packed arrays).
11019         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
11020         renamed entity is an inherited operation, re-expand the call using the
11021         original operation, which is the one to call.
11022         Detect attempt to inline parameterless recursive subprogram.
11023         (Represented_As_Scalar): Fix to work properly with private types
11024         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
11025         accurate estimate. Yields True in far fewer cases than before,
11026         improving the quality of code that depends on this test.
11027
11028         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
11029         over both visible and private declarations to remove them from tree,
11030         and mark subprograms declared in package as eliminated, to prevent
11031         spurious use in subsequent compilation of generic units in the context.
11032
11033         * exp_util.ads: Minor cleanup in variable names
11034
11035         * sem_eval.ads, sem_eval.adb: Minor reformatting
11036         (Compile_Time_Known_Bounds): New function
11037
11038 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11039
11040         * exp_ch7.adb (Convert_View): Use base types of underlying types when
11041         determining whether an unchecked conversion is needed for the argument
11042         of an initialization call.
11043
11044 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11045
11046         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
11047         that appears in the instantiation rather than the internal subtype
11048         generated in the wrapper package, to avoid anomalies in gigi when the
11049         target is derived from a private type whose full view is an access type.
11050
11051 2005-03-15  Robert Dewar  <dewar@adacore.com>
11052
11053         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
11054         not needed.
11055         Add documentation to replace the use of this flag
11056         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
11057         the x86_64.
11058
11059 2005-03-15  Thomas Quinot  <quinot@adacore.com>
11060
11061         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
11062         here from exp_attr so it can be shared between exp_attr and exp_dist.
11063         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
11064         all TSS names, not a subset thereof, and the previous name introduced
11065         an unnecessarily confusion that a distinction might exist between
11066         "OK" TSS names and some "not OK" TSS names.
11067
11068 2005-03-15  Doug Rupp  <rupp@adacore.com>
11069
11070         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
11071         Command_Name.
11072
11073 2005-03-15  Pascal Obry  <obry@adacore.com>
11074             Eric Botcazou  <ebotcazou@adacore.com>
11075
11076         PR ada/20226
11077         PR ada/20344
11078
11079         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
11080         when IN_RTS. This is to work around a bootstrap path problem.
11081
11082         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
11083         table and pass it to __gnat_install_SEH_handler().
11084         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
11085
11086         * lang.opt: Fix specification of -fRTS=.
11087
11088 2005-03-15  Doug Rupp  <rupp@adacore.com>
11089             Bernard Banner  <banner@adacore.com>
11090             Vincent Celier  <celier@adacore.com>
11091             Arnaud Charlet  <charlet@adacore.com>
11092
11093         PR ada/6852
11094         This change works fine when gnatlib is built from the gcc directory,
11095         but does not work when using the libada Makefile, since GCC_FOR_TARGET
11096         is not passed to ada/Makefile.in, so more work is needed by a
11097         Makefile/configure expert.
11098
11099         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
11100         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
11101         Setup gnatlink switch -M for x86_64 linux, as it is already setup
11102         for Linux x86.
11103         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
11104         Run ranlib on libgccprefix.a
11105         Define PREFIX_OBJS for Darwin, to build libgccprefix.
11106         (ADA_INCLUDE_SRCS): Split Ada packages.
11107
11108 2005-03-15  Robert Dewar  <dewar@adacore.com>
11109
11110         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
11111
11112         * impunit.adb: Add GNAT.UTF_32
11113
11114         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
11115
11116         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
11117         now uses GNAT.UTF_32).
11118
11119         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
11120         capabilities for categorizing characters using Unicode categories
11121
11122 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11123
11124         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
11125         instantiation that has been rewritten as a package body, retrieve spec
11126         to generate proper name for implicit_with_clause.
11127         (Install_Parents): Recognize a parent that is an instantiation but has
11128         been rewritten as a package declaration during analysis.
11129
11130 2005-03-15  Javier Miranda  <miranda@adacore.com>
11131             Ed Schonberg  <schonberg@adacore.com>
11132
11133         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
11134         parameter reported some error we immediately return. This improves the
11135         behaviour of the frontend in case of errors.
11136         (Install_Parent, Remove_Parent): Introduce new flag
11137         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
11138         ancestor of a generic child unit, when the child is being instantiated.
11139         (Inline_Instance_Body): If we are compiling the private
11140         part or the body of a child unit, restore the proper visibility of the
11141         parents after compiling the instance body.
11142
11143 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11144             Javier Miranda  <miranda@adacore.com>
11145
11146         PR ada/15608
11147         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
11148         of a private type, in which case it is underlying_type that denotes
11149         the proper task. Also modified to use the new entity attribute
11150         that is directly available in the task type and task subtype entities
11151         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
11152         arrays when other dimensions than the first are constrained by
11153         discriminants of an enclosing record.
11154         (Insert_Explicit_Dereference): If the prefix is an indexed component or
11155         a combination of indexed and selected components, find ultimate entity
11156         and generate the appropriate reference for it, to suppress spurious
11157         warnings.
11158         (Note_Possible_Modification): If an entity name has no entity, return.
11159         (Is_Variable): A function call never denotes a variable.
11160         (Requires_Transient_Scope): For record types, recurse only on
11161         components, not on internal subtypes that may have been generated for
11162         constrained components.
11163
11164 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11165
11166         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
11167         Eliminated as candidates for resolution. Both efficient, and avoids
11168         anomalies with operators declared in deleted code.
11169         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
11170         expansion is disabled (as when compiling a generic) to prevent spurious
11171         warnings on prefixes of selected components.
11172
11173 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11174
11175         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
11176         attached to a list before checking whether it appears in the private
11177         declarations of the current package.
11178         (Make_Inequality_Operator): Insert declaration in proper declarative
11179         list rather than just setting the Parent field, so that
11180         Is_Private_Declaration can handle it properly.
11181
11182 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11183
11184         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
11185         a renaming a body, check that the renamed subprogram in not intrinsic.
11186         (Find_Direct_Name): If several use_visible entities hide
11187         each other, and the context is a predefined file compiled through
11188         rtsfind, keep only the entity that comes from a predefined file.
11189
11190 2005-03-15  Geert Bosch  <bosch@adacore.com>
11191
11192         * s-fatgen.adb (Valid): Extend special exceptions to account for long
11193         long float padding to also cover AMD64 and IA64.
11194
11195 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
11196
11197         * s-imgwch.adb: Add with and use of Interfaces.
11198         (Img_Wide_Character): Change type of Val to Unsigned_16.
11199         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
11200
11201 2005-03-15  Matthew Gingell  <gingell@adacore.com>
11202
11203         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
11204
11205 2005-03-15  Robert Dewar  <dewar@adacore.com>
11206
11207         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
11208
11209         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
11210
11211         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
11212
11213 2005-03-15  Robert Dewar  <dewar@adacore.com>
11214
11215         * s-bitops.adb, s-bitops.ads,
11216         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
11217         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
11218         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
11219         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
11220         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
11221         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
11222         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
11223         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
11224         reformatting.
11225
11226 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11227
11228         * utils2.c (build_binary_op): Fix typo.
11229
11230 2005-03-15  Doug Rupp  <rupp@adacore.com>
11231
11232         * s-crtl.ads (popen,pclose): New imports.
11233
11234 2005-03-15  Cyrille Comar  <comar@adacore.com>
11235
11236         * comperr.adb (Compiler_Abort): remove references to obsolete
11237         procedures in the bug boxes for various GNAT builds.
11238
11239 2005-03-15  Vincent Celier  <celier@adacore.com>
11240
11241         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
11242
11243 2005-03-15  Geert Bosch  <bosch@adacore.com>
11244             Arnaud Charlet  <charlet@adacore.com>
11245             Robert Dewar  <dewar@adacore.com>
11246             Cyrille Comar  <comar@adacore.com>
11247             Sergey Rybin  <rybin@adacore.com>
11248
11249         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
11250         too specific and long-winded to be appropriate for the GNAT User's
11251         Guide.
11252         Warn about use of GCC switches not documented in the GNAT User's Guide,
11253         as these may cause generated code to not conform to Ada semantics.
11254         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
11255         Add documentation for -gnat95 and -gnat05 switches
11256         Remove paragraph documenting obsolete way to refer to third party
11257         libraries.
11258         Add a few references to Ada_05 that were missing.
11259         Update documentation on -gnatZ/-gnatL.
11260         Document limitation when using -m64 under Solaris.
11261         Change the "Name Casing" subsection of the pretty-printer section
11262         according to the changes in the dictionary processing.
11263
11264         * gnat_rm.texi: Document the Ada_05 pragma.
11265         Section on record representation clauses describes the new more
11266         relaxed rules about placement of large packed bit array components.
11267         Add documentation of GNAT.UTF_32
11268
11269 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
11270
11271         * misc.c (gnat_post_options): Turn off structural
11272         aliasing for now.
11273
11274 2005-03-08  Laurent Guerby <laurent@guerby.net>
11275
11276         * system-linux-sparc.ads: Fix typo in previous commit.
11277
11278 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
11279             Laurent Guerby <laurent@guerby.net>
11280
11281         PR ada/20035
11282         * system-linux-sparc.ads: New.
11283         * Makefile.in: Add sparc linux entry.
11284
11285 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
11286
11287         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
11288         parameters as unused.
11289
11290 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
11291         Partial merge from libada-gnattools-branch:
11292
11293         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11294         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
11295         into code in gnattools/Makefile.in.  Remove direct dependencies on
11296         stamp-tools by tools clauses.
11297         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11298         * config-lang.in: Add gnattools to $lang_dirs.
11299
11300 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
11301
11302         PR ada/19942
11303         * utils.c (gnat_type_for_mode): Return null instead of ICE because
11304         we asked for an unknown mode.
11305
11306 2005-02-12  Richard Henderson  <rth@redhat.com>
11307
11308         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
11309         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
11310
11311 2005-02-10  Andreas Jaeger  <aj@suse.de>
11312
11313         * init.c (__gnat_initialize): Mark parameter as unused.
11314
11315 2005-02-09  Doug Rupp  <rupp@adacore.com>
11316
11317         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
11318         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
11319
11320 2005-02-09  Doug Rupp  <rupp@adacore.com>
11321
11322         * gnatchop.adb (dup, dup2),
11323         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
11324
11325         * gnatlbr.adb (mkdir),
11326         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
11327
11328         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
11329
11330 2005-02-09  Doug Rupp  <rupp@adacore.com>
11331
11332         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
11333
11334 2005-02-09  Robert Dewar  <dewar@adacore.com>
11335             Thomas Quinot  <quinot@adacore.com>
11336             Javier Miranda  <miranda@adacore.com>
11337             Pascal Obry  <obry@adacore.com>
11338             Ed Schonberg  <schonberg@adacore.com>
11339             Doug Rupp  <rupp@adacore.com>
11340             Gary Dismukes  <dismukes@adacore.com>
11341             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11342
11343         * g-zstspl.ads: New file.
11344
11345         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
11346
11347         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
11348         Ada 95 mode
11349         Add definition of Wide_Wide_Space for AI-285
11350
11351         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
11352         interface (to support Ada 95 and Ada 2005 units).
11353         Add Unbounded_IO files
11354         Add entries for Wide_Wide packages for AI-285
11355         Add list of containers packages to Ada 2005 unit list
11356
11357         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
11358         support new Unbounded_IO package cleanly.
11359
11360         * g-utf_32.ads, g-utf_32.adb: New files.
11361
11362         * Makefile.rtl: Add entry for g-utf_32
11363         Add new files for Unbounded_IO
11364         Adjust make file for new AI-285 wide wide packages
11365         Add AI-302 containers to the run time.
11366
11367         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
11368         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
11369         subprograms for AI-301.
11370
11371         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
11372
11373         * a-stunau.ads: Minor comment correction
11374
11375         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
11376         etc.
11377         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
11378         (Check_RPC): Update to match changes in expanded code.
11379         Clean up unused entity.
11380
11381         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
11382         was not taken into account.
11383         This includes proper initialization with Normalize_Scalars.
11384         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
11385         normalize scalars cases (particularly the latter) to do a better job
11386         of finding invalid representations.
11387
11388         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
11389
11390         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
11391         used
11392
11393         * exp_dist.adb: Add support for wide wide character type
11394         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
11395         private part, generate stub bodies at the end of the private part,
11396         not the visible part.
11397         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
11398         PolyORB support.
11399         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
11400         generic wrapper to execute final processing after completing the
11401         expansion of the RPC receiver for an RACW.
11402
11403         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
11404         packages and attributes.
11405         (Preset_Names): Addition of the new reserved words of Ada 2005,
11406         that is interface, overriding and synchronized.
11407         (Get_Pragma_Id): Give support to the use of the new reserved word
11408         "interface" as a pragma name.
11409         (Is_Pragma_Name): Give support to the use of the new reserved word
11410         "interface" as a pragma name.
11411         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
11412         attribute implementation.
11413
11414         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
11415         checks to entities that are output parameters of Asm operations.
11416         Handle the Stream_Size attribute.
11417         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
11418
11419         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
11420
11421         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
11422         for second parameter being 0.0.
11423         Add support for wide wide character type.
11424         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
11425
11426         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
11427         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
11428         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
11429         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
11430         for wide wide character cases.
11431
11432         * cstand.adb: Create entities for Wide_Wide_Character and
11433         Wide_Wide_String.
11434
11435         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
11436         accordance with AI-258.
11437         Add new declarations for 16/32 bit C character types (Part of AI285)
11438
11439         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
11440         (Obsolescent_Warning): New field
11441         (Rep_Clause): New local subprogram used to share code. Returns the rep
11442         clause for which the name is given in parameter.
11443         (Has_Stream_Size_Clause): New routine.
11444         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
11445         (Address_Clause): Implementation is now using Rep_Clause.
11446         (Alignment_Clause): Idem.
11447         (Size_Clause): Idem.
11448
11449         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
11450         entity in non-Ada 2005 mode and generate warning.
11451
11452         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
11453         (Prag): Code cleanup. Remove old gnat pragma "overriding"
11454
11455         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
11456         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
11457         on the named unit if the pragma is not in the current compilation unit,
11458         so that elaboration calls in the current unit can set up an elaboration
11459         dependency on the named unit, as needed.
11460         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
11461         subprogram as well as for subprograms declared within a package.
11462         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
11463         pragma overriding.
11464
11465         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
11466         to z) to avoid some instances of duplication for Wide_Wide packages.
11467
11468         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
11469         characters.
11470
11471         * scn.adb: Char_Literal_Value field is now a Uint
11472
11473         * scng.adb: Significant rewrite to handle new Ada 2005 features
11474         allowing wide and wide wide characters in program text, e.g. for
11475         identifiers, as described in AI-285.
11476         (Set_Reserved): New procedure, makes setting up keywords cleaner.
11477         (Initialize_Scanner): Register the new reserved words of Ada 2005.
11478         (Scan): Give support to the new reserved words.
11479
11480         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
11481         warning notifying that interface, overriding, and synchronized are
11482         new reserved words.
11483         (P_Pragma): Allow the use of the new reserved word "interface" as
11484         a pragma name.
11485
11486         * gnatls.adb, gnatbind.adb,
11487         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
11488         identifiers named "interface" to "SAL_Interface".
11489
11490         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
11491         (Structured Exception handling).
11492         (Gen_Main_C): Idem.
11493
11494         * bindgen.adb:
11495         (Gen_Main_Ada): Set the default exit code if specified.
11496         (Gen_Main_C): Likewise.
11497         Part of *DC20-006.
11498         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
11499         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
11500
11501         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
11502         new -Xnnn switch.
11503
11504         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
11505         has a collision with the new Ada 2005 "interface" reserved word.
11506
11507         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
11508         generate a warning notifying that interface, overriding, and
11509         synchronized are new reserved words.
11510
11511         * scans.ads (Token_Type): Addition of the tokens corresponding to the
11512         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
11513         and Tok_Synchronized.
11514
11515         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
11516         "dispatching" rather than "primitive" operations, since dispatching
11517         calls are now allowed to abstract formal subprograms (which are not
11518         primitive).
11519         Char_Literal_Value field is now a Uint
11520         (Resolve_Slice): If the prefix is an access to an unconstrained array,
11521         compute the actual subtype of the designated object to impose the proper
11522         index constraints.
11523         (Resolve_Selected_Component): Do not insert an access check if the
11524         prefix is an access type: such a node is expanded into an explicit
11525         dereference, on which the access check is performed anyway. Removes
11526         expensive duplicate checks.
11527         (Resolve_Call): Use new flag Is_Obsolescent and field
11528         Obsolescent_Warning so that pragma Obsolescent works on library
11529         subprograms.
11530         Add support for wide wide character type
11531         (Resolve_Allocator): Replace the error message on wrong null-exclusion
11532         value by a warning message.
11533         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
11534         as fixed-point, and one of the operands is non-static and universal, it
11535         can only be an illegal exponentiation operation, in which case there is
11536         no real value to retrieve.
11537
11538         * exp_strm.adb: Add support for wide wide character type
11539         (Build_Elementary_Input_Call): Compute the size of the stream element by
11540         querying the rep chain to find the Stream_Attribute attribute value.
11541         (Build_Elementary_Write_Call): Ditto.
11542
11543         * sem_aggr.adb: Char_Literal_Value field is now a Uint
11544         Add support for wide wide character type
11545         Replace the error messages on wrong null-exclusion value by warnings
11546         as described in Ada 2005.
11547         (Resolve_Extension_Aggregate): Document the fact that the error
11548         message on class-wide expressions in extensions aggregates.
11549
11550         * sem_case.adb: Add support for wide wide character type
11551
11552         * sem_ch13.adb: Add support for wide wide character type
11553         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
11554
11555         * sem_ch3.adb: Add support for wide wide character type
11556         (Process_Subtype): If constraint is illegal for the type, set Ekind of
11557         now-useless Itype, to prevent cascaded errors on a compiler built
11558         without -gnatp.
11559
11560         * sem_ch8.adb: Add with and use of Sem_Disp.
11561         (Analyze_Subprogram_Renaming): Replace unclean uses of
11562         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
11563         of Corresponding_Spec to Empty).
11564         (Attribute_Renaming): Replace use of Corresponding_Spec with
11565         Corresponding_ Formal_Spec and simplify condition.
11566         (Use_One_Package): Check that scope of homonym of identifier is defined,
11567         before checking whether it is a wrapper package.
11568         Add support for wide wide character type
11569
11570         * sem_eval.adb: Add support for wide wide character type.
11571         (Eval_Arithmetic_Op): Check for compile time known signed integer
11572         overflow in the non-static case.
11573         (Subtypes_Statically_Match): A formal scalar type and its base type do
11574         not statically match.
11575
11576         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
11577         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
11578         subtype).
11579         (Unit_Declaration_Node): Ditto.
11580         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
11581         has a packed array type, the prefix has been rewritten into a type
11582         conversion. Determine variable-ness from the converted expression.
11583         Handle wide wide character cases.
11584
11585         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
11586
11587         * stringt.ads, stringt.adb: Handle full UTF-32 range.
11588         Remove ["0A"] from comment, since it can look like a line terminator.
11589         Currently we don't permit this, but this is under discussion by the
11590         ARG, and it is easy enough to use a different example.
11591
11592         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
11593         handling UTF-32 encoding for wide wide character.
11594         Implement new brackets coding ["hhhhhhhh"]
11595         Add UTF-8 encodings for full UTF-32 range
11596
11597         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
11598
11599         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
11600         bit range Add full UTF-32 support.
11601         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
11602         notify that constraint error will be raised at run-time
11603         because a null value is assigned to a null-excluding object.
11604         Remove some obsolete declarations and make Char_Code
11605         unsigned.
11606
11607         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
11608         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
11609         Rcheck subprograms.
11610
11611         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
11612         wrong null-exclusion value by a warning message.
11613         (Enable_Range_Check): Do range check if the prefix is an
11614         explicit dereference whose designated object is an unconstrained array.
11615         Current algorithm for removing duplicate checks is over-eager in this
11616         case.
11617
11618         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
11619         null-exclusion value by a warning message
11620
11621         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
11622         completely. Add support for Uint2 field
11623
11624         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
11625         exp_prag.adb: Char_Literal_Value field is now a Uint.
11626
11627         * exp_util.adb (Insert_Actions): Replace
11628         N_Formal_Subprogram_Declaration by
11629         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
11630         Char_Literal_Value field is now a Uint.
11631
11632         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
11633         defined for subprogram renaming declarations. When set, the field
11634         indicates the defining entity of a corresponding formal subprogram
11635         when the renaming corresponds to a formal subprogram association in an
11636         instantiation.
11637         (Set_Corresponding_Formal_Spec): New procedure to return
11638         Corresponding_Formal_Spec field.
11639         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
11640         (which is now a subtype).
11641         Char_Literal_Value field is now a Uint
11642
11643         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
11644         pointer to the base of the dispatch table.
11645         Minor changes to comments.
11646         (Controlling_Type): New function for determining the tagged type
11647         associated with a tagged primitive subprogram.
11648         (Expand_Dispatching_Call): Add support for a controlling actual that is
11649         directly a value of type Ada.Tag rather than a tagged object.
11650
11651         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
11652         describing the new layout.
11653         (Dispatch_Table): The expander computes the actual array size, allocates
11654         the Dispatch_Table record accordingly, and generates code that displaces
11655         the base of the record after the Typeinfo_Ptr component. The access to
11656         these components is done by means of local functions.
11657         (Offset_To_Top): New function.
11658         (Typeinfo_Ptr): New function.
11659         (Get_TSD): Modified to access the new position of the TSD.
11660         (Set_TSD): Modified to save the TSD in its new position.
11661
11662         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
11663         case of formal abstract subprograms. Add check and message for -gnat05.
11664         Update comments.
11665
11666         * sem_ch12.adb: Add with and use for Sem_Disp.
11667         (Analyze_Associations): Minor change from "=" to "in" for use of
11668         N_Formal_Subtype_Declaration (which is now a subtype).
11669         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
11670         N_Formal_Subtype_Declaration (which is now a subtype).
11671         (Analyze_Formal_Subprogram): Add handling for
11672         N_Formal_Abstract_Subprogram, marking the formal as abstract and
11673         dispatching, setting the controlling status of the formal parameters
11674         and result, and issuing an error if there is no controlling type for
11675         the formal subprogram.
11676         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
11677         which is an unclean use of that field, we set the new field
11678         Corresponding_Formal_Spec to make the formal subprogram available to
11679         processing in Analyze_Subprogram_Declaration.
11680         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
11681         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
11682         Constrained, so that it is is does not statically match its anonymous
11683         base type.
11684
11685         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
11686         abstract formal subprograms in error check for functions returning
11687         abstract types. Set scope of new designator for
11688         a parameterless subprogram, so that it is available when checking the
11689         body for nested subprograms, before full analysis of said body.
11690         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
11691         subprogram only if inner one comes from source.
11692         (Analyze_Function_Call): If the call is given in object notation, the
11693         analysis of the name rewrites the node and analyzes it with the proper
11694         argument list. After analyzing the name, if the call has been rewritten
11695         and the result type is set, no further analysis is needed.
11696         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
11697         mark in function specification, in a context where the formals are
11698         visible and hide outer homographs.
11699
11700         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
11701         as the tagged type for the cases of abstract formal subprograms and
11702         renamings of those.  Clean up spec comments.
11703         (Check_Dispatching_Context): Add error message to indicate "abstract
11704         procedure", covering the case of a call to a formal abstract procedure
11705         that has statically tagged operands.
11706         (Check_Dispatching_Call): Check for the case of an actual given by
11707         a tag-indeterminate function call whose type is an ancestor of the
11708         containing call's associated tagged type. This situation can occur
11709         for inherited primitives with function defaults. In this case we
11710         use the tagged type's tag directly as the controlling argument for
11711         the calls.
11712         (Expand_Call): Name change on call to Expand_Dispatch_Call.
11713
11714         * sprint.adb (Sprint_Node_Actual): Split
11715         N_Formal_Subprogram_Declaration into two alternatives for the new
11716         cases N_Formal_Abstract_Subprogram_Declaration and
11717         N_Formal_Concrete_Subprogram_Declaration.
11718         Char_Literal_Value field is now a Uint.
11719
11720         * trans.c: Get rid of junk Uint2 reference.
11721         Char_Literal_Value field is now a Uint.
11722         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
11723         (gigi): Correct third arg to gimplify_body.
11724
11725         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
11726         (TYPE_LANG_FLAG_0): Check for record or union.
11727
11728         * treepr.adb: Char_Literal_Value field is now a Uint
11729
11730         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
11731         UI_From_CC.
11732
11733         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
11734         Add full UTF-32 support
11735         Char_Code is now 32 bits
11736
11737         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
11738         wide character UTF_32 line terminators.
11739         Initialize Main_Source_File to avoid error when no main
11740         source is loaded.
11741
11742         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
11743         (Main_Source_File) when no main source has been loaded, to avoid
11744         potential crash.
11745
11746 2005-02-09  Robert Dewar  <dewar@adacore.com>
11747
11748         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
11749         Fix name of Set routine
11750
11751         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
11752         fixed packages.
11753
11754         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
11755         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
11756         fixed packages
11757
11758         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
11759         forms of Get_Line subprograms for AI-301.
11760
11761         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
11762         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
11763         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
11764         a-stwima.ads: Minor reformatting.
11765
11766 2005-02-09  Doug Rupp  <rupp@adacore.com>
11767             Thomas Quinot  <quinot@adacore.com>
11768
11769         * adaint.c, adaint.h
11770         [VMS] (to_ptr32): New function.
11771         (MAYBE_TO_PTR32): New macro.
11772         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
11773         for pointer size.
11774         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
11775         [VMS] (#define fork()): Remove since unneccessary.
11776         (__gnat_set_close_on_exec): New routine to support
11777         GNAT.OS_Lib.Set_Close_On_Exec.
11778
11779         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
11780         the parent side as close-on-exec so that they are not inherited by the
11781         child.
11782
11783         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
11784         set or clear the FD_CLOEXEC flag on a file descriptor.
11785
11786 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
11787             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11788
11789         Fix for c330001 - PR ada/19386
11790
11791         * decl.c:
11792         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
11793         on the field if Pragma Component_Alignment (Storage_Unit).
11794         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
11795         side-effects as if it were a constant; also make SAVE_EXPR to protect
11796         side-effects.
11797         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
11798         UNION_TYPE.
11799         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
11800         (components_to_record): Test it.
11801         Fix improper usage of REFERENCE_CLASS_P.
11802
11803         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
11804         RECORD_TYPE.
11805
11806         * utils2.c: Minor reformatting.
11807
11808         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
11809         handle other cases like RECORD_TYPE.
11810
11811         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
11812
11813 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11814
11815         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
11816         component of an array of arrays in an assignment context, and the
11817         aggregate has component associations that require sliding on
11818         assignment, force reanalysis of the aggregate to generate a temporary
11819         before the assignment.
11820         (Must_Slide): Make global to the package, for use in Gen_Assign.
11821
11822 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11823
11824         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
11825         unchecked union with no inferable discriminants, return a
11826         Raise_Program_Error node, rather than inserting it at the point the
11827         type is frozen.
11828         (Expand_Record_Equality, Component_Equality): Handle properly the case
11829         where some subcomponent is an unchecked union whose generated equality
11830         code raises program error.
11831
11832 2005-02-09  Doug Rupp  <rupp@adacore.com>
11833
11834         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
11835         [VMS] (#define exit hack): Remove.
11836
11837 2005-02-09  Pascal Obry  <obry@adacore.com>
11838             Arnaud Charlet <charlet@adacore.com>
11839
11840         * init.c (__gnat_initialize): Add a new parameter eh which contains the
11841         address of the exception registration. The Win32 version of this
11842         routine calls __gnat_install_SEH_handler() to initialize the SEH
11843         (Structured Exception Handling) handler.
11844         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
11845         SEH (Structured Exception Handling) now.
11846         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
11847         (__gnat_initialize for ppc-vxworks): Adjust comments and the
11848         preprocessor condition protecting the call to the extra eh setup
11849         subprogram, which is only available for the ppc target.
11850         (__gnat_clear_exception_count): replaced reference to
11851         variable taskIdCurrent by call to taskIdSelf(), cleaner.
11852
11853         * seh_init.c: New file.
11854
11855         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
11856         (GNATBIND_OBJS): Idem.
11857
11858         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
11859         routine takes a new parameter (a pointer to the exception registration
11860         for the SEH (Structured Exception Handling) support.
11861
11862         * raise.h: (__gnat_install_SEH_handler): New prototype.
11863         Update copyright notice.
11864
11865         * s-tassta.adb (Task_Wrapper): Declare the exception registration
11866         record and initialize it by calling __gnat_install_SEH_handler.
11867
11868 2005-02-09  Vincent Celier  <celier@adacore.com>
11869
11870         * make.adb (Gnatmake): Do not fail when the main project has no object
11871         directory.
11872
11873 2005-02-09  Doug Rupp  <rupp@adacore.com>
11874
11875         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
11876         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
11877         [VMS]: Add translations for g-enblsp.adb.
11878
11879         * s-asthan-vms.adb: Removed.
11880         * s-asthan-vms-alpha.adb: Added.
11881
11882 2005-02-09  Pascal Obry  <obry@adacore.com>
11883
11884         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
11885         (LIBGNAT_OBJS): Add seh_init.o.
11886
11887 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11888
11889         PR ada/16592
11890
11891         * Makefile.in: Link all gnat tools with -static-libgcc, since
11892         -shared-libgcc is now used by default on some systems (e.g. linux with
11893         recent binutils).
11894         Remove references to Makefile.prolog/generic, no longer used.
11895
11896 2005-02-09  Vincent Celier  <celier@adacore.com>
11897
11898         * prj-makr.adb (Process_Directory): Put file name in canonical case
11899         before matching against the patterns.
11900         If gnatname has been invoked as <prefix>-gnatname
11901         then invoke the compiler as <prefix>-gcc, not just "gcc".
11902
11903 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11904
11905         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
11906         with expansion disabled. The actual subtype is needed among other
11907         places when the selected component appears in the context of a loop
11908         bound, and denotes a packed array.
11909         (Operator_Check): Always use the first subtype in the
11910         error message, to avoid the appearance of internal base types.
11911         (Transform_Object_Operation): Copy each actual in full
11912         to the parameter associations of the constructed call, rather than
11913         using the shallow copy mechanism of New_Copy_List. This ensures that
11914         the chaining of named associations is done properly.
11915         (Complete_Object_Operation): Rewrite node, rather than
11916         replacing it, so that we can trace back to the original selected
11917         component.
11918
11919         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
11920         and calls that use object notation, if the called function is not
11921         declared  in a withed unit, place the elaboration constraint on the
11922         unit in the context that makes the function accessible.
11923         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
11924         imposes an elaboration constraint between two packages.
11925
11926 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11927
11928         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
11929         views of a private type after handling its private dependents, to
11930         maintain proper stack discipline between entry and exit from the
11931         package.
11932
11933 2005-02-09  Cyrille Comar  <comar@adacore.com>
11934
11935         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
11936         Minor reformatting.
11937
11938 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11939
11940         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
11941         fields for foreign threads.
11942
11943 2005-02-09  Doug Rupp  <rupp@adacore.com>
11944
11945         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
11946         recursion warnings when compiled with -gnatdm.
11947
11948 2005-02-09  Robert Dewar  <dewar@adacore.com>
11949
11950         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
11951         Slight fix to documentation of -gnaty with no parameters
11952
11953         * xr_tabls.ads: Add ??? comment for missing overall comment
11954
11955         * xsinfo.adb: Make default file name be sinfo.h, since this is what
11956         we now use by default.
11957
11958         * xsnames.adb: Adjust end of file test to look for five space followed
11959         by '#' instead of six spaces. The format of xsnames.adb was modified
11960         in the last update.
11961
11962         * a-numeri.ads: Add reference to AI-388 for greek letter pi
11963         identifier.
11964
11965         * clean.adb: Minor reformatting.
11966
11967         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
11968         gnatname.adb: Minor reformatting
11969         Add 2005 to copyright output when utility is run
11970
11971         * csets.adb: Eliminate obsolete comment
11972
11973         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
11974         Update comments.
11975
11976         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
11977
11978 2005-02-09  Sergey Rybin  <rybin@adacore.com>
11979
11980         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
11981         the difference between compact and incompact layout and add the record
11982         representation clause to the example illustrating different layouts.
11983         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
11984         component clauses").
11985
11986 2005-02-09  Florian Villoing  <villoing@adacore.com>
11987
11988         * gnat_ugn.texi: Fix typos.
11989         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
11990         @file.
11991         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
11992         in the generated documentation.
11993
11994 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11995
11996         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
11997         longer supported.
11998         Update linker wrapper when linking with non GNU C++.
11999
12000 2005-02-09  Pascal Obry  <obry@adacore.com>
12001
12002         * gnat_ugn.texi:
12003         Document the procedure to debug the DllMain routine on Windows.
12004         Add note about -funwind-tables and mixed Ada and C/C++ programming in
12005         ZCX mode.
12006         Document new BIND qualifer /RETURN_CODES=VMS.
12007
12008 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
12009
12010         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
12011         Edited gnatmetric chapter
12012
12013 2005-02-09  Robert Dewar  <dewar@adacore.com>
12014
12015         * gnat_rm.texi:
12016         Changes to document new wide wide character support
12017         For AI-285
12018         Update documentation on Normalize_Scalars and Initialize_Scalars
12019
12020 2005-02-09  Pascal Obry  <obry@adacore.com>
12021
12022         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
12023
12024 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
12025
12026         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
12027         from the VxWorks kernel) that is needed for getting the active
12028         priority of the different tasks.
12029
12030         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
12031         Use a pragma Elaborate_Body in the spec file instead.
12032         Noticed by code reading.
12033
12034 2005-02-09  Thomas Quinot  <quinot@adacore.com>
12035
12036         * exp_util.ads: Minor correction in comment.
12037
12038 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12039
12040         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
12041         since this procedure is now too complex to be worth inlining.
12042
12043 2005-02-09  Richard Henderson  <rth@redhat.com>
12044
12045         * utils.c (gnat_define_builtin): Remove.
12046         (gnat_install_builtins): Use build_common_builtin_nodes.
12047
12048 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12049
12050         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
12051         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
12052         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
12053         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
12054         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
12055         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
12056         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
12057         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
12058         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
12059         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12060         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
12061         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
12062         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
12063         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
12064         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
12065         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
12066         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
12067         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
12068         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
12069         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
12070         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
12071         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
12072         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
12073         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
12074         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
12075         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
12076         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
12077         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
12078         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
12079         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
12080         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
12081         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
12082         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
12083         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
12084         library.
12085
12086 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12087
12088         * Makefile.in: Fix a-intnam.ads from previous commit,
12089         add 2005 to copyright.
12090         * a-intman-rtems.ads: Renamed to...
12091         * a-intnam-rtems.ads:
12092
12093 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12094
12095         * Makefile.in: Rename GNAT RTEMS specific files.
12096         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
12097         5rosinte.ads, 5rparame.adb: Replaced by files below.
12098         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
12099         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
12100
12101 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
12102             Laurent GUERBY <laurent@guerby.net>
12103
12104         PR ada/19488
12105         * 5rosinte.ads: Add No_Key constant.
12106         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
12107         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
12108
12109 2005-01-26  Laurent GUERBY <laurent@guerby.net>
12110
12111         PR ada/19414
12112         * i-cobol.adb (Valid_Numeric): Handle zero length case.
12113
12114 2005-01-20  Richard Henderson  <rth@redhat.com>
12115
12116         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
12117         a-intnam-linux.ads and system-linux-alpha.ads.
12118         * a-intnam-linux-alpha.ads: Remove file.
12119         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
12120         * system-linux-alpha.ads: New file.
12121
12122 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
12123
12124         PR ada/13470
12125         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
12126         set to the new string.
12127
12128 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12129
12130         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
12131         to True.
12132
12133 2005-01-18  Richard Henderson  <rth@redhat.com>
12134
12135         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
12136         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
12137         for alpha-linux.
12138         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
12139
12140 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
12141
12142         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
12143         (GCC_ZCX_Support): Likewise.
12144
12145 2005-01-11  Bastian Blank  <waldi@debian.org>
12146
12147         * system-linux-s390.ads: Define Preallocated_Stacks.
12148         * system-linux-s390x.ads: Likewise.
12149
12150 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
12151
12152         * gnat_ugn.texi: Fix texi errors with null variables.
12153
12154 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12155
12156         * gen-soccon.c: New utility program to generate g-soccon.ads
12157         automatically.
12158
12159         * socket.c, gsocket.h: Split inclusion of system header files into a
12160         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
12161
12162         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
12163         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12164         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
12165         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
12166         should not be edited by hand anymore, but should be regenerated using
12167         gen-soccon.
12168
12169 2005-01-03  Robert Dewar  <dewar@adacore.com>
12170             Ed Schonberg  <schonberg@adacore.com>
12171             Vincent Celier  <celier@adacore.com>
12172
12173         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
12174         on/off, since this is an obsolescent feature, for which we now generate
12175         a warning.
12176
12177         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
12178         warning mode is set and obsolescent usage of this attribute occurs.
12179         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
12180         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
12181         predates, and partly motivates, the adoption of the AI.
12182         Implement new Ada 2005 attribute Mod
12183
12184         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
12185         attribute Mod.
12186
12187         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
12188
12189         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
12190         pragma restrictions.
12191         New entry for Ada 2005 attribute Mod.
12192
12193         * par-prag.adb:
12194         Add recognition of new pragma Restrictions No_Dependence
12195         Recognize restriction No_Obsolescent_Features at parse time
12196
12197         * bcheck.adb: Add circuitry for checking for consistency of
12198         No_Dependence restrictions.
12199
12200         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
12201         restrictions.
12202
12203         * restrict.ads, restrict.adb: Add subprograms to deal with
12204         No_Dependence restrictions.
12205
12206         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
12207         restrictions.
12208
12209         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
12210         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
12211
12212         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
12213         dummy parameter to scng instantiation.
12214         Needed for new restriction No_Obsolescent_Features
12215
12216         * scn.adb: (Obsolescent_Check): New procedure
12217         Needed for new restriction No_Obsolescent_Features
12218
12219         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
12220         specified by AI-285, needed for implementation of AI-388 (adding greek
12221         pi to Ada.Numerics).
12222         Add new generic formal to scng, needed for new restriction
12223         No_Obsolescent_Features.
12224
12225         * s-rident.ads: Add new restriction No_Obsolescent_Features.
12226
12227         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
12228         restrictions lines.
12229         (Scan_ALI): When finding an unexpected character on an R line, raise
12230         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
12231         Ignore_Errors is True, default restrictions are set and scanning of the
12232         ALI file continues with the next line. Also, when Bad_R_Line is raised
12233         and Ignore_Errors is True, skip to the end of le line.
12234
12235         * sem_ch10.adb: Check that explicit with's do not violate
12236         No_Dependence restrictions.
12237         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
12238         illegal context clauses containing child units of instance.
12239
12240         * sem_prag.adb: Processing and checking for new No_Dependence
12241         restrictions.
12242         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
12243         analyze and check the External argument.
12244
12245         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
12246
12247 2005-01-03  Robert Dewar  <dewar@adacore.com>
12248
12249         * atree.adb: Add a fifth component to entities
12250         This allows us to add 32 flags and four new fields
12251
12252         * atree.ads: Add a fifth component to entities
12253         This allows us to add 32 flags and four new fields
12254
12255         * einfo.ads, einfo.adb: Document new fields and new flags now available
12256         Add routines for printing new fields
12257
12258         * treepr.adb: Call routines to print out additional fields if present
12259
12260 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12261
12262         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
12263         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
12264
12265         * Makefile.in: Add support to build shared Ada libraries on solaris x86
12266         Remove gpr2make, replaced by gprmake.
12267         Remove references to gnatmem and libaddr2line.
12268         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
12269         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
12270         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
12271         a-numaux-darwin.ads and a-numaux-darwin.adb
12272         Enable mlib-tgt-lynxos.adb on lynxos.
12273
12274         * Make-lang.in: Remove rules for gpr2make.
12275         When generating sdefault.adb, do not call Relocate_Path
12276         on S3 for function Target_Name, as it is not a path.
12277         Remove references to gnatmem and libaddr2line.
12278
12279         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
12280         files.
12281
12282 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
12283
12284         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
12285         address is incompatible with its base type alignment constraints when
12286         this can be decided statically.
12287
12288 2005-01-03  Olivier Hainque  <hainque@adacore.com>
12289
12290         * decl.c (compatible_signatures_p): New function. The intended purpose
12291         is to check if two function signatures for a call-site and a callee are
12292         compatible enough for the call to be valid. The underlying purpose is
12293         to check if a call to a mapped builtin is using the right interface.
12294         The current code actually does not check antyhing - this a placeholder
12295         for future refinements.
12296         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
12297         builtin calls for convention Intrinsic.
12298
12299         * gigi.h (builtin_decl_for): Declare (new function).
12300
12301         * utils.c (gnat_install_builtins): Install the target specific builtins.
12302         (builtin_decl_for): New function, provide a dummy body for now.
12303
12304 2005-01-03  Geert Bosch  <bosch@adacore.com>
12305
12306         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
12307         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
12308         (Pred): Implement in terms of Succ.
12309
12310         * trans.c (convert_with_check): Reimplement conversion of float to
12311         integer.
12312
12313 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12314             Vincent Celier  <celier@adacore.com>
12315
12316         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
12317         bounds can be negative, and must be declared Int, not Nat.
12318
12319         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
12320         array is checked after using the index in the array.
12321
12322         * makegpr.adb (Add_Switches): Check if there is a package for the
12323         processor. If there is no package, do not look for switches.
12324
12325 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12326
12327         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
12328         generation of predefined stream operations (specs and bodies) should
12329         proceed. Under various restrictions these subprograms must not be
12330         generated.
12331
12332 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12333
12334         * exp_dist.adb:
12335         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
12336         amount of PCS-specific code in RACW stubs generation.
12337         (Copy_Specification): Set Etype on copied formal parameter entities, as
12338         this information is needed for PolyORB stubs generation.
12339         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
12340         variable Dynamic_Async.
12341         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
12342         (Build_RPC_Receiver_Specification): Make generic again, as recent
12343         changes have allowed RPC receivers to have the same profile for both
12344         variants of the PCS.
12345         Reorganise RPC receiver generation to reduce differences between the
12346         structure of GARLIC and PolyORB RPC receivers.
12347         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
12348         PCS-specific.
12349         Simplify elaboration code for RCI packages.
12350
12351         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
12352         generation to reduce differences between the structure of GARLIC and
12353         PolyORB RPC receivers.
12354
12355         * s-stratt.adb: Fix typo in comment.
12356
12357 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12358
12359         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
12360         copied from Make_Init_Call).
12361
12362         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
12363         reads and assignments on a temporary variable declared with appropriate
12364         discriminants.
12365
12366 2005-01-03  Robert Dewar  <dewar@adacore.com>
12367
12368         * i-c.adb (To_C): Raise CE if string is null and Append_Null
12369
12370 2005-01-03  Robert Dewar  <dewar@adacore.com>
12371
12372         * i-cstrin.adb (Update): Do not append a null in form called with a
12373         String. This avoids unintended behavior.
12374
12375 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12376
12377         PR ada/17527
12378         * init.c: Fix warnings on Free BSD section.
12379
12380 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12381
12382         PR ada/16949
12383         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
12384         xsinfo.adb).
12385
12386 2005-01-03  Vincent Celier  <celier@adacore.com>
12387
12388         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
12389         libraries when Unique_Compile is True (-u switch).
12390         (Gnatmake): ditto.
12391
12392 2005-01-03  Robert Dewar  <dewar@adacore.com>
12393
12394         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
12395         upper case letter or underscore after W, as allowed by spec.
12396
12397 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12398
12399         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
12400         darwin port by using proper type definitions from header files.
12401         Use SIGTERM instead of SIGABRT for SIGADAABORT.
12402
12403 2005-01-03  Robert Dewar  <dewar@adacore.com>
12404
12405         * par.adb: Enhance error message handling for configuration file
12406         pragmas.
12407
12408 2005-01-03  Robert Dewar  <dewar@adacore.com>
12409
12410         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
12411         removed during the previous update (test properly for case of dividing
12412         largest negative number by -1, which generates overflow).
12413
12414 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12415             Sergey Rybin  <rybin@adacore.com>
12416
12417         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
12418         to use as the defining identifier for a formal package.
12419         (Remove_Parent): If the instance takes place within (an instance of)
12420         a sibling, preserve private declarations of common parent.
12421
12422 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12423
12424         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
12425         to determine whether one of the operands is a fixed-point type for
12426         which a user-defined multiplication or division operation might be
12427         defined.
12428
12429         * sem_res.adb (Valid_Conversion): The legality rules for conversions
12430         of access types are symmetric in Ada 2005: either designated type can
12431         be unconstrained.
12432
12433 2005-01-03  Vincent Celier  <celier@adacore.com>
12434
12435         * s-fileio.adb (Temp_File_Record): Change length of string component
12436         Name from L_tmpnam + 1 to max_path_len + 1.
12437
12438 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12439
12440         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
12441         Self_Id.Deferral_Level = 0.
12442         (Do_Pending_Action): Move this function to the spec.
12443
12444         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
12445         Do_Pending_Action explicitely when needed, in case we're using
12446         No_Abort restrictions.
12447
12448         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
12449         deferral level since it will not get changed by the generated code.
12450         Keeping a default value of 1 would prevent some operations (e.g.
12451         select or delay) to proceed successfully.
12452
12453 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
12454             Robert Dewar  <dewar@adacore.com>
12455             Cyrille Comar  <comar@adacore.com>
12456
12457         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
12458         porting guide chapter (vms version).
12459         Revised doc title (removed "for native platforms") and subtitle.
12460         Add discussion on warning flag for obsolescent features. First we
12461         note that it applies to obsolete GNAT features, which was previously
12462         omitted. Second we contrast the behavior with that of the new
12463         Ada 2005 AI-368 restriction No_Obsolescent_Features.
12464         Preliminary rewriting of GNAT & libraries chapter in order to take
12465         into account default project locations & new project manager
12466         capabilities.
12467
12468 2005-01-03  Robert Dewar  <dewar@adacore.com>
12469
12470         * cstand.adb (Create_Operators): Clean up format and documentation of
12471         unary and binary operator result tables. No change in code, just
12472         reformatting and addition of comments.
12473
12474         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
12475         sem_ch2.adb: Minor reformatting
12476
12477         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
12478         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
12479         comments for Tree_Read and Tree_Write.
12480
12481 2005-01-03  Pascal Obry  <obry@adacore.com>
12482
12483         * exp_attr.ads: Minor reformatting.
12484
12485 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
12486
12487         * comperr.adb (Compiler_Abort): Add specialized message for GAP
12488         versions.
12489
12490 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12491
12492         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
12493         whether the ancestor type is private, as may be the case with nested
12494         instantiations.
12495
12496 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
12497
12498         PR ada/19128
12499         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
12500
12501 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12502
12503         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
12504         * utils2.c (build_unary_op): Likewise.
12505
12506 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12507
12508         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
12509
12510 2004-12-19  Richard Henderson  <rth@redhat.com>
12511
12512         * trans.c (gigi): Update gimplify_body call.
12513
12514 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
12515
12516         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
12517
12518 2004-12-07  Ed Falis  <falis@adacore.com>
12519
12520         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
12521         current task being suspended.
12522
12523         * init.c (__gnat_clear_exception): added to reset VxWorks exception
12524         count.
12525         (__gnat_map_signal): removed test for current task being suspended.
12526
12527 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12528
12529         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
12530         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
12531         targets (such as AAMP).
12532
12533 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12534
12535         * atree.adb (Visit_Itype): Create a new name for the generated itype,
12536         because the back-end may otherwise treat it as a redefinition of the
12537         old symbol.
12538
12539 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
12540
12541         * back_end.adb (Scan_Back_End_Switches): Accept --param.
12542
12543         * lang-specs.h: Accept --param.
12544
12545 2004-12-07  Vincent Celier  <celier@adacore.com>
12546
12547         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
12548         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
12549         Current_Body_Suffix => Ada_Body_Suffix).
12550         Take into account Externally_Built attribute.
12551
12552         * clean.adb (In_Extension_Chain): Always return False when one of the
12553         parameter is No_Project.
12554         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
12555         Ada_Language_Index).
12556         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
12557         Process_Languages for procedure Parse).
12558
12559         * gnatcmd.adb (Carg_Switches): New table.
12560         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
12561         Adapt to name changes in package Prj (Current_Spec_Suffix =>
12562         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
12563
12564         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
12565         Header_Num and function Hash are now declared in package Prj,
12566         not Prj.Com.
12567
12568         * prj.adb (Suffix_Of): New function.
12569         (Set (Suffix)): New procedure.
12570         (Hash): One function moved from Prj.Com
12571         (Is_Present, Language_Processing_Data_Of): New functions
12572         (Set): Two new procedures
12573         (Add_Language_Name, Display_Language_Name): New procedures
12574
12575         * prj.ads: (Suffix_Of): New function
12576         (Set (Suffix)): New procedure
12577         Add several types and tables for multi-language support.
12578         (Header_Num): Type moved from Prj.Com
12579         (Hash): Two functions moved from Prj.Com
12580         (Is_Present, Language_Processing_Data_Of): New functions
12581         (Set): Two new procedures
12582         (Add_Language_Name, Display_Language_Name): New procedures
12583         (Naming): Component name changes:
12584         Current_Spec_Suffix => Ada_Spec_Suffix,
12585         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
12586         Impl_Suffixes, Supp_Suffixes.
12587         (Project_Data): New components: Externally_Built, Supp_Languages,
12588         First_Language_Processing, Supp_Language_Processing, Default_Linker,
12589         Default_Linker_Path.
12590
12591         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
12592         new package Language_Processing with its attributes (Compiler_Driver,
12593         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
12594         Binder_Driver, Default_Linker).
12595
12596         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
12597         (Header_Num): Type moved to package Prj
12598
12599         * prj-env.adb: Adapt to name changes in package Prj
12600         (Current_Spec_Suffix => Ada_Spec_Suffix,
12601         Current_Body_Suffix => Ada_Body_Suffix).
12602
12603         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
12604         default to the project path, except the "-" is one of the directories
12605         in env var ADA_PROJECT_PATH.
12606         (Current_Project_Path): Global variable, replacing Project_Path
12607         that was in the body of Prj.Part.
12608         (Project_Path): New function
12609         (Set_Project_Path): New procedure
12610         Initialize Current_Project_Path during elaboration of the package
12611         Remove dependency on Prj.Com, no longer needed
12612
12613         * prj-ext.ads (Project_Path): New function
12614         (Set_Project_Path): New procedure
12615
12616         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
12617         suffix is defined for language <lang>.
12618         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
12619         accessing directly the components of Naming.
12620         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
12621         Reorganise of this package.
12622         Break procedure Check in several procedures.
12623
12624         * prj-nmsc.ads: Replace all procedures (Ada_Check,
12625         Other_Languages_Check and Language_Independent_Check) with a single
12626         procedure Check.
12627
12628         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
12629         Process_Languages, no longer needed.
12630
12631         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
12632         Current_Project_Path.
12633         Remove elaboration code, moved to the body of Prj.Ext
12634         Use new function Prj.Ext.Project_Path instead of old variable
12635         Project_Path.
12636         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
12637         When comparing with project paths on the stack, first put the resolved
12638         path in canonical case.
12639         (Parse_Single_Project): Set the path name of the project file in the
12640         tree to the normalized path.
12641
12642         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
12643         parameter Process_Languages, no longer needed.
12644         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
12645         Other_Languages_Check.
12646
12647         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
12648         to store the resolved canonical path of the project file.
12649         Remove dependency to Prj.Com, no longer needed
12650
12651         * prj-util.adb: Adapt to name changes in package Prj
12652         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
12653         Ada_Body_Suffix).
12654
12655         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
12656         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
12657         Externally_Built, Include_Option, Language_Processing.
12658
12659         * makegpr.adb: Numerous changes due to changes in packages
12660         Prj and Prj.Nmsc.
12661
12662         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
12663         default to the project path, except whe "-" is one of the directories
12664         in env var ADA_PROJECT_PATH.
12665         (Gnatls): In verbose mode, add the new section "Project Search Path:"
12666
12667 2004-12-07  Robert Dewar  <dewar@adacore.com>
12668
12669         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
12670
12671         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
12672         set -gnatR3m mode.
12673
12674         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
12675         flag. No longer needed now that we handle this in gnat1drv.adb.
12676
12677         * repinfo.ads: Minor reformatting
12678
12679 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12680             Olivier Hainque  <hainque@adacore.com>
12681             Eric Botcazou  <ebotcazou@adacore.com>
12682
12683         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
12684         TYPE_SIZE_UNIT of result type if SIZE is not specified.
12685         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
12686         of a bitfield, which we know is useless and causes trouble because of
12687         alignment implications.
12688
12689         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
12690         BSS sections.
12691         (process_attributes): Clear DECL_COMMON again when a section attribute
12692         is present.
12693         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
12694         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
12695         (create_field_decl): Special case ADDRESSABLE negative to mean
12696         "no bitfield creation", to be used by make_aligning_type. Don't
12697         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
12698         fields claimed addressable still have to be bitfields. Use
12699         value_factor_p instead of a raw binop construction to check for the
12700         position's alignment.
12701
12702 2004-12-07  Geert Bosch  <bosch@adacore.com>
12703
12704         * eval_fat.adb: Revert previous change.
12705
12706 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12707             Ed Schonberg  <schonberg@adacore.com>
12708
12709         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
12710         with an implicit dereference as its prefix, use
12711         Insert_Explicit_Dereference instead of merely rewriting the prefix into
12712         an explicit dereference. This ensures that a reference to the original
12713         prefix is generated, if appropriate.
12714
12715         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
12716         dereference is rewritten to an explicit one, generate a reference to
12717         the entity denoted by its prefix using the original prefix node, so
12718         the dereference can be properly recorded as a read of the denoted
12719         access value, if appropriate.
12720
12721         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
12722         emitting 'assigned but never read' warning on a variable on the basis
12723         that it has an access type.
12724         (Check_References): Emit unreferenced warning when the scope is a
12725         subprogram body.
12726
12727 2004-12-07  Robert Dewar  <dewar@adacore.com>
12728             Ed Schonberg  <schonberg@adacore.com>
12729
12730         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
12731         intrinsic
12732
12733         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
12734         leaving call unchanged.
12735         This deals with the case where the pragma Import specified
12736         an external name, to be handled by the back end.
12737
12738         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
12739         subprogram which is Imported with convention Intrinsic if an
12740         External_Name argument is specified.
12741         (Process_Import_Or_Interface): Properly diagnose link name argument.
12742         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
12743         with Sem_Ch6.Cannot_Inline.
12744         (Process_Inline): Provide separate warning for inapplicable inline
12745         pragma.
12746         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
12747         treatment is uniform on different targets.
12748
12749 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12750
12751         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
12752         construct is rewritten, preserve end label to permit source navigation.
12753
12754 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12755
12756         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
12757         Specific_Build_Stub_Target): New subprograms.
12758         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
12759         the PCS implementation used, using the above PCS-customized subprograms.
12760         Minor reformatting.
12761         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
12762         for generation of DSA code targeted to the PolyORB PCS.
12763         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
12764         implementation of the partition communication subsystem in ancillary
12765         subprograms.
12766         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
12767         PolyORB_Support.Build_Stub_Type): New subrograms containing the
12768         PCS-specific part of Add_Stub_Type.
12769         (Insert_Partition_Check): Use runtime library function to perform
12770         E.4(19) check.
12771
12772         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
12773         (RE_Same_Partition): New entity, from s-parint.
12774
12775         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
12776
12777 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12778
12779         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
12780         Output the copyright message on a separate line from the version
12781         message.
12782
12783 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
12784
12785         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
12786         compile-time warning.
12787
12788 2004-12-07  Robert Dewar  <dewar@adacore.com>
12789
12790         * g-regpat.adb: (Match): Change a misuse of or to or else
12791
12792 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12793
12794         * lib-xref.adb:
12795         (Generate_Reference): Handle properly a reference to an entry formal,
12796          when an accept statement has a pragma Unreferenced for it.
12797
12798         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
12799         and the Has_Pragma_Unreferenced flag for each formal before analyzing
12800         the body, to ensure that warnings are properly emitted for each accept
12801         statement of a given task entry.
12802
12803 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
12804
12805         * Makefile.in: Add support for foreign threads on VMS.
12806
12807 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12808
12809         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
12810         Remove.
12811         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
12812
12813         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
12814
12815         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
12816         exception.
12817         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
12818
12819 2004-12-07  Robert Dewar  <dewar@adacore.com>
12820
12821         * nlists.adb (Prepend_Debug): Remove parameters and nest within
12822         Prepend.
12823         (Remove_Next_Debug): Same fix
12824
12825         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
12826         maintain back pointers now, though we did not used to, and comments
12827         were out of date).
12828         (Prepend): Remove pragma Inline.
12829         (Remove_Next): Same cleanup
12830
12831 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12832
12833         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
12834         used to record an implicit dereference as a read operation on its
12835         prefix when operating under -gnatc. Necessary to avoid spurious
12836         'variable assigned but never read' warnings in that mode.
12837         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
12838         is a non-overloaded implicit dereference, call the above subprogram to
12839         ensure proper recording of references.
12840
12841 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12842
12843         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
12844         to be resolved later as part of Analyze_Iteration_Scheme's call to
12845         Make_Index.
12846
12847 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12848
12849         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
12850         prefix is not a scalar type, place error message on prefix, not on
12851         type entity.
12852
12853 2004-12-07  Bernard Banner  <banner@adacore.com>
12854
12855         * vxaddr2line.adb: Add support for x86 vxworks
12856
12857 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12858
12859         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
12860         documentation of the behaviour of these functions when passed an IP
12861         address that has no record in the system hosts database and no reverse
12862         record in the DNS.
12863
12864         * cstand.adb, a-tags.ads: Fix typos in comment.
12865
12866 2004-12-07  Robert Dewar  <dewar@adacore.com>
12867
12868         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
12869         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
12870         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
12871         s-poosiz.ads: Minor reformatting
12872
12873         * make.adb: Minor reformatting
12874         Add some ??? comments asking for more comments
12875
12876         * s-poosiz.adb: Minor reformatting
12877         Add comments on alignment requirement
12878
12879         * sinfo.ads: Remove obsolete comment and fix typo.
12880
12881 2004-12-07  Vincent Celier  <celier@adacore.com>
12882             Sergey Rybin  <rybin@adacore.com>
12883
12884         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
12885         Files" with the new tool and package names.
12886         Reformatting to suppress most of the warnings for line too long
12887         Document the new section "Project Search Path:" in the output of
12888         gnatls -v.
12889         Add gnatmetric section
12890
12891 2004-12-07  Vincent Celier  <celier@adacore.com>
12892
12893         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
12894         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
12895         and -eit to -ept. Added qualifier
12896         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
12897
12898 2004-11-27  Andreas Schwab  <schwab@suse.de>
12899
12900         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
12901
12902 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12903
12904         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
12905         internal implementation unit GNAT.Sockets.Thin,
12906         as their usage for sockets is non-portable (using the read and write
12907         functions from the system runtime library is fine on UNIX but won't
12908         work under Windows).
12909
12910         * mingw32.h: Update copyright notice.
12911
12912 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12913
12914         * ada-tree.h: Minor reformatting of previous change to avoid lines
12915         longer than 79 characters.
12916
12917 2004-11-25  Olivier Hainque  <hainque@adacore.com>
12918
12919         * tb-gcc.c: GCC infrastructure based implementation of
12920         __gnat_backtrace.
12921
12922 2004-11-24  Steven Bosscher  <stevenb@suse.de>
12923
12924         * misc.c (gnat_post_options): Don't clear
12925         flag_inline_functions.
12926
12927 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
12928
12929         PR ada/17986
12930         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
12931         tree.
12932
12933 2004-11-21  Andreas Jaeger  <aj@suse.de>
12934
12935         * stylesw.adb: Change Style_Check_Subprogram_Order to
12936         Style_Check_Order_Subprograms.
12937
12938 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
12939
12940         * adaint.h, adaint.c
12941         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
12942         to avoid warnings.
12943         Add also a cast to kill another warning.
12944         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
12945         parameter with the priority class of the parent process instead of
12946         always using the NORMAL_PRIORITY_CLASS.
12947         (__gnat_dup): New function.
12948         (__gnat_dup2): New function.
12949         (__gnat_is_symbolic_link): Enable the effective body of this
12950         function when __APPLE__ is defined.
12951
12952         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
12953         Update comments.
12954
12955 2004-11-18  Olivier Hainque  <hainque@adacore.com>
12956
12957         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
12958         address of which may be used to represent "others" and "all others"
12959         choices in exception tables, instead of the current harcoded
12960         (void *)0 and (void *)1.
12961         (Setup_Exception): Do nothing in the GNAT SJLJ case.
12962
12963         * gigi.h (others_decl, all_others_decl): New decls representing the
12964         new Others_Value and All_Others_Value objects.
12965         (struct attrib): Rename "arg" component as "args", since GCC expects a
12966         list of arguments in there.
12967
12968         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
12969         corresponding objects exported by a-exexpr, instead of hardcoded dummy
12970         addresses.
12971
12972         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
12973         others_decl and all_others_decl instead of hardcoded dummy addresses
12974         to represent "others" and "all others" choices, which is cleaner and
12975         more flexible with respect to the possible eh pointer encoding policies.
12976
12977         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
12978         (process_attributes): Account for the naming change of the "args"
12979         attribute list entry component.
12980
12981         * decl.c (build_attr_list): Rename into prepend_attributes to allow
12982         cumulating attributes for different entities into a single list.
12983         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
12984         attributes for the current entity and propagate first subtype
12985         attributes to other subtypes.
12986         <E_Procedure>: Attribute arguments are attr->args and not
12987         attr->arg any more.
12988         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
12989         argument provided, as this is what GCC expects. Use NULL_TREE instead
12990         of 0 for trees.
12991
12992 2004-11-18  Robert Dewar  <dewar@adacore.com>
12993
12994         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
12995         Minor reformatting througout (including new function specs)
12996         Add ??? comments asking for clarification.
12997
12998 2004-11-18  Thomas Quinot  <quinot@adacore.com>
12999
13000         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
13001         incomplete duplicate implementation of this subprogram from butil.
13002
13003 2004-11-18  Thomas Quinot  <quinot@adacore.com>
13004
13005         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
13006         procedures factors the common processing for building an RPC receiver
13007         for an RCI package or an RACW type.
13008         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
13009         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
13010         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
13011         in use.
13012         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
13013         Add_RACW_Features.
13014         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
13015         Add_RAST_Features.
13016         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
13017         distribution subprogram identifiers that are either subprogram numbers
13018         or strings.
13019         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
13020         string distribution identifiers assigned to a given subprogram.
13021         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
13022         (Add_RAS_Dereference_TSS): Add comments.
13023         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
13024         is not referenced yet because it will be used by the PolyORB DSA
13025         implementation.
13026         (Insert_Partition_Check): Remove fossile code.
13027         (First_RCI_Subprogram_Id): Document this constant.
13028         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
13029         RAS_Access TSS.
13030         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
13031         replaced with calls to Get_Library_Unit_Name_String. Previously there
13032         were several instances of the same code in different locations in the
13033         compiler; this checkin completes the replacement of all of these
13034         instances with calls to a common subprogram.
13035         Minor reformatting.
13036
13037         * sem_dist.adb: Remove comment noting that RPC receiver generation
13038         should be disabled for RACWs that implement RASs.
13039         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
13040
13041         * sem_util.ads, sem_util.adb (Has_Stream): New function
13042         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
13043         qualified name of a library unit into the name buffer.
13044         (Note_Possible_Modification): Generate a reference only
13045         if the context comes from source.
13046
13047         * snames.ads (PCS_Names): New subtype corresponding to names of
13048         supported implementations of the Partition Communication Subsystem
13049         (PCS) (i.e. the runtime library support modules for the distributed
13050         systems annex).
13051
13052 2004-11-18  Robert Dewar  <dewar@adacore.com>
13053             Ed Schonberg  <schonberg@adacore.com>
13054
13055         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
13056         (Has_Rep_Pragma): New function
13057         (Has_Attribute_Definition_Clause): New function
13058         (Record_Rep_Pragma): Moved here from sem_ch13.adb
13059         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
13060
13061         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
13062
13063         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
13064         (Expand_Pragma_Psect_Object): New procedure
13065         These procedures contain the revised and cleaned up processing for
13066         these two pragmas. This processing was formerly in Sem_Prag, but
13067         is more appropriately moved here. The cleanup involves making sure
13068         that the pragmas are properly attached to the tree, and that no
13069         nodes are improperly shared.
13070
13071         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
13072         pragmas to Exp_Prag, which is more appropriate.
13073         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
13074         check for duplicates Remove use of Is_Psected flag, no longer needed.
13075         Use new Make_String_Literal function with string.
13076
13077         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
13078         that are functions return universal values, that have to be converted
13079         to the context type.
13080         Use new Make_String_Literal function with string.
13081         (Get_Stream_Convert_Pragma): New function, replaces the use of
13082         Get_Rep_Pragma, which had to be kludged to work in this case.
13083
13084         * freeze.adb: Use new Has_Rep_Pragma function
13085
13086         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
13087         function with string.
13088         Use new Has_Rep_Pragma function.
13089
13090         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
13091         string argument.
13092
13093 2004-11-18  Robert Dewar  <dewar@adacore.com>
13094
13095         * errout.ads, errout.adb: (First_Sloc): New function
13096
13097         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
13098         check (-gnatyx) instead of being included as a redundant construct
13099         warning.
13100
13101         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
13102         Style_Check_Order_Subprograms.
13103
13104         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
13105         stylesw.adb: Add Style_Check_Xtra_Parens
13106
13107         * usage.adb: Add line for -gnatyx (check extra parens)
13108
13109         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
13110
13111 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13112             Robert Dewar  <dewar@adacore.com>
13113
13114         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
13115         discriminant of a constrained subtype, analyze the copy of the
13116         corresponding constraint, because in some cases it may be only
13117         partially analyzed.
13118         Removes long-lived ??? comments.
13119
13120         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
13121         handled controlled or secondary-stack expressions within the
13122         iteration_scheme of a loop.
13123
13124         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
13125         bounds that may contain functions calls, to prevent memory leaks when
13126         the bound contains a call to a function that uses the secondary stack.
13127         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
13128         generate temporaries for loop bounds that might contain function calls
13129         that require secondary stack and/or finalization actions.
13130
13131         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
13132         selected component and the selector is overloadable (not just a
13133         function) treat as function call, Analyze_Call will disambiguate if
13134         necessary.
13135         (Analyze_Selected_Component): Do not generate an actual subtype for the
13136         selected component if expansion is disabled. The actual subtype is only
13137         needed for constraint checks.
13138         (Analyze_Allocator): If restriction No_Streams is set, then do
13139         not permit objects to be declared of a stream type, or of a
13140         composite type containing a stream.
13141
13142         * restrict.ads: Remove the a-stream entry from Unit_Array, since
13143         No_Streams no longer prohibits with'ing this package.
13144
13145         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
13146         discriminants, but the parent base has unknown discriminants, there is
13147         no discriminant constraint to inherit. Such a discrepancy can arise
13148         when the actual for a formal type with unknown discriminants is a
13149         similar private type whose full view has discriminants.
13150         (Analyze_Object_Declaration): If restriction No_Streams is set, then
13151         do not permit objects to be declared of a stream type, or of a
13152         composite type containing a stream.
13153
13154 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13155
13156         * exp_dbug.ads: Update documentation to reflect simpler encoding for
13157         protected operations.
13158
13159         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
13160         generated name, it complicates decoding in gdb and hinders debugging
13161         of protected operations.
13162         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
13163         flag for the protected entry barrier function.
13164         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
13165         flag for the protected entry function.
13166
13167 2004-11-18  Nicolas Setton  <setton@adacore.com>
13168
13169         * expect.c: Define __unix__ when __APPLE__ is defined.
13170
13171         * Makefile.in: Inform the value of the variable GMEM_LIB in the
13172         Darwin-specific section.
13173
13174         * lang-specs.h: Change the placement of the %1 marker.
13175         Works around the fact that gcc adds -fPIC by default under Darwin.
13176
13177 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13178
13179         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
13180         type of the object with the packed array type, set the Analyzed flag
13181         on the object if it is an entity or simple indexed component, to avoid
13182         spurious type errors.
13183
13184 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
13185
13186         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
13187         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
13188         separate line from the version message.
13189
13190 2004-11-18  Ed Falis  <falis@adacore.com>
13191
13192         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
13193         vthreads.
13194         (init_float): Eliminate initialization of floating point status for
13195         AE653. The instructions have no effect for vThreads.
13196
13197 2004-11-18  Vincent Celier  <celier@adacore.com>
13198
13199         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
13200         gnatbind is invoked with -shared.
13201
13202 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
13203
13204         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
13205         for Detect_Blocking which is redundant with the check done within the
13206         procedure Protected_Single_Entry_Call.
13207         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
13208         Detect_Blocking which is redundant with the check done within the
13209         procedure Protected_Single_Entry_Call.
13210
13211 2004-11-18  Vincent Celier  <celier@adacore.com>
13212
13213         * makegpr.adb (Compile): Put the compiling switches (in package
13214         Compiler and on the command line) immediately after "-c", instead of
13215         at the end of the command line invocation of the compiler, when
13216         compiling a non-Ada file.
13217         (Build_Global_Archive): When there is no need to rebuild the archive,
13218         set Global_Archive_Exists, so that the archive is passed to the linker
13219         if one is needed.
13220
13221 2004-11-18  Robert Dewar  <dewar@adacore.com>
13222             Sergey Rybin  <rybin@adacore.com>
13223
13224         * gnat_ugn.texi:
13225         Remove extra paren check from list of checks for redundant constructs
13226         Add documentation of new -gnatyx style check (check extra parens)
13227         Remove paragraph about gnatelim debug options.
13228
13229         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
13230         objects rather than forbidding dependencies on the package Ada.Streams.
13231
13232         * sinfo.ads: Add ??? note that we should document pragmas passed to
13233         back end.
13234
13235         * g-expect.ads: Fix a few typos in the comments.
13236
13237 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
13238
13239         * misc.c (gnat_handle_option): Use %< and %> for quoting in
13240         warning message.
13241
13242 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13243
13244         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
13245
13246 2004-11-07  Andreas Schwab  <schwab@suse.de>
13247
13248         * Makefile.in (install-gnatlib): Remove spurious hyphen.
13249
13250 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
13251
13252         PR ada/18228
13253         * Makefile.in (darwin): Set soext to .dylib.
13254
13255 2004-10-26  Vincent Celier  <celier@gnat.com>
13256             Thomas Quinot   <quinot@act-europe.fr>
13257
13258         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
13259         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
13260         there is no use of GNAT.Sockets.Constants.
13261         Remove remaining pragma Import for C_Write
13262         Remove C_Read and C_Write from internal implementation unit
13263         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
13264         the read and write functions from the system runtime library is fine
13265         on UNIX but won't work under Windows).
13266
13267         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
13268         (Check_Selector): Use C_Recv instead of C_Read.
13269         Selectors are the GNAT.Sockets abstraction to perform a select()
13270         call on a set of descriptors. To allow abortion of an ongoing
13271         select operation, some data is written to a dedicated socket that
13272         is always monitored.
13273         Under Windows, the write and read library functions cannot operate
13274         on sockets, so we need to use send and recv instead, which is portable
13275         across all supported platforms.
13276
13277         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
13278         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
13279         (using the read and write functions from the system runtime library is
13280         fine on UNIX but won't work under Windows).
13281
13282 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
13283
13284         * mlib-tgt-darwin.adb: New file.
13285
13286         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13287         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13288         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
13289         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
13290         subprogram body.
13291
13292         * Makefile.in: Add support for building shared libraries under Darwin.
13293         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
13294         the low level EH init subprogram to be called from __gnat_initialize.
13295
13296         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
13297         indicates which options to pass to the archive indexer.
13298
13299         * mlib-utl.adb: Add support for calling ranlib with additional
13300         options. This is needed for instance under Mac OS X.
13301         (Ranlib_Options): New global variable, used to store the potential
13302         options to pass to ranlib.
13303         (Ar): Use Ranlib_Options when spawning ranlib.
13304         (Initialize): Set the value of ranlib option.
13305
13306 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13307
13308         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
13309         instead of 8K, to reflect the real potential needs for stack-checking
13310         in the ZCX case.
13311
13312 2004-10-26  Pascal Obry  <obry@gnat.com>
13313
13314         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
13315
13316         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
13317         Windows only the initial thread stack size can be set so it is good to
13318         start we a low stack size.
13319         The OS will adjust the size as needed.
13320
13321 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13322             Nicolas Setton  <setton@act-europe.fr>
13323
13324         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
13325         "__unix__" instead of "unix".
13326         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
13327         sections were just mistakenly ignored. The former is
13328         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
13329         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
13330         of hpux. This prevents an unwanted definition of the symbol
13331         convert_addresses in adaint.o.
13332
13333 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13334
13335         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
13336         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
13337
13338 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13339
13340         * a-filico.ads, a-filico.adb: fix incorrect header.
13341
13342 2004-10-26  Javier Miranda  <miranda@gnat.com>
13343
13344         * a-ststio.ads: Fix typo in identifier
13345
13346 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13347
13348         * sem_ch4.adb: Minor reformatting.
13349
13350 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13351
13352         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
13353         enabled, check the result of unary and binary operations when the
13354         expression is the right-hand side of an assignment.
13355
13356 2004-10-26  Vincent Celier  <celier@gnat.com>
13357
13358         * clean.adb (Delete): Do not output warnings when in quiet output and
13359         not in verbose mode.
13360         (Force_Deletions): New Boolean flag, defaulted to False
13361         (Delete): Only delete a file if it is writable, and when
13362         Force_Deletions is True.
13363         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
13364         (Usage): Line for new switch -f
13365         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
13366         own.
13367
13368 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13369
13370         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
13371         JM type only if its size matches that of the wrapper.  When a size is
13372         prescribed and the field is not aliased, remove the wrapper of a JM
13373         type only if the size is not greater than that of the packed array.
13374         (gnat_to_gnu_entity): Change the extension of packed array wrappers
13375         from LJM to JM.
13376
13377 2004-10-26  Geert Bosch  <bosch@gnat.com>
13378
13379         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
13380         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
13381         (Pred): Implement in terms of Succ.
13382
13383 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13384
13385         * exp_aggr.adb (Safe_Component): An aggregate component that is an
13386         unchecked conversion is safe for in-place use if the expression of the
13387         conversion is safe.
13388         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
13389         be expandable in place even if the aggregate does not come from source.
13390         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
13391         designated object of an allocator in place, rather than building it
13392         first on the stack. The previous scheme forces a full copy of the array,
13393         and may be altogether unsusable if the size of the array is too large
13394         for stack allocation.
13395
13396 2004-10-26  Robert Dewar  <dewar@gnat.com>
13397
13398         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
13399         compares if the component is atomic.
13400
13401         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
13402         array assignment if the component type is atomic.
13403
13404 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13405             Eric Botcazou  <ebotcazou@act-europe.fr>
13406
13407         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
13408         is aliased and is a by_reference type, do not pass by copy.
13409         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
13410         detect whether the call is in the right side of an assignment or
13411         the expression of an object declaration.  Recurse on component
13412         association within aggregates.
13413         Call it in the condition that determines whether the temporary is
13414         necessary for correct stack-checking.
13415
13416 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13417
13418         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
13419         RACW_Type, used in the PolyORB version.
13420         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
13421         version and the GARLIC version.
13422
13423         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
13424         Rename RCI_Info to RCI_Locator for better consistency between the
13425         GARLIC and PolyORB versions of the distributed systems annex.
13426         (DSA_Implementation_Name): This enumeration lists the possible
13427         implementations of the Partition Communication Subsystem for the
13428         Distributed Systems Annex (DSA). The three available implementations
13429         are the dummy stub implementation (No_DSA), and two versions based on
13430         two different distribution runtime libraries: GARLIC and PolyORB. Both
13431         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
13432         technology.
13433         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
13434         that organization.
13435
13436         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
13437         between the GARLIC and PolyORB versions of the distributed systems
13438         annex.
13439         Remove RE_Unbounded_Reclaim_Pool since it is unused.
13440
13441 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13442
13443         * gnat1drv.adb: Suppress calling the back end when
13444         Frontend_Layout_On_Target is true.
13445
13446 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13447
13448         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
13449         Set_Read_Only): New subprograms.
13450         These new routines allow the user to set or unset the Owner execute
13451         and Owner write permission flags on a file.
13452
13453         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
13454         GNAT.OS_Lib.Set_Executable instead of rolling our own.
13455
13456 2004-10-26  Matthew Gingell  <gingell@gnat.com>
13457
13458         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
13459
13460 2004-10-26  Pascal Obry  <obry@gnat.com>
13461
13462         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
13463         memory before the faulting page we properly test the process read
13464         access for this address using appropriate Win32 routine.
13465         (HPUX sections): guard with "__hpux__" instead of "hpux".
13466
13467 2004-10-26  Robert Dewar  <dewar@gnat.com>
13468
13469         * lib-xref.adb (Generate_Reference): Don't complain about reference to
13470         entry parameter if pragma Unreferenced set, since we do not properly
13471         handle the case of multiple parameters.
13472
13473 2004-10-26  Vincent Celier  <celier@gnat.com>
13474
13475         * prj-env.adb: (Contains_ALI_Files): New Boolean function
13476         (Ada_Objects_Path.Add): For a library project, add to the object path
13477         the library directory only if there is no object directory or if the
13478         library directory contains ALI files.
13479         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13480
13481 2004-10-26  Vincent Celier  <celier@gnat.com>
13482
13483         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
13484         extension of library projects.
13485
13486         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
13487         path defaults to ".:<prefix>/lib/gnat".
13488         (Parse): For an extending all project, allow direct import of a project
13489         that is virtually extended.
13490
13491         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
13492         the specified name is directly imported, return its ID. Otherwise, if
13493         an extension of this project is imported, return the ID of the
13494         extension.
13495
13496 2004-10-26  Robert Dewar  <dewar@gnat.com>
13497
13498         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
13499         (Sub3): New procedure, used by Scaled_Divide
13500         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
13501         correct more than one instance of failure to propagate carries
13502         correctly.
13503         (Double_Divide): Handle overflow case of largest negative number
13504         divided by minus one.
13505
13506         * s-arit64.ads (Double_Divide): Document that overflow can occur in
13507         the case of a quotient value out of range.
13508         Fix comments.
13509
13510 2004-10-26  Robert Dewar  <dewar@gnat.com>
13511
13512         * s-bitops.adb (Bit_Eq): Remove redundant check.
13513
13514         * s-bitops.ads: Minor comment updates
13515         Change some occurrences of Address to System.Address
13516
13517         * s-carsi8.ads: Fix minor cut-and-paste error in comments
13518
13519 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13520
13521         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
13522         accessibility check to prefix that is a protected operation.
13523
13524 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13525
13526         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
13527         empty, post message on stub.
13528
13529 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13530             Javier Miranda  <miranda@gnat.com>
13531
13532         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
13533         current instance appears within a unit that is directly in the context
13534         of the main unit.
13535         Used to determine whether the body of the instance should be analyzed
13536         immediately after its spec, to make its subprogram bodies available
13537         for front-end inlining.
13538         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
13539         constraint is not allowed on the component type (AARM 12.5.3(3))
13540
13541 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13542
13543         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
13544         'Storage_Pool): enhance, document & limit detection of non-sharable
13545         internal pools.
13546
13547         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
13548
13549         * s-pooglo.ads: Add more documentation now that this pool is properly
13550         documented.
13551
13552 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13553
13554         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
13555         or protected type with discriminants, do not constrain the
13556         corresponding record type if the subtype declaration has no
13557         discriminant constraints. This can be the case in source code, or in
13558         the subtype declaration created to rename an actual type within an
13559         instantiation.
13560
13561 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13562
13563         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
13564         different kind of stub (possibly wrong name for file), do not check
13565         for conformance.
13566         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
13567         includes call to some function that returns an unconstrained type, do
13568         not inline.
13569
13570 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13571
13572         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
13573         appear in the code for the main unit. Dependencies among units in the
13574         context of the main unit are established when those other units are
13575         compiled. Otherwise spurious elaboration constraints can generate
13576         incorrect elaboration circularities.
13577
13578 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13579             Ed Schonberg   <schonberg@gnat.com>
13580
13581         * sem_util.adb (Is_Aliased_View): Defend against the case where this
13582         subprogram is called with a parameter that is not an object name. This
13583         situation arises for some cases of illegal code, which is diagnosed
13584         later, and in this case it is wrong to call Is_Aliased, as that might
13585         cause a compiler crash.
13586         (Explain_Limited_Type): Refine previous fix to include
13587         inherited components of derived types, to provide complete information.
13588
13589         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
13590         is the prival for a protected object.
13591         It is necessary to mark this entity as a variable, in addition to
13592         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
13593         modified to avoid checking the Aliased flag on entities that are not
13594         objects. (Checking that flag for non-objects is erroneous and could
13595         lead to a compiler crash).
13596
13597 2004-10-26  Robert Dewar  <dewar@gnat.com>
13598
13599         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
13600         X_Frac = 0.5, then we know that the number X must be positive.
13601         (Succ): Remove the same redundant test, and also fix the primary test
13602         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
13603         Minor reformatting
13604         (Decompose): Add fuller comments to spec
13605
13606 2004-10-26  Pascal Obry  <obry@gnat.com>
13607
13608         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
13609         validity (process must have read access). Set to 0 in all other cases.
13610         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
13611         violation on Win32.
13612         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
13613         segmentation violation.
13614
13615 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13616
13617         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
13618         whose type is a constructed subtype of an aliased object with an
13619         unconstrained nominal subtype, convert the actual to the constructed
13620         subtype before taking its address.
13621
13622 2004-10-26  Vincent Celier  <celier@gnat.com>
13623
13624         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
13625         (Is_Path_Name_Case_Sensitive): New function
13626
13627         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
13628         (Base_Name, Simple_Name, Current_Directory, Compose,
13629         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
13630         the result.
13631
13632 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
13633             Vasiliy Fofanov  <fofanov@act-europe.fr>
13634             Vincent Celier   <celier@gnat.com>
13635
13636         * gnat_ugn.texi: Generalize "finding memory problems" section into a
13637         "memory management issues" section and document some of the useful
13638         memory pools provided as part of the GNAT library.
13639         Remove "virtual" from declaration of A::method2 in
13640         the simple example of Ada/C++ mixed system.
13641         Library Projects may be virtually extended: their virtual extensions
13642         are not Library Projects.
13643         Added section on extending project hierarchies.
13644
13645 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13646
13647         * adaint.c (__gnat_get_libraries_from_registry): Cast value
13648         to LPBYTE.
13649         (__gnat_portable_spawn): Remove const.
13650
13651         * mingw32.h (MAXPATHLEN): Check for previous definition.
13652
13653 2004-10-17  Matthias Klose  <doko@debian.org>
13654
13655         * gnatvsn.ads: Set gnat library version to 4.0.
13656
13657 2004-10-05  Vincent Celier  <celier@gnat.com>
13658
13659         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
13660
13661 2004-10-04  Laurent GUERBY <laurent@guerby.net>
13662
13663         PR ada/15156
13664         * Makefile.in: Define and use RANLIB_FLAGS.
13665
13666 2004-10-04  Pascal Obry  <obry@gnat.com>
13667
13668         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
13669         other x86 platforms).
13670
13671 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13672
13673         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
13674         in general and triggers stack alignment adjustment for thread entry
13675         points on targets where this is necessary.
13676
13677 2004-10-04  Bernard Banner  <banner@gnat.com>
13678
13679         PR ada/13897
13680
13681         * Makefile.in: Add section for powerpc linux
13682         Add variant i-vxwork-x86.ads
13683
13684         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
13685
13686 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13687
13688         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
13689         table registration calls when need be. Ensures no reference to the crt
13690         ctors symbol are issued in the SJLJ case, which avoids possible
13691         undefined symbol errors in the case of modules to be statically linked
13692         with the kernel.
13693
13694 2004-10-04  Javier Miranda  <miranda@gnat.com>
13695
13696         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
13697         in-line the code corresponding to subprogram Analyze_Actuals. In
13698         addition, analyze the actuals only in case of subprogram call.
13699
13700 2004-10-04  Ed Falis  <falis@gnat.com>
13701
13702         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
13703
13704 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
13705
13706         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
13707         in the documentation.
13708
13709 2004-10-04  Robert Dewar  <dewar@gnat.com>
13710
13711         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
13712         IF and CASE.
13713         (Analyze_Block_Statement): Add circuitry to detect following dead code
13714         (Check_Unreachable_Code): Handle case of block exit
13715
13716 2004-10-04  Robert Dewar  <dewar@gnat.com>
13717
13718         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
13719         (XMatchD): Avoid warning for Logic_Error call
13720
13721 2004-10-04  Robert Dewar  <dewar@gnat.com>
13722
13723         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
13724         consider expressions buried within a procedure actual to be an actual.
13725         This caused some blowups with uses of packed slices within a procedure
13726         actual.
13727
13728 2004-10-04  Robert Dewar  <dewar@gnat.com>
13729
13730         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
13731         longer need to be initialized to zero.
13732         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
13733         initialized to zero.
13734
13735         * checks.adb (Expr_Known_Valid): Packed arrays are now always
13736         considered valid, even if the representation is modular. That's correct
13737         now that we no longer initialize packed modular arrays to zero.
13738
13739         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
13740         suffixes. These are now documented as the only cases in which the
13741         debugger ignores outer records.
13742         Previously, the spec allowed arbitrary suffixes for this purpose.
13743         Change name of LJM to JM for packed array pad records
13744         Create separate section on packed array handling, and add a whole new
13745         set of comments to this section describing the situation with packed
13746         modular types and justification requirements depending on endianness.
13747
13748 2004-10-04  Robert Dewar  <dewar@gnat.com>
13749
13750         * a-except.adb: Add a comment for last change
13751
13752         * einfo.ads: Minor spelling correction in comment
13753
13754         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
13755
13756         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
13757         messages.
13758
13759         * sem_util.ads: Minor comment update
13760
13761 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13762
13763         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
13764         Inline_Always when in Configurable_Run_Time mode.
13765
13766         * sem_prag.adb (Process_Convention): If entity is an inherited
13767         subprogram, apply convention to parent subprogram if in same scope.
13768         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
13769         when in Configurable_Run_Time mode.
13770
13771 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13772
13773         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
13774         class_wide type after component list has been inherited.
13775
13776 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13777
13778         * sem_ch12.adb (Check_Generic_Actuals): New predicate
13779         Denotes_Previous_Actual, to handle properly the case of a private
13780         actual that is also the component type of a subsequent array actual.
13781         The visibility status of the first actual is not affected when the
13782         second is installed.
13783         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
13784         make fully recursive the treatment of formals of packages declared
13785         with a box.
13786         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
13787         the above on exit from an instantiation.
13788         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
13789         current instantiation which is now complete.
13790         (Analyze_Package_Instantiation): No instantiated body is needed if the
13791         main unit is generic. Efficient, and avoid anomalies when a instance
13792         appears in a package accessed through rtsfind.
13793
13794 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13795
13796         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
13797         do not generate a declaration for a temporary if the call is part of a
13798         library-level instantiation.
13799
13800 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13801
13802         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
13803         searching for a limited component to flag.
13804
13805         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
13806         expansion of Input, to account for the fact that the implicit call
13807         generated by the attribute reference must freeze the user-defined
13808         stream subprogram. This is only relevant to 'Input, because it can
13809         appear in an object declaration, prior to the body of the subprogram.
13810
13811         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
13812         expansion can proceed and further errors uncovered.
13813         (Minor clean up): Fix cases of using | instead of \ for continuation
13814         messages.
13815
13816 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13817
13818         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
13819
13820         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
13821         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
13822         Use gcc_assert and gcc_unreachable.
13823
13824         * decl.c (gnat_to_gnu_entity, case object): Check and process a
13825         specified alignment before validating size.
13826         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
13827         stripped-down declaration for the type of the inner field when making
13828         a JM type.
13829
13830         * utils.c (finish_record_type): Do not compute the size in units
13831         incrementally. Instead compute it once for the rep clause case.
13832         Use gcc_assert and gcc_unreachable.
13833
13834 2004-10-04  Vincent Celier  <celier@gnat.com>
13835
13836         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
13837         in file name.
13838         (Is_Valid_Path_Name): Take '/' as a directory separator.
13839
13840 2004-10-04  Vincent Celier  <celier@gnat.com>
13841
13842         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
13843         (Extended_Project) only if Extended_Project is defined, to avoid
13844         assertion error.
13845         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
13846         resolved path.
13847         (Parse_Single_Project): Ditto.
13848
13849         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
13850         Add_To_Project_Path for virtual projects.
13851
13852 2004-10-04  Vincent Celier  <celier@gnat.com>
13853
13854         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13855         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13856         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
13857         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
13858         parameter Options_2.
13859
13860         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
13861         Build_Dynamic_Library with an empty Options_2.
13862
13863         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
13864         default anymore.
13865
13866         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
13867         directory separator, if any.
13868         (Gprmake): Do not allow mains on the command line for library projects.
13869         Do not attempt to link when the project is a library project.
13870         (Library_Opts): New table to store Library_Options.
13871         (Build_Library): If Library_Options is specified, pass these options
13872         when building a shared library.
13873
13874 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13875
13876         * s-tposen.adb (Service_Entry): The object must be always unlocked at
13877         the end of this procedure now that the unlock operation was inserted
13878         by the expander.
13879
13880 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13881
13882         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
13883         corresponding to the Preallocated_Stacks flags in System.
13884         (Get_Target_Parameters): Including the processing for
13885         Preallocated_Stacks.
13886
13887         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
13888         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
13889         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
13890         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
13891         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
13892         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
13893         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
13894         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
13895         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
13896         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
13897         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
13898         used to signal whether the compiler creates the required stacks and
13899         descriptors for the different tasks (when True) or it is done by the
13900         underlying operating system at run time (when False).
13901         It is initially set to False in all targets.
13902
13903         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
13904         if it is supported by the target.
13905         (Make_Task_Create_Call): Pass the stack address if it has been
13906         previously created. Otherwise pass a Null_Address.
13907
13908         * snames.adb: Add _stack.
13909
13910         * snames.ads: Add Name_uStack. Required to allow the expander to
13911         statically allocated task stacks.
13912
13913         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
13914         Stack_Address argument.
13915         Check that its value is equal to Null_Address because this target does
13916         not support the static stack allocation.
13917
13918 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13919
13920         * usage.adb: Change "pragma inline" to "pragma Inline" in information
13921         and error messages
13922
13923 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13924
13925         * exp_dist.adb: Split declaration of asynchronous flag out of
13926         Add_RACW_Read_Attribute.
13927         Minor reformatting for better alignment with PolyORB version.
13928         Store the entity for the asynchronous flag of an RACW, rather than the
13929         expression, in the asynchronous flags table. This will allow this flag
13930         to be used in other subprograms beside Add_RACW_Read_Attribute.
13931
13932 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13933
13934         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
13935         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
13936         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
13937         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
13938         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
13939         sockets constant MSG_NOSIGNAL (Linux-specific).
13940         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
13941         all Send operations.
13942         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
13943         from trigerring SIGPIPE.
13944         Rename components to avoid clash with Ada 2005 possible reserved
13945         word 'interface'.
13946         (Check_Selector): When the select system call returns with an error
13947         condition, propagate Socket_Error to the caller.
13948
13949 2004-10-01  Jan Hubicka  <jh@suse.cz>
13950
13951         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
13952
13953 2004-09-23  Robert Dewar  <dewar@gnat.com>
13954
13955         PR ada/17540
13956
13957         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
13958         instead do this at freeze time (we won't do it if there is an address
13959         clause).
13960         Change "pragma inline" to "pragma Inline" in information and error
13961         messages.
13962         Minor reformatting.
13963
13964         * freeze.adb (Check_Address_Clause): Remove previous change, not the
13965         right way of doing things after all.
13966         (Freeze_Entity): For object, set Is_Public for imported entities
13967         unless there is an address clause present.
13968
13969 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
13970
13971         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
13972         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
13973         ensures proper handling of types with rep clauses, which might have
13974         their TYPE_SIZE set already.
13975
13976 2004-09-21  Robert Dewar  <dewar@gnat.com>
13977
13978         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
13979         packed array types in both little- and big-endian cases. This change
13980         ensures that we no longer count on the unused bits being initialized
13981         for such types (and in particular ensures that equality testing will
13982         only read the relevant bits).
13983         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
13984         These changes mean that we no longer need to initialize small packed
13985         arrays.
13986         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
13987         optimization to an LJM field as to its parent field.
13988
13989         * ada-tree.h, trans.c, utils.c, utils2.c:
13990         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
13991
13992 2004-09-20  Jan Hubicka  <jh@suse.cz>
13993
13994         * utils.c (gnat_finalize): Remove.
13995         (end_subprog_body): Directly call cgraph_finalize_function;
13996         do not lower the nested functions.
13997
13998 2004-09-20  Robert Dewar  <dewar@gnat.com>
13999
14000         PR ada/17540
14001
14002         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
14003         if an address clause is present, since that means that the Import
14004         should be ignored.
14005
14006 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
14007
14008         * 5tsystem.ads: Removed, no longer used.
14009
14010 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
14011             Zack Weinberg  <zack@codesourcery.com>
14012
14013         * ada-tree.def: Use tree_code_class enumeration constants
14014         instead of code letters.
14015         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
14016         Update for new tree-class enumeration constants.
14017
14018 2004-09-17  Vincent Celier  <celier@gnat.com>
14019
14020         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
14021         capabilities of the general project manager.
14022
14023 2004-09-09  Vincent Celier  <celier@gnat.com>
14024
14025         * a-direct.ads: Add pragma Ada_05
14026         (Directory_Entry_Type): Give default value to component Kind to avoid
14027         not initialized warnings.
14028
14029         * a-direct.adb (Current_Directory): Remove directory separator at the
14030         end.
14031         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
14032         an existing directory.
14033         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
14034         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
14035         Convert the result to File_Size.
14036
14037         * prj.ads: (Project_Error): New exception
14038
14039         * prj-attr.adb: Except in procedure Initialize, Fail comes from
14040         Prj.Com, not from Osint.
14041         (Attrs, Package_Attributes): Tables moved to private part of spec
14042         (Add_Attribute, Add_Unknown_Package): Moved to new child package
14043         Prj.Attr.PM.
14044         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
14045         Prj.Project_Error after call to Fail.
14046         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
14047         Fail. Check that package name is not already in use.
14048
14049         * prj-attr.ads: Comment updates to indicate that all subprograms may be
14050         used by tools, not only by the project manager, and to indicate that
14051         exception Prj.Prj_Error may be raised in case of problem.
14052         (Add_Unknown_Package, Add_Attribute): Moved to new child package
14053         Prj.Attr.PM.
14054         (Attrs, Package_Attributes): Table instantiations moved from the body to
14055         the private part to be accessible from Prj.Attr.PM body.
14056
14057         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
14058         from new package Prj.Attr.PM.
14059         (Parse_Attribute_Declaration): Call Add_Attribute from new package
14060         Prj.Attr.PM.
14061
14062         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
14063
14064         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
14065         instead of Elaboration_Checks).
14066
14067         * a-calend.adb: Minor reformatting
14068
14069 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14070
14071         * gigi.h (maybe_pad_type): New declaration.
14072         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
14073
14074         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
14075
14076         * cuintp.c: Convert to use buildN.
14077
14078         * decl.c (maybe_pad_type): No longer static.
14079         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
14080         target pointer.
14081         Convert to use buildN.
14082
14083         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
14084         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
14085         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
14086         RHS.
14087         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
14088         (gnat_gimplify_expr, case ADDR_EXPR): New case.
14089         Convert to use buildN.
14090
14091         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
14092         TREE_READONLY for const.
14093         Convert to use buildN.
14094
14095         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
14096         (create_var_decl): Refine when TREE_STATIC is set.
14097         Convert to use buildN.
14098
14099 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
14100
14101         * gnat_ugn.texi: Delete text relating to checking of ali and object
14102         consistency.
14103
14104         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
14105         routines.
14106
14107 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
14108
14109         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
14110         pragmas recognized by GNAT.
14111
14112         * gnat_rm.texi: Document pragma Detect_Blocking.
14113
14114         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
14115         raise Program_Error if called from a protected operation.
14116
14117         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
14118         the protected action nesting level.
14119         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
14120         protected action nesting level.
14121         (Unlock): When pragma Detect_Blocking is active decrease the protected
14122         action nesting level.
14123
14124         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
14125         Protected_Action_Nesting.
14126
14127         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
14128         Common_ATCB record. It contains the dynamic level of protected action
14129         nesting for each task. It is needed for checking whether potentially
14130         blocking operations are called from protected operations.
14131         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
14132         Detect_Blocking is active or not in the partition.
14133
14134         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
14135         raise Program_Error if called from a protected operation.
14136         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
14137         Program_Error if called from a protected operation.
14138         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
14139         Program_Error if called from a protected operation.
14140
14141         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
14142         raise Program_Error if called from a protected operation.
14143
14144         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
14145         raise Program_Error if called from a protected operation, and increase
14146         the protected action nesting level.
14147         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
14148         Program_Error if called from a protected operation, and increase the
14149         protected action nesting level.
14150         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
14151         protected action nesting level.
14152
14153         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
14154         raise Program_Error if called from a protected operation, and increase
14155         the protected action nesting level.
14156         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
14157         Program_Error if called from a protected operation, and increase the
14158         protected action nesting level.
14159         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
14160         raise Program_Error if called from a protected operation.
14161         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
14162         active, raise Program_Error if called from a protected operation.
14163         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
14164         protected action nesting level.
14165
14166         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
14167         insertion of the statement raising Program_Error. The run time
14168         contains the required machinery for handling that.
14169
14170         * sem_util.ads: Change comment associated to procedure
14171         Check_Potentially_Blocking_Operation.
14172         This procedure does not insert a call for raising the exception because
14173         that is currently done by the run time.
14174
14175         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
14176
14177         * init.c: Add the global variable __gl_detect_blocking that indicates
14178         whether pragma Detect_Blocking is active (1) or not (0). Needed for
14179         making the pragma available at run time.
14180         (__gnat_set_globals): Pass and update the detect_blocking parameter.
14181
14182         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
14183         pragma Detect_Blocking is active.
14184
14185         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
14186
14187         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
14188         DB is found in the ali file. Any unit compiled with pragma
14189         Detect_Blocking active forces its effect in the whole partition.
14190
14191         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
14192         Detect_Blocking is active and delay is called from a protected
14193         operation.
14194
14195         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
14196         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
14197         Detect_Blocking is active (0 otherwise).
14198         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
14199         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
14200         otherwise).
14201
14202 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
14203
14204         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
14205         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
14206         package.
14207
14208         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
14209         (Register_Receiving_Stub): Add Subp_Info formal parameter.
14210         Update API in placeholder implemetation of s-parint to reflect changes
14211         in distribution runtime library.
14212
14213         * sem_ch3.adb (Expand_Derived_Record): Rename to
14214         Expand_Record_Extension.
14215
14216         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
14217         primitive operations of potentially distributed object types that have
14218         non-controlling anonymous access formals.
14219
14220         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
14221         subprogram.
14222         New implementation of expansion for remote access-to-subprogram types,
14223         based on the RACW infrastructure.
14224         This version of sem_dist is compatible with PolyORB/DSA as well as
14225         GLADE.
14226
14227         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
14228         Asynchrronous that applies to a remote access-to-subprogram type, mark
14229         the underlying RACW type as asynchronous.
14230
14231         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
14232          __gnat_using_gnu_linker to 1.
14233
14234         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
14235         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
14236         GNAT.Perfect_Hash_Generators, and remove the empty
14237         GNAT.Perfect_Hash package.
14238
14239         * atree.adb: Minor reformatting
14240
14241         * exp_ch3.adb (Expand_Derived_Record): Rename to
14242         Expand_Record_Extension.
14243         (Build_Record_Init_Proc.Build_Assignment): The default expression in
14244         a component declaration must remain attached at that point in the
14245         tree so New_Copy_Tree copies it if the enclosing record type is derived.
14246         It is therefore necessary to take a copy of the expression when building
14247         the corresponding assignment statement in the init proc.
14248         As a side effect, in the case of a derived record type, we now see the
14249         original expression, without any rewriting that could have occurred
14250         during expansion of the ancestor type's init proc, and we do not need
14251         to go back to Original_Node.
14252
14253         * exp_ch3.ads (Expand_Derived_Record): Rename to
14254         Expand_Record_Extension.
14255
14256         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
14257         Returns the RACW type used to implement a remote access-to-subprogram
14258         type.
14259         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
14260         New subprograms. Used to create a proxy tagged object for a remote
14261         subprogram. The proxy object is used as the designated object
14262         for RAS values on the same partition (unless All_Calls_Remote applies).
14263         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
14264         System.Partition_Interface.Get_Unique_Remote_Pointer.
14265         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
14266         Renamed from Add_RAS_*_Attribute.
14267         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
14268         subprograms.
14269         New implementation of expansion for remote access-to-subprogram types,
14270         based on the RACW infrastructure.
14271
14272         * exp_dist.ads (Copy_Specification): Update comment to note that this
14273         function can copy the specification from either a subprogram
14274         specification or an access-to-subprogram type definition.
14275
14276 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
14277
14278         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
14279         in an instance, between an explicit subprogram an one inherited from a
14280         type derived from an actual.
14281
14282         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
14283         add a polling call if the subprogram is to be inlined by the back-end,
14284         to avoid repeated calls with multiple inlinings.
14285
14286         * checks.adb (Apply_Alignment_Check): If the expression in the address
14287         clause is a call whose name is not a static entity (e.g. a dispatching
14288         call), treat as dynamic.
14289
14290 2004-09-09  Robert Dewar  <dewar@gnat.com>
14291
14292         * g-trasym.ads: Minor reformatting
14293
14294         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
14295         packed arrays, since unused bits are expected to be zero for a
14296         comparison.
14297
14298 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
14299
14300         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
14301         comment.
14302
14303 2004-09-09  Pascal Obry  <obry@gnat.com>
14304
14305         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
14306         enable map file generation. Add the right option to generate the map
14307         file if Map_File is set to True.
14308
14309         * gnatdll.adb (Gen_Map_File): New variable.
14310         (Syntax): Add info about new -m (Map_File) option.
14311         (Parse_Command_Line): Add support for -m option.
14312         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
14313         Minor reformatting.
14314
14315 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
14316
14317         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
14318         new gnatdist implementation.
14319         Define a subpackage isolating the output routines specific to this
14320         verbose mode.
14321
14322 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
14323
14324         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
14325
14326         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
14327
14328 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
14329
14330         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
14331         internal unit.
14332
14333         * opt.ads: Add Ada_Version_Runtime constant used to decide which
14334         version of the language is used to compile the run time.
14335
14336 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
14337
14338         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
14339         of variable length temporaries for function return now that the
14340         back-end and gigi support it.
14341
14342 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14343
14344         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
14345
14346         * trans.c (struct stmt_group): Delete field GLOBAL.
14347         (gnat_init_stmt_group): Do not initialize it.
14348         (call_to_gnu): Use save_expr, not protect_multiple_eval.
14349         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
14350         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
14351         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
14352         (start_stmt_group): Likewise.
14353         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
14354
14355         * utils2.c (ggc.h): Include.
14356         (build_call_raise): Call build_int_cst, not build_int_2.
14357
14358         * utils.c (gnat_init_decl_processing): Fix arg to
14359         build_common_tree_nodes.
14360         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
14361         (gnat_define_builtin): Set built_in_decls.
14362         (init_gigi_decls): Call build_int_cst, not build_int_2.
14363
14364         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
14365         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
14366         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
14367         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
14368         SET_TYPE_MODULE): Use them.
14369         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
14370         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
14371         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
14372         SET_TYPE_ADA_SIZE): Likewise.
14373         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
14374         (DECL_CONST_CORRESPONDING_VAR,
14375         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
14376         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
14377         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
14378         (TYPE_RM_SIZE_NUM): New macro.
14379         (TYPE_RM_SIZE): Modified to use above.
14380
14381         * cuintp.c: (build_cst_from_int): New function.
14382         (UI_To_gnu): Use it.
14383
14384         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
14385         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
14386         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
14387         MIN_EXPR for the size, copy it into new.
14388
14389 2004-09-01  Robert Dewar  <dewar@gnat.com>
14390
14391         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
14392         packed indexed component where array is an IN OUT formal. This
14393         generated garbage code previously.
14394
14395         * gnat_ugn.texi: Document -fverbose-asm
14396
14397         * gnat-style.texi: Minor updates (note that boolean constants and
14398         variables are joined with AND/OR rather than short circuit forms).
14399
14400 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
14401
14402         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
14403         it is an upward conversion of an untagged type with no representation
14404         change.
14405
14406 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
14407
14408         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
14409         System.Partition_Interface.
14410
14411         * checks.adb (Apply_Access_Checks): Do not generate checks when
14412         expander is not active (but check for unset reference to prefix of
14413         dereference).
14414
14415         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
14416         pragma Debug as an if statement with a constant condition, for
14417         consistent treatment of entity references contained within the
14418         enclosed procedure call.
14419
14420 2004-09-01  Vincent Celier  <celier@gnat.com>
14421
14422         * bindgen.adb: (Set_EA_Last): New procedure
14423         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
14424         Set_EA_Last.
14425         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
14426         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
14427         linked without errors.
14428         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
14429         ST and EA.
14430         (Gen_Exception_Table_C): Correct same bugs
14431
14432         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
14433
14434         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
14435         on Windows, make sure that the drive letter is in upper case.
14436
14437         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
14438         Windows, when the drive letter is added and Case_Sensitive is True, the
14439         drive letter is forced to upper case.
14440
14441         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
14442         to Options_2 for the call to MLib.Utl.Gcc.
14443
14444         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
14445         directory separator when defining BASE_DIR.
14446
14447 2004-09-01  Pascal Obry  <obry@gnat.com>
14448
14449         * gprcmd.adb (Extend): Do not output trailing directory separator. This
14450         is not needed and it confuses Windows GNU/make which does not report
14451         directory terminated by a slash as a directory.
14452         (gprcmd): Idem for "pwd" internal command.
14453
14454         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
14455         target names rewrite to fix regressions with recent version of
14456         GNU/make. Starting with GNU/make 3.80 the pipe character was not
14457         handled properly anymore.
14458
14459 2004-09-01  Andreas Schwab  <schwab@suse.de>
14460
14461         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
14462         * raise.c [!IN_RTS]: Undef abort.
14463
14464 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14465
14466         * utils2.c (build_allocator): Use ssize_int.
14467
14468         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
14469
14470 2004-08-27  Andreas Schwab  <schwab@suse.de>
14471
14472         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
14473
14474 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14475             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14476
14477         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
14478
14479 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14480
14481         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
14482         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14483         * utils.c (init_gigi_decls): Likewise.
14484         * utils2.c (build_call_raise, build_allocator): Likewise.
14485
14486 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14487
14488         * utils.c (gnat_init_decl_processing): Adjust
14489         build_common_tree_nodes call.
14490
14491 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
14492
14493         * utils2.c (build_allocator): Use build_int_cst for negative
14494         size types.
14495
14496 2004-08-18  Richard Henderson  <rth@redhat.com>
14497
14498         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
14499
14500 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
14501
14502         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
14503         call.s
14504         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
14505         (gnat_to_gnu): Likewise.
14506
14507 2004-08-16  Pascal Obry  <obry@gnat.com>
14508
14509         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
14510         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
14511         option and not mdll anymore. Update comment.
14512
14513 2004-08-16  Pascal Obry  <obry@gnat.com>
14514
14515         * bld.adb (Put_Include_Project): Properly handle directory separators
14516         on Windows.
14517
14518 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
14519
14520         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
14521         decreasing the number of allocated junk nodes while searching for the
14522         appropriate subprogram.
14523
14524 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
14525
14526         * cuintp.c (UI_To_gnu): Use build_int_cst..
14527         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14528         * utils.c (init_gigi_decls): Likewise.
14529         * utils2.c (build_call_raise): Likewise.
14530
14531 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
14532
14533         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
14534         for a global aliased object with a variable size and an unconstrained
14535         nominal subtype, pretend there is no initializer if the one we have is
14536         incomplete, and avoid referencing an inexistant component in there. The
14537         part we have will be rebuilt anyway and the reference may confuse
14538         further operations.
14539
14540 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
14541
14542         * einfo.ads: Minor reformatting
14543
14544         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
14545         restrictions in the ALI if we only want to warn about violations.
14546
14547 2004-08-13  Vincent Celier  <celier@gnat.com>
14548
14549         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
14550         when creating a new Unit_Record in table Units.
14551
14552         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
14553         that are violated, if any.
14554
14555         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
14556         add directory separator if path already ends with a directory separator.
14557
14558 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14559
14560         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
14561         unit, this is an attempt to inline a construct that is not available in
14562         the current restricted mode, so abort rather than trying to continue.
14563
14564         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
14565         discriminants that rename those of the parent, recover names of
14566         original discriminants for the constraint on the full view of the
14567         parent.
14568         (Complete_Private_Subtype): Do not create a subtype declaration if the
14569         subtype is an itype.
14570
14571         * gnat_rm.texi: Added section on implementation of discriminated
14572         records with default values for discriminants.
14573
14574 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14575
14576         PR ada/15601
14577         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
14578         the second operand is overloaded.
14579
14580 2004-08-10  Richard Henderson  <rth@redhat.com>
14581
14582         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
14583         add __builtin_alloca.
14584
14585 2004-08-10  Richard Henderson  <rth@redhat.com>
14586
14587         * config-lang.in (boot_language): Yes.
14588
14589 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
14590
14591         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
14592         from complaining on potential uninitialized reference.
14593         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
14594         new specification and test explicitly for non-zero return value.
14595
14596         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
14597         returning C.int, to avoid using a derived boolean type.
14598
14599         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
14600         Duplicate_Subexpr_No_Checks in preference to direct use of
14601         Remove_Side_Effects and New_Copy_Tree.
14602         Clear Comes_From_Source on prefix of 'Size attribute reference.
14603
14604         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
14605         g-socthi-vxworks.adb: Change calls to
14606         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
14607         and test explicitly for non-zero return value.
14608
14609         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
14610         (Is_Socket_In_Set): Declare imported function as returning C.int, to
14611         avoid using a derived boolean type.
14612
14613 2004-08-09  Albert Lee  <lee@gnat.com>
14614
14615         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
14616
14617 2004-08-09  Pascal Obry  <obry@gnat.com>
14618
14619         * gnat_ugn.texi: Document new way to build DLLs on Windows using
14620         GCC's -shared option.
14621
14622         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
14623         Options_2 parameter (options put after object files).
14624
14625 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
14626
14627         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
14628         ignore overflows on low and high bounds of an index to also account for
14629         differences in signedness between sizetype and gnu_index_subtype.
14630         These are as legitimate as the ones caused by a lower TYPE_PRECISION
14631         on sizetype.
14632
14633 2004-08-09  Robert Dewar  <dewar@gnat.com>
14634
14635         * s-solita.ads, s-solita.adb: Minor reformatting
14636
14637         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
14638         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
14639         obsolescent section
14640         Add note that No_Implicit_Conditionals does not suppress
14641         run time constraint checks.
14642
14643         * vms_conv.ads: Minor reformatting
14644
14645         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
14646         and necessary for following change).
14647         (Mark): Return new format Mark_Id containing sec stack address
14648         (Release): Use sec stack address from Mark_Id avoiding Self call
14649
14650         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
14651         pointer (cleanup and necessary for following change).
14652         Define Mark_Id as record containing address of secondary stack, that way
14653         Release does not need to find the stack again, decreasing the number of
14654         calls to Self and improving efficiency.
14655
14656         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
14657
14658         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
14659         case variable into the individual case branches when possible.
14660
14661         * sem_ch11.adb: Minor reformatting
14662
14663         * prj.ads: Correct spelling of suffixs
14664
14665         * prj-nmsc.adb: Minor reformatting
14666         Correct spelling suffixs throughout (also in identifiers)
14667
14668         * freeze.adb: Minor spelling correction
14669
14670         * exp_ch2.adb: Cleanups to handling of Current_Value
14671         (no functional effect).
14672
14673         * bld.adb: Correct spelling of suffixs
14674
14675         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
14676
14677 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14678
14679         PR ada/15408
14680
14681         * sem_ch7.adb (Install_Private_Declarations): In the body of the
14682         package or of a child, private entities are both immediately_visible
14683         and not hidden.
14684
14685 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14686
14687         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
14688         there are no range checks on the value of the literal.
14689
14690         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
14691         wrapped is the triggering alternative of an asynchronous select, action
14692         statements mustbe inserted before the select itself.
14693
14694         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
14695         case where the prefix is a protected function call.
14696         (Resolve_Attribute, case 'Access): The attribute reference on a
14697         subprogram is legal in a generic body if the subprogram is declared
14698         elsewhere.
14699
14700 2004-08-09  Vincent Celier  <celier@gnat.com>
14701
14702         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
14703         languages, otherwise building the library may fail with unresolved
14704         symbols.
14705         (Compile_Sources): Do not build libraries if -c switch is used
14706
14707         * gnatlink.adb (Process_Args): New switches -M and -Mmap
14708         (Write_Usage): If map file creation is supported, output new switches
14709         -M and -Mmap.
14710         (Gnatlink): When -M is specified, add the necessary switch(es) to the
14711         gcc call, when supported.
14712
14713         * Makefile.in: Added indepsw.o to the object list for gnatlink
14714         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
14715
14716         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
14717         indepsw.adb, indepsw.ads: New files.
14718
14719 2004-08-09  Bernard Banner  <banner@gnat.com>
14720
14721         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
14722
14723         * Makefile.in: add section for vxworks x86
14724
14725 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
14726
14727         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
14728         per-object constrained components where the discriminant is of an
14729         Access type.
14730         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
14731         the parent initialization procedure for derived Unchecked_Unions.
14732         Instead, derived Unchecked_Unions build their own initialization
14733         procedure.
14734         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
14735         Check the body of the subprogram for details.
14736         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
14737         functions for derived Unchecked_Union types by introducing a condition.
14738         Allow the creation of TSS equality functions for Unchecked_Unions.
14739         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
14740         Add formal parameter Discr to function signature. Discr is used to
14741         control the generated case statement for Unchecked_Union types.
14742         (Make_Eq_If): Rename formal parameter Node to E in function signature.
14743
14744         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
14745         Unchecked_Unions.
14746         Check the body of the subprogram for details.
14747         (Expand_Composite_Equality): Augment composite type equality to include
14748         correct handling of Unchecked_Union components.
14749         (Expand_N_In): Add condition to detect illegal membership tests when the
14750         subtype mark is a constrained Unchecked_Union and the expression lacks
14751         inferable discriminants, and build a Raise_Program_Error node.
14752         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
14753         to detect types that contain components of unconstrained Unchecked_Union
14754         subtype. Add condition to detect equality between types that have an
14755         unconstrained Unchecked_Union component, and build a Raise_Program_Error
14756         node. Add condition to detect equality between Unchecked_Union types
14757         that lack inferable discriminants, and build a Raise_Program_Error node.
14758         Otherwise build a TSS equality function call.
14759         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
14760         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
14761         with the operand lacking inferable discriminants, and build a Raise_
14762         Program_Error node.
14763         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
14764         composite equality.
14765         (Has_Inferable_Discriminants): Implement new predicate for objects and
14766         expressions of Unchecked_Union type. Check the body of subprogram for
14767         details.
14768         (Has_Unconstrained_UU_Components): Add function
14769         Component_Is_Unconstrained_UU. It is used to detect whether a single
14770         component is of an unconstrained Unchecked_Union subtype. Add function
14771         Variant_Is_Unconstrained_UU. It is used to detect whether a single
14772         component inside a variant is of an unconstrained Unchecked_Union type.
14773
14774         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
14775         inferred discriminant values. Add condition to generate a case
14776         statement with an inferred discriminant as the switch.
14777         (Make_Component_List_Assign): Introduce a Boolean flag that determines
14778         the behaviour of the subprogram in the presence of an Unchecked_Union.
14779         Add condition to trigger the usage of the inferred discriminant value
14780         as the generated case statement switch.
14781         (Make_Field_Assign): Introduce a Boolean flag that determines the
14782         behaviour of the subprogram in the presence of an Unchecked_Union. Add
14783         condition to trigger the usage of the inferred discriminant value as
14784         the right-hand side of the generated assignment.
14785
14786         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
14787         parameter generation when dealing with Unchecked_Unions.
14788
14789         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
14790         checks for Unchecked_Unions.
14791
14792         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
14793
14794         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
14795         Raise_Program_Error nodes for the execution of Read and Write
14796         attributes of Unchecked_Union types and the execution of Input and
14797         Output attributes of Unchecked_Union types that lack default
14798         discriminant values.
14799
14800         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
14801         Unchecked_Union. Add procedure Check_Component. It is used to inspect
14802         per-object constrained components of Unchecked_Unions for being
14803         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
14804         check individual components withing a variant.
14805
14806         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
14807         comparison of Unchecked_Unions.
14808         (Resolve_Equality_OP): Remove guard that prevents equality between
14809         Unchecked_Unions.
14810
14811         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
14812         of component subtypes for Unchecked_Union components.
14813         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
14814         since it is the actual subtype.
14815
14816         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
14817         pass of Unchecked_Union subtypes as generic actuals to formal types
14818         that lack known_discriminant_parts or that are derived Unchecked_Union
14819         types, and do nothing. In any other case, produce an error message.
14820
14821         * sem_ch3.adb (Analyze_Component_Declaration): Add function
14822         Contains_POC. It determines whether a constraint uses the discriminant
14823         of an enclosing record type.
14824         Add condition to detect per-object constrained component and set the
14825         appropriate flag.
14826         (Derived_Type_Declaration): Remove guard that prevents derivation from
14827         Unchecked_Union types.
14828         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
14829         Union subtypes.
14830
14831         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
14832         references to Unchecked_Union discriminants.
14833
14834         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
14835         formal generation when dealing with Unchecked_Unions.
14836         (Set_Actual_Subtypes): Add condition to prevent generation of actual
14837         subtypes for Unchecked_Unions.
14838
14839         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
14840         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
14841         completions of discriminated partial views by Unchecked_Unions and
14842         produce an error message.
14843
14844 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14845
14846         * trans.c (struct stmt_group): New field, GLOBAL.
14847         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
14848         (struct elab_info): New struct.
14849         (elab_info_list, gnu_elab_proc_stack): New variables.
14850         (Compilation_Unit_to_gnu): New procedure.
14851         (gigi): Call it and also handle elaboration procs we've saved.
14852         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
14853         global field from parent.
14854         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
14855         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
14856         (start_stmt_group): Initialize global field from parent.
14857         (add_decl_expr): Set to global for current statement group.
14858         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
14859         post.
14860
14861         * utils.c (global_bindings_p): True when no current_function_decl; no
14862         longer check current_binding_level.
14863
14864 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
14865
14866         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
14867         choice.
14868
14869         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
14870
14871 2004-08-06  Andreas Schwab  <schwab@suse.de>
14872
14873         * utils.c (gnat_define_builtin): Remove second parameter of
14874         make_decl_rtl.
14875         (begin_subprog_body): Likewise.
14876
14877 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
14878
14879         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
14880         optimization, not supported by the tree-ssa back-end.
14881
14882 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
14883
14884         * s-mastop-irix.adb: Update comments.
14885
14886         * a-except.adb (Exception_Information): Raise Constraint_Error if
14887         exception Id is Null_Id.
14888         This is required behavior, which is more reliably and clearly checked
14889         at the top level interface level.
14890
14891 2004-07-26  Javier Miranda  <miranda@gnat.com>
14892
14893         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
14894         call if a component has no default_expression and the box is used.
14895
14896         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
14897         default_expression and you use box, it behaves as if you had declared a
14898         stand-alone object.
14899         (Resolve_Record_Aggregate): If a component has no default_expression and
14900         you use box, it behaves as if you had declared a stand-alone object.
14901
14902         * sem_ch10.adb (Install_Siblings): Do not make visible the private
14903         entities of private-with siblings.
14904
14905 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14906
14907         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
14908         for a component of an itype, set the parent pointer for analysis,
14909         there is no list in which to insert it.
14910
14911         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
14912         bona-fide renamings, not for inherited operations.
14913
14914         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
14915         actual for a formal that is an access parameter, create local
14916         finalization list even if the expression is not an aggregate.
14917
14918 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14919
14920         PR ada/16213
14921         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
14922         Diagnose properly illegal subprogram renamings that are library units.
14923
14924 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14925
14926         PR ada/15588
14927         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
14928         conversion rewritten as an unchecked conversion, check that original
14929         expression is a variable.
14930
14931         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
14932         unchecked_conversion, create new node rather than rewriting in place,
14933         to preserve original construct.
14934
14935 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14936
14937         * gigi.h (gnat_expand_body): Deleted.
14938
14939         * Make-lang.in: (trans.o): Depends on function.h.
14940
14941         * misc.c: (gnat_expand_body): Moved to here.
14942
14943         * trans.c (gnat_expand_body_1): Deleted.
14944         (gnat_expand_body): Moved from here.
14945         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
14946         (add_stmt): Check for marked visited with global_bindings_p.
14947         (gnat_gimplify_expr, case COMPONENT_REF): New case.
14948         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
14949
14950         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
14951         VIEW_CONVERT_EXPR if not operation type.
14952
14953         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
14954         fat pointer.
14955
14956         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
14957         changes: reformatting of negation operators, removing unneeded
14958         inequality comparison with zero, converting equality comparisons with
14959         zero to negations, changing int/0/1 to bool/false/true, replace calls
14960         to gigi_abort with abort, and various other similar changes.
14961
14962 2004-07-26  Vincent Celier  <celier@gnat.com>
14963
14964         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
14965         "setup".
14966
14967         * make.adb (Gnatmake): Fail when a library is not present and there is
14968         no object directory.
14969
14970         * mlib-prj.adb (Check_Library): No need to check if the library needs
14971         to be rebuilt if there is no object directory, hence no object files
14972         to build the library.
14973
14974         * opt.ads (Setup_Projects): New Boolean flag.
14975
14976         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
14977         Location.
14978         Create directory when Kind /= "" and in "gnat setup". Report error if
14979         directory cannot be created.
14980         (Ada_Check): Create library interface copy dir if it does not exist
14981         and we are in "gnat setup".
14982         (Find_Sources): No error if in "gnat setup" and no Ada sources were
14983         found.
14984         (Language_Independent_Check): Create object directory, exec directory
14985         and/or library directory if they do not exist and we are in
14986         "gnat setup".
14987
14988         * vms_conv.ads: (Command_Type): New command Setup.
14989
14990         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
14991
14992         * vms_data.ads: Add qualifiers/switches for new built-in command
14993         "setup".
14994
14995 2004-07-25  Richard Henderson  <rth@redhat.com>
14996
14997         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
14998         DECL_IGNORED_P on RESULT_DECL.
14999
15000 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
15001
15002         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
15003         allocation and potentially overflowing update with
15004         Tailored_Exception_Information. Use the sec-stack free procedural
15005         interface to output Exception_Information instead.
15006
15007         * a-except.adb (To_Stderr): New subprogram for character, and string
15008         version moved from a-exextr to be visible from other separate units.
15009         (Tailored_Exception_Information): Remove the procedural version,
15010         previously used by the default Last_Chance_Handler and not any more.
15011         Adjust various comments.
15012
15013         * a-exexda.adb: Generalize the exception information procedural
15014         interface, to minimize the use of secondary stack and the need for
15015         local buffers when the info is to be output to stderr:
15016         (Address_Image): Removed.
15017         (Append_Info_Character): New subprogram, checking for overflows and
15018         outputing to stderr if buffer to fill is of length 0.
15019         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
15020         (Append_Info_Address, Append_Info_Exception_Name,
15021         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
15022         Append_Info_Basic_Exception_Traceback,
15023         Append_Info_Exception_Information): New subprograms.
15024         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
15025         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
15026         Exception_Info_Maxlength, Exception_Name_Length,
15027         Exception_Message_Length): New subprograms.
15028         (Exception_Information): Use Append_Info_Exception_Information.
15029         (Tailored_Exception_Information): Use
15030         Append_Info_Basic_Exception_Information.
15031         Export services for the default Last_Chance_Handler.
15032
15033         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
15034         other separate units.
15035
15036 2004-07-20  Vincent Celier  <celier@gnat.com>
15037
15038         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
15039
15040 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15041
15042         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
15043         emit itype references for the designated types of component types that
15044         are declared outside of the full record declaration, and that may
15045         denote a partial view of that record type.
15046
15047 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15048
15049         PR ada/15607
15050         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
15051         which is the designated type in an access component declaration, to the
15052         list of incomplete dependents of the parent type, to avoid elaboration
15053         issues with out-of-scope subtypes.
15054         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
15055         full view of the parent.
15056
15057 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15058
15059         PR ada/15610
15060         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
15061         entities that are hidden, such as references to generic actuals
15062         outside an instance.
15063
15064 2004-07-20  Javier Miranda  <miranda@gnat.com>
15065
15066         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
15067         support to the new notation.
15068         (Analyze_Selected_Component): Add call to Try_Object_Operation.
15069
15070 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
15071
15072         * s-taprob.adb: Adding the elaboration code required for initializing
15073         the tasking soft links that are common to the full and the restricted
15074         run times.
15075
15076         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
15077         restricted run time has been moved to the package
15078         System.Soft_Links.Tasking.
15079
15080         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
15081         restricted run time has been moved to the package
15082         System.Soft_Links.Tasking.
15083
15084         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
15085
15086         * s-solita.ads, s-solita.adb: New files.
15087
15088 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15089
15090         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
15091         Case_Statement_to_gnu): Split off from gnat_to_gnu.
15092         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
15093         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
15094         Exception_Handler_to_gnu_zcx): Likewise.
15095
15096 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15097
15098         * gigi.h (builtin_function): Declare.
15099
15100 2004-07-15  Robert Dewar  <dewar@gnat.com>
15101
15102         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
15103         reformatting
15104
15105         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
15106         access values as an example of a warning.
15107
15108         * gnat_rm.texi: Document new attribute Has_Access_Values
15109
15110         * gnat-style.texi: Document that box comments belong on nested
15111         subprograms
15112
15113         * sem_util.ads (Has_Access_Values): Improved documentation
15114
15115         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
15116
15117         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
15118         (Process_Interface_Name): Call to this new procedure
15119         (Set_Extended_Import_Export_External_Name): Call to this new procedure
15120
15121         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
15122
15123         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
15124
15125         * einfo.ads: Minor comment typo fixed
15126
15127 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
15128
15129         * snames.adb: Add _atcb.
15130
15131         * snames.ads: Add Name_uATCB.
15132
15133         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
15134         (in the expanded code) when using the restricted run time.
15135
15136         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
15137         a in parameter in order to allow ATCBs to be preallocated (in the
15138         expanded code).
15139
15140         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
15141         order to allow ATCBs to be preallocated. In case of error, the ATCB is
15142         deallocated in System.Tasking.Stages.
15143
15144         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
15145         order to allow ATCBs to be preallocated.
15146
15147         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
15148         here. It was previously done in Initialize_ATCB.
15149
15150         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
15151
15152         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
15153         Restricted run time.
15154
15155         * exp_ch3.adb: When using the Restricted run time, pass the
15156         preallocated Ada_Task_Control_Block when creating a task.
15157
15158 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
15159
15160         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
15161         function call that is itself an actual in an enclosing call, diagnose
15162         problem here rather than assuming that resolution will catch it.
15163
15164         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
15165         the local copy of a generic unit for a formal package, and the generic
15166         is a child unit, install private part of ancestors before compiling
15167         private part of spec.
15168
15169         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
15170         use scope entities rather than tree structures, to handle properly
15171         parent units that are instances rewritten as bodies for inlining
15172         purposes.
15173
15174         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
15175         Remove_Parents): Handle properly a parent unit that is an
15176         instantiation, when the unit has been rewritten as a body for inlining
15177         purposes.
15178
15179         * par.adb (Goto_List): Global variable to collect goto statements in a
15180         given unit, for use in detecting natural loops.
15181
15182         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
15183         use in detecting natural loops.
15184
15185         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
15186         backwards goto's, and rewrite as a infinite loop, to improve locality
15187         of temporaries.
15188
15189         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
15190         subcomponent that includes an indexed reference, to prevent the
15191         generation of copies that would miscompile the desired assignment
15192         statement.
15193         (Build_Task_Image_Decls): Add a numeric suffix to
15194         generated name for string variable, to avoid spurious conflicts with
15195         the name of the type of a single protected object.
15196
15197         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
15198         loop with an explicit exit statement, to avoid generating an
15199         out-of-range value with 'Succ leading to spurious constraint_errors
15200         when compiling with -gnatVo.
15201
15202 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
15203
15204         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
15205         might not be analyzed yet, even if its Etype is already set (case of an
15206         unchecked conversion built using Unchecked_Convert_To, for example).
15207         If the prefix has already been analyzed, this will be a nop anyway.
15208
15209         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
15210         controller type, or an assignment of a record type with controlled
15211         components, copy only user data, and leave the finalization chain
15212         pointers untouched.
15213
15214 2004-07-15  Vincent Celier  <celier@gnat.com>
15215
15216         * make.adb (Collect_Arguments): Improve error message when attempting
15217         to compile a source not part of any project, when -x is not used.
15218
15219         * prj.ads: (Defined_Variable_Kind): New subtype
15220
15221         * prj-attr.adb (Register_New_Package): Two new procedures to register
15222         a package with or without its attributes.
15223         (Register_New_Attribute): Mew procedure to register a new attribute in a
15224         package.
15225         New attribute oriented subprograms: Attribute_Node_Id_Of,
15226         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15227         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15228         Next_Attribute.
15229         New package oriented subprograms: Package_Node_Id_Of,
15230         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15231
15232         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
15233         type.
15234         (Package_Node_Id): Now a private, self initialized type
15235         (Register_New_Package): New procedure to register a package with its
15236         attributes.
15237         New attribute oriented subprograms: Attribute_Node_Id_Of,
15238         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15239         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15240         Next_Attribute.
15241         New package oriented subprograms: Package_Node_Id_Of,
15242         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15243
15244         * prj-dect.adb (Parse_Attribute_Declaration,
15245         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
15246
15247         * prj-makr.adb (Make): Parse existing project file before creating
15248         other files. Fail if there was an error during parsing.
15249
15250         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
15251         new spec of Prj.Attr.
15252
15253         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
15254         to new spec of Prj.Attr.
15255
15256 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15257
15258         * utils2.c: Fix typo in comment.
15259
15260 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15261
15262         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
15263         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
15264
15265 2004-07-14  Andreas Schwab  <schwab@suse.de>
15266
15267         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
15268
15269 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15270
15271         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
15272         object type.
15273         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
15274         TYPE_STUB_DECL.
15275
15276         * misc.c (gnat_types_compatible_p): New function.
15277         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
15278         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
15279
15280         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
15281         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
15282         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
15283         (mark_visited): Don't mark dummy type.
15284         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
15285         parameter, we must remove any LJM building from GNU_NAME.
15286         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
15287         (pos_to_constructor): Use int_const_binop.
15288         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
15289         PARM_DECL.
15290
15291         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
15292         (gnat_pushlevel): Set TREE_USE on BLOCK node.
15293         (gnat_install_builtins): Add __builtin_memset.
15294
15295 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
15296
15297         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
15298         for a renaming, stabilize the initialization expression if we are at a
15299         local level.  At the local level, uses of the renaming may be performed
15300         by a direct dereference of the initializing expression, and we don't
15301         want possible variables there to be evaluated for every use.
15302
15303         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
15304         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
15305         them on the way.  Account for the fact that we may introduce side
15306         effects in the process.
15307
15308 2004-07-13  Richard Henderson  <rth@redhat.com>
15309
15310         * misc.c (default_pass_by_ref): Use pass_by_reference.
15311
15312 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15313
15314         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
15315         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
15316
15317 2004-07-08  Richard Henderson  <rth@redhat.com>
15318
15319         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
15320         commentary.
15321
15322 2004-07-06  Vincent Celier  <celier@gnat.com>
15323
15324         * vms_conv.ads: Minor reformatting.
15325         Alphabetical order for enumerated values of type Command_Type, to have
15326         the command in alphabetical order for the usage.
15327
15328         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
15329         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
15330
15331         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
15332
15333         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
15334         (Add_Archive_Path): Only add the global archive if there is one.
15335         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
15336         or not any object file to put in the global archive, and don't build
15337         a global archive if there is none.
15338         (X_Switches): New table
15339         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
15340         in the X_Switches table, if any.
15341         (Initialize): Make sure the X_Switches table is empty
15342         (Scan_Arg): Record -X switches in table X_Switches
15343
15344         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
15345
15346         * make.adb: Minor comment fix
15347
15348         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
15349         invoked with directory information, add the directory in front of the
15350         path.
15351
15352         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
15353         invoked with directory information, add the directory in front of the
15354         path.
15355
15356         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
15357         when Keep_Temporary_Files is False.
15358         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
15359         directory information, add the directory in front of the path.
15360         When not on VMS, handle new switch -dn before the command to set
15361         Keep_Temporary_Files to True.
15362         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
15363         everywhere.
15364
15365         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
15366         invoked with directory information, add the directory in front of the
15367         path.
15368
15369 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
15370
15371         * snames.ads, snames.adb (Name_Stub): New name for the distributed
15372         systems annex.
15373
15374         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
15375         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
15376
15377         * g-socket.adb (To_Timeval): Fix incorrect conversion of
15378         Selector_Duration to Timeval for the case of 0.0.
15379
15380         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
15381         documentation from Evolve_And_Then.
15382
15383 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
15384
15385         * s-taprop-tru64.adb, s-taprop-os2.adb,
15386         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
15387
15388 2004-07-06  Robert Dewar  <dewar@gnat.com>
15389
15390         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
15391         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
15392         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
15393         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
15394         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
15395         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
15396         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
15397         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
15398         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
15399         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
15400         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
15401         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
15402         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
15403         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
15404         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
15405         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
15406         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
15407         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
15408         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
15409         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
15410         vms_data.ads: Minor reformatting,
15411         Fix bad box comment format.
15412
15413         * gnat_rm.texi: Fix minor grammatical error
15414
15415         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
15416
15417         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
15418         more cases of discriminated records to be recognized as not needing a
15419         secondary stack.
15420         (Has_Access_Values): New function.
15421
15422         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
15423
15424         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
15425         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
15426         with LRM terminology).
15427         Change terminology in comments primitive type => elementary type.
15428
15429 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15430
15431         PR ada/15602
15432         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
15433         parameters do not impose any requirements on the presence of a body.
15434
15435 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15436
15437         PR ada/15593
15438         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
15439         compilation unit and is in an open scope at the point of instantiation,
15440         assume that a body may be present later.
15441
15442 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15443
15444         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
15445         Improve error message when specified size is not supported.
15446
15447         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
15448         is never a primitive operation.
15449
15450 2004-07-05  Andreas Schwab  <schwab@suse.de>
15451
15452         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
15453         RECORD_OR_UNION_CHECK.
15454         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
15455
15456 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
15457
15458         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
15459         dependency on xgnatugn, instead build it via a submake.
15460         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
15461
15462 2004-07-04  Richard Henderson  <rth@redhat.com>
15463
15464         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
15465
15466 2004-07-01  Richard Henderson  <rth@redhat.com>
15467
15468         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
15469         * utils.c (max_size): Likewise.
15470
15471 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15472
15473         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
15474         and rest_of_type_compilation; add arg to create_*_decl.
15475         (annotate_decl_with_node): Deleted.
15476         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
15477         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
15478         (get_current_block_context, gnat_pushdecl): New declarations.
15479         (gnat_init_stmt_group): Likewise.
15480         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
15481         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
15482         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
15483         (gnat_init): Call gnat_init_stmt_group.
15484         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
15485         (gnu_pending_elaboration_list): Deleted.
15486         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
15487         (gigi): Rearrange initialization calls and move some to last above.
15488         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
15489         Delete calls to add_decl_expr; add arg to create_*_decl.
15490         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
15491         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
15492         begin_subprog_body and call it.
15493         Don't push and pop ggc context.
15494         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
15495         (add_stmt): Remove handling of DECL_EXPR from here.
15496         If not in function, mark visited.
15497         (add_decl_expr): Put global at top level.
15498         Check for cases of DECL_INITIAL we have to handle here.
15499         (process_type): Add extra arg to create_type_decl.
15500         (build_unit_elab): Rework to just gimplify.
15501         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
15502         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
15503         (get_pending_elaborations, pending_elaborations_p): Likewise.
15504         (push_pending_elaborations, pop_pending_elaborations): Likewise.
15505         (get_elaboration_location, insert_elaboration_list): Likewise.
15506         (gnat_binding_level): Renamed from ada_binding_level.
15507         (init_gnat_to_gnu): Don't clear pending_elaborations.
15508         (global_bindings_p): Treat as global if no current_binding_level.
15509         (set_current_block_context): New function.
15510         (gnat_pushdecl): Renamed from pushdecl; major rework.
15511         All callers changed.
15512         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
15513         (finish_record_type): Call call pushdecl for stub decl.
15514         (function_nesting_depth): Deleted.
15515         (begin_subprog_body): Delete obsolete code.
15516         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
15517
15518 2004-06-28  Robert Dewar  <dewar@gnat.com>
15519
15520         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15521         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15522         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
15523         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
15524         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
15525
15526         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
15527         deal with problem of inefficient slices on machines with strict
15528         alignment, when the slice is a component of a composite.
15529
15530         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
15531         machines, we need the check there as well.
15532
15533 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15534
15535         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
15536         determine safe copying direction for overlapping slice assignments
15537         when component is controlled.
15538
15539         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
15540         formal derived type in the actual for a formal package are visible in
15541         the enclosing instance.
15542
15543 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15544
15545         PR ada/15600
15546         * sem_util.adb (Trace_Components): Diagnose properly an illegal
15547         circularity involving a private type whose completion includes a
15548         self-referential component.
15549         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
15550         renaming or an instantiation from an implicit derived operation.
15551
15552 2004-06-28  Pascal Obry  <obry@gnat.com>
15553
15554         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
15555         DLL.
15556         (Library_File_Name_For): Idem.
15557
15558 2004-06-28  Matthew Gingell  <gingell@gnat.com>
15559
15560         * g-traceb.ads: Add explanatory note on the format of addresses
15561         expected by addr2line.
15562
15563 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
15564
15565         * Makefile.in: Force debugging information on s-tasdeb.adb,
15566         a-except.adb and s-assert.adb needed by the debugger.
15567
15568 2004-06-28  Vincent Celier  <celier@gnat.com>
15569
15570         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
15571         Need_To_Build_Lib.
15572         (Gnatmake): Ditto.
15573
15574         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
15575
15576         * prj.adb: Minor reformatting
15577         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
15578
15579         * prj.ads: Comment updates
15580         Minor reformatting
15581         (Project_Data): Change Flag1 to Need_To_Build_Lib.
15582         Remove Flag2: not used.
15583
15584         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
15585         declaration.
15586
15587         * gnat_ugn.texi: Put a "null;" declaration in one project file example
15588
15589         * gnat_rm.texi: Document Empty declarations "null;".
15590
15591         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
15592         front of the linker options.
15593         (Link_Foreign): Put the global archives and the libraries in front of
15594         the linker options.
15595
15596 2004-06-28  Javier Miranda  <miranda@gnat.com>
15597
15598         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
15599         (RTU_Loaded): Code cleanup
15600         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
15601         withed predefined units.
15602
15603         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
15604         explicitly withed predefined units.
15605         Fix typo in comment
15606
15607         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
15608         explicitly withed predefined units.
15609
15610 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15611
15612         * ada-tree.def (DECL_STMT): Deleted.
15613         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
15614         (DECL_STMT_VAR): Deleted.
15615         * decl.c: add_decl_stmt now add_decl_expr.
15616         * gigi.h: Likewise.
15617         * trans.c: Likewise.
15618         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
15619         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
15620         (add_stmt): Only handle padded type here.
15621         (add_stmt_with_node): Allow gnat_node to not be present.
15622         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
15623         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
15624         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
15625         make a SAVE_EXPR for the entire fat pointer.
15626         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
15627         (create_index_type): Make a DECL_EXPR.
15628         (end_subprog_body): Don't call allocate_struct_function here but
15629         do clear cfun.
15630
15631 2004-06-25  Pascal Obry  <obry@gnat.com>
15632
15633         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
15634         Relocatable from Build_Dynamic_Library call.
15635
15636         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
15637         Relocatable are now synonym.
15638
15639         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
15640
15641         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
15642         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
15643         call.
15644
15645         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
15646         Lib_Address and Relocatable.
15647         (Default_DLL_Address): Removed.
15648
15649         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15650         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15651         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
15652         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
15653         (Default_DLL_Address): Removed.
15654
15655         * mlib-tgt-mingw.adb: Ditto.
15656         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
15657
15658         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
15659         the initial thread stack size.
15660
15661         * a-strmap.ads: Move package L to private part as it is not used in
15662         the spec. Found while reading code.
15663
15664 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
15665
15666         * tracebak.c: Introduce support for a GCC infrastructure based
15667         implementation of __gnat_backtrace.
15668
15669         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
15670         any more. Use accessors instead. This eases maintenance and relaxes
15671         some alignment constraints.
15672         (_GNAT_Exception structure): Remove the Ada specific fields
15673         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
15674         a-exexpr.adb.
15675         (is_handled_by, __gnat_eh_personality): Replace component references to
15676         exception structure by use of the new accessors.
15677
15678         * init.c (__gnat_initialize): Adjust comments to match the just
15679         reverted meaning of the -static link-time option.
15680
15681         * adaint.c (convert_addresses): Arrange not to define a stub for
15682         mips-irix any more, as we now want to rely on a real version from a
15683         recent libaddr2line.
15684
15685         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
15686         the personality routine can use them and not have to rely on a C
15687         counterpart of the record anymore. This simplifies maintenance and
15688         relaxes the constraint of having Standard'Maximum_Alignment match
15689         BIGGEST_ALIGNMENT.
15690         Update comments, and add a section on the common header alignment issue.
15691
15692 2004-06-25  Geert Bosch  <bosch@gnat.com>
15693
15694         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
15695         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
15696
15697 2004-06-25  Robert Dewar  <dewar@gnat.com>
15698
15699         * gnat_rm.texi: Fix section on component clauses to indicate that the
15700         restriction on byte boundary placement still applies for bit packed
15701         arrays.
15702         Add comment on stack usage from Initialize_Scalars
15703
15704         * gnat_ugn.texi: Add documentation for -gnatyLnnn
15705
15706         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
15707         limiting nesting level.
15708
15709         * usage.adb: Add line for -gnatyLnnn switch
15710
15711         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
15712         sem_ch13.adb, exp_aggr.adb: Minor reformatting
15713
15714         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
15715         type as well as on the subtype. This corrects a problem in freeze in
15716         setting alignments of atomic types.
15717
15718         * sem_eval.ads: Minor comment typo fixed
15719
15720         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
15721         level.  Minor reformatting.
15722
15723         * fname.adb (Is_Predefined_File_Name): Require a letter after the
15724         minus sign. This means that file names like a--b.adb will not be
15725         considered predefined.
15726
15727         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
15728         record Test new flag and give diagnostic for bad component clause.
15729         (Freeze_Entity): Set alignment of array from component alignment in
15730         cases where this is safe to do.
15731
15732         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
15733         arrays.
15734
15735         * cstand.adb: (Create_Standard): Set alignment of String to 1
15736
15737         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
15738
15739         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
15740         code in the common constrained array cases.
15741
15742         * a-storio.adb: Change implementation to avoid possible alignment
15743         problems on machines requiring strict alignment (data should be moved
15744         as type Buffer, not type Elmt).
15745
15746         * checks.adb (Apply_Array_Size_Check): Improve these checks by
15747         killing the overflow checks which we really do not need (64-bits is
15748         enough).
15749
15750 2004-06-25  Vincent Celier  <celier@gnat.com>
15751
15752         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
15753         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
15754         inconditionally for the main project.
15755         (Recursive_Add_Archives.Add_Archive_Path): New procedure
15756         (Link_Executables.Check_Time_Stamps): New procedure
15757         (Link_Executables.Link_Foreign): New procedure
15758         Changes made to reduce nesting level of this package
15759         (Check): New procedure
15760         (Add_Switches): When not in quiet output, check that a switch is not
15761         the concatenation of several valid switches. If it is, issue a warning.
15762         (Build_Global_Archive): If the global archive is rebuilt, linking need
15763         to be done.
15764         (Compile_Sources): Rebuilding a library archive does not imply
15765         rebuilding the global archive.
15766         (Build_Global_Archive): New procedure
15767         (Build_Library): New name for Build_Archive, now only for library
15768         project
15769         (Check_Archive_Builder): New procedure
15770         (Create_Global_Archive_Dependency_File): New procedure
15771         (Gprmake): Call Build_Global_Archive before linking
15772         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
15773         throughout.
15774         (Scan_Arg): Display the Copyright notice when -v is used
15775
15776         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
15777         for gnatls.
15778
15779         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
15780         COMPILE.
15781         Add new GNAT LIST qualifier /FILES=
15782         Added qualifier /DIRECTORY= to GNAT METRIC
15783         Added qualifier /FILES= to GNAT METRIC
15784         Added qualifier /FILES to GNAT PRETTY
15785
15786         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
15787         to take into account both versions of the switch.
15788
15789         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
15790         always be the last switch to the gcc driver. Disable switch storing so
15791         that switches automatically added by the gcc driver are not put in the
15792         ALI file.
15793
15794         * prj.adb (Project_Empty): Take into account changes in components of
15795         Project_Data.
15796
15797         * prj.ads (Languages_Processed): New enumaration value All_Languages.
15798
15799         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
15800         used. Split Boolean component Ada_Sources_Present in two Boolean
15801         components Ada_Sources_Present and Other_Sources_Present.
15802         Minor reformatting
15803
15804         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
15805         instead of Sources_Present.
15806         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15807
15808         * prj-nmsc.adb: Minor reformatting
15809         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
15810         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
15811         Check_Ada_Naming_Scheme.
15812         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
15813         throughout.
15814
15815         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
15816         In_Limited.
15817         Make sure that all cycles where there is at least one "limited with"
15818         are detected.
15819         (Parse_Single_Project): New Boolean parameter In_Limited
15820
15821         * prj-proc.adb (Recursive_Check): When Process_Languages is
15822         All_Languages, call first Prj.Nmsc.Ada_Check, then
15823         Prj.Nmsc.Other_Languages_Check.
15824
15825         * prj-proc.adb (Process): Use Ada_Sources_Present or
15826         Other_Sources_Present (instead of Sources_Present) depending on
15827         Process_Languages.
15828
15829         * lang-specs.h: Keep -g and -m switches in the same order, and as the
15830         last switches.
15831
15832         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
15833         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
15834         False.
15835         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
15836         False.
15837
15838         * lib.ads (Disable_Switch_Storing): New procedure.
15839
15840         * make.adb: Modifications to reduce nesting level of this package.
15841         (Check_Standard_Library): New procedure
15842         (Gnatmake.Check_Mains): New procedure
15843         (Gnatmake.Create_Binder_Mapping_File): New procedure
15844         (Compile_Sources.Compile): Add switch -gnatez as the last option
15845         (Display): Never display -gnatez
15846
15847         * Makefile.generic:
15848         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
15849
15850         * gnatcmd.adb (Check_Project): New function
15851         (Process_Link): New procedure to reduce nesting depth
15852         (Check_Files): New procedure to reduce the nesting depth.
15853         For GNAT METRIC, include the inherited sources in extending projects.
15854         (GNATCmd): When GNAT LS is invoked with a project file and no files,
15855         add the list of files from the sources of the project file. If this list
15856         is too long, put it in a temp text files and use switch -files=
15857         (Delete_Temp_Config_Files): Delete the temp text file that contains
15858         a list of source for gnatpp or gnatmetric, if one has been created.
15859         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
15860         in the project file is too large, create a temporary text file that
15861         list them and pass it to the tool with "-files=<temp text file>".
15862         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
15863
15864         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
15865         generated file is in not in Ada.
15866
15867         * gnatls.adb: Remove all parameters And_Save that are no longer used.
15868         (Scan_Ls_Arg): Add processing for -files=
15869         (Usage): Add line for -files=
15870
15871         * g-os_lib.adb (On_Windows): New global constant Boolean flag
15872         (Normalize_Pathname): When on Windows and the path starts with a
15873         directory separator, make sure that the resulting path will start with
15874         a drive letter.
15875
15876         * clean.adb (Clean_Archive): New procedure
15877         (Clean_Project): When there is non-Ada code, delete the global archive,
15878         the archive dependency files, the object files and their dependency
15879         files, if they exist.
15880         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
15881
15882 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
15883
15884         * sinfo.ads: Fix typo in comment.
15885
15886         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
15887         the TSS for remote access-to-subprogram types, since these TSS are
15888         always present once the type has been analyzed.
15889         (RAS_E_Dereference): Same.
15890
15891         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
15892         reference raises Bad_Attribute, mark the reference as analyzed so the
15893         node (and any children resulting from rewrites that could have occurred
15894         during the analysis that ultimately failed) is not analyzed again.
15895
15896         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
15897
15898         * exp_dist.adb: Minor comment fix.
15899
15900         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
15901         type is an anonymous access type, no unchecked deallocation of the
15902         allocated object can occur. If the object is controlled, attach it with
15903         a count of 1. This allows attachment to the Global_Final_List, if
15904         no other relevant list is available.
15905         (Get_Allocator_Final_List): For an anonymous access type that is
15906         the type of a discriminant or record component, the corresponding
15907         finalisation list is the one of the scope of the type.
15908
15909 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15910
15911         * sem_ch3.adb (Replace_Type): When computing the signature of an
15912         inherited subprogram, use the first subtype if the derived type
15913         declaration has no constraint.
15914
15915         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
15916         before applying previous optimization. Minor code cleanup.
15917
15918         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
15919         placed at the beginning of an unpacked record without explicit
15920         alignment, a slice of it will be aligned and does not need a copy when
15921         used as an actual.
15922
15923 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15924
15925         PR ada/15591
15926         PR ada/15592
15927         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
15928         reference is written with expressions mimicking parameters.
15929
15930 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
15931
15932         PR ada/15589
15933         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
15934         STEP 2a. The constraints of a full type declaration of a derived record
15935         type are checked for conformance with those declared in the
15936         corresponding private extension declaration. The message
15937         "not conformant with previous declaration" is emitted if an error is
15938         detected.
15939
15940 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
15941
15942         * g-traceb.ads: Document the need for -E binder switch in the spec.
15943
15944         * g-trasym.ads: Document the need for -E binder switch in the spec.
15945
15946 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
15947
15948         * sem_prag.adb: Add handling of pragma Detect_Blocking.
15949
15950         * snames.h, snames.ads, snames.adb: Add entry for pragma
15951         Detect_Blocking.
15952
15953         * s-rident.ads: Change reference to pragma Detect_Blocking.
15954
15955         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
15956         system.ads.
15957
15958         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
15959         to indicate whether pragma Detect_Blocking is active.
15960
15961         * par-prag.adb: Add entry for pragma Detect_Blocking.
15962
15963         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
15964         of not handling WITH.
15965         Note that this replaces the previous update which was incorrect.
15966
15967 2004-06-25  Javier Miranda  <miranda@gnat.com>
15968
15969         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
15970         use-clauses to have a clean environment.
15971
15972         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
15973         the installation of the use-clauses to stablish a clean environment in
15974         case of compilation of a separate unit; otherwise the call to
15975         use_one_package is protected by the barrier Applicable_Use.
15976
15977         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
15978         the installation of the use-clauses to stablish a clean environment in
15979         case of compilation of a separate unit.
15980         (End_Use_Clauses): Minor comment cleanup.
15981
15982 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
15983
15984         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
15985
15986 2004-06-23  Richard Henderson  <rth@redhat.com>
15987
15988         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
15989
15990 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15991
15992         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
15993         now bool instead of int.
15994         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
15995         * trans.c (gnu_switch_label_stack): New function.
15996         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
15997         elaboration of renamed entity returns.
15998         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
15999         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
16000         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
16001         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
16002         DECL_SIZE_UNIT and simplify variable-sized case.
16003         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
16004         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
16005         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
16006         (build_unit_elab): Disable for now.
16007         * utils.c (mark_visited): New function.
16008         (pushdecl): Walk tree to call it for global decl.
16009         (update_pointer_to): Update all variants of pointer and ref types.
16010         Add arg to COMPONENT_REF.
16011         (convert): Likewise.
16012         Move check for converting between variants lower down.
16013         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
16014         (build_allocator): Don't force type of MODIFY_EXPR.
16015         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
16016         put_var_into_stack.
16017
16018 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16019
16020         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
16021         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
16022         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
16023         subprograms.
16024         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
16025         all callers changed.
16026         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
16027         the way that EXIT_STMT finds the loop label.
16028         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
16029         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
16030         (add_stmt): Use annotate_with_locus insted of setting directly.
16031         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
16032         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
16033         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
16034         (build_vms_descriptor): Add extra args to ARRAY_REF.
16035         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
16036         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
16037         New cases.
16038         (build_binary_op): Don't make explicit CONVERT_EXPR.
16039         Add extra rgs to ARRAY_REF.
16040
16041 2004-06-14  Pascal Obry  <obry@gnat.com>
16042
16043         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
16044         Windows.  Fix minor typo.
16045
16046         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
16047         which is now supported on Windows. With this implementation using the
16048         Library Project feature is no different on Windows than on UNIX.
16049
16050 2004-06-14  Vincent Celier  <celier@gnat.com>
16051
16052         * makegpr.adb (Compile_Sources): Nothing to do when there are no
16053         non-Ada sources.
16054
16055         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
16056
16057         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
16058         found, show the project name and the path of the previously parsed
16059         project file.
16060
16061 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
16062
16063         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
16064         array, avoid copying the actual before the call.
16065
16066 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
16067
16068         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
16069         Instead, allocate memory on worst-case alignment assumptions, and then
16070         return an aligned address within the allocated zone.
16071
16072 2004-06-14  Robert Dewar  <dewar@gnat.com>
16073
16074         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
16075         elab entities in predefined units in No_Run_Time_Mode.
16076         (Gen_Adainit_C): Same fix
16077         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
16078         units in No_Run_Time_Mode
16079         (Gen_Elab_Calls_C): Same fix
16080
16081         * symbols-vms-alpha.adb: Minor reformatting
16082
16083         * g-debpoo.ads: Minor reformatting
16084
16085         * lib.adb (In_Same_Extended_Unit): Version working on node id's
16086
16087         * lib.ads (In_Same_Extended_Unit): Version working on node id's
16088
16089         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
16090         working on nodes.
16091
16092         * make.adb: Minor reformatting
16093
16094         * par-ch12.adb: Minor reformatting
16095
16096         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
16097
16098         * prj-strt.adb: Minor reformatting
16099
16100         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
16101         be more general.
16102
16103         * sem_attr.adb: Minor reformatting
16104
16105         * sem_ch7.adb: Minor reformatting
16106
16107         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
16108         for type in the same unit as the object declaration.
16109
16110         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
16111         static string expressions and not just string literals.
16112         Minor reformatting
16113         (Set_Warning): Reset restriction warning flag for restriction pragma
16114         Implement pragma Profile_Warnings
16115         Implement pragma Profile (Restricted)
16116         Give obolescent messages for old restrictions and pragmas
16117
16118         * snames.h, snames.ads, snames.adb: Add new entry for pragma
16119         Profile_Warnings.
16120
16121         * s-rident.ads: Add declarations for restrictions required by profile
16122         Restricted and profile Ravenscar.
16123
16124         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
16125
16126         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
16127         configuration pragmas.
16128
16129 2004-06-11  Vincent Celier  <celier@gnat.com>
16130
16131         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
16132         gnatsym, when symbol policy is Restricted.
16133
16134         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
16135         gnatsym, when symbol policy is Restricted.
16136
16137         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
16138         read the symbol file.
16139         (Finalize): Fail in symbol policy Restricted if a symbol in the original
16140         symbol file is not in the object files. Do not create a new symbol file
16141         when symbol policy is Restricted.
16142
16143         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
16144         in Scng.
16145
16146         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
16147         Restricted.
16148         (Usage): Line for new switch -R
16149
16150         * make.adb (Initialize): When the platform is not VMS, add the
16151         directory where gnatmake is invoked in the front of the path, if
16152         gnatmake is invoked with directory information.  Change the Scan_Args
16153         while loop to a for loop.
16154         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
16155         if Depth is equal or greater than the proposed depth, there is nothing
16156         to do.
16157         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
16158         instead of 0.
16159
16160         * prj.ads: Add new symbol policy Restricted.
16161
16162         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
16163         with the new parameters Check_All_Labels and Case_Location.
16164
16165         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
16166         (Library_Symbol_File needs to be defined).
16167
16168         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
16169         and Case_Location If Check_All_Labels is True, check that all values of
16170         the string type are used, and output warning(s) if they are not.
16171
16172         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
16173         and Case_Location.
16174
16175         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
16176
16177         * gnat_ugn.texi: Update documentation about the library directory in
16178         Library Projects.
16179
16180         * makegpr.adb (Display_Command): In verbose mode, also display the
16181         value of the CPATH env var, when the compiler is gcc.
16182         (Initialize): Change the Scan_Args while loop to a for loop
16183         (Compile_Individual_Sources): Change directory to object directory
16184         before compilations.
16185
16186         * symbols.ads: New symbol policy Restricted.
16187
16188 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
16189
16190         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
16191         is now taken care of internally in the Exception_Propagation package
16192         and does not require clients assistance any more.
16193
16194         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
16195         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
16196         functions. Helpers to maintain a predicate required in the handling of
16197         occurrence transfer between tasks.
16198         This is now handled internally and does not require clients assistance
16199         for the setup/propagate separation anymore.
16200         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
16201         allocation strategy, handle the Setup_And_Not_Propagated predicate and
16202         document.
16203
16204         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
16205         raise_after_setup, now that everything is handled internally within the
16206         setup/propagation engine.
16207
16208 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16209
16210         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
16211         Add additional conditions for the case of an actual being a simple
16212         name or literal. Improve inlining by preventing the generation
16213         of temporaries with a short lifetime (one use).
16214
16215 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16216
16217         PR ada/15587
16218
16219         * einfo.ads: Minor comment updates for Has_Completion and
16220         E_Constant list of flags.
16221
16222         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
16223         and constant redeclarations now set the Has_Completion flag of their
16224         defining identifiers.
16225
16226         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
16227         Inspect_Deferred_Constant_Completion.
16228         Used to detect private deferred constants that have not been completed
16229         either by a constant redeclaration or pragma Import. Emits error message
16230         "constant declaration requires initialization expression".
16231
16232         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
16233         completes a deferred constant.
16234
16235 2004-06-11  Geert Bosch  <bosch@gnat.com>
16236
16237         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
16238
16239         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
16240         calculating exponent for scaling denormal numbers.
16241         (Leading_Part): Properly raise Constraint_Error for zero or negative
16242         Adjustment.
16243         (Remainder): Properly raise Constraint_Error for zero divisor.
16244
16245 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
16246
16247         * sem_util.adb: Minor reformatting.
16248
16249         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
16250         dereference when accessing the entry parameter record.
16251         (Check_Array_Type): Always check for possible implicit dereference.
16252         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16253         Abort if a pointer is still present (denoting that an implicit
16254         dereference was left in the tree by the front-end).
16255
16256         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
16257         dereference when accessing the entry parameter record.
16258         (Check_Array_Type): Always check for possible implicit dereference.
16259         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16260         Abort if a pointer is still present (denoting that an implicit
16261         dereference was left in the tree by the front-end).
16262
16263 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
16264
16265         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
16266         message, like the compiler itself does. Easier to parse the output.
16267
16268         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
16269
16270         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
16271         be base names, and not includes directories.
16272
16273 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16274
16275         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
16276         so that dependencies are properly taken into account by make.
16277
16278 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16279
16280         PR ada/15622
16281         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
16282         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
16283
16284 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
16285
16286         * Makefile.in (install-gnatlib): install target-specific run-time files.
16287
16288         * Make-lang.in: Remove obsolete targets.
16289
16290 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16291
16292         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
16293         specification, to catch misuses of program unit names.
16294
16295         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
16296         superfluous conversions in an instance.
16297
16298 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16299
16300         PR ada/15403
16301
16302         * sem_ch12.adb (Save_References): If operator node has been folded to
16303         enumeration literal, associated_node must be discarded.
16304
16305 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
16306
16307         * s-stchop-vxworks.adb: Add required pragma Convention to
16308         Task_Descriptor because it is updated by a C function.
16309
16310 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
16311
16312         PR ada/15568
16313
16314         * Makefile.in: Remove target specific SO_OPT on IRIX
16315
16316 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16317
16318         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
16319         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
16320         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
16321         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
16322         (STMT_STMT, USE_STMT): New statement codes.
16323         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
16324         * ada-tree.h: Reflect above changes.
16325         (struct tree_loop_id): Deleted.
16326         (union lang_tree_node, struct lang_decl, struct lang_type):
16327         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
16328         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
16329         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
16330         (IS_ADA_STMT): New macro.
16331         * decl.c (annotate_decl_with_node): New function.
16332         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
16333         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
16334         Call add_stmt_with_node to do needed assignments.
16335         Add call to update setjmp buffer directly, not via EXPR_STMT.
16336         (maybe_variable): Argment GNAT_NODE deleted.
16337         * gigi.h (maybe_variable): Likewise.
16338         (make_transform, add_stmt_with_node, set_block_for_group): New.
16339         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
16340         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
16341         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
16342         (set_lineno, set_lineno_from_sloc): Likewise.
16343         (record_code_position, insert_code_for): Likewise.
16344         (gnat_poplevel): Now returns void.
16345         (end_subprog_body): Now takes argument.
16346         * misc.c (cgraph.h, tree-inline.h): New includes.
16347         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
16348         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
16349         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
16350         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
16351         (gnat_parse_file): Don't set immediate_size_expand.
16352         Call cgraph functions.
16353         (gnat_expand_expr): Remove most cases.
16354         (record_code_position, insert_code_for): Remove from here.
16355         * trans.c (toplev.h, tree-gimple.h): Now included.
16356         (discard_file_names): Deleted.
16357         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
16358         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
16359         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
16360         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
16361         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
16362         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
16363         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
16364         (set_block_for_group, add_stmt_list): Likewise.
16365         (start_stmt_group): Renamed from start_block_stmt.
16366         (end_stmt_group): Likewise, from end_block_stmt.
16367         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
16368         (gigi): Don't set discard_file_names or call set_lineno.
16369         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
16370         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
16371         Numerous changes throughout to reflect new names and complete
16372         function-at-a-time implementation.
16373         (gnat_expand_stmt): Delete or comment out all cases.
16374         (process_inlined_subprograms): Use add_stmt.
16375         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
16376         call set_lineno; also remove unneeded block handling.
16377         (process_type): Remove unneeded block handling.
16378         (build_unit_elab): Remove calls to deleted functions.
16379         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
16380         (tree-dump.h): Likewise.
16381         (struct ada_binding_level): Add field jmpbuf_decl.
16382         (gnat_define_builtin, gnat_install_builtins): New.
16383         (gnat_gimplify_function, gnat_finalize): Likewise.
16384         (gnat_poplevel): No longer return BLOCK, set it instead.
16385         Remove code dealing with nested functions.
16386         (gnat_init_decl_processing): Also set size_type_node.
16387         Call gnat_install_builtins.
16388         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
16389         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
16390         Remove special-case for "main".
16391         (end_subprog_body): Add arg and rework for tree-ssa.
16392         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
16393         Add case for BOOLEAN_TYPE.
16394         * utils2.c (rtl.h): Now include.
16395         (build_call_raise): Test Debug_Flag_NN directly.
16396         (build_call_alloc_dealloc): Don't use local stack allocation for now.
16397         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
16398         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
16399
16400 2004-06-07  Robert Dewar  <dewar@gnat.com>
16401
16402         * a-direct.ads, einfo.ads: Minor comment updates
16403
16404         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
16405         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16406         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
16407         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
16408         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
16409
16410         * s-interr-sigaction.adb: Remove unreferenced variable
16411         (Attached_Interrupts).  Minor reformatting.
16412         Avoid use of variable I (replace by J).
16413
16414         * par-ch10.adb: Fix text of one error message
16415
16416         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
16417         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
16418         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
16419         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
16420         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
16421         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
16422         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
16423         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
16424         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
16425         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
16426         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
16427         2005 support.
16428
16429 2004-06-07  Doug Rupp  <rupp@gnat.com>
16430
16431         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
16432
16433         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
16434
16435         * mlib-tgt-vms-ia64.adb: New file.
16436
16437         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
16438         Add mlib-tgt-vms-ia64.adb
16439         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
16440         Move to alpha specific ifeq section.
16441         Add VMS specific versions of symbols.adb
16442         Renaming of 5q vms files.
16443
16444         * 5qsystem.ads renamed to system-vms_64.ads.
16445
16446 2004-06-07  Vincent Celier  <celier@gnat.com>
16447
16448         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
16449         explain that when a time of day corresponding to the non existing hour
16450         on the day switching to DST is specified, Split may return a different
16451         value for Seconds.
16452
16453         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
16454         to GNAT PRETTY.
16455
16456         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
16457         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
16458
16459         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
16460         to False.
16461         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
16462         the linking options.
16463         (Build_Library.Check_Libs): On VMS, if there is a dependency on
16464         g-trasym.ads, set Gtrasymobj_Needed to True.
16465
16466         * prj-attr.adb: Add new package Metrics for gnatmetric
16467
16468         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
16469         canonical case to take into account files with upper case characters on
16470         Windows.
16471         (Ada_Check): Load the reference symbol file name in the name buffer to
16472         check it, not the symbol file name.
16473
16474         * snames.ads, snames.adb: Add standard name Metrics (name of project
16475         file package for gnatmetric).
16476
16477         * vms_conv.ads: Add Metric to Comment_Type
16478
16479         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
16480
16481         * vms_data.ads: Add qualifiers for GNAT METRIC
16482
16483         * makegpr.adb (Link_Executables): Take into account the switches
16484         specified in package Linker of the main project.
16485
16486 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
16487
16488         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
16489         the index of the last element is Units.Last, not Units.Table'Last
16490         (which is usually not a valid index within the actually allocated
16491         storage for the table).
16492
16493         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
16494         determines whether to generate a call to a checked storage pool
16495         Dereference action.
16496         Generate such a call only for a dereference that either comes from
16497         source, or is the result of rewriting a dereference that comes from
16498         source.
16499
16500 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
16501
16502         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
16503
16504 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
16505
16506         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
16507         file level, elaborate the stride for inner dimensions in alignment
16508         units, not bytes.
16509
16510         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
16511         in a comment.
16512
16513 2004-06-07  Javier Miranda  <miranda@gnat.com>
16514
16515         * exp_ch6.adb: Correct wrong modification in previous patch
16516
16517 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
16518
16519         * g-trasym.ads: Corrected comment to properly reflect level of support
16520         on VMS.
16521
16522 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
16523
16524         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
16525         includes case of a variable referenced on the left hand side of an
16526         assignment, therefore remove redundant code. Variables and prefixes of
16527         indexed or selected components are now marked as referenced on left
16528         hand side. Warnings are now properly emitted when variables or prefixes
16529         are assigned but not read.
16530
16531         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
16532         left hand side referenced variables. Private access types do not
16533         produce the warning "variable ... is assigned but never read".
16534         Add also additional checks to left hand side referenced variables.
16535         Aliased, renamed objects and access types do not produce the warning
16536         "variable ... is assigned but never read" since other entities may read
16537         the memory location.
16538
16539 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
16540
16541         * Makefile.in: In the powerpc/vxworks-specific section, restore
16542         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
16543         by mistake).
16544
16545 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
16546
16547         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
16548         predefined operators.
16549         Removes spurious type errors from g-trasym-vms.adb.
16550
16551         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
16552         distinct from the operator appearing in the source, call appropriate
16553         routine to insert conversions when needed, and complete resolution of
16554         node.
16555         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
16556         interpretations for rewritten right operand.
16557         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
16558         the other operand is overloaded and the context is a type conversion.
16559
16560 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16561
16562         * ada-tree.def (BLOCK_STMT): Now has two operands.
16563         (BREAK_STMT): New.
16564
16565         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
16566
16567         * gigi.h: (gnat_poplevel): Now returns a tree.
16568
16569         * trans.c (end_block_stmt): Add arg; all callers changed.
16570         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
16571         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
16572         (add_stmt): Set TREE_TYPE.
16573         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
16574         (gnat_expand_stmt, case BREAK_STMT): New case.
16575
16576         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
16577
16578 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
16579
16580         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
16581         procedure Set_Stack_Size that is not needed.
16582
16583 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
16584
16585         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
16586         used for gnatpp input file and for the files upon which it depends
16587
16588 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
16589
16590         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
16591
16592 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
16593
16594         * gnatvsn.ads: Bump version numbers appropriately.
16595         Add new build type.
16596
16597 2004-06-07  Pascal Obry  <obry@gnat.com>
16598
16599         * gnat_ugn.texi: Improve comments about imported names and link names
16600         on Windows. Add a note about the requirement to use -k gnatdll's option
16601         when working with a DLL which has stripped stdcall symbols (no @nn
16602         suffix).
16603
16604 2004-05-27  Vincent Celier  <celier@gnat.com>
16605
16606         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
16607         COMMENTS_LAYOUT=UNTOUCHED
16608
16609         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
16610         symbols-vms-alpha.adb
16611
16612 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
16613
16614         * sem.ads: Clarify documentation on checks suppression.
16615
16616         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
16617
16618 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
16619
16620         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
16621         the case of multiple derivations.
16622         (Is_Object_Reference): For a selected component, verify that the prefix
16623         is itself an object and not a value.
16624
16625         * sem_ch12.adb (Same_Instantiated_Constant): New name for
16626         Same_Instantiated_Entity.
16627         (Same_Instantiated_Variable): Subsidiary to
16628         Check_Formal_Package_Instance, to recognize actuals for in-out generic
16629         formals that are obtained from a previous formal package.
16630         (Instantiate_Subprogram_Body): Emit proper error when
16631         generating code and the proper body of a stub is missing.
16632
16633         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
16634         has a universal interpretation, do the disambiguation here.
16635
16636         * exp_ch4.adb (Expand_N_Type_Conversion,
16637         Expand_N_Unchecked_Type_Conversion): Special handling when target type
16638         is Address, to avoid typing anomalies when Address is a visible integer
16639         type.
16640
16641         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
16642         to determine whether a subprogram should not be marked Pure, even when
16643         declared in a pure package.
16644
16645 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
16646
16647         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
16648
16649         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
16650         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
16651         Update the documentation about the Ravenscar profile, following the
16652         definition found in AI-249.
16653
16654         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
16655         setting the Profile (Ravenscar). This must be done in addition to
16656         setting the required restrictions.
16657
16658         * rtsfind.ads: Add the set of operations defined in package
16659         Ada.Interrupts.
16660
16661         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
16662         restriction.
16663
16664 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
16665
16666         lang-specs.h: Always require -c or -S and always redirect to /dev/null
16667         if -gnatc or -gnats is passed.
16668
16669 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
16670
16671         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
16672         a significant reference. Warnings are now properly emitted when a
16673         discriminated type is not referenced.
16674
16675         * lib-xref.adb (Generate_Reference): A deferred constant completion,
16676         record representation clause or record type discriminant does not
16677         produce a reference to its corresponding entity. Warnings are now
16678         properly emitted when deferred constants and record types are not
16679         referenced.
16680
16681 2004-05-27  Geert Bosch  <bosch@gnat.com>
16682
16683         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
16684         Fixes ACATS Annex G tests.
16685
16686 2004-05-27  Robert Dewar  <dewar@gnat.com>
16687
16688         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
16689         handling WITH
16690
16691 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
16692
16693         * s-interr.adb (Server_Task): Take into account case of early return
16694         from sigwait under e.g. linux.
16695
16696 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
16697
16698         * gnat_ugn.texi: Add description for the new gnatpp options:
16699          -rnb - replace the original source without creating its backup copy
16700          -c0 - do not format comments
16701
16702 2004-05-24  Geert Bosch  <bosch@gnat.com>
16703
16704         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
16705         with 192 bits of precision, sufficient to reduce a double-extended
16706         arguments X with a maximum relative error of T'Machine_Epsilon, for X
16707         in -2.0**32 .. 2.0**32.
16708         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
16709         reduction by the processor, which only uses a 68-bit approximation of
16710         Pi.
16711         (Tan): Always reduce arguments and compute function either using
16712         the processor's fptan instruction, or by dividing sin and cos as needed.
16713
16714 2004-05-24  Doug Rupp  <rupp@gnat.com>
16715
16716         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
16717         gcc error on 32/64 bit VMS.
16718
16719 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
16720
16721         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
16722         since this is what we get for stack overflows although not documented
16723         as such.
16724         Document the issues which may require adjustments to our signal
16725         handlers.
16726
16727 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
16728
16729         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
16730         enclosing dynamic scope if the instantiation is within a generic unit.
16731
16732 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16733
16734         * exp_dbug.ads: Fix typo.
16735
16736         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
16737         Rename it to its proper name: system-linux-ia64.ads
16738         (stamp-gnatlib1): Remove extra target specific run time files when
16739         setting up the rts directory.
16740
16741 2004-05-24  Javier Miranda  <miranda@gnat.com>
16742
16743         * einfo.ads, einfo.adb (Limited_Views): Removed.
16744         (Limited_View): New attribute that replaces the previous one. It is
16745         now a bona fide package with the limited-view list through the
16746         first_entity and first_private attributes.
16747
16748         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
16749         limited-private-with clause.
16750         (Install_Limited_Withed_Unit): Install the private declarations of a
16751         limited-private-withed package. Update the installation of the shadow
16752         entities according to the new structure (see Build_Limited_Views)
16753         (Build_Limited_Views): Replace the previous implementation of the
16754         limited view by a package entity that references the first shadow
16755         entity plus the first shadow private entity (required for limited-
16756         private-with clause)
16757         (New_Internal_Shadow_Entity): Code cleanup.
16758         (Remove_Limited_With_Clause): Update the implementation to undo the
16759         new work carried out by Build_Limited_Views.
16760         (Build_Chain): Complete documentation.
16761         Replace Ada0Y by Ada 0Y in comments
16762         Minor reformating
16763
16764         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
16765         types the level of accessibility depends on the enclosing type
16766         declaration.
16767
16768         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
16769         entities. Complete documentation of previous change.
16770
16771 2004-05-24  Robert Dewar  <dewar@gnat.com>
16772
16773         * namet.adb: Minor reformatting
16774         Avoid use of name I (replace by J)
16775         Minor code restructuring
16776
16777         * sem_ch6.adb: Minor reformatting
16778
16779         * lib-writ.adb: Do not set restriction as active if this is a
16780         Restriction_Warning case.
16781
16782         * sem_prag.adb: Reset restriction warning flag if real pragma
16783         restriction encountered.
16784
16785         * s-htable.adb: Minor reformatting
16786         Change rotate count to 3 in Hash (improves hash for small strings)
16787
16788         * 5qsystem.ads: Add comments for type Address (no literals allowed).
16789
16790         * gnat_ugn.texi: Add new section of documentation "Code Generation
16791         Control", which describes the use of -m switches.
16792
16793 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
16794
16795         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
16796         through the DECL_INITIAL for renamed variables.
16797
16798 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16799
16800         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
16801
16802 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
16803
16804         * exp_dbug.ads: Correct comments concerning handling of overloading,
16805         since we no longer use $ anymore.
16806
16807 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
16808
16809         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
16810         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
16811         with illegal subunits.
16812
16813 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
16814
16815         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
16816         body with front-end inlining enabled, check whether an inline pragma
16817         appears immediately after the body and applies to it.
16818
16819         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
16820         enabled and the pragma appears after the body of the subprogram.
16821
16822 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16823
16824         Part of function-at-a-time conversion
16825
16826         * misc.c (adjust_decl_rtl): Deleted.
16827         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16828         Define.
16829
16830         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
16831         (add_decl_stmt, add_stmt, block_has_vars): New functions.
16832         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
16833
16834         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
16835         when making a decl.
16836         (gnat_to_gnu_entity): Likewise.
16837         Use add_stmt to update setjmp buffer.
16838         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
16839         flush_addressof.
16840         No longer call adjust_decl_rtl.
16841         (DECL_INIT_BY_ASSIGN_P): New macro.
16842         (DECL_STMT_VAR): Likewise.
16843
16844         * trans.c (gigi): Call start_block_stmt to make the outermost
16845         BLOCK_STMT.
16846         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
16847         Call start_block_stmt and end_block_stmt temporarily.
16848         Use gnat_expand_stmt instead of expand_expr_stmt.
16849         (add_decl_stmt): New function.
16850         (tree_transform): Call it.
16851         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
16852         (end_block_stmt): Set type and NULL_STMT.
16853         (gnat_expand_stmt): Make recursize call instead of calling
16854         expand_expr_stmt.
16855         (gnat_expand_stmt, case DECL_STMT): New case.
16856         (set_lineno_from_sloc): Do nothing if global.
16857         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
16858         (start_block_stmt, add_stmt, end_block_stmt): New functions.
16859         (build_block_stmt): Call them.
16860         (gnat_to_code): Don't expand NULL_STMT.
16861         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
16862         args.
16863         (tree_transform): Likewise.
16864         (tree_transform, case N_Null_Statement): Return NULL_STMT.
16865         (gnat_expand_stmt, case NULL_STMT): New case.
16866         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
16867         IF_STMT_TRUE.
16868
16869         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
16870         TREE_ADDRESSABLE.
16871
16872         * utils.c (create_var_decl): Do not call expand_decl or
16873         expand_decl_init.
16874         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
16875         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
16876         here.
16877         (struct e_stack): Add chain_next to GTY.
16878         (struct binding_level): Deleted.
16879         (struct ada_binding_level): New struct.
16880         (free_block_chain): New.
16881         (global_binding_level, clear_binding_level): Deleted.
16882         (global_bindings_p): Rework to see if no chain.
16883         (kept_level_p, set_block): Deleted.
16884         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
16885         new data structure and work directly on BLOCK node.
16886         (gnat_poplevel): Similarly.
16887         (get_decls): Look at BLOCK_VARS.
16888         (insert_block): Work directly on BLOCK node.
16889         (block_has_var): New function.
16890         (pushdecl): Rework for new binding structures.
16891         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
16892         poplevel.
16893         (build_subprog_body): Likewise.
16894         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
16895
16896         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
16897
16898         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
16899         (DECL_STMT_VAR): Likewise.
16900
16901 2004-05-17  Robert Dewar  <dewar@gnat.com>
16902
16903         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
16904         procedure
16905
16906         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
16907         of restriction synonyums by using
16908         Restrict.Process_Restriction_Synonyms.
16909
16910         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
16911
16912         * s-restri.ads (Tasking_Allowed): Correct missing comment
16913
16914         * s-rident.ads: Add entries for restriction synonyms
16915
16916         * ali.adb: Fix some problems with badly formatted ALI files that can
16917         result in infinite loops.
16918
16919         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
16920         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
16921         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16922         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
16923         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
16924         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
16925         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
16926         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
16927         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
16928         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
16929         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
16930         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
16931         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
16932         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
16933         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
16934         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
16935         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
16936         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16937         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
16938         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
16939         to Task_Id (minor cleanup).
16940
16941 2004-05-17  Vincent Celier  <celier@gnat.com>
16942
16943         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
16944         directory separator.
16945
16946         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
16947         project being extended, if Languages is not declared in extending
16948         project.
16949
16950 2004-05-17  Javier Miranda  <miranda@gnat.com>
16951
16952         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
16953         limited view of a visible sibling.
16954
16955 2004-05-14  Robert Dewar  <dewar@gnat.com>
16956
16957         * gnat_ugn.texi: Minor change to -gnatS documentation
16958
16959         * sprint.adb: Remove some instances of Assert (False) and for this
16960         purpose replace them by output of a ??? string.
16961
16962         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
16963         Assert (False).
16964
16965         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
16966         flag processing. This was suppressing required dependencies in
16967         No_Run_Time mode and is not needed since the binder does not generate
16968         references for things in libgnat anyway.
16969
16970         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
16971         warning.
16972
16973 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
16974
16975         * gnat_ugn.texi: Document AIX-specific issue with initialization of
16976         resolver library.
16977
16978         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
16979         action for the case of an actual parameter in an init proc call.
16980
16981 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
16982
16983         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
16984         subtype, check visible entities in base type.
16985
16986         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
16987         actions if the object is a renaming.
16988
16989         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
16990         Check_Formal_Package_Instance, to determine more precisely when the
16991         formal and the actual denote the same entity.
16992
16993 2004-05-14  Javier Miranda  <miranda@gnat.com>
16994
16995         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
16996
16997         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
16998         corresponding to a private_with must be removed from visibility; it
16999         will be made visible later, just before we analyze the private part of
17000         the package.
17001         (Check_Private_Child_Unit): Allow private_with clauses in public
17002         siblings.
17003         (Install_Siblings): Make visible the private entities of private-withed
17004         siblings.
17005         (Install_Withed_Unit): Do not install the private withed unit if we
17006         are compiling a package declaration and the Private_With_OK flag was
17007         not set by the caller. These declarations will be installed later,
17008         just before we analyze the private part of the package.
17009
17010         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
17011         during the evaluation of the expression that initializes the object,
17012         decorate it with the expected type to avoid cascade errors.
17013         Code cleanup.
17014
17015         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
17016         subprogram we have to install the private_with clauses after its
17017         specification has been analyzed (as documented in AI-262.TXT).
17018
17019         * sem_ch8.adb (Has_Private_With): New function. Determines if the
17020         current compilation unit has a private with on a given entity.
17021         (Find_Direct_Name): Detect the Beaujolais problem described in
17022         AI-262.TXT
17023
17024         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
17025         provides the functionality of the function Is_Ancestor that was
17026         previously available in sem_ch10. It has been renamed to avoid
17027         overloading.
17028
17029         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
17030
17031 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17032
17033         * utils.c (build_vms_descriptor): Use SImode pointers.
17034
17035 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
17036
17037         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
17038
17039 2004-05-14  GNAT Script  <nobody@gnat.com>
17040
17041         * Make-lang.in: Makefile automatically updated
17042
17043 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
17044
17045         Renaming of target specific files for clarity
17046
17047         * Makefile.in: Rename GNAT target specific files.
17048
17049         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
17050         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
17051         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
17052         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
17053         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
17054         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
17055         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
17056         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
17057         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
17058         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
17059         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
17060         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
17061         51osinte.adb, 51osinte.ads, 51system.ads,
17062         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
17063         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
17064         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
17065         56tpopsp.adb, 57system.ads, 58system.ads,
17066         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
17067         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
17068         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
17069         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
17070         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
17071         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
17072         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
17073         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
17074         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
17075         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
17076         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
17077         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
17078         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
17079         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
17080         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
17081         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
17082         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
17083         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
17084         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
17085         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
17086         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
17087         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
17088         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
17089         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
17090         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
17091         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
17092         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
17093         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
17094         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
17095         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
17096         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
17097         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
17098         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
17099         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
17100         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
17101         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
17102         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
17103         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
17104         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
17105         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
17106
17107         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
17108         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
17109         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
17110         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
17111         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
17112         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
17113         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
17114         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
17115         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
17116         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
17117         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
17118         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
17119         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
17120         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
17121         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
17122         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
17123         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
17124         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
17125         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
17126         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
17127         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
17128         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
17129         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
17130         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
17131         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
17132         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
17133         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
17134         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
17135         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
17136         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
17137         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
17138         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
17139         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
17140         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
17141         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
17142         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
17143         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
17144         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
17145         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
17146         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
17147         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
17148         s-osinte-vms.ads, s-osinte-vxworks.adb,
17149         s-osinte-vxworks.ads, s-osprim-mingw.adb,
17150         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
17151         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
17152         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
17153         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
17154         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
17155         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
17156         s-stchop-vxworks.adb, s-taprop-dummy.adb,
17157         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
17158         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
17159         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
17160         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
17161         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
17162         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
17163         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
17164         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
17165         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
17166         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
17167         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
17168         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
17169         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
17170         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
17171         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
17172         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
17173         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
17174         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
17175         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
17176         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
17177         system-irix-o32.ads, system-linux-x86_64.ads,
17178         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
17179         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
17180         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
17181         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
17182         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
17183         system-vxworks-mips.ads, system-vxworks-ppc.ads,
17184         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
17185         above.
17186
17187 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
17188
17189         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
17190
17191 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
17192
17193         Merge from tree-ssa-20020619-branch.
17194
17195         * config-lang.in (boot_language, build_by_default): Set
17196         to no.
17197         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
17198         (max_size): Add static chain op for call_expr.
17199
17200 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
17201
17202         PR target/15331
17203         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
17204
17205 2004-05-11  Roger Sayle  <roger@eyesopen.com>
17206
17207         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
17208         COND_EXPR.
17209
17210 2004-05-10  Doug Rupp  <rupp@gnat.com>
17211
17212         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
17213         system.aux_dec.
17214
17215         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
17216
17217         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
17218
17219         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
17220         Fixes undefined symbols in IA64 gnatlib.
17221
17222         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
17223
17224         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
17225         Short_Address). This will be moved to system.auxdec.
17226
17227 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
17228
17229         * sem_util.adb: Replace test for presence of a node that is always
17230         present with a call to Discard_Node.
17231
17232         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
17233         Analyze on the library unit node after generation of distribution stub
17234         constructs.  The call was a no-op because Unit_Node has already been
17235         Analyzed, and the tree fragments for the distribution stubs are
17236         analyzed as they are inserted in Exp_Dist.
17237         Update comment regarding to distribution stubs to reflect that we
17238         do not generate stub in separate files anymore.
17239
17240         * einfo.ads: Clarify the fact that a tagged private type has the
17241         E_Record_Type_With_Private Ekind.
17242
17243         * erroutc.adb: Minor reformatting
17244
17245         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
17246         values if line length is increased using -gnatyM (noticed during code
17247         reading).
17248
17249         * eval_fat.adb: Minor reformatting
17250         Put spaces around exponentiation operator
17251
17252 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17253
17254         PR ada/15005
17255         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
17256         has been rewritten as an explicit dereference, retrieve type of
17257         original node to check for possibly unconstrained record type.
17258
17259 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17260
17261         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
17262         overriding, use the operation of the parent unconditionally.
17263
17264         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
17265         operation when either operand is a literal, to avoid further
17266         ambiguities.
17267
17268         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
17269         overridden by a previous explicit declaration, mark the previous entity
17270         as overriding.
17271
17272         * sem_disp.adb (Check_Dispatching_Operation): New predicate
17273         Is_Visibly_Controlled, to determine whether a declaration of a
17274         primitive control operation for a derived type overrides an inherited
17275         one. Add warning if the explicit declaration does not override.
17276
17277 2004-05-10  Vincent Celier  <celier@gnat.com>
17278
17279         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
17280         some cases when the sources are no longer present.
17281
17282         * make.adb (Collect_Arguments): Fail if an external source, not part
17283         of any project need to be compiled, when switch -x has not been
17284         specified.
17285
17286         * makeusg.adb: Document new switch -x
17287
17288         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
17289         defaulted to False.
17290
17291         * switch-m.adb (Scan_Make_Switches): New switch -x
17292
17293         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
17294         gnatmake switch -x.
17295
17296         * gnat_ugn.texi: Document new gnatmake switch -x
17297
17298 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
17299
17300         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
17301
17302         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
17303         (process_attributes): Likewise.
17304
17305 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
17306
17307         * s-inmaop.ads: Fix spelling mistake in one of the comments.
17308
17309 2004-05-10  Robert Dewar  <dewar@gnat.com>
17310
17311         * gnat_ugn.texi: Document that for config pragma files, the maximum
17312         line length is always 32767.
17313
17314         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
17315         literals is now allowed.
17316
17317         * gnat-style.texi: Remove statement about splitting long lines before
17318         an operator rather than after, since we do not follow this rule at all.
17319         Clarify rule (really lack of rule) for spaces around exponentiation
17320
17321         * sem_elim.adb: Allow concatenation of string literals as well as a
17322         single string literal for pragma arguments.
17323
17324         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
17325
17326         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
17327         written for append case.
17328
17329         * frontend.adb: Changes to avoid checking max line length in config
17330         pragma files.
17331
17332         * g-os_lib.ads: Minor reformatting
17333
17334         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
17335         wrong in any case. Instead use standard value. Noticed during code
17336         reading.
17337
17338         * opt.ads (Max_Line_Length): New field, used to implement removal of
17339         limitation on length of lines when scanning config pragma files.
17340
17341         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
17342         makeutl.ads, makeutl.adb: Minor reformatting
17343
17344         * scn.adb: Do not check line length while scanning config pragma files
17345         Do not check line length while scanning out license information
17346
17347         * scng.adb: Changes to avoid line length checks while parsing config
17348         pragma files.
17349
17350 2004-05-10  GNAT Script  <nobody@gnat.com>
17351
17352         * Make-lang.in: Makefile automatically updated
17353
17354 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
17355
17356         * osint.adb (Find_Program_Name): Fix handling of VMS version
17357         number.
17358
17359 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
17360
17361         * g-os_lib.ads (Invalid_Time): New constant
17362
17363         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
17364         return OS_Time instead of time_t to match what is imported by Ada.
17365         Now return -1 if the file doesn't exist, instead of a random value
17366
17367 2004-05-05  Robert Dewar  <dewar@gnat.com>
17368
17369         * usage.adb: Add line for -gnatR?s switch
17370
17371         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
17372
17373         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
17374         and for Match (Data_First, Data_last)
17375
17376         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
17377         written when we are dealing with multi-unit files.
17378
17379 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
17380
17381         * Makefile.in: Remove unused targets and variables.
17382
17383 2004-05-05  Vincent Celier  <celier@gnat.com>
17384
17385         * switch-m.adb: New gnatmake switch -eI
17386
17387         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
17388         of new gnatmake switch -eInnn.
17389
17390         * makegpr.adb: Take into account new parameters Index and Src_Index in
17391         Prj.Util.
17392
17393         * clean.adb: Implement support for multi-unit sources, including new
17394         switch -i.
17395
17396         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
17397         Src_Index.
17398
17399         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
17400         (Extract_From_Q): New out parameter Index
17401         (Mark, Is_Marked): Subprograms moved to Makeutl
17402         (Switches_Of): New parameter Source_Index
17403         (Add_Switch): New parameter Index
17404         (Check): New parameter Source_Index
17405         (Collect_Arguments): New parameter Source_Index
17406         (Collect_Arguments_And_Compile): New parameter Source_Index
17407         (Compile): New parameter Source_Index
17408         Put subprograms in alphabetical order
17409         Add support for multi-source sources, including in project files.
17410
17411         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
17412         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
17413         Make.
17414
17415         * makeusg.adb: New gnatmake switch -eInnn
17416
17417         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
17418         Prj.Util.Value_Of.
17419
17420         * opt.ads (Main_Index): New variable, defaulted to 0.
17421
17422         * osint.ads, osinte.adb (Add_File): New parameter Index
17423         (Current_Source_Index): New function
17424
17425         * prj.adb: Take into account new components Index and Src_Index
17426
17427         * prj.ads (String_Element): New component Index
17428         (Variable_Value): New component Index
17429         (Array_Element): New component Src_Index
17430
17431         * prj-attr.adb: Indicate that optional index may be specified for
17432         attributes Main, Executable, Spec, Body and some of Switches.
17433
17434         * prj-attr.ads (Attribute_Kind): New values for optional indexes
17435         (Attribute_Record): New component Optional_Index
17436
17437         * prj-com.ads (File_Name_Data): New component Index
17438
17439         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
17440
17441         * prj-env.adb (Put): Output optional index
17442
17443         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
17444         attributes Spec and Body.
17445
17446         * prj-nmsc.adb: Process optional indexes
17447
17448         * prj-pp.adb: Ouput "at" for optional indexes
17449
17450         * prj-proc.adb: Take into account optional indexes
17451
17452         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
17453         Optional_Index. For string literal,
17454         process optional index when Optional_Index is True.
17455         (Parse_Expresion): New Boolean parameter Optional_Index
17456
17457         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
17458         (Set_Source_Index_Of): New procedure
17459
17460         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
17461         index.
17462
17463         * prj-util.ads (Executable_Of): New parameter Index
17464         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
17465         New parameter Src_Index, defaulted to 0.
17466
17467 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17468
17469         PR ada/15257
17470         * sem_ch3.adb (Access_Definition): If this is an access parameter
17471         whose designated type is imported through a limited_with clause, do
17472         not add the enclosing subprogram to the list of private dependents of
17473         the type.
17474
17475 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17476
17477         PR ada/15258
17478         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
17479         a limited_with clause, and the other is its non-limited view.
17480
17481 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
17482
17483         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
17484
17485         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
17486         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
17487         Stand.Boolean_Literals to produce references to entities
17488         Standard_False and Standard_True from compile-time computed boolean
17489         values.
17490
17491         * stand.ads (Boolean_Literals): New variable, provides the entity
17492         values for False and True, for use by the expander.
17493
17494 2004-05-05  Doug Rupp  <rupp@gnat.com>
17495
17496         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
17497         5vinmaop.adb: Unchecked convert Short_Address vice Address
17498
17499         * adaint.c, raise.c: Caste CRTL function return value
17500         to avoid gcc error on 32/64 bit IVMS.
17501
17502         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
17503         target = IA64/VMS.
17504
17505         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
17506
17507         * 5qsystem.ads (Address): Declare as Long_Integer
17508         (Short_Address): Declare as 32 bit subtype of Address
17509         Declare  abstract address operations to avoid gratuitous ambiguities.
17510
17511 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
17512
17513         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
17514         instead of the old Boolean_Entry_Barriers.
17515         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
17516
17517 2004-05-05  GNAT Script  <nobody@gnat.com>
17518
17519         * Make-lang.in: Makefile automatically updated
17520
17521 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17522
17523         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
17524
17525 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
17526
17527         PR ada/15152
17528
17529         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
17530         alone. Replacing object references by literals is inappropriate in a
17531         so low level context.
17532
17533 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17534
17535         * a-exexpr.adb: Add comments
17536
17537 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
17538
17539         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
17540         declare the Ancestor_Tags array in Type_Specific_Data with a small size
17541         without risking a bounds check error when accessing one of its
17542         components.
17543         (Type_Specific_Data): Define Ancestor_Tags as a small array.
17544         This prevents us from hitting a limitation during the debug info
17545         generation when using stabs.
17546
17547         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
17548         small array.
17549         This prevents us from hitting a limitation during the debug info
17550         generation when using stabs.
17551
17552 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
17553
17554         lang-specs.h: Remove -gnatz* from specs.
17555
17556 2004-05-03  Vincent Celier  <celier@gnat.com>
17557
17558         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
17559
17560         * Make-lang.in, Makefile.in: Add gprmake
17561
17562 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
17563
17564         * sem_aggr.adb: Fix typo in comment.
17565
17566 2004-05-03  Robert Dewar  <dewar@gnat.com>
17567
17568         * make.adb: Minor reformatting
17569
17570         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
17571
17572         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
17573         so that it works when address is not a private type.
17574
17575         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
17576         properly with rewritten unchecked conversions. This prevents
17577         order-of-elaboration issues that can otherwise arise.
17578         (Minimum_Size): Don't check size of access types under VMS
17579
17580         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
17581         interpretations of integer literals as type System.Address.
17582
17583         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
17584         (Is_Descendent_Of): New function
17585
17586 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
17587
17588         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17589         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
17590         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
17591
17592         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
17593         of the old Max_Entry_Queue_Depth.
17594
17595         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17596         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
17597         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
17598
17599         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
17600         New entry for proper handling of Max_Entry_Queue_Depth.
17601         New entry for proper handling of No_Dynamic_Interrupts.
17602
17603         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
17604         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17605         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
17606         the GNAT specific restriction Max_Entry_Queue_Depth.
17607         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
17608         the GNAT specific restriction No_Dynamic_Interrupts.
17609
17610         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
17611         instead of the old Boolean_Entry_Barriers.
17612         Use the new restriction No_Dynamic_Attachment instead of the old
17613         No_Dynamic_Interrupts.
17614
17615         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
17616         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17617
17618         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
17619         of the old Max_Entry_Queue_Depth.
17620
17621 2004-05-03  GNAT Script  <nobody@gnat.com>
17622
17623         * Make-lang.in: Makefile automatically updated
17624
17625 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
17626
17627         * checks.adb (Enable_Range_Check): If the prefix of an index component
17628         is an access to an unconstrained array, perform check unconditionally.
17629
17630 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17631
17632         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
17633         Component_Clause.
17634
17635 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
17636
17637         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
17638         alternate stack setting. There was no support for the tasking cases
17639         and the changes eventually caused a number of side-effect failures in
17640         the non-tasking case too.
17641
17642 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
17643
17644         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
17645         -gnats is passed.
17646
17647 2004-04-29  Vincent Celier  <celier@gnat.com>
17648
17649         * make.adb (Gnatmake): Increase max size of argument array for
17650         gnatbind for the potential addition of -F.
17651         If there are Stand-Alone Library projects, invoke gnatbind with -F to
17652         be sure that elaboration flags will be checked.
17653
17654         * switch-c.adb: Correct call to Scan_Pos for -gnateI
17655
17656 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
17657
17658         * sem_warn.adb (Check_References): Move '<access-variable> may be
17659         null' warning out of under Warn_On_No_Value_Assigned.
17660
17661 2004-04-29  Ed Falis  <falis@gnat.com>
17662
17663         * gnat_ugn.texi: Fixed texi error
17664
17665 2004-04-29  Robert Dewar  <dewar@gnat.com>
17666
17667         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
17668         abstract operations if they come from predefined files.
17669
17670         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
17671         Dynamic, not RM).
17672
17673         * s-addope.adb: Correct obvious error in mod function
17674
17675 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
17676
17677         * Makefile.in: Add target pairs for powerpc darwin*
17678         tasking support.
17679
17680         * a-intnam-darwin.ads, s-osinte-darwin.adb,
17681         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
17682
17683 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17684
17685         * Makefile.in: Add target macro definitions for s390*-linux*.
17686         * system-linux-s390.ads: New file.
17687         * system-linux-s390x.ads: New file.
17688
17689 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
17690
17691         * gnat_ugn.texi: Correct argument to @setfilename.
17692
17693 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17694
17695         * a-exexpr.adb (Unwind_Word): New data type.
17696         (Unwind_Exception): Use it as type of Private1 and Private2.
17697
17698         * raise.c (db_action_for): Fix debug printf.
17699
17700 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
17701
17702         * a-wtmoio.ads: Formal type must be a modular type, not a signed
17703         integer type.
17704
17705 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17706
17707         * decl.c (gnat_to_gnu_entity, case object): Call
17708         __builtin_update_setjmp_buf.
17709
17710         * gigi.h (update_setjmp_buf): Deleted.
17711         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
17712
17713         * misc.c: (update_setjmp_buf): Deleted.
17714
17715         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
17716         around block of RTL.
17717
17718         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
17719
17720 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
17721
17722         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
17723         subprogram for which no pragma All_Calls_Remote applies, store the
17724         address of the real subprogram in the underlying record type, so local
17725         dereferences do not go through the PCS.
17726
17727 2004-04-26  Robert Dewar  <dewar@gnat.com>
17728
17729         * i-c.ads: Add some type qualifications to avoid ambiguities when
17730         compiling with s-auxdec.ads and a non-private address type.
17731
17732 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
17733
17734         * Makefile.rtl: Fix error in previous check-in:
17735         Add s-addope.o to non tasking object list (rather than tasking object
17736         list).
17737
17738 2004-04-26  Javier Miranda  <miranda@gnat.com>
17739
17740         * sem_aggr.adb: Fix typo in comments
17741         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
17742         Required to check the null-exclusion attribute.
17743
17744         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
17745         case of anonymous access types in record and array components. For a
17746         component definition the level is the same of the enclosing composite
17747         type.
17748
17749         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
17750         that are anonymous access types the level of accessibility depends on
17751         the enclosing type declaration. In order to have this information, set
17752         the scope of the anonymous access type to the enclosing record type
17753         declaration.
17754         (Array_Type_Declaration): In case of components that are anonymous
17755         access types the level of accessibility depends on the enclosing type
17756         declaration. In order to have this information, set the scope of the
17757         anonymous access type to the enclosing array type declaration.
17758
17759         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
17760         access type.
17761
17762         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
17763         renaming of anonymous access-to-constant types allowed if and only if
17764         the renamed object is access-to-constant.
17765
17766         * sem_util.adb (Type_Access_Level): In case of anonymous access types
17767         that are component_definition or discriminants of a nonlimited type,
17768         the level is the same as that of the enclosing component type.
17769
17770 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
17771
17772         * sem_elim.adb: Some minor code reorganization from code reading. Fix
17773         misprint in the function name (File_Name_Match).
17774
17775 2004-04-23  Laurent GUERBY <laurent@guerby.net>
17776
17777         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
17778         install.
17779
17780 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17781
17782         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
17783
17784 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
17785
17786         * adaint.c (__gnat_try_lock): No longer requires that the parent
17787         directory be writable, the directory itself is enough.
17788         (gnat_is_absolute_path): Change profile, so that the call from
17789         GNAT.OS_Lib can be made more efficient.
17790
17791         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
17792         from GNAT.OS_Lib can be made more efficient.
17793
17794         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
17795         one copy of the file name. Found by code reading.
17796
17797 2004-04-23  Vincent Celier  <celier@gnat.com>
17798
17799         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
17800         Correct documentation on gnatmake switches transmitted to the compiler
17801
17802         * ali.ads: Minor comment fix
17803
17804 2004-04-23  Javier Miranda  <miranda@gnat.com>
17805
17806         * sem_ch6.adb: (Confirming Types): Code cleanup
17807
17808         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
17809         subprogram types: E_Anonymous_Access_Subprogram_Type and
17810         E_Anonymous_Access_Protected_Subprogram_Type.
17811
17812 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
17813
17814         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17815         whether a pragma All_Calls_Remote applies to the subprogram on which
17816         'Access is taken.
17817         No functional change is introduced by this revision; the new parameter
17818         will be used to allow calls to local RCI subprograms to be optimized
17819         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17820         as is already done in the PolyORB implementation of the DSA.
17821
17822         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17823         whether a pragma All_Calls_Remote applies to the subprogram on which
17824         'Access is taken.
17825         No functional change is introduced by this revision; the new parameter
17826         will be used to allow calls to local RCI subprograms to be optimized
17827         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17828         as is already done in the PolyORB implementation of the DSA.
17829
17830 2004-04-23  Robert Dewar  <dewar@gnat.com>
17831
17832         * Makefile.rtl: Add entry for s-addope.o in run time library list
17833         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
17834         * s-addope.ads, s-addope.adb: New files.
17835
17836         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
17837         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
17838         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
17839         System.Address to be non-private and signed.
17840
17841         * sem_elim.adb: Minor reformatting (fairly extensive)
17842         Some minor code reorganization from code reading
17843         Add a couple of ??? comments
17844
17845 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17846
17847         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
17848         (tree_transform, case N_If_Statement): Remove non-determinism.
17849
17850         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
17851
17852 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
17853
17854         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
17855         Eliminate' section.
17856
17857         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
17858         no longer used as a parameter name for Eliminate pragma).
17859
17860 2004-04-22  Laurent GUERBY <laurent@guerby.net>
17861
17862         PR optimization/14984
17863         PR optimization/14985
17864         * trans.c (gigi): Fix non determinism leading to bootstrap
17865         comparison failures.
17866
17867 2004-04-21  Pascal Obry  <obry@gnat.com>
17868
17869         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
17870         passed to spawnvp() to properly handle program pathname with spaces on
17871         Win32.
17872
17873 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
17874
17875         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
17876         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
17877         unlocked in case of exceptions.
17878
17879 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17880
17881         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
17882         This function does not exist anymore.
17883
17884 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17885
17886         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
17887
17888         * link.c: Move variables to the __gnat name space.
17889
17890         * Makefile.in: list link.o explicitly when needed.
17891
17892         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
17893
17894 2004-04-21  Javier Miranda  <miranda@gnat.com>
17895
17896         * einfo.adb (Original_Access_Type): New subprogram
17897         (Set_Original_Access_Type): New subprogram
17898         (Write_Field21_Name): Write the name of the new field
17899
17900         * einfo.ads (Original_Access_Type): New field present in access to
17901         subprogram types.
17902         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
17903         E_Anonymous_Access_Protected_Subprogram_Type.
17904
17905         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
17906         subprogram types.
17907
17908         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
17909         to anonymous access to subprogram types.
17910
17911         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
17912         to subprogram types.
17913
17914         * sem_ch3.adb (Access_Definition): Complete decoration of entities
17915         corresponding to anonymous access to subprogram types.
17916         (Analyze_Component_Declaration): Add new actual to the call to
17917         subprogram replace_anonymous_access_to_protected_subprogram.
17918         (Array_Type_Declaration): Add new actual to the call to subprogram
17919         replace_anonymous_access_to_protected_subprogram.
17920         (Process_Discriminants): Add new actual to the call to subprogram
17921         replace_anonymous_access_to_protected_subprogram.
17922         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
17923
17924         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
17925         formal.
17926
17927         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
17928         access to subprogram types.
17929
17930         * sem_util.adb (Has_Declarations): Addition of package_specification
17931         nodes.
17932
17933 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
17934
17935         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
17936         inlined flags to renamed entity only if in current unit.
17937
17938 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17939
17940         * s-parint.ads: Add DSA implementation marker.
17941
17942         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
17943         value of System.Partition_Interface.DSA_Implementation to determine
17944         what version of the distributed systems annex is available (no
17945         implementation, GLADE, or PolyORB).
17946
17947 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17948
17949         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
17950
17951 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17952
17953         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
17954         with new type if alias sets differ.
17955         Fixes ACATS c41103b.
17956
17957 2004-04-21  Vincent Celier  <celier@gnat.com>
17958
17959         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
17960         Add array Lang_Args for the language specific compiling argument
17961         switches.
17962
17963         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
17964
17965 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
17966
17967         * gnat_rm.texi: Update the descripton of the Eliminate pragma
17968         according to the recent changes in the format of the parameters of the
17969         pragma (replacing Homonym_Number with Source_Location).
17970
17971 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
17972
17973         * 5isystem.ads: Removed, unused.
17974
17975         * gnat_rm.texi: Redo 1.13 change.
17976
17977 2004-04-19  Robert Dewar  <dewar@gnat.com>
17978
17979         * s-stoele.ads: Clean up definition of Storage_Offset (the new
17980         definition is cleaner, avoids the kludge of explicit Standard operator
17981         references, and also is consistent with a visible System.Address with
17982         no visible operations.
17983
17984         * s-geveop.adb: Add declarations to avoid assumption of visible
17985         operations on type System.Address (since these might not be available
17986         if Address is a non-private type for which the operations
17987         are made abstract).
17988
17989         * sem_eval.adb: Minor reformatting
17990
17991         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
17992         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
17993         reformatting (new function spec format).
17994
17995         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
17996         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
17997         s-caun64.adb: Add declarations to avoid assumption of visible
17998         operations on type System.Address (since these might not be available
17999         if Address is a non-private type for which the operations are made
18000         abstract).
18001
18002         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
18003
18004         * exp_intr.adb: Minor comment update
18005
18006         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
18007
18008         * 5omastop.adb: Add declarations to avoid assumption of visible
18009         operations on type System.Address (since these might not be available
18010         if Address is a non-private type for which the operations
18011         are made abstract).
18012
18013 2004-04-19  Vincent Celier  <celier@gnat.com>
18014
18015         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
18016
18017         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
18018         defaulted to Ada.
18019
18020         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
18021         defaulted to Ada.
18022         Call Check with Process_Languages.
18023         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
18024         with Process_Languages.
18025         (Recursive_Check): New Boolean parameter Process_Languages. Call
18026         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
18027         Process_Languages.
18028
18029         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
18030
18031         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
18032         parameter Ada_Main, defaulted to True.
18033         Check for Ada specific characteristics only when Ada_Main is True.
18034
18035         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
18036
18037         * prj.adb: (Project_Empty): Add new Project_Data components.
18038
18039         * prj.ads: New types and tables for non Ada languages.
18040         (Project_Data): New components Languages, Impl_Suffixes,
18041         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
18042         Include_Path, Include_Data_Set.
18043
18044         * prj-env.ads, prj-env.adb: Minor reformatting
18045
18046         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
18047         Put subprograms in alphabetical order
18048
18049         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
18050         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
18051         Opt.Follow_Links.
18052
18053         * mlib-prj.adb: Back out modification in last version, as they are
18054         incorrect.
18055         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
18056
18057         * make.adb: (Mains): Moved to package Makeutl
18058         (Linker_Opts): Moved to package Makeutl
18059         (Is_External_Assignment): Moved to package Makeutl
18060         (Test_If_Relative_Path): Moved to package Makeutl
18061         (Gnatmake): Move sorting of linker options to function
18062         Makeutl.Linker_Options_Switches.
18063
18064         * makeutl.ads, makeutl.adb: New files.
18065
18066         * Makefile.in: Add makeutl.o to the object files for gnatmake
18067
18068         * makeusg.adb: Add line for new switch -eL.
18069
18070         * gnatls.adb (Image): New function.
18071         (Output_Unit): If in verbose mode, output the list of restrictions
18072         specified by pragmas Restrictions.
18073
18074         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
18075         Text_IO.
18076
18077         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
18078         needed, to put it in the range 1970 (included) - 2026 (excluded).
18079         (Time_Of): Do not shift Unix_Min_Year (1970).
18080         Shift the date by multiple of 56 years, if needed, to put it in the
18081         range 1970 (included) - 2026 (excluded).
18082
18083         * adaint.h, adaint.c (__gnat_set_executable): New function.
18084
18085 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18086
18087         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
18088         and pop GC context.
18089         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
18090         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
18091         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
18092         (tree_transform, case N_Code_Statement): Likewise.
18093         (gnat_expand_stmt, case LABEL_STMT): Don't look at
18094         LABEL_STMT_FIRST_IN_EH.
18095         (gnat_expand_stmt, case ASM_STMT): New case.
18096
18097         * utils2.c (build_unary_op): Properly set TREE_READONLY of
18098         UNCONSTRAINED_ARRAY_REF.
18099
18100         * utils.c (poplevel): Temporarily push/pop GC context around inline
18101         function expansion.
18102
18103         * decl.c (maybe_variable): Properly set TREE_READONLY of
18104         UNCONSTRAINED_ARRAY_REF.
18105         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
18106
18107         * ada-tree.def: (ASM_STMT): New.
18108
18109         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
18110         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
18111         ASM_STMT_INPUT): New.
18112         (ASM_STMT_CLOBBER): Likewise.
18113
18114 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
18115
18116         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
18117         general rcheck mechanism to raise Program_Error for E.4(18), instead
18118         of a custom raiser in System.Partition_Interface.
18119         Part of general cleanup work before PolyORB integration.
18120
18121         * snames.ads, snames.adb: Add new runtime library entities and names
18122         for PolyORB DSA.
18123
18124         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18125         exp_dist.
18126         (Build_Subprogram_Id): New subprogram provided by exp_dist
18127         Code reorganisation in preparation for PolyORB integration.
18128
18129         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18130         exp_dist.
18131         (Build_Subprogram_Id): New subprogram provided by exp_dist
18132
18133         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
18134         actual parameter types for call to dereference of an
18135         access-to-subprogram type.
18136
18137         * rtsfind.ads: Add new runtime library entities and names for PolyORB
18138         DSA.
18139
18140         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
18141         instead, which has the same behaviour here since we never pass it a
18142         NULL pointer.
18143
18144         * link.c (run_path_option, Solaris case): Use -Wl, as for other
18145         platforms.
18146
18147         * Makefile.in: adjust object file lists for gnatlink and gnatmake
18148         to account for new dependency upon Interfaces.C.Strings + link.o
18149         For x86 FreeBSD, use 86numaux.
18150
18151         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
18152         from Mlib.Tgt to Mlib.
18153
18154         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
18155         target-independent.
18156
18157         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
18158         target-specific versions of this subprogram, now implemented as a
18159         target-independent function in Mlib.
18160
18161         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
18162         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
18163         (Linker_Library_Path_Option): Remove target-specific versions of this
18164         subprogram, now implemented as a target-independent function in Mlib.
18165
18166         * atree.adb: (Allocate_Initialize_Node): New subprogram.
18167         Factors out node table slots allocation.
18168         (Fix_Parents): New subprogram.
18169         Encapsulate the pattern of fixing up parent pointers for syntactic
18170         children of a rewritten node.
18171         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
18172         (Rewrite): Use New_Copy when creating saved copy of original node.
18173         (Replace): Use Copy_Node to copy nodes.
18174
18175 2004-04-19  Javier Miranda  <miranda@gnat.com>
18176
18177         * sprint.adb (Sprint_Node_Actual): Give support to the new
18178         Access_To_Subprogram node available in Access_Definition nodes. In
18179         addition, give support to the AI-231 node fields: null-exclusion,
18180         all-present, constant-present.
18181
18182         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
18183
18184         * sinfo.ads, sinfo.adb:
18185         New field Access_To_Subprogram_Definition in Access_Definition nodes
18186
18187         * sem_ch6.adb (Process_Formals): Move here the code that creates and
18188         decorates internal subtype declaration corresponding to the
18189         null-excluding formal. This code was previously in Set_Actual_Subtypes.
18190         In addition, carry out some code cleanup on this code. In case of
18191         access to protected subprogram call
18192         Replace_Anonymous_Access_To_Protected_Subprogram.
18193         (Set_Actual_Subtypes): Code cleanup.
18194
18195         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
18196         Find_Type in case of anonymous access renamings. Add warning in case of
18197         null-excluding attribute used in anonymous access renaming.
18198
18199         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
18200         subprogram
18201
18202         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
18203         subprogram.
18204         (Access_Definition): In case of anonymous access to subprograms call
18205         the corresponding semantic routine to decorate the node.
18206         (Access_Subprogram_Declaration): Addition of some comments indicating
18207         some code that probably should be added here. Detected by comparison
18208         with the access_definition subprogram.
18209         (Analyze_Component_Declaration): In case of access to protected
18210         subprogram call Replace_Anonymous_Access_To_Protected.
18211         (Array_Type_Declaration): In case of access to protected subprogram call
18212         Replace_Anonymous_Access_To_Protected_Subprogram.
18213         (Process_Discriminants): In case of access to protected subprogram call
18214         Replace_Anonymous_Access_To_Protected_Subprogram.
18215
18216         * par.adb (P_Access_Definition): New formal that indicates if the
18217         null-exclusion part was present.
18218         (P_Access_Type_Definition): New formal that indicates if the caller has
18219         already parsed the null-excluding part.
18220
18221         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
18222         (P_Identifier_Declarations): Code cleanup and give support to renamings
18223         of anonymous access to subprogram types.
18224         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
18225         (P_Array_Type_Definition): Give support to AI-254.
18226         (P_Component_Items): Give support to AI-254.
18227         (P_Access_Definition): New formal that indicates if the header was
18228         already parsed by the caller.
18229         (P_Access_Type_Definition): New formal that indicates if the caller has
18230         already parsed the null-excluding part.
18231
18232         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
18233         call to P_Access_Definition.
18234
18235 2004-04-19  Geert Bosch  <bosch@gnat.com>
18236
18237         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
18238         the delicate semantics of floating-point to integer conversion.
18239         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
18240
18241         * eval_fat.adb (Machine_Mantissa): Moved to spec.
18242         (Machine_Radix): New function.
18243
18244         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
18245         conversion checks.
18246         (Machine_Radix): New function also for use in conversion checks.
18247
18248 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
18249
18250         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
18251
18252         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
18253         to decorate the access-to-protected subprogram and the equivalent type.
18254
18255         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
18256         to anonymous access to subprogram types.
18257
18258         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
18259         constant-folding, for legality checks in contexts that require an RM
18260         static expression.
18261
18262         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
18263         temporary but stack checking is not enabled, increment serial number
18264         to so that symbol generation is consistent with and without stack
18265         checking.
18266
18267         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
18268         independent on whether stack checking is enabled, caller must check
18269         the corresponding flag.
18270
18271         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
18272         range checks.
18273         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
18274         parent if it has discriminants.
18275         (Build_Derived_Private_Type): Constructed full view does
18276         not come from source.
18277         (Process_Discriminants): Default discriminants on a tagged type are
18278         legal if this is the internal completion of a private untagged
18279         derivation.
18280
18281         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
18282         no constraint checks, because it corresponds to an existing object.
18283
18284         * sem_prag.adb (Process_Convention): Pragma applies
18285         only to subprograms in the same declarative part, i.e. the same unit,
18286         not the same scope.
18287
18288         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
18289         ignore type mismatch on a numeric conversion if expression comes from
18290         expansion.
18291
18292 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
18293
18294         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
18295         Homonym_Number parameter, add processing for Source_Location parameter
18296         corresponding.
18297         (Check_Eliminated): Remove the check for homonym numbers, add the check
18298         for source location traces.
18299
18300         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
18301         with Arg_Source_Location corresponding to the changes in the format of
18302         the pragma.
18303
18304         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
18305         Eliminate pragma corresponding to the changes in the format of the
18306         pragma: Homonym_Number is replaced with Source_Location, two ways of
18307         distinguishing homonyms are mutially-exclusive.
18308
18309 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
18310
18311         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
18312
18313         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
18314         No_Dollar_In_Label, no longer necessary, as it is always True.
18315         (Strip_Suffixes): Likewise.
18316
18317 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
18318
18319         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
18320         modulus for compatibility with size clause on targets with 16-bit
18321         Integer.
18322
18323         * layout.adb (Discrimify): In the case of private types, set Vtyp to
18324         full type to fix type mismatches on calls to size functions for
18325         discriminant-dependent array components.
18326
18327 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
18328
18329         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
18330         lib.
18331
18332 2004-04-19  Pascal Obry  <obry@gnat.com>
18333
18334         * mdll-utl.adb (Locate): New version is idempotent.
18335
18336 2004-04-17  Laurent Guerby <laurent@guerby.net>
18337
18338         PR ada/14988 (partial)
18339         * impunit.adb: Fix typo.
18340
18341 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
18342
18343         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
18344         and install-rts-cert targets.  Remove all gnatlib and gnattools
18345         targets and all other rts-* targets (moved to libada).  Remove (now)
18346         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
18347         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
18348
18349 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18350
18351         * trans.c (tree_transform): Shortcut returning error_mark_node for
18352         statements in annotate_only_mode.
18353         (tree_transform, case N_Label, case N_Return_Statement,
18354         N_Goto_Statement): Make statement tree instead of generating code.
18355         (tree_transform, case N_Assignment_Statement): No longer check
18356         type_annotate_only.
18357         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
18358         RETURN_STMT): New.
18359         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
18360         New fcns.
18361         (gnat_to_gnu): Collect any RTL generated and deal with it.
18362         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
18363         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
18364         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
18365
18366         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
18367
18368         * ada-tree.def (EXPR_STMT): Fix typo in name.
18369         (BLOCK_STMT, IF_STMT): New nodes.
18370
18371         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
18372         LABEL_STMT_FIRST_IN_EH): New macros.
18373         (RETURN_STMT_EXPR): Likewise.
18374
18375         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
18376         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
18377
18378 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18379
18380         * atree.ads: Correct documentation on extended nodes.
18381
18382         * link.c: Set run_path_option for FreeBSD.
18383
18384 2004-04-08  Vincent Celier  <celier@gnat.com>
18385
18386         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
18387         one of the ALI file, do not link with DEC lib.
18388
18389         * par.adb Remove the last two characters ("%s" or "%b") when checking
18390         if a language defined unit may be recompiled.
18391
18392 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
18393
18394         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
18395         removal of abstract operation leaves no possible interpretation for
18396         expression.
18397
18398         * sem_eval.adb (Eval_Qualified_Expression): Use
18399         Set_Raises_Constraint_Error on node when needed, so that it does not
18400         get optimized away by subsequent optimizations.
18401
18402         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
18403         operands even when they are not wrapped in a type conversion.
18404
18405 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
18406
18407         * sem_prag.adb (Set_Exported): Warn about making static as result of
18408         export only when the export is coming from source. This may be not
18409         be true e.g. on VMS where we expand export pragmas for exception codes
18410         together with imported or exported exceptions, and we don't want the
18411         user to be warned about something he didn't write.
18412
18413 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18414
18415         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
18416         duplication between normal entities and those declared as renamings.
18417         No functional change.
18418
18419         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
18420         inline functions returning an unconstrained result.
18421
18422 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
18423
18424         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
18425         conform to what other front-ends do.
18426
18427 2004-04-08  Doug Rupp  <rupp@gnat.com>
18428
18429         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
18430         libraries.
18431
18432 2004-04-06  Pascal Obry  <obry@gnat.com>
18433
18434         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
18435
18436         * osint.adb (Program_Name): Do not look past a directory separator.
18437
18438 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
18439
18440         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
18441
18442         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
18443         requirement for preserving a copy of the original assignment node.
18444
18445         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
18446
18447 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
18448
18449         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
18450         when supported.
18451
18452 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
18453
18454         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
18455         operator calls in functional notation, and apply
18456         Universal_Interpretation to operands, not to their type.
18457
18458 2004-04-06  Robert Dewar  <dewar@gnat.com>
18459
18460         * 5wdirval.adb: Minor reformatting
18461
18462 2004-04-06  Ed Falis  <falis@gnat.com>
18463
18464         * gnat_rm.texi: Improve a reference to the GCC manual
18465
18466 2004-04-05  Vincent Celier  <celier@gnat.com>
18467
18468         * adaint.h, adaint.c: Add function __gnat_named_file_length
18469
18470         * impunit.adb: Add Ada.Directories to the list
18471
18472         * Makefile.in: Add VMS and Windows versions of
18473         Ada.Directories.Validity package body.
18474
18475         * Makefile.rtl: Add a-direct and a-dirval
18476
18477         * mlib-tgt.ads: Minor comment update.
18478
18479         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
18480         a-direct.ads, a-direct.adb: New files.
18481
18482 2004-04-05  Vincent Celier  <celier@gnat.com>
18483
18484         PR ada/13620
18485         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
18486         just to the compiler.
18487
18488 2004-04-05  Robert Dewar  <dewar@gnat.com>
18489
18490         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
18491         returned string is 1.
18492
18493         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
18494
18495         * eval_fat.ads: Minor reformatting
18496
18497         * g-curexc.ads: Document that lower bound of returned string values
18498         is always one.
18499
18500         * gnatlink.adb: Add ??? comment for previous change
18501         (need to document why this is VMS specific)
18502
18503         * s-stoele.ads: Minor reformatting
18504
18505         * tbuild.ads: Minor reformatting throughout (new function specs)
18506
18507         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
18508         after WITH.
18509
18510         * scng.adb: Minor reformatting
18511
18512 2004-04-05  Geert Bosch  <bosch@gnat.com>
18513
18514         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
18515         (Leading_Part): Still perform truncation to machine number if the
18516         specified radix_digits is greater or equal to machine_mantissa.
18517
18518 2004-04-05  Javier Miranda  <miranda@gnat.com>
18519
18520         * par-ch3.adb: Complete documentation of previous change
18521         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
18522         (aliased must appear before constant).
18523
18524         * par-ch4.adb: Complete documentation of previous change.
18525
18526         * par-ch6.adb: Complete documentation of previous change.
18527
18528         * sinfo.ads: Fix typo in commment.
18529
18530 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
18531
18532         * sem_ch3.adb (Inherit_Components): If derived type is private and has
18533         stored discriminants, use its discriminants to constrain parent type,
18534         as is done for non-private derived record types.
18535
18536         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
18537         Ada 2005 AI-310: an abstract non-dispatching operation is not a
18538         candidate interpretation in an overloaded call.
18539
18540         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
18541         expression is Null and target type is not an access type (e.g. a
18542         non-private address type).
18543
18544 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
18545
18546         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
18547         statement whose right-hand side is an inlined call, save a copy of the
18548         original assignment subtree to preserve enough consistency for
18549         Analyze_Assignment to proceed.
18550
18551         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
18552         complete assignment subtree which is now unnecessary, as the expansion
18553         of inlined call has been improved to preserve a consistent assignment
18554         tree.  Note_Possible_Modification must be called only
18555         after checks have been applied, or else unnecessary checks will
18556         be generated.
18557
18558         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
18559         of explicit dereferences that do not Come_From_Source:
18560          - be selective on cases where we must go back to the dereferenced
18561            pointer (an assignment to an implicit dereference must not be
18562            recorded as modifying the pointer);
18563          - do not rely on Original_Node being present (Analyze_Assignment
18564            calls Note_Possible_Modification on a copied tree).
18565
18566         * sem_warn.adb (Check_References): When an unset reference to a pointer
18567         that is never assigned is encountered, prefer '<pointer> may be null'
18568         warning over '<pointer> is never assigned a value'.
18569
18570 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
18571
18572         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
18573         the ABI.
18574
18575 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
18576
18577         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
18578         libexc. We currently don't reference anything in this library and
18579         linking it in triggers linker warnings we don't want to see.
18580
18581         * init.c: Update comments.
18582
18583 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18584
18585         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
18586         * utils.c (create_field_decl): Likewise.
18587         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
18588
18589 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
18590
18591         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
18592         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
18593         Add info directory entry and category.
18594
18595 2004-04-02  Jan Hubicka  <jh@suse.cz>
18596
18597         * utils.c: Include function.h
18598         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
18599
18600 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18601
18602         PR ada/14150
18603         * Make-lang.in: Clean up generation of documentation
18604
18605         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
18606
18607         * xgnatug.adb: Removed, replaced by xgnatugn.adb
18608
18609         * xgnatugn.adb: Replaces xgnatug.adb
18610
18611         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
18612
18613         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
18614
18615         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
18616         gnat_ug_wnt.texi: Removed.
18617
18618 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18619
18620         * utils2.c: Update copyright notice.
18621
18622 2004-04-01  Robert Dewar  <dewar@gnat.com>
18623
18624         * checks.adb: Minor reformatting throughout
18625         Note that prev checkin added RM reference to alignment warning
18626
18627 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
18628
18629         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
18630         non-static when building aggregate for bit-packed array.
18631
18632         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
18633         function call that is itself the actual in a procedure call, build
18634         temporary for it.
18635
18636         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
18637         a string literal, create a temporary for it, constant folding only
18638         handles scalars here.
18639
18640 2004-04-01  Vincent Celier  <celier@gnat.com>
18641
18642         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
18643         Error_Msg_SP): New empty procedures to instantiate the Scanner.
18644         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
18645         tokens.
18646         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
18647         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
18648         and get the checksum.
18649
18650         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
18651         already in the Q.
18652         Increase the Marking_Label at the end of the Multiple_Main_Loop,
18653         instead of at the beginning.
18654
18655         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
18656         directly.
18657         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
18658         on VMS.
18659
18660         * osint.ads (Multi_Unit_Index_Character): New Character global variable
18661
18662         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
18663         not '~' directly.
18664
18665         * par.adb: Remove test on file name to detect language defined units.
18666         Add test on unit name, after parsing, to detect language defined units
18667         that are not compiled with -gnatg (except System.RPC and its children)
18668
18669         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
18670         following units without style checking.
18671
18672         * switch-c.adb: Change -gnatC to -gnateI
18673
18674         * usage.adb: Document new switch -gnateInnn
18675
18676         * scng.adb (Accumulate_Token_Checksum): New procedure
18677         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
18678         word or literal number.
18679         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
18680         numbers.
18681
18682 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
18683
18684         * a-tasatt.adb,
18685         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
18686         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
18687         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
18688         5vtpopde.adb: Add missing 'constant' keywords.
18689
18690 2004-04-01  Javier Miranda  <miranda@gnat.com>
18691
18692         * par-ch4.adb: (P_Allocator): Code cleanup
18693
18694         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
18695         attribute.
18696
18697         * sinfo.ads: Complete documentation of previous change
18698
18699 2004-04-01  Pascal Obry  <obry@gnat.com>
18700
18701         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
18702         only on VMS.  This special handling was done because an old GNU/ld bug
18703         on Windows which has been fixed.
18704
18705 2004-04-01  GNAT Script  <nobody@gnat.com>
18706
18707         * Make-lang.in: Makefile automatically updated
18708
18709 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18710
18711         * decl.c (gnat_to_gnu_entity, make_type_from_size):
18712         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
18713         * trans.c (tree_transform, convert_with_check): Likewise.
18714         * utils.c (gnat_signed_or_unsigned_type): Likewise.
18715         (build_vms_descriptor, unchecked_convert): Likewise.
18716         * utils2.c (nonbinary_modular_operation): Likewise.
18717
18718 2004-03-29  Javier Miranda  <miranda@gnat.com>
18719
18720         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
18721         (Install_Null_Excluding_Check): Local subprogram that determines whether
18722         an access node requires a runtime access check and if so inserts the
18723         appropriate run-time check.
18724         (Apply_Access_Check): Call Install_Null_Excluding check if required
18725         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
18726
18727         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
18728
18729         * einfo.ads: Fix typo in comment
18730
18731         * exp_ch3.adb (Build_Assignment): Generate conversion to the
18732         null-excluding type to force the corresponding run-time check.
18733         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
18734         type to force the corresponding run-time check.
18735
18736         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
18737         the null-excluding type to force the corresponding run-time check.
18738
18739         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
18740         case of access types unless they have the null-excluding attribute.
18741
18742         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
18743         part.
18744
18745         * exp_util.ads: Fix typo in comment
18746
18747         * par.adb (P_Null_Exclusion): New subprogram
18748         (P_Subtype_Indication): New formal that indicates if the null-excluding
18749         part has been scanned-out and it was present
18750
18751         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
18752
18753         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
18754         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
18755         type to force the corresponding run-time check
18756         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
18757         components
18758         (Resolve_Array_Aggregate): Carry out some static checks
18759         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
18760
18761         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
18762         attribute must be set only if specified by means of the null-excluding
18763         part. In addition, we must also propagate the access-constant attribute
18764         if present.
18765         (Access_Subprogram_Declaration, Access_Type_Declaration,
18766         Analyze_Component_Declaration, Analyze_Object_Declaration,
18767         Array_Type_Declaration, Process_Discriminants,
18768         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
18769         and carry out some static checks.
18770         (Build_Derived_Access_Type): Set the null-excluding attribute
18771         (Derived_Type_Declaration, Process_Subtype): Carry out some static
18772         checks.
18773
18774         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
18775
18776         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
18777
18778         * sem_ch6.adb (Process_Formals): Carry out some static checks.
18779         (Set_Actual_Subtypes): Generate null-excluding subtype if the
18780         null-excluding part was present; it is not required to be done here in
18781         case of anonymous access types.
18782         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
18783         value.
18784
18785         * sem_res.adb (Resolve_Actuals): Carry out some static check
18786         (Resolve_Null): Allow null in anonymous access
18787
18788         * sinfo.adb: New subprogram Null_Exclusion_Present
18789         All_Present and Constant_Present available on access_definition nodes
18790
18791         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
18792         object_declaration, derived_type_definition, component_definition,
18793         discriminant_specification, access_to_object_definition,
18794         access_function_definition, allocator, access_procedure_definition,
18795         access_definition, parameter_specification, All_Present and
18796         Constant_Present flags available on access_definition nodes.
18797
18798 2004-03-29  Robert Dewar  <dewar@gnat.com>
18799
18800         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
18801         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
18802         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
18803         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
18804         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
18805         sem_prag.adb: Updates to handle multiple units/file
18806
18807         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
18808
18809         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
18810         sem_util.adb: Minor reformatting
18811
18812         * sem_ch12.adb: Add comment for previous change
18813
18814 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
18815
18816         * osint.adb (Executable_Prefix): Set Exec_Name to the current
18817         executable name when not initialized. Otherwise, use its current value.
18818
18819         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
18820         initialize it to another executable name than the current one. This
18821         allows to configure paths for an executable name (gnatmake) different
18822         from the current one (gnatdist).
18823
18824 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
18825
18826         * exp_ch6.adb (Expand_Call): A call to a function declared in the
18827         current unit cannot be inlined if it appears in the body of a withed
18828         unit, to avoid order of elaboration problems in gigi.
18829
18830         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
18831         information for protected (wrapper) operation as well, to simplify gdb
18832         use.
18833
18834         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
18835         protected body, indicate that the entity for the generated spec comes
18836         from source, to ensure that references are properly generated for it.
18837         (Build_Body_To_Inline): Do not inline a function that returns a
18838         controlled type.
18839
18840         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
18841         apply convention to homonyms that are declared explicitly.
18842
18843         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
18844         that renames an equality operator and the operands are overloaded,
18845         resolve them with the declared formal types, before rewriting as an
18846         operator.
18847
18848 2004-03-29  GNAT Script  <nobody@gnat.com>
18849
18850         * Make-lang.in: Makefile automatically updated
18851
18852 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
18853
18854         * memtrack.adb: Log realloc calls, which are treated as free followed
18855         by alloc.
18856
18857 2004-03-25  Vincent Celier  <celier@gnat.com>
18858
18859         * prj-makr.adb (Process_Directories): Detect when a file contains
18860         several units. Do not include such files in the config pragmas or
18861         in the naming scheme.
18862
18863         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
18864         Resolve links only when not in Trusted_Mode.
18865         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
18866         Do not resolve links for the display names.
18867
18868         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
18869         resolve links when computing the display names.
18870
18871 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
18872
18873         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
18874         attribute reference does not denote a subtype, it can be any
18875         expression that has a classwide type, potentially after an implicit
18876         dereference.  In particular, the prefix can be a view conversion for
18877         a classwide type (for which Is_Object_Reference holds), but it can
18878         also be a value conversion for an access-to-classwide type. In the
18879         latter case, there is an implicit dereference, and the original node
18880         for the prefix does not verify Is_Object_Reference.
18881
18882         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
18883         conversion of a discriminant-dependent component of a mutable object
18884         is one itself.
18885
18886 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
18887
18888         * freeze.adb (Freeze_Entity): When an inherited subprogram is
18889         inherited, has convention C, and has unconstrained array parameters,
18890         place the corresponding warning on the derived type declaration rather
18891         than the original subprogram.
18892
18893         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
18894         indication on renaming declaration, if formal has a box and actual
18895         is absent.
18896
18897         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
18898         determine whether to generate an implicit or explicit reference to
18899         the renamed entity.
18900
18901         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
18902         subprogram renaming comes from a defaulted formal subprogram in an
18903         instance.
18904
18905 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
18906
18907         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
18908         value expressions to ensure that calls within a component definition
18909         will be checked (since those are evaluated during the record type's
18910         elaboration).
18911
18912 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
18913
18914         * s-tpobop.adb: Code clean up:
18915         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
18916         code.
18917         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
18918
18919 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
18920
18921         * Makefile.in: Clean up in the ravenscar run time.
18922
18923 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18924
18925         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
18926         of No_Strict_Aliasing to build_pointer_type_for_mode.
18927         * utils.c (update_pointer_to): Walk pointer and ref chains.
18928
18929 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
18930
18931         * ali.ads: Fix Comment about Dynamic_Elab.
18932
18933         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
18934         Has_RACW, Is_Generic, etc.)
18935         (Output_Object, Gnatls): Take into account ALI files not attached to
18936         an object.
18937
18938 2004-03-22  Vincent Celier  <celier@gnat.com>
18939
18940         * gprep.adb: Change all String_Access to Name_Id
18941         (Is_ASCII_Letter): new function
18942         (Double_File_Name_Buffer): New procedure
18943         (Preprocess_Infile_Name): New procedure
18944         (Process_Files): New procedure
18945         (Gnatprep): Check if output and input are existing directories.
18946         Call Process_Files to do the real job.
18947
18948 2004-03-22  Robert Dewar  <dewar@gnat.com>
18949
18950         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
18951         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
18952
18953 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
18954
18955         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
18956         case when the source contains only comments.
18957
18958 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
18959
18960         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
18961         declaration for a child subprogram body that acts as a spec, indicate
18962         that the entity in the declaration needs debugging information.
18963
18964         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
18965         full view if the subtype is created for a constrained record component;
18966         gigi has enough information to construct the record, and there is no
18967         place in the tree for the declaration.
18968
18969         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
18970         serial number for the dummy body that is built for analysis, to avoid
18971         inconsistencies in the generation of internal names when compiling
18972         with -gnatN.
18973
18974 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
18975
18976         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
18977         object.
18978
18979 2004-03-22  GNAT Script  <nobody@gnat.com>
18980
18981         * Make-lang.in: Makefile automatically updated
18982
18983 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18984
18985         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
18986         * trans.c (tree_transform, emit_index_check): Likewise.
18987         * utils.c (build_template): Likewise.
18988         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
18989         (maybe_unconstrained_array, unchecked_convert): Likewise.
18990         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
18991         (build_unary_op): Likewise.
18992         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
18993         (fill_vms_descriptor): Likewise.
18994         (build_call_alloc_dealloc): Likewise.
18995         ALIGN is unsigned.
18996         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
18997
18998 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18999
19000         PR other/14630
19001         * gnat_ug.texi: Add info directory category and entry.
19002         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
19003         gnat_ug_wnt.texi: Regenerate.
19004
19005 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
19006
19007         * ada-tree.h: Update copyright notice.
19008         Minor reformatting.
19009
19010 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
19011
19012         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
19013         as regular exception objects and not as mere integers representing the
19014         condition code.  The latter approach required some dynamics to mask off
19015         severity bits, which did not fit well into the GCC table based model.
19016         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
19017         exception data objects. We don't it and it would conflict with the other
19018         external symbol we have to generate for such exceptions.
19019
19020         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
19021         the special code for VMS exceptions, since these are now represented
19022         as regular exceptions objects.
19023
19024 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19025
19026         * decl.c (debug_no_type_hash): Remove.
19027         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
19028         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
19029
19030 2004-03-19  Laurent Guerby <laurent@guerby.net>
19031
19032         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
19033         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
19034
19035 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19036
19037         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
19038         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
19039         (TYPE_RM_SIZE_INT): Directly use type.values.
19040         (TREE_LOOP_ID): Clean up check.
19041         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
19042         TYPE_VALUES, not TYPE_FIELDS.
19043         * trans.c (convert_with_check): Delay access of bounds of basetype
19044         until sure is numeric.
19045
19046 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
19047
19048         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
19049
19050         Code clean up:
19051         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
19052         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
19053         Specific.Set instead of direct call to e.g pthread_setspecific.
19054
19055 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
19056
19057         * adaint.c: Update comments.
19058
19059         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
19060         GNATLIB_SHARED for FreeBSD.
19061
19062 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
19063
19064         * init.c [VxWorks]: Do not fix the stack size for the environment task.
19065         When needed (stack checking) the stack size is retrieved
19066         from the VxWorks kernel.
19067
19068         * Makefile.in: Flag -nostdinc is required when building the run time
19069         for avoiding looking for files in the base compiler.
19070         Add the VxWorks specific version of the package body for
19071         System.Stack_checking.Operations (5zstchop.adb).
19072
19073         * Make-lang.in: Add the object file for
19074         System.Stack_Checking.Operations.
19075
19076         * Makefile.rtl: Add object file for the package
19077         System.Stack_Checking.Operations.
19078
19079         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
19080
19081         * s-stache.ads, s-stache.adb: Move the operations related to stack
19082         checking from this package to package System.Stack_Checking.Operations.
19083         This way, stack checking operations are only linked in the final
19084         executable when using the -fstack-check flag.
19085
19086 2004-03-18  Doug Rupp  <rupp@gnat.com>
19087
19088         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
19089         Reorganize ifeq's.
19090
19091         * 5qsystem.ads, 5xcrtl.ads: New files.
19092
19093 2004-03-18  Vincent Celier  <celier@gnat.com>
19094
19095         * prj.adb (Reset): Reset hash table Files_Htable
19096
19097         * prj-env.adb (Source_Paths, Object_Paths): New tables.
19098         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
19099         the procedures Add_To_Path_File.
19100         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
19101         making sure that each directory is present only once and, for object
19102         dirs, when a directory already present is added, the duplicate is
19103         removed and the directory is always put as the last in the table.
19104         Write the path files at the end of these accumulations.
19105
19106         * prj-nmsc.adb (Record_Source): Add source file name in hash table
19107         Files_Htable for all sources.
19108
19109         * prj-proc.adb (Process): Remove restrictions between not directly
19110         related extending projects.
19111
19112 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
19113
19114         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
19115         (Find_Sources): Minor speed optimization.
19116
19117         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
19118         parameter Trusted_Mode.
19119
19120 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
19121
19122         * scn.adb (Determine_License): Take into account a degenerated case
19123         when the source contains only comments.
19124
19125 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
19126
19127         * sem_warn.adb (Check_References): For a warning on a selected
19128         component that does not come from source, locate an uninitialized
19129         component of the record type to produce a more precise error message.
19130
19131 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
19132
19133         * 3zsoccon.ads: Fix multicast options.
19134
19135         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
19136         in the spec.
19137
19138 2004-03-15  Robert Dewar  <dewar@gnat.com>
19139
19140         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
19141         pragma used for a private type.
19142
19143         * lib-xref.adb (Generate_Reference): Do not generate warning if
19144         reference is in a different unit from the pragma Unreferenced.
19145
19146         * 5vtpopde.adb: Minor reformatting
19147         Fix casing of To_Task_ID
19148
19149         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
19150         flag if we have an unchecked conversion to an access type in the same
19151         unit.
19152
19153 2004-03-15  Geert Bosch  <bosch@gnat.com>
19154
19155         * a-ngcoty.adb (Modulus): In alternate formula for large real or
19156         imaginary parts, use Double precision throughout.
19157
19158         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
19159         we want to be able to compile run-time with -gnata for testing, but
19160         this may also be instantiated in user code that is compiled with -gnata.
19161
19162 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
19163
19164         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
19165         codes. Having a separate type for this is useful to enforce consistency
19166         throughout the various run-time units.
19167         (Exception_Data): Use Exception_Code for Import_Code.
19168
19169         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
19170         Natural and Integer in various places.
19171         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
19172         with the severity bits masked off.
19173         (Register_VMS_Exception): Handle the additional exception data pointer
19174         argument.
19175
19176         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
19177         component, now reflected by an exported accessor.
19178         (is_handled_by): New routine to compute whether the propagated
19179         occurrence matches some handler choice specification. Extracted out of
19180         get_action_description_for, and expanded to take care of the VMS
19181         specifities.
19182         (get_action_description_for): Use is_handled_by instead of an explicit
19183         complex condition to decide if the current choice at hand catches the
19184         propagated occurrence.
19185
19186         * raise.h (Exception_Code): New type for C.
19187
19188         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
19189         System.Standard_Library.Exception_Code, to allow references from the
19190         pragma import/export expander.
19191
19192         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
19193         New accessors to allow easy access to GNAT exception data
19194         characteristics.
19195         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
19196         redundant Handled_By_Others component, helper for the personality
19197         routine which will now be able to call the appropriate exception data
19198         accessor instead.
19199
19200         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
19201         component of Standard_Exception_Type to be the closest possible to
19202         Exception_Code in System.Standard_Library, that we cannot get at this
19203         point. Expand a ??? comment to notify that this type node should
19204         probably be rewritten later on.
19205
19206         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
19207         registration call to include a pointer to the exception object in the
19208         arguments.
19209
19210         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
19211         instead of int and explicit bitmasks.
19212
19213 2004-03-15  Vincent Celier  <celier@gnat.com>
19214
19215         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
19216         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
19217
19218         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
19219         longer needed now that it is in the spec of
19220         System.Tasking.Task_Attributes.
19221
19222         * adaint.h, adaint.c: (__gnat_create_output_file): New function
19223
19224         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
19225
19226         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
19227
19228         * make.adb (Gnatmake): Do not check the executable suffix; it is being
19229         taken care of in Scan_Make_Arg.
19230         (Scan_Make_Arg): Add the executable suffix only if the argument
19231         following -o, in canonical case, does not end with the executable
19232         suffix.  When in verbose mode and executable file name does not end
19233         with executable suffix, output the executable name, in canonical case.
19234
19235         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
19236         to avoid warnings when instantiating Ada.Task_Attributes.
19237         Minor reformating.
19238
19239         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
19240         in the correct order.
19241
19242         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
19243         redirect standard output and error to a file for the invocation of the
19244         compiler, then read the file.
19245
19246         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
19247         directory, instead of the Value.
19248         (Find_Source_Dirs): Remove useless code & comments.
19249
19250 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
19251
19252         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
19253         tagged type is inherited, and the parent operation is not frozen yet,
19254         force generation of a freeze node for the inherited operation, so the
19255         corresponding dispatch entry is properly initialized.
19256         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
19257         when looking for user-defined equality operation.
19258
19259         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
19260         boolean when locating primitive equality of tagged component.
19261
19262         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
19263         bit-aligned field and the right-hand side a string literal, introduce
19264         a temporary before expanding assignment into a loop.
19265
19266         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
19267         priority in full, to ensure that any expanded subepxressions of it are
19268         elaborated in the scope of the init_proc.
19269
19270         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
19271         after object declaration, skipping over code that may have been
19272         generated for validity checks.
19273
19274         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
19275         discriminants, ignore the known discriminants of its full view, if
19276         any, to check legality.
19277
19278         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
19279         component if type has unknown discriminants.
19280         (Analyze_Private_Extension_Declaration): Discriminant constraint is
19281         null if type has unknown discriminants.
19282
19283         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
19284         for end label when present.
19285
19286         * s-fileio.adb (Open): When called with a C_Stream, use given name for
19287         temporary file, rather than an empty string.
19288
19289 2004-03-15  Ed Falis  <falis@gnat.com>
19290
19291         * s-thread.adb: Removed, no longer used.
19292
19293 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19294
19295         * decl.c (target.h): Now include.
19296         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
19297         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
19298         (validate_size): For POINTER_TYPE, get smallest size permitted on
19299         machine.
19300
19301         * fe.h: Sort Einfo decls and add Set_Mechanism.
19302
19303         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
19304         (ada/decl.o): Depends on target.h.
19305
19306         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
19307         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
19308
19309 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
19310
19311         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
19312
19313         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
19314         Insert_Dereference_Action when rewriting an implicit dereference into
19315         an explicit one, this will be taken care of during expansion of the
19316         explicit dereference.
19317         (Expand_N_Slice): Same. Always do the rewriting, even for the case
19318         of non-packed slices, since the dereference action generated by
19319         expansion of the explicit dereference is needed in any case.
19320         (Expand_N_Selected_Component): When rewriting an implicit dereference,
19321         analyze and resolve the rewritten explicit dereference so it is seen
19322         by the expander.
19323         (Insert_Dereference_Action): This procedure is now called only for the
19324         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
19325         dereferences that do not come from source (including explicit
19326         dereferences resulting from rewriting implicit ones), but do not
19327         recursively insert a check for the dereference nodes contained within
19328         the check.
19329         (Insert_Dereference_Action): Clarify and correct comment.
19330
19331 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
19332
19333         PR ada/14131
19334         Move language detection to the top level.
19335         * config-lang.in: Build by default.
19336
19337 2004-03-05  Robert Dewar  <dewar@gnat.com>
19338
19339         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
19340
19341         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
19342         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
19343         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
19344         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
19345         unchecked conversion to spec to avoid warnings.
19346
19347         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
19348         to Task_ID
19349
19350         * 7stpopsp.adb: Correct casing in To_Task_ID call
19351
19352         * a-strsea.ads, a-strsea.adb: Minor reformatting
19353
19354         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
19355
19356         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
19357         Adjust Max_Msg_Length to be clearly large enough.
19358
19359         * fe.h: Define In_Same_Source_Unit
19360
19361         * osint.adb: Add pragma Warnings Off to suppress warnings
19362         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
19363         aliasing warnings.
19364
19365         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
19366
19367         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
19368
19369         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
19370
19371         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
19372
19373         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
19374
19375         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
19376         node. We now do generate them for gcc back end.
19377
19378         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
19379         warning.
19380
19381         * sinput-c.adb: Fix bad name in header.
19382         Add pragma Warnings Off to suppress aliasing warning.
19383
19384         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
19385
19386         * snames.h, snames.ads, snames.adb: Add entry for pragma
19387         No_Strict_Aliasing.
19388
19389 2004-03-05  Vincent Celier  <celier@gnat.com>
19390
19391         * prj-com.ads: Add hash table Files_Htable to check when a file name
19392         is already a source of another project.
19393
19394         * prj-nmsc.adb (Record_Source): Before recording a new source, check
19395         if its file name is not already a source of another project. Report an
19396         error if it is.
19397
19398         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
19399         source file name, call gnatpp with all the sources of the main project.
19400
19401         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
19402         of file names.
19403
19404         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
19405         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
19406         /RUNTIME_SYSTEM=, converted to --RTS=
19407         /NOTABS, converted to -notabs
19408
19409 2004-03-05  Pascal Obry  <obry@gnat.com>
19410
19411         * make.adb: Minor reformatting.
19412
19413 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
19414
19415         Part of implemention of AI-262.
19416         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
19417
19418         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
19419         procedure.
19420
19421         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
19422         when component type is a partially constrained class-wide subtype.
19423         (Constrain_Discriminated_Type): If parent type has unknown
19424         discriminants, a constraint is illegal, even if full view has
19425         discriminants.
19426         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
19427         with unknown discriminants whose full view is a discriminated record.
19428
19429         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
19430         flag, to handle properly derivations of tagged types with unknown
19431         discriminants.
19432         (Analyze_Package_Spec, Analyze_Package_Body): Install
19433         Private_With_Clauses before analyzing private part or body.
19434
19435         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
19436         Has_Discriminants can be true for a given type (documentation).
19437
19438 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
19439
19440         * s-restri.ads: Fix license (GPL->GMGPL).
19441
19442         * s-tassta.adb: Minor reformatting.
19443
19444         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19445         by calls to Exit_One_ATC_Level, since additional clean up is performed
19446         by this function.
19447
19448         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19449         by calls to Exit_One_ATC_Level, since additional clean up is performed
19450         by this function.
19451
19452 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19453
19454         * trans.c: Reflect GCC changes to fix bootstrap problem.
19455         Add warning for suspicious aliasing unchecked conversion.
19456
19457 2004-03-05  GNAT Script  <nobody@gnat.com>
19458
19459         * Make-lang.in: Makefile automatically updated
19460
19461 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
19462
19463         * ali.adb (Read_Instantiation_Instance): Do not modify the
19464         current_file_num when reading information about instantiations, since
19465         this corrupts files in later references.
19466
19467 2004-03-02  Vincent Celier  <celier@gnat.com>
19468
19469         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
19470         before checking if it is read-only.
19471
19472         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
19473         of SRC_DIRS and eliminate duplicates.
19474
19475         * gprcmd.adb: Replace command "path" with command "path_sep" to return
19476         the path separator.
19477         (Usage): Document path_sep
19478
19479         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
19480         C++ compiler. No need for a script.
19481         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
19482         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
19483         subst.
19484
19485         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
19486         where there are Ada sources.
19487         (Set_Ada_Paths): Only add to the include path the source dirs of project
19488         with Ada sources.
19489         (Add_To_Path): Add the Display_Values of the directories, not their
19490         Values.
19491
19492         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
19493         data.
19494
19495         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
19496         is not No_Name.
19497         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
19498         Value is canonicalized.
19499         (Language_Independent_Check): Do not copy Value to Display_Value when
19500         canonicalizing Value.
19501
19502         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
19503         path to find limited with cycles.
19504         (Parse_Single_Project): Use canonical cased path to find the end of a
19505         with cycle.
19506
19507 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
19508
19509         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
19510         and not a child unit.
19511
19512         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
19513         appear in a with_clause.
19514
19515         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
19516         only happen in type_annotate mode, do not try to elaborate it.
19517
19518         * exp_util.adb (Force_Evaluation): If expression is a selected
19519         component on the left of an assignment, use a renaming rather than a
19520         temporary to remove side effects.
19521
19522         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
19523         inlined instance body, which is analyzed before the end of the
19524         enclosing scope.
19525
19526 2004-03-02  Robert Dewar  <dewar@gnat.com>
19527
19528         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
19529         sem_ch4.adb: Use new feature for substitution of keywords in VMS
19530
19531         * errout.ads, errout.adb: Implement new circuit for substitution of
19532         keywords in VMS.
19533
19534         * sem_case.adb (Analyze_Choices): Place message properly when case is
19535         a subtype reference rather than an explicit range.
19536
19537         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
19538
19539 2004-03-02  Doug Rupp  <rupp@gnat.com>
19540
19541         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
19542
19543 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
19544
19545         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
19546
19547 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19548
19549         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
19550         BLKmode bitfield.
19551
19552 2004-02-25  Robert Dewar  <dewar@gnat.com>
19553
19554         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
19555         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
19556         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
19557         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
19558         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
19559         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
19560         the defining instance of the type to avoid aliasing problems.
19561         Fix copyright header.  Fix bad comments in package header.
19562
19563         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
19564
19565 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
19566
19567         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
19568         rewritten as references when aliased through an address clause.
19569
19570         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
19571         whether call can be interpreted as an indirect call to the result of a
19572         parameterless function call returning an access subprogram.
19573
19574 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
19575
19576         Code clean up:
19577         * exp_ch7.adb (Make_Clean): Remove generation of calls to
19578         Unlock[_Entries], since this is now done by Service_Entries directly.
19579
19580         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
19581
19582         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
19583         Requeue_Call for better code readability. Change spec and update calls:
19584         PO_Service_Entries now unlock the PO on exit.
19585         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
19586         PO_Service_Entries.
19587
19588         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
19589
19590         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
19591
19592 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
19593
19594         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
19595         protected subprogram call and analyzing the result of such expanding
19596         in case when the called protected subprogram is eliminated.
19597
19598         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
19599         names.
19600
19601 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
19602
19603         * Makefile.in: Clean ups.
19604
19605 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
19606
19607         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
19608         protected operations if original subprogram is flagged as eliminated.
19609         (Expand_N_Subprogram_Body): For a protected operation, create
19610         discriminals for next operation before checking whether the operation
19611         is eliminated.
19612
19613         * exp_ch9.adb (Expand_N_Protected_Body,
19614         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
19615         for internal protected operations if the original subprogram is
19616         eliminated.
19617
19618         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
19619         declared in a single protected object.
19620
19621 2004-02-23  Vincent Celier  <celier@gnat.com>
19622
19623         * prj-attr.adb: Make attribute Builder'Executable an associative array,
19624         case insensitive if file names are case insensitive, instead of a
19625         standard associative array.
19626
19627         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
19628         them as case insensitive on platforms where the file names are case
19629         sensitive.
19630
19631         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
19632         project file has already been parsed that canonical path are compared.
19633
19634 2004-02-23  Robert Dewar  <dewar@gnat.com>
19635
19636         * sinput-c.ads: Correct bad unit title in header
19637
19638         * freeze.adb: Minor reformatting
19639
19640 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19641
19642         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
19643         nonaddressable COMPONENT_REF that is removing padding that we are
19644         taking the address of, take the address of the padded record instead
19645         if item is variable size.
19646
19647 2004-02-20  Robert Dewar  <dewar@gnat.com>
19648
19649         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
19650
19651 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
19652
19653         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
19654         itype references for the constrained designated type of a component
19655         whose base type is already frozen.
19656
19657 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
19658
19659         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
19660         avoid GCC warnings.
19661
19662 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
19663
19664         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
19665         identifier for a phantom package that rewrites the formal package
19666         declaration with a box. The Add semantic decorations for the defining
19667         identifier from the original node (that represents the formal package).
19668
19669 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
19670
19671         * Make-lang.in (ada/stamp-sdefault): Use the top level
19672         move-if-change.
19673
19674 2004-02-19  Richard Henderson  <rth@redhat.com>
19675
19676         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
19677
19678 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
19679
19680         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
19681         Scan_ALI can be used for multiple ALI files without reinitializing
19682         between calls.
19683
19684 2004-02-18  Robert Dewar  <dewar@gnat.com>
19685
19686         * debug.adb: Minor reformatting.
19687
19688 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19689
19690         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
19691         to zero if there is an address clause.
19692
19693 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
19694
19695         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
19696
19697 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
19698
19699         * layout.adb (Layout_Component_List): Revise generation of call to
19700         discriminant-checking function to pass selections of all of the type's
19701         discriminants rather than just the variant-controlling discriminant.
19702
19703 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
19704
19705         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
19706         fail in the current setup and triggers spurious system error messages.
19707         Pretend it occurred and failed instead.
19708
19709 2004-02-18  Vincent Celier  <celier@gnat.com>
19710
19711         * bld.adb: Mark FLDFLAGS as saved
19712         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
19713         it is not the root project.  Put each directory to be
19714         extended between double quotes to prevent it to be expanded on Windows.
19715         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
19716         the project file. Set them back to their initial values if they have not
19717         been set in the project file.
19718
19719         * gprcmd.adb: (Gprdebug, Debug): New global variables
19720         (Display_Command): New procedure
19721         (Usage): Document new command "linkopts"
19722         Call Display_Command when env var GPRDEBUG has the value "TRUE"
19723         Implement new command "linkopts"
19724         Remove quotes that may be around arguments for "extend"
19725         Always call Normalize_Pathname with arguments formatted for the platform
19726
19727         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
19728         Change @echo to @$(display) in target clean to be able to clean silently
19729
19730         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
19731
19732         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
19733         canonical case.
19734
19735         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
19736         = Extending_All when current project is an extending all project.
19737
19738         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
19739         set to True only for LINK command, after Unix switch -o.
19740         (Process_Arguments): Set Output_File_Expected to True for LINK command
19741         after Unix switch -o. When Output_File_Expected is True, never add an
19742         extension to a file name.
19743
19744         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
19745         option file name, only to the --for-linker= switch.
19746         (Option_File_Name): If option file name do not end with ".opt", append
19747         "/OPTIONS".
19748
19749 2004-02-18  GNAT Script  <nobody@gnat.com>
19750
19751         * Make-lang.in: Makefile automatically updated
19752
19753 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
19754
19755         * Make-lang.in (stamp-sdefault): Do not depend on
19756         move-if-change.
19757
19758 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
19759
19760         * config-lang.in: Disable Ada by default until probe logic for
19761         a bootstrap Ada compiler can be moved to the top level configure
19762         script.
19763
19764 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
19765
19766         * decl.c (components_to_record): Don't claim that the internal fields
19767         we make to hold the variant parts are semantically addressable, because
19768         they are not.
19769
19770         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
19771         adjust the comment describing the modular type form when we can use it.
19772         (Install_PAT): Account for the Esiz renaming.
19773
19774         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
19775         sc_onstack context indication before raising the exception to which
19776         the signal is mapped. Allows better handling of later signals possibly
19777         triggered by the resumed user code if the exception is handled.
19778
19779 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
19780
19781         * 5zinit.adb: Removed, no longer used.
19782
19783 2004-02-12  Robert Dewar  <dewar@gnat.com>
19784
19785         * ali.adb: Remove separating space between parameters on R line. Makes
19786         format consistent with format used by the binder for Set_Globals call.
19787
19788         * atree.ads, atree.adb: Minor reformatting (new function header format)
19789
19790         * bindgen.adb: Add Run-Time Globals documentation section containing
19791         detailed documentation of the globals passed from the binder file to
19792         the run time.
19793
19794         * gnatls.adb: Minor reformatting
19795
19796         * init.c (__gnat_set_globals): Add note pointing to documentation in
19797         bindgen.
19798
19799         * lib-writ.ads, lib-writ.adb: Remove separating space between
19800         parameters on R line.
19801         Makes format consistent with format used by the binder for Set_Globals
19802         call.
19803
19804         * osint.ads: Add 2004 to copyright notice
19805         Minor reformatting
19806
19807         * snames.ads: Correct capitalization of FIFO_Within_Priorities
19808         Noticed during code reading, documentation issue only
19809
19810         * usage.adb: Remove junk line for obsolete C switch
19811         Noticed during code reading
19812
19813 2004-02-12  Vincent Celier  <celier@gnat.com>
19814
19815         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
19816         extend for each directory, so that multiple /** directories are
19817         extended individually.
19818         (Recursive_Process): Set the default for LANGUAGES to ada
19819
19820         * gprcmd.adb: Define new command "ignore", to do nothing.
19821         Implement new comment "path".
19822
19823         * Makefile.generic: Suppress output when SILENT is set
19824         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
19825         used, so that the correct compiler is invoked.
19826         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
19827         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
19828
19829 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
19830
19831         * Makefile.in: Clean ups and remove obsolete targets.
19832
19833 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
19834
19835         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
19836         predicate declared in exp_util.
19837
19838         * exp_util.adb: Add comments.
19839
19840         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
19841         visibility before compiling context of the subunit.
19842
19843         * sem_res.adb (Check_Parameterless_Call): If the context expects a
19844         value but the name is a procedure, do not attempt to analyze as a call,
19845         in order to obtain more telling diagnostics.
19846
19847         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
19848         'Access on parameterless function calls.
19849         (Normalize_Actuals): For a parameterless function call with missing
19850         actuals, defer diagnostic until resolution of enclosing call.
19851
19852         * sem_util.adb (Wrong_Type): If the context type is an access to
19853         subprogram and the expression is a procedure name, suggest a missing
19854         'attribute.
19855
19856 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
19857             Nathanael Nerode  <neroden@gcc.gnu.org>
19858
19859         PR ada/6637, PR ada/5911
19860         Merge with libada-branch:
19861         * config-lang.in: Build libada only when ada is built.
19862
19863 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19864
19865         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
19866         for a tagged type, verify that both formals have the same type.
19867
19868         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
19869         temporary when the formal is an in-parameter and the actual a possibly
19870         unaligned slice.
19871
19872         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
19873         when expansion is disabled, to ensure proper name capture with
19874         overloaded literals.  Condition can be of any boolean type, resolve
19875         accordingly.
19876
19877         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
19878         renaming is for a formal subprogram with a default operator name, and
19879         there is a usable operator that is visible at the point of
19880         instantiation.
19881
19882 2004-02-09  Robert Dewar  <dewar@gnat.com>
19883
19884         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
19885         rewrite to ignore errors in ali files, intended to allow tools downward
19886         compatibility with new versions of ali files.
19887
19888         * ali.ads: Add new parameter Ignore_Errors
19889
19890         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
19891         duplicating the error message giving the file with restrictions.
19892
19893         * debug.adb: Add debug flag I for gnatbind
19894
19895         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
19896         operators for the case where the operator is a defining operator.
19897
19898         * exp_ch3.adb: Minor reformatting (new function spec format).
19899
19900         * exp_ch4.adb: Add comment for previous change, and make minor
19901         adjustment to loop to always check for improper loop termination.
19902         Minor reformatting throughout (new function spec format).
19903
19904         * gnatbind.adb: Implement -di debug flag for gnatbind
19905
19906         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
19907
19908         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
19909
19910         * lib-load.adb: Fix bad assertion.
19911         Found by testing and code reading.
19912         Minor reformatting.
19913
19914         * lib-load.ads: Minor reformatting.
19915
19916         * lib-writ.adb: There is only one R line now.
19917
19918         * lib-writ.ads: Add documentation on making downward compatible changes
19919         to ali files so old tools work with new ali files.
19920         There is only one R line now.
19921         Add documentation on format incompatibilities (with special GPS note)
19922
19923         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
19924
19925         * par-load.adb: Minor reformatting
19926
19927         * sem_ch8.adb: Fix to error message from last update
19928         Minor reformatting and restructuring of code from last update
19929
19930         * par-prag.adb, snames.adb, snames.ads, snames.h,
19931         sem_prag.adb: Implement pragma Profile.
19932
19933         * stylesw.adb: Implement -gnatyN switch to turn off all style check
19934         options.
19935
19936         * usage.adb: Add line for -gnatyN switch
19937
19938         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
19939
19940 2004-02-09  Albert Lee  <lee@gnat.com>
19941
19942         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
19943
19944 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19945
19946         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
19947         slices.
19948
19949         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
19950         is nested in an instance that is not frozen yet, to avoid
19951         order-of-elaboration problems in gigi.
19952
19953         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
19954         body the attribute is legal.
19955
19956 2004-02-09  Robert Dewar  <dewar@gnat.com>
19957
19958         * s-rident.ads: Minor comment correction
19959
19960         * targparm.adb: Remove dependence on uintp completely. There was
19961         always a bug in Make in that it called Targparm before initializing
19962         the Uint package. The old code appeared to get away with this, but
19963         the new code did not! This caused an assertion error in gnatmake.
19964
19965         * targparm.ads: Fix bad comment, restriction pragmas with parameters
19966         are indeed fully supported.
19967
19968 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
19969
19970         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
19971
19972 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
19973
19974         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
19975         with targetm.calls.promote_prototypes.
19976
19977 2004-02-04  Robert Dewar  <dewar@gnat.com>
19978
19979         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
19980         ali.ads, gprcmd.adb: Minor reformatting
19981
19982         * bindgen.adb: Output restrictions string for new style restrictions
19983         handling
19984
19985         * impunit.adb: Add s-rident.ads (System.Rident) and
19986         s-restri (System.Restrictions)
19987
19988         * lib-writ.adb: Fix bug in writing restrictions string (last few
19989         entries wrong)
19990
19991         * s-restri.ads, s-restri.adb: Change name Restrictions to
19992         Run_Time_Restrictions to avoid conflict with package name.
19993         Add circuit to read and acquire run time restrictions.
19994
19995 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
19996
19997         * restrict.ads, restrict.adb: Use the new restriction
19998         No_Task_Attributes_Package instead of the old No_Task_Attributes.
19999
20000         * sem_prag.adb: No_Task_Attributes is a synonym of
20001         No_Task_Attributes_Package.
20002
20003         * snames.ads, snames.adb: New entry for proper handling of
20004         No_Task_Attributes.
20005
20006         * s-rident.ads: Adding restriction No_Task_Attributes_Package
20007         (AI-00249) that supersedes the GNAT specific restriction
20008         No_Task_Attributes.
20009
20010 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
20011
20012         * sem_prag.adb:
20013         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
20014          body, an identifier may be wrapped in an unchecked conversion.
20015
20016 2004-02-04  Vincent Celier  <celier@gnat.com>
20017
20018         * lib-writ.ads: Comment update for the W lines
20019
20020         * bld.adb: (Expression): An empty string list is static
20021
20022         * fname-uf.adb: Minor comment update
20023
20024         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
20025
20026         * gnatbind.adb: Initialize Cumulative_Restrictions with the
20027         restrictions on the target.
20028
20029 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
20030
20031         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
20032         gen_rtx.
20033
20034 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
20035
20036         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
20037
20038 2004-02-02  Vincent Celier  <celier@gnat.com>
20039
20040         * gprcmd.adb (Check_Args): If condition is false, print the invoked
20041         comment before the usage.
20042         Gprcmd: Fail when command is not recognized.
20043         (Usage): Document command "prefix"
20044
20045         * g-md5.adb (Digest): Process last block.
20046         (Update): Do not process last block. Store remaining characters and
20047         length in Context.
20048
20049         * g-md5.ads (Update): Document that several call to update are
20050         equivalent to one call with the concatenated string.
20051         (Context): Add fields to allow new Update behaviour.
20052
20053         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
20054         defaulted to False.
20055         When May_Fail is True and no existing file can be found, return No_File.
20056
20057         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
20058         functions.
20059
20060         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
20061         spec file name instead on the W line.
20062
20063 2004-02-02  Robert Dewar  <dewar@gnat.com>
20064
20065         * ali.adb: Read and acquire info from new format restrictions lines
20066
20067         * bcheck.adb: Add circuits for checking restrictions with parameters
20068
20069         * bindgen.adb: Output dummy restrictions data
20070         To be changed later
20071
20072         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
20073         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
20074         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
20075         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
20076         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
20077
20078         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
20079         the warning message on access to possibly uninitialized variable S)
20080         Minor changes for new restrictions handling.
20081
20082         * gnatbind.adb: Minor reformatting
20083         Minor changes for new restrictions handling
20084         Move circuit for -r processing here from bcheck (cleaner)
20085
20086         * gnatcmd.adb, gnatlink.adb: Minor reformatting
20087
20088         * lib-writ.adb: Output new format restrictions lines
20089
20090         * lib-writ.ads: Document new R format lines for new restrictions
20091         handling.
20092
20093         * s-restri.ads/adb: New files
20094
20095         * Makefile.rtl: Add entry for s-restri.ads/adb
20096
20097         * par-ch3.adb: Fix bad error messages starting with upper case letter
20098         Minor reformatting
20099
20100         * restrict.adb: Major rewrite throughout for new restrictions handling
20101         Major point is to handle restrictions with parameters
20102
20103         * restrict.ads: Major changes in interface to handle restrictions with
20104         parameters. Also generally simplifies setting of restrictions.
20105
20106         * snames.ads/adb: New entry for proper handling of No_Requeue
20107
20108         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
20109         restriction counting.
20110         Other minor changes for new restrictions handling
20111
20112         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
20113         Restriction_Warnings now allows full parameter notation
20114         Major rewrite of Restrictions for new restrictions handling
20115
20116 2004-02-02  Javier Miranda  <miranda@gnat.com>
20117
20118         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
20119         syntax rule for object renaming declarations.
20120         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
20121         component definitions.
20122
20123         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
20124         components.
20125         (Array_Type_Declaration): Give support to access components. In addition
20126         it was also modified to reflect the name of the object in anonymous
20127         array types. The old code did not take into account that it is possible
20128         to have an unconstrained anonymous array with an initial value.
20129         (Check_Or_Process_Discriminants): Allow access discriminant in
20130         non-limited types.
20131         (Process_Discriminants): Allow access discriminant in non-limited types
20132         Initialize the new Access_Definition field in N_Object_Renaming_Decl
20133         node.  Change Ada0Y to Ada 0Y in comments
20134
20135         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
20136         equality operators.
20137         Change Ada0Y to Ada 0Y in comments
20138
20139         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
20140         renamings Change Ada0Y to Ada 0Y in comments
20141
20142         * sem_type.adb (Find_Unique_Type): Give support to the equality
20143         operators for universal access types
20144         Change Ada0Y to Ada 0Y in comments
20145
20146         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
20147
20148         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
20149         field.
20150         (N_Object_Renaming_Declaration): Addition of Access_Definition field
20151         Change Ada0Y to Ada 0Y in comments
20152
20153         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
20154         component definition and object renaming nodes
20155         Change Ada0Y to Ada 0Y in comments
20156
20157 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
20158
20159         * restrict.adb: Use the new restriction identifier
20160         No_Requeue_Statements instead of the old No_Requeue for defining the
20161         restricted profile.
20162
20163         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
20164         No_Requeue_Statements.
20165
20166         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
20167         that supersedes the GNAT specific restriction No_Requeue. The later is
20168         kept for backward compatibility.
20169
20170 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
20171
20172         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
20173         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
20174         pragma and fix incorrect ones.
20175
20176         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
20177         warning if the pragma is redundant.
20178
20179 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
20180
20181         * 5staprop.adb: Add missing 'constant' keywords.
20182
20183         * Makefile.in: use consistent value for SYMLIB on
20184         platforms where libaddr2line is supported.
20185
20186 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20187
20188         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
20189         annotating types.
20190
20191 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
20192
20193         * init.c (__gnat_install_handler): Setup an alternate stack for signal
20194         handlers in the environment thread. This allows proper propagation of
20195         an exception on stack overflows in this thread even when the builtin
20196         ABI stack-checking scheme is used without support for a stack reserve
20197         region.
20198
20199         * utils.c (create_field_decl): Augment the head comment about bitfield
20200         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
20201         here, because the former is not accurate enough at this point.
20202         Let finish_record_type decide instead.
20203         Don't make a bitfield if the field is to be addressable.
20204         Always set a size for the field if the record is packed, to ensure the
20205         checks for bitfield creation are triggered.
20206         (finish_record_type): During last pass over the fields, clear
20207         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
20208         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
20209         from DECL_BIT_FIELD.
20210
20211 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
20212
20213         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
20214         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
20215         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
20216
20217 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20218
20219         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
20220
20221         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
20222         (ZCX_By_Default): Likewise.
20223         (Front_End_ZCX_Support): Likewise.
20224
20225         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
20226         (Initialize_Lock): Mark Level unreferenced.
20227         (Sleep): Mark Reason unreferenced.
20228         (Timed_Sleep): Likewise.
20229         (Wakeup): Likewise.
20230         (Exit_Task): Use Result.
20231         (Check_No_Locks): Mark Self_ID unreferenced.
20232
20233         * 5gtasinf.adb (New_Sproc): Make Attr constant.
20234         (Bound_Thread_Attributes): Make Sproc constant.
20235         (New_Bound_Thread_Attributes): Likewise.
20236
20237 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20238
20239         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
20240         one-dimensional array an slice assignments, when component type is
20241         controlled.
20242
20243         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
20244         component type is controlled, and control_actions are in effect, use
20245         TSS procedure rather than generating inline code.
20246
20247         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
20248         arrays with controlled components.
20249
20250 2004-01-26  Vincent Celier  <celier@gnat.com>
20251
20252         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
20253         command line for the non VMS case.
20254
20255         * gnatlink.adb (Process_Binder_File): When building object file, if
20256         GNU linker is used, put all object paths between quotes, to prevent ld
20257         error when there are unusual characters (such as '!') in the paths.
20258
20259         * Makefile.generic: When there are sources in Ada and the main is in
20260         C/C++, invoke gnatmake with -B, instead of -z.
20261
20262         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
20263         from VMS_Conversion.
20264         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
20265         specification of argument file on the command line.
20266
20267 2004-01-26  Bernard Banner  <banner@gnat.com>
20268
20269         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
20270
20271 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20272
20273         * snames.adb: Update copyright notice.
20274         Add info on slice assignment for controlled arrays.
20275
20276 2004-01-23  Robert Dewar  <dewar@gnat.com>
20277
20278         * exp_aggr.adb: Minor reformatting
20279
20280         * exp_ch9.adb: Minor code clean up
20281         Minor reformatting
20282         Fix bad character in comment
20283
20284         PR ada/13471
20285         * targparm.adb (Get_Target_Parameters): Give clean abort error on
20286         unexpected end of file, along with more detailed message.
20287
20288 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20289
20290         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
20291         PAT.
20292
20293         * decl.c (copy_alias_set): New function.
20294         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
20295
20296 2004-01-23  Doug Rupp  <rupp@gnat.com>
20297
20298         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
20299         lib$${file} in case subsequent character is not a separator.
20300
20301 2004-01-23  Vincent Celier  <celier@gnat.com>
20302
20303         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
20304         when the GCC version is at least 3.
20305
20306         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
20307         Remove all "Opt.", to prepare for opt split
20308
20309         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
20310         Extends_All. Set to True when the project parsed is an extending all
20311         project. Fails for importing an extending all project only when the
20312         imported project is an extending all project.
20313         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
20314         depending on the value of Extends_All returned.
20315
20316         * prj-proc.adb (Process): Check that no project shares its object
20317         directory with a project that extends it, directly or indirectly,
20318         including a virtual project.
20319         Check that no project extended by another project shares its object
20320         directory with another also extended project.
20321
20322         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
20323         Kind = N_With_Clause
20324
20325         * prj-tree.ads: Minor reformatting
20326         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
20327
20328 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
20329
20330         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
20331         applies to a type with an incomplete view, use full view in Name of
20332         clause, for consistency with uses of Get_Attribute_Definition_Clause.
20333
20334 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
20335
20336         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
20337         SCHED_RR, since other values are not supported by this policy.
20338         (Initialize): Move initialization of mutex attribute to package
20339         elaboration, to prevent early access to this variable.
20340
20341         * Makefile.in: Remove mention of Makefile.adalib, unused.
20342
20343         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20344         1ssecsta.ads: Removed, unused.
20345
20346 2004-01-21  Javier Miranda  <miranda@gnat.com>
20347
20348         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
20349         entity if already built in the current scope.
20350
20351         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
20352         reminder in internal scopes. Required for nested limited aggregates.
20353
20354 2004-01-21  Doug Rupp  <rupp@gnat.com>
20355
20356         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
20357         VMS. Replace all occurences of libgnat- and libgnarl- with
20358         libgnat$(hyphen) and libgnarl$(hyphen).
20359         Fixed shared library build problem on VMS.
20360
20361 2004-01-21  Robert Dewar  <dewar@gnat.com>
20362
20363         * mlib-prj.adb: Minor reformatting
20364
20365 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
20366
20367         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
20368         'constant' keywords for declaration of pointers that are not modified.
20369
20370         * exp_pakd.adb: Fix English in comment.
20371
20372 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
20373
20374         PR ada/10889
20375         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
20376         copy all attributes of the parent, including the foreign language
20377         convention.
20378
20379 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
20380
20381         PR ada/10565
20382         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
20383         for 'delay until' statement.
20384
20385 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
20386
20387         * Make-lang.in: Replace $(docdir) with doc.
20388         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
20389         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
20390         to use consistent MAKEINFO rule.
20391         (ada.man, ada.srcman): Dummy entry.
20392         (ADA_INFOFILES): Define.
20393         (ada.info, ada.srcinfo): New rules.
20394
20395 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
20396
20397         * utils.c: Update copyright notice, missed in previous change.
20398
20399 2004-01-19  Vincent Celier  <celier@gnat.com>
20400
20401         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
20402         args if Bind is True. Set First_ALI, if not already done.
20403         (Build_Library): For Stand Alone Libraries, extract from one ALI file
20404         an eventual --RTS switch, for gnatbind, and all backend switches +
20405         --RTS, for linking.
20406
20407 2004-01-19  Robert Dewar  <dewar@gnat.com>
20408
20409         * sem_attr.adb, memtrack.adb: Minor reformatting
20410
20411 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
20412
20413         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
20414         that rename enumeration literals. This is properly done in sem_eval.
20415
20416         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
20417         to functions that rename enumeration literals.
20418
20419         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
20420         functions that rename enumeration literals.
20421
20422 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
20423
20424         * Make-lang.in (utils.o): Depend on target.h.
20425         * utils.c: Include target.h.
20426         (process_attributes): Use targetm.have_named_sections instead
20427         of ASM_OUTPUT_SECTION_NAME.
20428
20429 2004-01-16  Andreas Jaeger  <aj@suse.de>
20430
20431         * Makefile.in: Add $(DESTDIR).
20432
20433 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
20434
20435         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
20436         also when not defining if a Size clause applies. That information is
20437         not to be ignored.
20438
20439 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
20440
20441         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
20442         symbolic links for the shared gnat run time when needed.
20443
20444 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
20445
20446         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
20447         for writing, and terminate with an error message if not.
20448
20449 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
20450
20451         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
20452         warning on an access to subprogram in an instance, when the target
20453         type is declared in the same generic unit.
20454         (Eval_Attribute): If 'access is known to fail accessibility check,
20455         rewrite as a raise statement.
20456
20457 2004-01-15  GNAT Script  <nobody@gnat.com>
20458
20459         * Make-lang.in: Makefile automatically updated
20460
20461 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
20462
20463         * Make-lang.in (ada.srcextra): Dummy entry.
20464
20465 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
20466
20467         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
20468
20469 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
20470
20471         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
20472         components that are initialized with aggregates.
20473
20474 2004-01-13  Vincent Celier  <celier@gnat.com>
20475
20476         * gnatlink.adb (Process_Binder_File): To find directory of shared
20477         libgcc, if "gcc-lib" is not a subdirectory, look for the last
20478         subdirectory "lib" in the path of the shared libgnat or libgnarl.
20479
20480         * make.adb (Gnatmake): If GCC version is at least 3, link with
20481         -shared-libgcc, when there is at least one shared library project.
20482
20483         * opt.ads (GCC_Version): New integer constant.
20484
20485         * adaint.c (get_gcc_version): New function.
20486
20487 2004-01-13  Robert Dewar  <dewar@gnat.com>
20488
20489         * sem_dist.adb, sem_res.adb, sem_util.adb,
20490         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
20491         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
20492
20493 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
20494
20495         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
20496         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
20497         declarations.
20498
20499 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
20500
20501         * misc.c: Remove trailing spaces.
20502         Update copyright notice missed in previous change.
20503
20504         PR ada/13572
20505         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
20506         prefix/share/make
20507
20508         * Makefile.generic: Update copyright.
20509         Add license notice.
20510
20511         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
20512         of prefix/share/make.
20513
20514         * Makefile.prolog: Update copyright.
20515         Add license notice.
20516
20517 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
20518
20519         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
20520         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
20521         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
20522         instead of String.
20523
20524         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
20525         signature.
20526
20527 2004-01-12  Javier Miranda  <miranda@gnat.com>
20528
20529         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
20530         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
20531         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
20532         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
20533         Component_Definition node.
20534
20535 2004-01-12  Ed Falis  <falis@gnat.com>
20536
20537         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
20538
20539 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
20540
20541         * link.c: Change default libgnat kind to STATIC for FreeBSD.
20542
20543 2004-01-12  Bernard Banner  <banner@gnat.com>
20544
20545         * Makefile.in: map 86numaux to a-numaux for x86_64
20546
20547 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
20548
20549         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
20550         generated to rename a generic actual, go to the actual itself, the
20551         subtype is not a user-visible entity.
20552
20553         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
20554         part is a private subtype, reset the visibility of its full view, if
20555         any, to be consistent.
20556
20557         PR ada/13417
20558         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
20559         to use a generic package G as a formal package for another generic
20560         declared within G.
20561
20562 2004-01-12  Robert Dewar  <dewar@gnat.com>
20563
20564         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
20565
20566         * usage.adb: Remove mention of obsolete -gnatwb switch
20567         Noticed during code reading
20568
20569 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
20570
20571         * 1ssecsta.adb: Minor changes for -gnatwa warnings
20572
20573 2004-01-12  GNAT Script  <nobody@gnat.com>
20574
20575         * Make-lang.in: Makefile automatically updated
20576
20577 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20578
20579         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
20580
20581 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20582
20583         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
20584
20585 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
20586
20587         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
20588         Update comment and copyright date.
20589         * stamp-xgnatug: Delete.
20590
20591 2004-01-05  Robert Dewar  <dewar@gnat.com>
20592
20593         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
20594         be modified by the binder generated main program if the -D switch is
20595         used.
20596
20597         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
20598         imported functions (since now we expect this to be done for imported
20599         functions)
20600
20601         * 5vtaprop.adb: Add several ??? for sections requiring more comments
20602         Minor reformatting throughout
20603
20604         * 5zinit.adb: Minor reformatting
20605         Add 2004 to copyright date
20606         Minor changes to avoid -gnatwa warnings
20607         Correct some instances of using OR instead of OR ELSE (noted while
20608         doing reformatting)
20609
20610         * sprint.adb: Minor updates to avoid -gnatwa warnings
20611
20612         * s-secsta.ads, s-secsta.adb:
20613         (SS_Get_Max): New function to obtain high water mark for ss stack
20614         Default_Secondary_Stack is not a constant since it may be modified by
20615         the binder generated main program if the -D switch is used.
20616
20617         * switch-b.adb: New -Dnnn switch for binder
20618
20619         * switch-c.adb:
20620         Make -gnatg imply all warnings currently in -gnatwa
20621
20622         * vms_conv.adb: Minor reformatting
20623         Add 2004 to copyright notice
20624         Add 2004 to printed copyright notice
20625
20626         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
20627         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
20628         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
20629         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
20630         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
20631         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
20632         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
20633         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
20634         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
20635         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
20636         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
20637         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
20638         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
20639         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
20640         checks.adb, clean.adb, cstand.adb, einfo.ads,
20641         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
20642         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
20643         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
20644         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
20645         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
20646         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
20647         Minor reformatting and code clean ups.
20648         Minor changes to prevent -gnatwa warnings
20649
20650         * ali.adb: Minor reformatting and cleanup of code
20651         Acquire new SS indication of secondary stack use from ali files
20652
20653         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
20654         (since now we expect this to be done for imported functions)
20655
20656         * bindgen.adb: Generate call to modify default secondary stack size if
20657         -Dnnn switch given
20658
20659         * bindusg.adb: Add line for new -D switch
20660
20661         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
20662         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
20663         Add circuitry for both records and arrays to avoid gigi
20664         processing if the type involved has non-bit-aligned components
20665
20666         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
20667         N_String_Literal node always references an E_String_Literal_Subtype
20668         entity. This may not be true in the future.
20669         (Possible_Bit_Aligned_Component): Move processing of
20670         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
20671
20672         * exp_ch6.adb (Expand_Thread_Body): Pick up
20673         Default_Secondary_Stack_Size as variable so that we get value modified
20674         by possible -Dnnn binder parameter.
20675
20676         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
20677         (Type_May_Have_Bit_Aligned_Components): New function.
20678
20679         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
20680         (Type_May_Have_Bit_Aligned_Components): New function.
20681
20682         * fe.h: (Set_Identifier_Casing): Fix prototype.
20683         Add declaration for Sem_Elim.Eliminate_Error_Msg.
20684         Minor reformatting.
20685
20686         * freeze.adb (Freeze_Entity): Add RM reference to error message about
20687         importing constant atomic/volatile objects.
20688         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
20689         unless explicit Pure_Function pragma given, to avoid insidious bug of
20690         call to non-pure imported function getting eliminated.
20691
20692         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
20693         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
20694         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
20695         Add 2004 to printed copyright notice
20696
20697         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
20698         stack used.
20699
20700         * Makefile.rtl: Add entry for g-sestin.o
20701         g-sestin.ads: New file.
20702
20703         * mdll.adb: Minor changes to avoid -gnatwa warnings
20704
20705         * mlib-tgt.adb: Minor reformatting
20706
20707         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
20708         New switch Sec_Stack_Used (GNAT, GNATBIND)
20709         Make Default_Secondary_Stack_Size a variable instead of a constant,
20710         so that it can be modified by the new -Dnnn bind switch.
20711
20712         * rtsfind.adb (Load_Fail): Give full error message in configurable
20713         run-time mode if all_errors mode is set. This was not done in the case
20714         of a file not found, which was an oversight.
20715         Note if secondary stack unit is used by compiler.
20716
20717         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
20718         ineffective elaborate all pragmas on non-visible packages (this
20719         happened when a renamed subprogram was called). Now the elaborate all
20720         always goes on the package containing the renaming rather than the one
20721         containing the renamed subprogram.
20722
20723         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
20724         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
20725
20726         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
20727         has an Etype that references an E_String_Literal.
20728         (Eval_String_Literal): Avoid assumption that N_String_Literal node
20729         always references an E_String_Literal_Subtype entity. This may not
20730         be true in the future.
20731
20732         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
20733         pragma location.
20734
20735         * sem_res.adb (Resolve): Specialize msg for function name used in proc
20736         call.
20737
20738 2004-01-05  Ed Falis  <falis@gnat.com>
20739
20740         * g-debuti.adb: Replaced direct boolean operator with short-circuit
20741         form.
20742
20743 2004-01-05  Vincent Celier  <celier@gnat.com>
20744
20745         * bld.adb: Minor comment updates
20746         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
20747         of Item_Name).
20748
20749         * make.adb (Gnatmake): Special process for files to compile/check when
20750         -B is specified. Fail when there are only foreign mains in attribute
20751         Main of the project file and -B is not specified. Do not skip bind/link
20752         steps when -B is specified.
20753
20754         * makeusg.adb: Document new switch -B
20755
20756         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
20757
20758         * switch-m.adb: (Scan_Make_Switches): Process -B switch
20759
20760         * vms_data.ads: Add new GNAT PRETTY qualifier
20761         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
20762
20763 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20764
20765         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
20766         case.
20767
20768         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
20769         Set_Identifier_Casing.
20770
20771         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
20772         has size that overflows.
20773
20774 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
20775
20776         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
20777         -gnatwa warning on static condition.
20778
20779 2004-01-05  Doug Rupp  <rupp@gnat.com>
20780
20781         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
20782
20783 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
20784
20785         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
20786         all attributes, including read-only attribute.
20787
20788 2004-01-05  Pascal Obry  <obry@gnat.com>
20789
20790         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
20791         library naming scheme.
20792
20793         * mlib-prj.adb (Build_Library): Generate different names for the static
20794         or dynamic version of the GNAT runtime. This is needed to support the
20795         new shared library naming scheme.
20796         (Process_Binder_File): Add detection of shared library in binder file
20797         based on the new naming scheme.
20798
20799         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
20800         scheme for the shared runtime libraries.
20801
20802         * Makefile.in:
20803         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
20804         scheme.
20805         (install-gnatlib): Do not create symlinks for shared libraries.
20806         (gnatlib-shared-default): Idem.
20807         (gnatlib-shared-dual-win32): New target. Not used for now as the
20808         auto-import feature does not support arrays/records.
20809         (gnatlib-shared-win32): Do not create copy for the shared libraries.
20810         (gnatlib-shared-vms): Fix shared runtime libraries names.
20811
20812         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
20813         dependent runtime shared library name.
20814
20815 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
20816
20817         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
20818         than the object.
20819
20820 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
20821
20822         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
20823         protected objects when allocator has a subtype indication, not a
20824         qualified expression. Note that qualified expressions may have to be
20825         checked when limited aggregates are implemented.
20826
20827         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
20828         pure, emit warning.
20829         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
20830         subprogram is imported, remove warning.
20831
20832 2004-01-05  Geert Bosch  <bosch@gnat.com>
20833
20834         * s-poosiz.adb: Update copyright notice.
20835         (Allocate): Use Task_Lock to protect against concurrent access.
20836         (Deallocate): Likewise.
20837
20838 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
20839
20840         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
20841         comment.
20842
20843 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
20844
20845         * gnat_ug.texi: Force a CVS commit by updating copyright.
20846         * gnat_ug_vxw.texi: Regenerate.
20847         * gnat_ug_wnt.texi: Regenerate.
20848         * gnat_ug_vms.texi: Regenerate.
20849         * gnat_ug_unx.texi: Regenerate.
20850
20851 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
20852
20853         * trans.c: Remove uses of "register" specifier in
20854         declarations of local variables.
20855
20856 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
20857
20858         * stamp-xgnatug: New stamp file.
20859         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
20860         (ada/doctools/xgnatug): Add $(build_exeext).
20861         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
20862         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
20863
20864 2003-12-17  Ed Falis  <falis@gnat.com>
20865
20866         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
20867         eliminate warning.
20868
20869         * a-exextr.adb: Add context clause for
20870         Ada.Exceptions.Last_Chance_Handler.
20871
20872 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
20873
20874         * cstand.adb (Create_Standard): Change the way how the declaration of
20875         the Duration type is created (making it the same way as it is for all
20876         the other standard types).
20877
20878 2003-12-17  Robert Dewar  <dewar@gnat.com>
20879
20880         * s-crtl.ads: Fix header format
20881         Change Pure to Preelaborate
20882
20883 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
20884
20885         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
20886         the expression type only if it is declared in the current unit.
20887
20888         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
20889         are universal and already analyzed, as can occur in constrained
20890         subcomponents that depend on discriminants, when one constraint is a
20891         subtype mark.
20892
20893         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
20894         type Any_Fixed is legal as the argument of a conversion, if only one
20895         fixed-point type is in context.
20896
20897 2003-12-17  GNAT Script  <nobody@gnat.com>
20898
20899         * Make-lang.in: Makefile automatically updated
20900
20901 2003-12-15  Robert Dewar  <dewar@gnat.com>
20902
20903         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
20904         sec stack size.
20905
20906 2003-12-15  Vincent Celier  <celier@gnat.com>
20907
20908         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
20909         (Gnatchop): Do not set failure status when reporting the number of
20910         warnings.
20911
20912 2003-12-15  Doug Rupp  <rupp@gnat.com>
20913
20914         * s-ctrl.ads: New file.
20915
20916         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
20917
20918         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
20919         (GNATBIND_OBJS): Add ada/s-crtl.o.
20920
20921         * Makefile.in [VMS]: Clean up ifeq rules.
20922
20923         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
20924         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
20925         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
20926         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
20927         s-tasdeb.adb: Update copyright.
20928         Import System.CRTL.
20929         Make minor modifications to use System.CRTL declared functions instead
20930         of importing locally.
20931
20932 2003-12-15  GNAT Script  <nobody@gnat.com>
20933
20934         * Make-lang.in: Makefile automatically updated
20935
20936 2003-12-11  Ed Falis  <falis@gnat.com>
20937
20938         * 5zinit.adb: Clean up.
20939
20940         * 5zintman.adb (Notify_Exception): replaced case statement with a call
20941         to __gnat_map_signal, imported from init.c to support
20942         signal -> exception mappings that depend on the vxWorks version.
20943
20944         * init.c:
20945         Created and exported __gnat_map_signal to support signal -> exception
20946         mapping that is dependent on the VxWorks version.
20947         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
20948
20949 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
20950
20951         * 5wosinte.ads: Link with -mthreads switch.
20952
20953 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
20954
20955         * init.c (__gnat_install_handler [NetBSD]): Set
20956         __gnat_handler_installed, as done on all other platforms.
20957         Remove duplicated code.
20958
20959 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
20960
20961         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
20962
20963 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
20964
20965         * sinfo.ads: Fix inconsistent example code in comment.
20966
20967 2003-12-11  Robert Dewar  <dewar@gnat.com>
20968
20969         * a-tiinau.adb: Add a couple of comments
20970
20971         * sem_ch3.adb: Minor reformatting
20972
20973         * sem_prag.adb:
20974         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
20975         Minor reformatting throughout
20976
20977 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
20978
20979         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
20980         bounds of a loop, create a separate block in order to generate proper
20981         cleanup actions to prevent memory leaks.
20982
20983         * sem_res.adb (Resolve_Call): After a call to
20984         Establish_Transient_Scope, the call may be rewritten and relocated, in
20985         which case no further processing is needed.
20986
20987         * sem_util.adb: (Wrong_Type): Refine previous fix.
20988          Fixes ACATS regressions.
20989
20990         PR ada/13353
20991
20992         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
20993         be inlined.
20994
20995 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
20996
20997         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
20998         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
20999         obsolete files.
21000
21001         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
21002         (rts-zfp): Ditto.
21003
21004 2003-12-08  Robert Dewar  <dewar@gnat.com>
21005
21006         * 7sintman.adb: Minor reformatting
21007
21008         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
21009         standard linker options to get standard libraries linked. We now plan
21010         to provide dummy versions of these libraries to match the appropriate
21011         configurable run-time (e.g. if a library is not needed at all, provide
21012         a dummy empty library).
21013
21014         * targparm.ads: Configurable_Run_Time mode no longer affects linker
21015         options (-L parameters and standard libraries). What we plan to do is
21016         to provide dummy libraries where the libraries are not required.
21017
21018         * gnatbind.adb: Minor comment improvement
21019
21020 2003-12-08  Javier Miranda  <miranda@gnat.com>
21021
21022         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
21023         aggregate in the parent. Otherwise constants with limited aggregates
21024         are not supported. Add new formal to pass the component type (Ctype).
21025         It is required to call the corresponding IP subprogram in case of
21026         default initialized components.
21027         (Gen_Assign): In case of default-initialized component, generate a
21028         call to the IP subprogram associated with the component.
21029         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
21030         of aggregate with default initialized components.
21031         (Has_Default_Init_Comps): Improve implementation to recursively check
21032         all the present expressions.
21033
21034         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
21035         to indicate that the initialization call corresponds to a
21036         default-initialized component of an aggregate.
21037         In case of default initialized aggregate with tasks this parameter is
21038         used to generate a null string (this is just a workaround that must be
21039         improved later). In case of discriminants, this parameter is used to
21040         generate a selected component node that gives access to the discriminant
21041         value.
21042
21043         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
21044         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
21045         allocated aggregates with default-initialized components.
21046
21047         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
21048         the box notation is used in positional aggregates.
21049
21050 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
21051
21052         * lib.ads: Fix typo in comment
21053
21054 2003-12-08  Vincent Celier  <celier@gnat.com>
21055
21056         * prj.adb (Project_Empty): New component Unkept_Comments
21057         (Scan): Remove procedure; moved to Prj.Err.
21058
21059         * prj.ads (Project_Data): New Boolean component Unkept_Comments
21060         (Scan): Remove procedure; moved to Prj.Err.
21061
21062         * prj-dect.adb: Manage comments for the different declarations.
21063
21064         * prj-part.adb (With_Record): New component Node
21065         (Parse): New Boolean parameter Store_Comments, defaulted to False.
21066         Set the scanner to return ends of line and comments as tokens, if
21067         Store_Comments is True.
21068         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
21069         comments are associated with these nodes. Store the node IDs in the
21070         With_Records.
21071         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
21072         With_Records.
21073         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
21074         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
21075         current project. Call Tree.Restore afterwards. Set the various nodes
21076         for comment storage (Next_End, End_Of_Line, Previous_Line,
21077         Previous_End).
21078
21079         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
21080         defaulted to False.
21081
21082         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
21083         to False. When Truncated is True, truncate the string, never go to the
21084         next line.
21085         (Write_End_Of_Line_Comment): New procedure
21086         (Print): Process comments for nodes N_With_Clause,
21087         N_Package_Declaration, N_String_Type_Declaration,
21088         N_Attribute_Declaration, N_Typed_Variable_Declaration,
21089         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
21090         Process nodes N_Comment.
21091
21092         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
21093         without comments and there are some comments, set the flag
21094         Unkept_Comments to True.
21095         (Scan): If there are comments, set the flag Unkept_Comments to True and
21096         clear the comments.
21097         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
21098         (Next_End_Nodes: New table
21099         (Comment_Zones_Of): New function
21100         (Scan): New procedure; moved from Prj. Accumulate comments in the
21101         Comments table and set end of line comments, comments after, after end
21102         and before end.
21103         (Add_Comments): New procedure
21104         (Save, Restore, Seset_State): New procedures
21105         (There_Are_Unkept_Comments): New function
21106         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
21107         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
21108         procedures.
21109         (First_Comment_After, First_Comment_After_End): New functions
21110         (First_Comment_Before, First_Comment_Before_End): New functions
21111         (Next_Comment): New function
21112         (End_Of_Line_Comment, Follows_Empty_Line,
21113         Is_Followed_By_Empty_Line): New functions
21114         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
21115         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
21116         (Set_Next_Comment): New procedure
21117         (Default_Project_Node): Associate comment before if the node can store
21118         comments.
21119
21120         * scans.ads (Token_Type): New enumeration value Tok_Comment
21121         (Comment_Id): New global variable
21122
21123         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
21124         defaulted to False.
21125         (Scan): Store position of start of comment. If comments are tokens, set
21126         Comment_Id and set Token to Tok_Comment when scanning a comment.
21127         (Set_Comment_As_Token): New procedure
21128
21129         * sinput-p.adb: Update Copyright notice
21130         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
21131         that no longer exists.
21132
21133 2003-12-08  Javier Miranda  <miranda@gnat.com>
21134
21135         * sem_aggr.adb: Add dependence on Exp_Tss package
21136         Correct typo in comment
21137         (Resolve_Aggregate): In case of array aggregates set the estimated
21138         type of the aggregate before calling resolve. This is needed to know
21139         the name of the corresponding IP in case of limited array aggregates.
21140         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
21141         in case of default initialized array components.
21142
21143         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
21144         types. Required to give support to limited aggregates in generic
21145         formals.
21146
21147 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
21148
21149         * sem_ch3.adb (Check_Initialization): For legality purposes, an
21150         inlined body functions like an instantiation.
21151         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
21152         until bounds are analyzed, to diagnose premature use of type.
21153
21154         * sem_util.adb (Wrong_Type): Improve error message when the type of
21155         the expression is used prematurely.
21156
21157 2003-12-08  GNAT Script  <nobody@gnat.com>
21158
21159         * Make-lang.in: Makefile automatically updated
21160
21161 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
21162
21163         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
21164         they are automatically generated by Make-lang.in and cause nothing but
21165         maintenance troubles.
21166
21167 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
21168
21169         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
21170         version of this unit).
21171
21172 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
21173
21174         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
21175         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
21176         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
21177         the body of System.Interrupt_Management common to several targets.
21178         Update copyright notice when appropriate.
21179
21180         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
21181         constant.
21182
21183         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
21184         to ensure that the kernel fills in the interrupted context structure
21185         before calling a signal handler, which is necessary to be able to
21186         unwind past it. Update the copyright notice.
21187
21188 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
21189
21190         * a-elchha.ads: New file.
21191
21192         * a-elchha.adb: New default last chance handler. Contents taken from
21193         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
21194
21195         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
21196         is moved to a-elchha.adb to provide a target-independent default last
21197         chance handler.
21198
21199         * Makefile.rtl: Add a-elchha.o
21200
21201         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
21202
21203 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
21204
21205         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
21206         declared in an instance, do not inline the call if the instance is not
21207         frozen yet, to prevent order of elaboration problems.
21208
21209         * sem_prag.adb: Add comments for previous fix.
21210
21211 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
21212
21213         * g-table.adb: Use the right variable in Set_Item.
21214         Update copyright notice.
21215
21216 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
21217
21218         * Makefile.in: Remove unused rules.
21219
21220 2003-12-05  Vincent Celier  <celier@gnat.com>
21221
21222         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
21223         -nostdlib. Not needed here after all.
21224
21225 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
21226
21227         PR ada/11724
21228
21229         * adaint.h, adaint.c, g-os_lib.ads:
21230         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
21231         on some platforms (including FreeBSD), it is a 64 bit value.
21232         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
21233
21234 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
21235
21236         * gnatvsn.ads (Library_Version): Now contain only the relevant
21237         version info.
21238         (Verbose_Library_Version): New constant.
21239
21240         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
21241         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
21242         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
21243
21244         * gnatlbr.adb: Clean up: replace Library_Version by
21245         Verbose_Library_Version.
21246
21247         * make.adb, lib-writ.adb, exp_attr.adb:
21248         Clean up: replace Library_Version by Verbose_Library_Version.
21249
21250         * 5lintman.adb: Removed.
21251
21252         * Makefile.in:
21253         Update and simplify computation of LIBRARY_VERSION.
21254         Fix computation of GSMATCH_VERSION.
21255         5lintman.adb is no longer used: replaced by 7sintman.adb.
21256
21257 2003-12-03  Robert Dewar  <dewar@gnat.com>
21258
21259         * exp_ch5.adb:
21260         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
21261         name. Modified to consider small non-bit-packed arrays as troublesome
21262         and in need of component-by-component assigment expansion.
21263
21264 2003-12-03  Vincent Celier  <celier@gnat.com>
21265
21266         * lang-specs.h: Process nostdlib as nostdinc
21267
21268         * back_end.adb: Update Copyright notice
21269         (Scan_Compiler_Arguments): Process -nostdlib directly.
21270
21271 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
21272
21273         * Makefile.in:
21274         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
21275         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
21276         included in HIE_NONE_TARGET_PAIRS.
21277
21278 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
21279
21280         * sem_attr.adb:
21281         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
21282         is legal in an instance, because legality is cheched in the template.
21283
21284         * sem_prag.adb:
21285         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
21286         appplied to an unchecked conversion of a formal parameter.
21287
21288         * sem_warn.adb:
21289         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
21290         variables.
21291
21292 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
21293
21294         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
21295         routines. The second one is new functionality to deal with backtracing
21296         through signal handlers.
21297         (unwind): Split into the two separate subroutines above.
21298         Update the documentation, and deal properly with sizeof (REG) different
21299         from sizeof (void*).
21300
21301 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
21302
21303         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
21304         so that the debugger can reliably access the value of the parameter,
21305         and therefore is able to display the exception name when an exception
21306         breakpoint is reached.
21307
21308 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
21309
21310         * fmap.adb: Fix typo in warning message.
21311
21312         * g-socket.ads, g-socket.adb: Make Free a visible instance of
21313         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
21314
21315 2003-12-01  Vincent Celier  <celier@gnat.com>
21316
21317         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
21318         ther is no Afile.
21319         (Build_Library): Get the switches only if Default_Switches is declared
21320         in package Binder.
21321
21322 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
21323
21324         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
21325         actuals that are indexed components, reanalyze actual to ensure that
21326         packed array references are properly expanded.
21327
21328         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
21329         attempted assignment to a discriminant.
21330
21331 2003-12-01  Robert Dewar  <dewar@gnat.com>
21332
21333         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
21334         reformatting.
21335
21336         * switch-c.adb: Minor reformatting of comments
21337
21338 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21339
21340         * Makefile.in: Clean ups.
21341
21342 2003-12-01  GNAT Script  <nobody@gnat.com>
21343
21344         * Make-lang.in: Makefile automatically updated
21345
21346 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21347
21348         * 5wsystem.ads: Disable zero cost exception, not ready yet.
21349
21350 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
21351
21352         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
21353         to force serialization.
21354
21355 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
21356
21357         * g-socket.ads, g-socket.adb:
21358         Clarify documentation of function Stream. Introduce a Free procedure
21359         to release the returned Stream once it becomes unused.
21360
21361         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
21362
21363 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
21364
21365         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
21366         since NT 4 cannot handle timeout values that are too large,
21367         e.g. DWORD'Last - 1.
21368
21369 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
21370
21371         * exp_ch4.adb:
21372         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
21373         in procedure calls and whose expansion must be deferred.
21374
21375         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
21376         is in exp_ch4.
21377
21378         * sem_ch3.adb:
21379         (Build_Derived_Array_Type): Create operator for unconstrained type
21380         if ancestor is unconstrained.
21381
21382 2003-11-26  Vincent Celier  <celier@gnat.com>
21383
21384         * make.adb (Project_Object_Directory): New global variable
21385         (Change_To_Object_Directory): New procedure
21386         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
21387         of Change_Dir directly. Do not change working directory to object
21388         directory of main project after each compilation.
21389         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
21390         directly.
21391         Change to object directory of main project before binding step.
21392         (Initialize): Initialize Project_Object_Directory to No_Project
21393
21394         * mlib-prj.adb:
21395         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
21396         binding a Stand-Alone Library.
21397
21398         * output.adb: Update Copyright notice
21399         (Write_Char): Output buffer when full
21400
21401 2003-11-26  Robert Dewar  <dewar@gnat.com>
21402
21403         * sem_ch13.adb: (Check_Size): Reset size if size is too small
21404
21405         * sem_ch13.ads:
21406         (Check_Size): Fix documentation to include bit-packed array case
21407
21408         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
21409
21410         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
21411
21412         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
21413
21414 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
21415
21416         PR ada/13142
21417         * utils.c (init_gigi_decls): Change name of built-in setjmp to
21418         __builtin_setjmp, since this is apparently needed by recent
21419         non Ada changes.
21420
21421 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21422
21423         * adadecode.c: Only include ctype.h if not IN_GCC.
21424         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
21425
21426 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
21427
21428         * Makefile.in:
21429         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
21430         signals and interrupts.
21431
21432         * 5zintman.ads: New File.
21433
21434         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
21435         add exception signals to the set of unmasked signals.
21436
21437         * 5ztaprop.adb:
21438         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
21439         between signals and interrupts.
21440         Add to Unblocked_Signal_Mask the set of signals that are in
21441         Keep_Unmasked.
21442
21443         * 7sinmaop.adb:
21444         Adding a check to see whether the Interrupt_ID we want to unmask is in
21445         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
21446         reason is that the index type of the Keep_Unmasked array is not always
21447         Interrupt_ID; it may be a subtype of Interrupt_ID.
21448
21449 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
21450
21451         * exp_util.adb:
21452         (Remove_Side_Effects): Condition constantness of object created for a
21453          an unchecked type conversion on the constantness of the expression
21454          to ensure the correct value for 'Constrained when passing components
21455          of view-converted class-wide objects.
21456
21457 2003-11-24  Robert Dewar  <dewar@gnat.com>
21458
21459         * par-load.adb (Load): Improve handling of misspelled and missing units
21460         Removes several cases of compilation abandoned messages
21461
21462         * lib.adb: (Remove_Unit): New procedure
21463
21464         * lib.ads: (Remove_Unit): New procedure
21465
21466         * lib-load.adb: Minor reformatting
21467
21468 2003-11-24  Vincent Celier  <celier@gnat.com>
21469
21470         * make.adb:
21471         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
21472         (Marking_Label): Label to mark processed source files. Incremented for
21473         each executable.
21474         (Gnatmake): Increase Marking_Labet for each executable
21475         (Is_Marked): Compare against marking label
21476         (Mark): Mark with marking label
21477
21478 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
21479
21480         * s-thread.ads:
21481         Move the declaration of the TSD for System.Threads to System.Soft_Links.
21482         Add some comments.
21483
21484         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
21485         (rts-cert): build a single relocatable object for the run-time lib.
21486         Fix perms.
21487
21488 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
21489
21490         * Make-lang.in:
21491         Use gnatls rather than gcc to obtain the location of GNAT RTL for
21492         crosstools build.
21493
21494 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
21495
21496         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
21497         can not use it as before (that is, as a variable) when dumping it into
21498         the tree file. Add a local variable to store the result of this
21499         function and to be used as the string to be written into the tree.
21500
21501         * scn.adb (Initialize_Scanner): Add comments explaining the recent
21502         changes.
21503
21504         * sinput.adb (Source_First, Source_Last): In case of
21505         Internal_Source_File, replace returning attributes of
21506         Internal_Source_Ptr (which is wrong) with returning attributes of
21507         Internal_Source.
21508
21509 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
21510
21511         * sem_ch3.adb:
21512         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
21513         used for implicit concatenation operators.
21514         Code cleanup.
21515
21516         * sem_elab.adb:
21517         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
21518         task bodies that are in the scope of a Suppress pragma.
21519         (Check_A Call): Use the flag to prevent spurious elaboration checks.
21520
21521         * sinfo.ads, sinfo.adb:
21522         New flag No_Elaboration_Check on function/procedure calls, to properly
21523         suppress checks on calls in task bodies that are within a local suppress
21524         pragma.
21525
21526         * exp_ch4.adb:
21527         (Expand_Concatenate_Other): Use the proper integer type for the
21528         expression for the upper bound, to avoid universal_integer computations
21529         when possible.
21530
21531 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
21532
21533         * .cvsignore: Delete.
21534
21535 2003-11-21  Andreas Schwab  <schwab@suse.de>
21536
21537         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
21538
21539 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
21540
21541         * 5wsystem.ads: Enable zero cost exception.
21542
21543 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
21544
21545         * 5ztiitho.adb: Remove an unreferenced variable.
21546
21547 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
21548
21549         * adaint.c: For FreeBSD, use mkstemp.
21550
21551 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
21552
21553         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
21554
21555 2003-11-21  Robert Dewar  <dewar@gnat.com>
21556
21557         * bld.adb: Remove useless USE of gnatvsn
21558
21559         * gnatchop.adb: Minor reformatting
21560         Clean up version handling to be more consistent
21561
21562         * gnatxref.adb: Minor reformatting
21563
21564         * gprcmd.adb: Minor reformatting
21565         Fix output of copyright to be more consistent with other tools
21566
21567 2003-11-21  Vincent Celier  <celier@gnat.com>
21568
21569         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
21570
21571 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
21572
21573         * atree.adb (Initialize): Add initializations for global variables
21574         used in New_Copy_Tree.
21575
21576         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
21577         Internal_Source_File as the actual).
21578         Put the set of statements creating Any_Character before the set of
21579         statements creating Any_Array to have Any_Character fully initialized
21580         when it is used in creating Any_Array.
21581
21582         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
21583         not call Scan in case if the actual is Internal_Source_File
21584         Add 2003 to copyright note.
21585
21586         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
21587         processing Internal_Source_File.
21588
21589         * types.ads: Add the constant Internal_Source_File representing the
21590         source buffer for artificial source-code-like strings created within
21591         the compiler (the definition of Source_File_Index is changed).
21592
21593 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
21594
21595         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
21596         56system.ads: New file, FreeBSD version.
21597
21598 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
21599
21600         * Make-lang.in (ada.extraclean): Delete.
21601
21602 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
21603
21604         * gnatmem.adb: Clean up verbose output.
21605
21606         * gprcmd.adb: Change copyright to FSF.
21607
21608 2003-11-19  Vincent Celier  <celier@gnat.com>
21609
21610         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
21611         and Version (ignored).
21612
21613         * symbols.ads: (Policy): New type
21614         (Initialize): New parameter Reference, Symbol_Policy and
21615         Library_Version.
21616         Remove parameter Force.
21617         Minor reformatting.
21618
21619         * snames.ads, snames.adbadb: New standard names
21620         Library_Reference_Symbol_File and Library_Symbol_Policy
21621
21622         * mlib-prj.adb:
21623         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
21624         project.
21625
21626         * mlib-tgt.adb:
21627         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
21628
21629         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
21630
21631         * prj.adb: (Project_Empty): New component Symbol_Data
21632
21633         * prj.ads: (Policy, Symbol_Record): New types
21634         (Project_Data): New component Symbol_Data
21635
21636         * prj-attr.adb:
21637         New attributes Library_Symbol_File, Library_Symbol_Policy and
21638         Library_Reference_Symbol_File.
21639
21640         * prj-nmsc.adb:
21641         (Ada_Check): When project is a Stand-Alone library project, process
21642         attribute Library_Symbol_File, Library_Symbol_Policy and
21643         Library_Reference_Symbol_File.
21644
21645         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
21646         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
21647         5sml-tgt.adb (Build_Dynamic_Library): New parameter
21648         Symbol_Data (ignored).
21649
21650         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
21651         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
21652         functions Option_File_Name and Version_String. Set new options of
21653         gnatsym related to symbol file, symbol policy and reference symbol
21654         file.
21655
21656         * 5vsymbol.adb:
21657         Extensive modifications to take into account the reference symbol file,
21658         the symbol policy, the library version and to put in the symbol file the
21659         minor and major IDs.
21660
21661         * bld.adb (Process_Declarative_Items): Put second argument of
21662         gprcmd to_absolute between single quotes, to avoid problems with
21663         Windows.
21664
21665         * bld-io.adb: Update Copyright notice.
21666         (Flush): Remove last character of a line, if it is a back slash, to
21667         avoid make problems.
21668
21669         * gnatsym.adb:
21670         Implement new scheme with reference symbol file and symbol policy.
21671
21672         * g-os_lib.ads: (Is_Directory): Clarify comment
21673
21674 2003-11-19  Robert Dewar  <dewar@gnat.com>
21675
21676         * atree.adb: Move New_Copy_Tree global variables to head of package
21677
21678         * errout.adb: Minor reformatting
21679
21680 2003-11-19  Javier Miranda  <miranda@gnat.com>
21681
21682         * sem_ch4.adb: (Diagnose_Call): Improve error message.
21683         Add reference to Ada0Y (AI-50217)
21684
21685         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
21686         sem_util.adb: Add reference to AI-50217
21687
21688         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
21689
21690         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
21691
21692         * sem_aggr.adb: Complete documentation of AI-287 changes
21693
21694         * par-ch4.adb: Document previous changes.
21695
21696         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
21697         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
21698         Ada0Y (AI-50217)
21699
21700         * exp_aggr.adb: Add references to AI-287 in previous changes
21701
21702 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
21703
21704         * exp_ch6.adb:
21705         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
21706         in the rewriting is the result of an inlined call.
21707
21708         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
21709         parameter is a type conversion, use original node to construct the
21710         post-call assignment, because expression may have been rewritten, e.g.
21711         if it is a packed array.
21712
21713         * sem_attr.adb:
21714         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
21715         body, just as it is in an instance.
21716         Categorization routines
21717
21718         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
21719         Instantiate_Object): Set proper sloc reference for message on missing
21720         actual.
21721
21722 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
21723
21724         * Makefile.in: Add FreeBSD libgnat pairs.
21725
21726         * usage.adb: Fix typo in usage message.
21727
21728 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
21729
21730         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
21731         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
21732         pragma Thread_Body.
21733         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
21734
21735         * s-thread.adb: This file is now a dummy implementation of
21736         System.Thread.
21737
21738 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
21739
21740         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
21741
21742 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
21743
21744         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21745         instanciation references in the parent type description.
21746
21747 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21748
21749         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
21750
21751         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
21752         TYPE_PRECISION directly from esize.
21753
21754 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
21755
21756         * cstreams.c:
21757         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
21758
21759         * init.c: Initialization routines for FreeBSD
21760
21761         * link.c: Link info for FreeBSD
21762
21763         * sysdep.c: Add the case of FreeBSD
21764
21765 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
21766
21767         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
21768         already called in System.Threads.
21769
21770         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
21771         environment task, as it has been moved to System.Threads.Initialization.
21772
21773 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
21774
21775         * adaint.c (__gnatlib_install_locks): Only reference
21776         __gnat_install_locks on VMS, since other platforms can avoid using
21777         --enable-threads=gnat
21778
21779 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21780
21781         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
21782
21783         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
21784         TYPE_PACKED_ARRAY_TYPE_P.
21785         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
21786
21787         Part of PR ada/12806
21788         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
21789         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
21790
21791 2003-11-17  Vincent Celier  <celier@gnat.com>
21792
21793         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
21794         to False.
21795         Do not set exit status to Failure when Warning is True.
21796         (Gnatchop): Make errors "no compilation units found" and
21797         "no source files written" warnings only.
21798
21799         * make.adb (Gnatmake): When using a project file, set
21800         Look_In_Primary_Dir to False.
21801         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
21802         and Local_Configuration_Pragmas in the project where they are declared
21803         not an extending project which might have inherited them.
21804
21805         * osint.adb (Locate_File): If Name is already an absolute path, do not
21806         look for a directory.
21807
21808         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
21809         -gnats (Check_Syntax) is used, issue only a warning, not an error.
21810
21811         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
21812         in objects of type Variable_Value.
21813
21814         * prj.ads: (Variable_Value): New component Project
21815
21816         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
21817         is in a project extended by Project.
21818
21819         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
21820         Project of Variable_Values to this new parameter value.
21821         (Expression): Set component Project of Variable_Values.
21822         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
21823         Set the component Project in array elements.
21824
21825 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
21826
21827         * errout.adb: (Initialize): Add initialization for error nodes.
21828
21829         * sem_ch12.adb (Initialize): Add missing initializations for
21830         Exchanged_Views and Hidden_Entities.
21831
21832 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
21833
21834         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
21835         already instantiated tree for use in subsequent inlining.
21836         (Analyze_Associations, Instantiate_Formal_Subprogram,
21837         Instantiate_Object): improve error message for mismatch in
21838         instantiations.
21839
21840         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
21841         instantiations of subprograms declared in instances.
21842
21843 2003-11-17  Javier Miranda  <miranda@gnat.com>
21844
21845         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
21846         executed only under the Extensions_Allowed flag.
21847
21848 2003-11-17  Robert Dewar  <dewar@gnat.com>
21849
21850         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
21851         zeroes suppressed.
21852         (Address_Image): Fix bug of returning 0x instead of 0x0
21853         Minor reformatting (function specs).
21854
21855         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
21856         (missed case of 33-63)
21857
21858         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
21859
21860         * s-thread.adb: Add comments for pragma Restriction
21861
21862         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
21863         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
21864
21865 2003-11-17  Ed Falis  <falis@gnat.com>
21866
21867         * s-thread.adb: Added No_Tasking restriction for this implementation.
21868
21869 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
21870
21871         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21872         instanciation references in the parent type description.
21873
21874 2003-11-17  GNAT Script  <nobody@gnat.com>
21875
21876         * Make-lang.in: Makefile automatically updated
21877
21878 2003-11-16  Jason Merrill  <jason@redhat.com>
21879
21880         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
21881         and TAGS files that include them for each front end.
21882
21883 2003-11-14  Andreas Jaeger  <aj@suse.de>
21884
21885         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
21886         is the canonical version.
21887         * misc.c (gnat_handle_option): Likewise.
21888
21889         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
21890
21891         * 5nsystem.ads: New file for x86_64-linux-gnu.
21892
21893 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
21894
21895         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
21896
21897         * comperr.adb: Fix logic in previous change.
21898
21899 2003-11-13  Vincent Celier  <celier@gnat.com>
21900
21901         * 5bml-tgt.adb (Build_Dynamic_Library): Use
21902         Osint.Include_Dir_Default_Prefix instead of
21903         Sdefault.Include_Dir_Default_Name.
21904
21905         * gnatlbr.adb: Update Copyright notice
21906         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
21907         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
21908         instead of Sdefault.Object_Dir_Default_Name
21909
21910         * gnatlink.adb:
21911         (Process_Binder_File): Never suppress the option following -Xlinker
21912
21913         * mdll-utl.adb:
21914         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
21915         Sdefault.Object_Dir_Default_Name.
21916
21917         * osint.ads, osint.adb:
21918         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
21919         Minor reformatting.
21920
21921         * vms_conv.ads: Minor reformating
21922         Remove GNAT STANDARD and GNAT PSTA
21923
21924         * vms_conv.adb:
21925         Allow GNAT MAKE to have several files on the command line.
21926         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
21927         Sdefault.Object_Dir_Default_Name.
21928         Minor Reformating
21929         Remove data for GNAT STANDARD
21930
21931         * vms_data.ads:
21932         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
21933         Remove data for GNAT STANDARD
21934         Remove options and documentation for -gnatwb/-gnatwB: these warning
21935         options no longer exist.
21936
21937 2003-11-13  Ed Falis  <falis@gnat.com>
21938
21939         * 5zthrini.adb: (Init_RTS): Made visible
21940
21941         * 5zthrini.adb:
21942         (Register): Removed unnecessary call to taskVarGet that checked whether
21943          an ATSD was already set as a task var for the argument thread.
21944
21945         * s-thread.adb:
21946         Updated comment to reflect that this is a VxWorks version
21947         Added context clause for System.Threads.Initialization
21948         Added call to System.Threads.Initialization.Init_RTS
21949
21950 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
21951
21952         * 5zthrini.adb:
21953         (Init_RTS): New procedure, for the initialization of the run-time lib.
21954
21955         * s-thread.adb:
21956         Remove dependancy on System.Init, so that this file can be used in the
21957         AE653 sequential run-time lib.
21958
21959 2003-11-13  Robert Dewar  <dewar@gnat.com>
21960
21961         * bindgen.adb: Minor reformatting
21962
21963 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
21964
21965         * checks.adb:
21966         (Apply_Discriminant_Check): Do no apply check if target type is derived
21967         from source type with no applicable constraint.
21968
21969         * lib-writ.adb:
21970         (Ensure_System_Dependency): Do not apply the style checks that may have
21971         been specified for the main unit.
21972
21973         * sem_ch8.adb:
21974         (Find_Selected_Component): Further improvement in error message, with
21975         RM reference.
21976
21977         * sem_res.adb:
21978         (Resolve): Handle properly the case of an illegal overloaded protected
21979         procedure.
21980
21981 2003-11-13  Javier Miranda  <miranda@gnat.com>
21982
21983         * exp_aggr.adb:
21984         (Has_Default_Init_Comps): New function to check the presence of
21985         default initialization in an aggregate.
21986         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
21987         extension aggregate of a limited record. In addition, a new formal
21988         was added to do not initialize the record controller (if any) during
21989         this recursive expansion of ancestors.
21990         (Init_Controller): Add support for limited record components.
21991         (Expand_Record_Aggregate): In case of default initialized components
21992         convert the aggregate into a set of assignments.
21993
21994         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
21995         describing the new syntax.
21996         Nothing else needed to be done because this subprogram delegates part of
21997         its work to P_Precord_Or_Array_Component_Association.
21998         (P_Record_Or_Array_Component_Association): Give support to the new
21999         syntax for default initialization of components.
22000
22001         * sem_aggr.adb:
22002         (Resolve_Aggregate): Relax the strictness of the frontend in case of
22003         limited aggregates.
22004         (Resolve_Record_Aggregate): Give support to default initialized
22005         components.
22006         (Get_Value): In case of default initialized components, duplicate
22007         the corresponding default expression (from the record type
22008         declaration). In case of default initialization in the *others*
22009         choice, do not check that all components have the same type.
22010         (Resolve_Extension_Aggregate): Give support to limited extension
22011         aggregates.
22012
22013         * sem_ch3.adb:
22014         (Check_Initialization): Relax the strictness of the front-end in case
22015         of aggregate and extension aggregates. This test is now done in
22016         Get_Value in a per-component manner.
22017
22018         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
22019         expression corresponds to a limited aggregate. This test is now done
22020         in Get_Value.
22021
22022         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
22023         Box_Present flag.
22024
22025         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
22026         present in an N_Component_Association node
22027
22028 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
22029
22030         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
22031         type-conformant entry only if they are homographs.
22032
22033 2003-11-13  GNAT Script  <nobody@gnat.com>
22034
22035         * Make-lang.in: Makefile automatically updated
22036
22037 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22038
22039         * adadecode.c: Use <> form of include for ctype.h.
22040         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
22041
22042 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22043
22044         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
22045         Works around PR middle-end/6552.
22046
22047 2003-11-10  Ed Falis  <falis@gnat.com>
22048
22049         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
22050
22051         * 5zinit.adb: (Install_Handler): Moved back to spec
22052         (Install_Signal_Handlers): Deleted
22053
22054         * 5zthrini.adb: Added context clause for System.Storage_Elements
22055         (Register): Only handles creation of taskVar; initialization moved to
22056         Thread_Body_Enter.
22057         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
22058         Added declaration of environment task secondary stack and
22059         initialization.
22060
22061         * s-thread.adb: Implement bodies for thread body processing
22062
22063         * s-thread.ads:
22064         Added comment identifying supported targets for pragma Thread_Body.
22065
22066 2003-11-10  Pascal Obry  <obry@gnat.com>
22067
22068         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
22069         GNAT_MAX_PATH_LEN.
22070
22071         * s-fileio.adb:
22072         (Open): Properly check for string length before copying into the buffer.
22073         Raises Name_Error if buffer is too small. Note that this was a potential
22074         buffer overflow.
22075
22076 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
22077
22078         * bindgen.adb, comperr.adb: Code clean ups.
22079         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
22080
22081 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
22082
22083         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
22084
22085 2003-11-10  Vincent Celier  <celier@gnat.com>
22086
22087         * gprcmd.adb:
22088         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
22089         installation.
22090
22091         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
22092
22093         * prj.adb: (Project_Empty): Add new boolean component Virtual
22094
22095         * prj.ads: (Virtual_Prefix): New constant string
22096         (Project_Data): New boolean component Virtual
22097
22098         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
22099         a library project is extended by a virtual extending project.
22100
22101         * prj-part.adb:
22102         Modifications throughout to implement extending-all project, including:
22103         (Virtual_Hash, Processed_Hash): New hash tables
22104         (Create_Virtual_Extending_Project): New procedure
22105         (Look_For_Virtual_Projects_For): New procedure
22106
22107         * prj-proc.adb:
22108         (Process): After checking the projects, if main project is an
22109         extending-all project, set the object directory of all virtual extending
22110         project to the object directory of the main project.
22111         Adjust error message when a virtual extending project has the same
22112         object directory as an project being extended.
22113         (Recursive_Process): If name starts with the virtual prefix, set Virtual
22114         to True in the project data.
22115
22116         * prj-tree.adb:
22117         (Default_Project_Node): Add new boolean component Extending_All
22118         (Is_Extending_All): New function
22119         (Set_Is_Extending_All): New procedure
22120
22121         * prj-tree.ads: (Is_Extending_All): New function
22122         (Set_Is_Extending_All): New procedure
22123         (Project_Node_Record): New boolean component Extending_All
22124
22125         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
22126
22127         * vms_data.ads:
22128         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
22129
22130         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
22131         "gprcmd prefix" to define it.
22132
22133 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
22134
22135         * einfo.ads: Fix a typo and remove an extraneous word in comments.
22136
22137         * lib-load.adb:
22138         (Create_Dummy_Package_Unit): Set the scope of the entity for the
22139         created dummy package to Standard_Standard, not to itself, to
22140         defend other parts of the front-end against encoutering a cycle in
22141         the scope chain.
22142
22143         * sem_ch10.adb:
22144         (Analyze_With_Clause): When setting the entities for the successive
22145         N_Expanded_Names that constitute the name of a child unit, do not
22146         attempt to go further than Standard_Standard in the chain of scopes.
22147         This case arises from the placeholder units created by
22148         Create_Dummy_Package_Unit in the case of a with_clause for a
22149         nonexistent child unit.
22150
22151 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
22152
22153         * exp_ch6.adb:
22154         (Expand_Thread_Body): Place subprogram on scope stack, so that new
22155         declarations are given the proper scope.
22156
22157         * sem_ch13.adb:
22158         (Check_Expr_Constants): Reject an expression that contains a constant
22159         created during expansion, and that appears after the object to which
22160         the address clause applies.
22161
22162         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
22163         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
22164         that uses 'Range of a function call with controlled components, so
22165         that the function result can be finalized before starting the loop.
22166
22167         * sem_ch8.adb:
22168         (Find_Selected_Component): Improve error message when prefix is
22169         an implicit dereference of an incomplete type.
22170
22171 2003-11-10  Robert Dewar  <dewar@gnat.com>
22172
22173         * opt.ads: New Print_Standard flag for -gnatS switch
22174
22175         * sem_ch13.adb: Remove some additional checks for unaligned arrays
22176
22177         * cstand.adb (Create_Standard): Print out package standard if -gnatS
22178         switch set
22179
22180         * debug.adb: Update doc for -gnatds to discuss relationship with new
22181         -gnatS flag
22182
22183         * sinfo.adb: Add new field Entity_Or_Associated_Node
22184
22185         * sinfo.ads: Add new field Entity_Or_Associated_Node
22186         Update documentation for Associated_Node and Entity fields to clarify
22187         relationship and usage.
22188
22189         * sprint.adb:
22190         (Write_Id): Properly process Associated_Node field in generic template
22191
22192         * switch-c.adb:
22193         Recognize new -gnatS switch for printing package Standard
22194         This replaces gnatpsta
22195
22196         * usage.adb:
22197         Add line for  new -gnatS switch for printing package Standard
22198         This replaces gnatpsta
22199
22200 2003-11-10  Andreas Jaeger  <aj@suse.de>
22201
22202         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
22203         integer.
22204
22205 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22206
22207         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
22208         by gnat1.
22209
22210 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22211
22212         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
22213         no longer needed.
22214
22215         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
22216
22217         * sysdep.c: Add handling of cygwin.
22218
22219 2003-11-10  GNAT Script  <nobody@gnat.com>
22220
22221         * Make-lang.in: Makefile automatically updated
22222
22223 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22224
22225         PR 12950
22226         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
22227         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
22228         Replace GNAT_ROOT by GCC_ROOT.
22229
22230         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
22231
22232 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
22233
22234         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
22235         and update for changed meaning of GET_MODE_BITSIZE.
22236
22237 2003-11-04  Doug Rupp  <rupp@gnat.com>
22238
22239         * sysdep.c: Problem discovered during IA64 VMS port.
22240         [VMS] #include <unixio.h> to get proper prototypes.
22241
22242         * adaint.c:
22243         Issues discovered/problems fixed during IA64 VMS port.
22244         [VMS] #define _POSIX_EXIT for proper semantics.
22245         [VMS] #include <unixio.h> for proper prototypes.
22246         [VMS] (fork): #define IA64 version.
22247         (__gnat_os_exit): Remove unnecessary VMS specific code.
22248
22249 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22250
22251         Part of PR ada/12806
22252
22253         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
22254         tree, not integer.
22255
22256         * decl.c:
22257         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
22258         not integer.
22259
22260         * targtyps.c, decl.c, misc.c,
22261         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
22262         routines to work around change in FP sizing semantics in GCC.
22263
22264         * utils.c:
22265         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
22266
22267         * gigi.h: (enumerate_modes): New function.
22268
22269         * Make-lang.in: (ada/misc.o): Add real.h.
22270
22271         * misc.c: (enumerate_modes): New function.
22272
22273 2003-11-04  Robert Dewar  <dewar@gnat.com>
22274
22275         * 3vtrasym.adb: Minor reformatting
22276         Use terminology encoded/decoded name, rather than C++ specific notion
22277         of mangling (this is the terminology used throughout GNAT).
22278
22279         * einfo.h: Regenerated
22280
22281         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
22282
22283         * exp_ch6.adb:
22284         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
22285
22286         * par-prag.adb: Add dummy entry for Thread_Body pragma
22287
22288         * rtsfind.ads:
22289         Add entries for System.Threads entities for thread body processing
22290
22291         * sem_attr.adb:
22292         (Analyze_Pragma, Access attributes): Check these are not applied to a
22293         thread body, since this is not permitted
22294
22295         * sem_prag.adb: Add processing for Thread_Body pragma.
22296         Minor comment fix.
22297
22298         * sem_res.adb:
22299         (Resolve_Call): Check for incorrect attempt to call a thread body
22300          procedure with a direct call.
22301
22302         * snames.ads, snames.adb: Add entry for Thread_Body pragma
22303         Add names associated with thread body expansion
22304
22305         * snames.h: Add entry for Thread_Body pragma
22306
22307         * s-thread.adb: Add entries for thread body processing
22308         These are dummy bodies so far
22309
22310         * s-thread.ads: Add documentation on thread body handling.
22311         Add entries for thread body processing.
22312
22313 2003-11-04  Javier Miranda  <miranda@gnat.com>
22314
22315         * sem_ch10.adb:
22316         (Build_Limited_Views): Return after posting an error in case of limited
22317         with_clause on subprograms, generics, instances or generic renamings
22318         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
22319         on subprograms, generics, instances or generic renamings
22320
22321 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
22322
22323         * raise.c (setup_to_install): Correct mistake in last revision; two
22324         arguments out of order.
22325
22326         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
22327         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
22328         notice, missed in previous change.
22329         Remove trailing blanks and other style errors introduced in previous
22330         change.
22331
22332 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
22333
22334         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
22335         rid of the wrapper for a LJM type, ensuring we don't do that if the
22336         field is addressable.  This avoids potential low level type view
22337         mismatches later on, for instance in a by-reference argument passing
22338         process.
22339
22340 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22341
22342         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
22343         aligned at byte boundary.
22344
22345 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
22346
22347         * decl.c (components_to_record): Do not delete the empty variants from
22348         the end of the union type.
22349
22350 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
22351
22352         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
22353         operation for a derived type, an explicit declaration may use a local
22354         subtype of Boolean.
22355
22356 2003-11-04  Vincent Celier  <celier@gnat.com>
22357
22358         * make.adb (Gnatmake): Allow main sources on the command line with a
22359         library project when it is only for compilation (no binding or
22360         linking).
22361
22362 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22363
22364         * Makefile.in: Remove many duplicate variables.
22365
22366 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
22367
22368         * Make-lang.in (dvi): Move targets to $(docobjdir).
22369         (gnat_ug_vms.dvi): Simplify rule and adjust target.
22370         (gnat_ug_wnt.dvi): Likewise.
22371         (gnat_ug_unx.dvi): Likewise.
22372         (gnat_ug_vxw.dvi): Likewise.
22373         (gnat_rm.dvi): Likewise.
22374         (gnat-style.dvi): Likewise.
22375
22376 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22377
22378         * gigi.h: Missed commit from update for C90.
22379
22380 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22381
22382         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
22383
22384 2003-10-31  Andreas Schwab  <schwab@suse.de>
22385
22386         * raise.c (get_action_description_for): Fix typo in last change.
22387
22388 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
22389
22390         PR ada/12761
22391         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
22392         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
22393
22394 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
22395
22396         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
22397         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
22398         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
22399         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
22400         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
22401
22402 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
22403
22404         * 3vtrasym.adb:
22405         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
22406         numbers when symbol name is too long.
22407
22408 2003-10-30  Ed Falis  <falis@gnat.com>
22409
22410         * g-signal.ads, g-signal.adb: New files
22411
22412         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
22413
22414         * Makefile.rtl: Introduce GNAT.Signals
22415
22416 2003-10-30  Robert Dewar  <dewar@gnat.com>
22417
22418         * freeze.adb: Minor reformatting
22419
22420         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
22421
22422         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
22423         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
22424         New handling of Id_Check parameter to improve recognition of keywords
22425         used as identifiers.
22426         Update copyright notice to include 2003
22427
22428 2003-10-29  Robert Dewar  <dewar@gnat.com>
22429
22430         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
22431         sem_ch10.adb: Minor reformatting
22432
22433         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
22434         (Expand_Assign_Record): Test right hand side for bit unaligned as well
22435
22436 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
22437
22438         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
22439         Support for TBK$SYMBOLIZE-based symbolic traceback.
22440
22441 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
22442
22443         * exp_disp.adb:
22444         Revert previous change, that did not work well when pragma No_Run_Time
22445         was used in conjunction with a run-time other than ZFP.
22446
22447 2003-10-29  Vincent Celier  <celier@gnat.com>
22448
22449         * make.adb:
22450         (Gnatmake): When there are no Ada mains in attribute Main, disable the
22451          bind and link steps only is switch -z is not used.
22452
22453 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
22454
22455         * Makefile.generic: Remove duplicated setting of CC.
22456
22457         * Makefile.prolog: Set CC to gcc by default, to override make's
22458         default (cc).
22459
22460         * einfo.h: Regenerated.
22461
22462 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
22463
22464         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
22465         current body, after compiling subunit.
22466
22467         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
22468         when in deleted code, because gigi needs properly ordered freeze
22469         actions to annotate types.
22470
22471         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
22472         prevent the premature freezing of record type that contains
22473         subcomponents with a private type that does not yet have a completion.
22474
22475 2003-10-29  Javier Miranda  <miranda@gnat.com>
22476
22477         * sem_ch12.adb:
22478         (Analyze_Package_Instantiation): Check that instances can not be used in
22479         limited with_clauses.
22480
22481         * sem_ch8.adb:
22482         (Analyze_Package_Renaming): Check that limited withed packages cannot
22483         be renamed. Improve text on error messages related to limited
22484         with_clauses.
22485
22486         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
22487
22488         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
22489         Update copyright notice.
22490
22491         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
22492         (Install_Limited_Context_Clauses): New subprogram that isolates all the
22493         checks required for limited context_clauses and installs the limited
22494         view.
22495         (Install_Limited_Withed_Unit): Complete its documentation.
22496         (Analyze_Context): Check that limited with_clauses are only allowed in
22497         package specs.
22498         (Install_Context): Call Install_Limited_Context_Clauses after the
22499         parents have been installed.
22500         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
22501         package as 'From_With_Type'; this mark indicates that the limited view
22502         is installed. Used to check bad usages of limited with_clauses.
22503         (Build_Limited_Views): Do not add shadow entities to the scope's list
22504         of entities. Do not add real entities to the Non_Limited_Views chain.
22505         Improve error notification.
22506         (Remove_Context_Clauses): Remove context clauses in two phases:
22507         limited views first and regular views later (to maintain the
22508         stack model).
22509         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
22510         its visible entities.
22511
22512 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
22513
22514         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
22515         with any type that Is_Fixed_Point_Type.
22516
22517         * sinfo.ads: Fix documentation for Associated_Node attribute.
22518
22519 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
22520
22521         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
22522         both '-gnatc' and '-gnatt' are specified.
22523
22524         * atree.adb (Initialize): Add initialization for Node_Count (set to
22525         zero).
22526
22527 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22528
22529         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
22530         do not consider as Pure.
22531
22532         Part of implementation of function-at-a-time:
22533
22534         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
22535         (tree_transform): Add new argument to build_component_ref.
22536         (tree_transform, case N_Assignment_Statement): Make and return an
22537         EXPR_STMT.
22538         (tree_transform): If result IS_STMT, set flags and return it.
22539         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22540
22541         * utils2.c (build_simple_component_ref, build_component_ref): Add new
22542         arg, NO_FOLD_P.
22543         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
22544         (build_allocator): Likewise.
22545
22546         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
22547         Add new arg to build_component_ref.
22548         (maybe_unconstrained_array, unchecked_convert): Likewise.
22549
22550         * ada-tree.def (EXPR_STMT): New code.
22551
22552         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
22553
22554         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
22555         build_component_ref calls.
22556
22557         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
22558
22559         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22560         (build_component_ref): Add new argument, NO_FOLD_P.
22561
22562 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
22563
22564         * Makefile.generic: Add missing substitution on object_deps handling.
22565
22566         PR ada/5909:
22567         * Make-lang.in (check-ada): Enable ACATS test suite.
22568
22569 2003-10-27  Robert Dewar  <dewar@gnat.com>
22570
22571         * exp_ch3.adb:
22572         (Freeze_Array_Type): We do not need an initialization routine for types
22573         derived from String or Wide_String. They should be treated the same
22574         as String and Wide_String themselves. This caused problems with the
22575         use of Initialize_Scalars.
22576
22577         * exp_ch5.adb:
22578         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
22579         composites. This allows use of component clauses that are not byte
22580         aligned.
22581
22582         * sem_prag.adb:
22583         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
22584         is an attempt to pack an array of atomic objects.
22585
22586         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
22587
22588 2003-10-27  Pascal Obry  <obry@gnat.com>
22589
22590         * g-dirope.adb:
22591         (Basename): Check for drive letters in a pathname only on DOS based OS.
22592
22593 2003-10-27  Vincent Celier  <celier@gnat.com>
22594
22595         * make.adb:
22596         (Gnatmake): When unable to change dir to the object dir, display the
22597         content of the parent dir of the obj dir, to try to understand why this
22598         happens.
22599
22600 2003-10-27  GNAT Script  <nobody@gnat.com>
22601
22602         * Make-lang.in: Makefile automatically updated
22603
22604 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
22605
22606         * sem_ch12.adb:
22607         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
22608         should not be done in Save/Restore_Scope_Stack, because it is performed
22609         locally.
22610
22611         * sem_ch8.adb:
22612         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22613         whether use clauses should be removed/restored.
22614
22615         * sem_ch8.ads:
22616         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22617         whether use clauses should be removed/restored.
22618
22619 2003-10-26  Andreas Jaeger  <aj@suse.de>
22620
22621         * Makefile.in: Remove duplicated lines.
22622
22623 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22624
22625         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
22626         minimize the differences with ACT tree.
22627
22628         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
22629         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
22630         Gnatvsn.Gnat_Static_Version_String to reduce differences between
22631         ACT and FSF trees.
22632
22633 2003-10-24  Pascal Obry  <obry@gnat.com>
22634
22635         * adadecode.c (ostrcpy): New function.
22636         (__gnat_decode): Use ostrcpy of strcpy.
22637         (has_prefix): Set first parameter a const.
22638         (has_suffix): Set first parameter a const.
22639         Update copyright notice. Fix source name in header.
22640         Removes a trailing space.
22641         PR ada/12014.
22642
22643 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
22644
22645         * exp_disp.adb:
22646         Remove the test against being in No_Run_Time_Mode before generating a
22647         call to Register_Tag. It is redundant with the test against the
22648         availability of the function Register_Tag.
22649
22650 2003-10-24  Vincent Celier  <celier@gnat.com>
22651
22652         * g-catiio.adb: (Month_Name): Correct spelling of February
22653
22654         * make.adb: (Mains): New package
22655         (Initialize): Call Mains.Delete
22656         (Gnatmake): Check that each main on the command line is a source of a
22657         project file and, if there are several mains, each of them is a source
22658         of the same project file.
22659         (Gnatmake): When a foreign language is specified in attribute Languages,
22660         no main is specified on the command line and attribute Mains is not
22661         empty, only build the Ada main. If there is no Ada main, just compile
22662         the Ada sources and their closure.
22663         (Gnatmake): If a main is specified on the command line with directory
22664         information, check that the source exists and, if it does, that the path
22665         is the actual path of a source of a project.
22666
22667         * prj-env.adb:
22668         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
22669         Full_Path is True, return the full path instead of the simple file name.
22670         (Project_Of): New function
22671
22672         * prj-env.ads:
22673         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
22674         defaulted to False.
22675         (Project_Of): New function
22676
22677 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22678
22679         * Makefile.generic:
22680         Ensure objects of main project are always checked and rebuilt if needed.
22681         Set CC to gcc by default.
22682         Prepare new handling of link by creating a global archive (not activated
22683         yet).
22684
22685         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22686         stringt.h: Update copyright notice. Remove trailing blanks.
22687         Fix source name in header.
22688
22689 2003-10-24  Robert Dewar  <dewar@gnat.com>
22690
22691         * sem_ch12.adb: Minor reformatting
22692
22693         * sem_ch3.adb:
22694         Minor reformatting (including new function return style throughout)
22695
22696         * sem_ch3.ads:
22697         Minor reformatting (including new function return style throughout)
22698
22699 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22700
22701         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22702         stringt.h: Update copyright notice. Remove trailing blanks.
22703         Fix source name in header.
22704
22705 2003-10-24  GNAT Script  <nobody@gnat.com>
22706
22707         * Make-lang.in: Makefile automatically updated
22708
22709 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
22710
22711         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
22712         stringt.h: Convert to ISO C90 declarations and definitions.
22713
22714 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
22715
22716         PR ada/11978:
22717         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
22718         External_Tag attribute definition clauses.
22719
22720 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
22721
22722         PR ada/7613:
22723         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
22724         child unit, generate a fully qualified name to avoid spurious errors
22725         when the context contains renamings of different child units with
22726         the same simple name.
22727
22728         * exp_dbug.ads: Add documentation on name qualification for renamings
22729         of child units.
22730
22731 2003-10-23  Robert Dewar  <dewar@gnat.com>
22732
22733         * g-regpat.ads, g-regpat.adb: Minor reformatting
22734
22735 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
22736
22737         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
22738
22739 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22740
22741         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
22742         Machine call.
22743
22744         * urealp.h: (Machine): Update to proper definition.
22745
22746 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
22747
22748         * init.c, adaint.c: Minor reformatting.
22749
22750 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
22751
22752         * adaint.c (w32_epoch_offset): Define static const at file level.
22753         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
22754         rather than t_create, t_access in call to GetFileTime. Use union
22755         to convert between FILETIME and  unsigned long long.
22756         (__gnat_file_time_name): Test for invalid file handle.
22757         (__gnat_set_filetime_name): Support win32 targets using
22758         w32api SetFileTime.
22759
22760 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
22761
22762         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
22763
22764         * ctrl_c.c (__gnat_int_handler): Remove declaration.
22765
22766         * decl.c (creat_concat_name):  Const-ify prefix.
22767
22768         * adaint.c: Include ctype.h if __MINGW32__.
22769         (__gnat_readlink): Mark arguments as possibly unused.
22770         (__gnat_symlink): Likewise.
22771         (__gnat_is_symbolic_link): Likewise.
22772         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
22773         declaration
22774         (__gnat_file_time_name): Don't declare struct stat statbuf when
22775         not needed.
22776         (__gnat_is_absolute_path): Add parenthesis around condition of
22777         'if' statement to avoid warning.
22778         (__gnat_plist_init): Specify void as parameter.
22779         (plist_enter): Likewise.
22780         (plist_leave): Likewise.
22781         (remove_handle): Make static. Initialize prev.
22782
22783 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22784
22785         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
22786         * cstreams.c (__gnat_full_name): Minor improvements and clean up
22787         of previous change.
22788
22789 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22790
22791         * tracebak.c (MAX): Avoid redefinition warning.
22792
22793         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
22794         Change msg to const char *.
22795         (__gnat_install_handler): Remove ss, unused.
22796         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
22797         to const char *.
22798         * cstreams.c (__gnat_full_name): Declare p only when used.
22799         (__gnat_full_name) [sgi] Return buffer.
22800
22801 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22802
22803         * mingw32.h: New file.
22804         * gnat_wrapper.adb: New file.
22805
22806 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
22807
22808         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
22809         string match a pre compiled regular expression (the corresponding
22810         version of the function working on a raw regular expression)
22811         Fix typos in various comments
22812         Update copyright notice in spec
22813
22814 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
22815
22816         * exp_ch3.adb:
22817         (Component_Needs_Simple_Initialization): Return False when the type is a
22818         packed bit array. Revise spec comments to document this case.
22819
22820         * exp_prag.adb:
22821         (Expand_Pragma_Import): Set any expression on the imported object to
22822         empty to avoid initializing imported objects (in particular this
22823         covers the case of zero-initialization of bit arrays).
22824         Update copyright notice.
22825
22826 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
22827
22828         * sem_ch12.adb:
22829         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
22830         a subunit is missing.
22831         (Instantiate_Subprogram_Body): If body of function is missing, set type
22832         of return expression explicitly in dummy body, to prevent cascaded
22833         errors when a subunit is missing.
22834         Fixes PR 5677.
22835
22836         * sem_ch3.adb:
22837         (Access_Subprogram_Declaration): Verify that return type is valid.
22838         Fixes PR 8693.
22839
22840         * sem_elab.adb:
22841         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
22842         generic.
22843         Fixes PR 12318.
22844
22845         * sem_util.adb:
22846         (Corresponding_Discriminant): If the scope of the discriminant is a
22847         private type without discriminant, use its full view.
22848         Fixes PR 8247.
22849
22850 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
22851
22852         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
22853         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
22854         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
22855         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
22856         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
22857         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
22858         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
22859         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
22860         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
22861         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
22862         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
22863         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
22864         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
22865         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
22866         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
22867         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
22868         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
22869         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
22870         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
22871         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
22872         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
22873         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
22874         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
22875         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
22876         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
22877         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
22878         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
22879         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
22880         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
22881         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
22882         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
22883         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
22884         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
22885         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
22886         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
22887         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
22888         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
22889         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
22890         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
22891         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
22892         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
22893         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
22894         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
22895         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
22896         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
22897         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
22898         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
22899         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
22900         vms_conv.ads, vms_conv.adb, vms_data.ads,
22901         vxaddr2line.adb: Files added. Merge with ACT tree.
22902
22903         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
22904         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
22905         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
22906         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
22907         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
22908         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
22909         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
22910         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
22911         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
22912         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
22913
22914         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
22915         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
22916         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
22917         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
22918         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
22919         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
22920         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
22921         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
22922         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
22923         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
22924         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
22925         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
22926         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
22927         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
22928         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
22929         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
22930         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
22931         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
22932         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
22933         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
22934         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
22935         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
22936         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
22937         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
22938         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
22939         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
22940         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
22941         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
22942         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
22943         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
22944         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
22945         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
22946         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
22947         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
22948         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
22949         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
22950         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
22951         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
22952         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
22953         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
22954         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
22955         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
22956         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
22957         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
22958         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
22959         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
22960         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
22961         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
22962         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
22963         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
22964         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
22965         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
22966         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
22967         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
22968         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
22969         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
22970         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
22971         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
22972         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
22973         checks.adb, checks.ads, cio.c, comperr.adb,
22974         comperr.ads, csets.adb, cstand.adb, cstreams.c,
22975         debug_a.adb, debug_a.ads, debug.adb, decl.c,
22976         einfo.adb, einfo.ads, errout.adb, errout.ads,
22977         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
22978         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
22979         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
22980         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
22981         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
22982         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
22983         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
22984         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
22985         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
22986         fe.h, fmap.adb, fmap.ads, fname.adb,
22987         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
22988         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
22989         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
22990         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
22991         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
22992         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
22993         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
22994         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
22995         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
22996         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
22997         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
22998         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
22999         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
23000         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
23001         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
23002         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
23003         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
23004         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
23005         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
23006         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
23007         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
23008         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
23009         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
23010         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
23011         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
23012         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
23013         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
23014         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
23015         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
23016         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
23017         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
23018         layout.adb, lib.adb, lib.ads, lib-list.adb,
23019         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
23020         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23021         link.c, live.adb, make.adb, make.ads,
23022         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
23023         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
23024         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
23025         misc.c, mkdir.c, mlib.adb, mlib.ads,
23026         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
23027         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
23028         namet.adb, namet.ads, namet.h, nlists.ads,
23029         nlists.h, nmake.adt, opt.adb, opt.ads,
23030         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
23031         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
23032         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23033         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23034         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
23035         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
23036         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
23037         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
23038         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
23039         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
23040         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
23041         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
23042         prj-util.adb, prj-util.ads, raise.c, raise.h,
23043         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
23044         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
23045         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
23046         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
23047         scans.ads, scn.adb, scn.ads, s-crc32.adb,
23048         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
23049         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
23050         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
23051         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
23052         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
23053         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23054         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23055         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
23056         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
23057         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
23058         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
23059         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
23060         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
23061         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
23062         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23063         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
23064         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
23065         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
23066         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
23067         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
23068         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
23069         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
23070         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
23071         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
23072         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
23073         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
23074         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
23075         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
23076         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
23077         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
23078         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
23079         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
23080         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
23081         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
23082         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
23083         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
23084         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
23085         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
23086         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
23087         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
23088         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
23089         stringt.adb, stringt.ads, stringt.h, style.ads,
23090         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
23091         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
23092         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
23093         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
23094         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
23095         table.adb, table.ads, targparm.adb, targparm.ads,
23096         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
23097         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
23098         ttypes.ads, types.ads, types.h, uintp.adb,
23099         uintp.ads, uintp.h, uname.adb, urealp.adb,
23100         urealp.ads, urealp.h, usage.adb, utils2.c,
23101         utils.c, validsw.adb, validsw.ads, widechar.adb,
23102         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
23103         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
23104         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
23105         gnatvsn.ads: Merge with ACT tree.
23106
23107         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
23108
23109 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
23110
23111         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
23112         (gnat_ug_vmx.info): Likewise.
23113         (gnat_ug_vxw.info): Likewise.
23114         (gnat_ug_wnt.info): Likewise.
23115         (gnat_rm.info): Likewise.
23116         (gnat-style.info): Likewise.
23117
23118         * Make-lang.in (ada.install-info): Remove target.
23119         (info): New target.
23120         (install-info): Likewise.
23121         (gnat_ug_unx.info): Simplify rule.
23122         (gnat_ug_vmx.info): Likewise.
23123         (gnat_ug_vxw.info): Likewise.
23124         (gnat_ug_wnt.info): Likewise.
23125         (gnat_rm.info): Likewise.
23126         (gnat-style.info): Likewise.
23127
23128 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23129
23130         * Make-lang.in: Replace uses of $(target_alias) with
23131         $(target_noncanonical).
23132         * ada/Makefile.in: Remove unused mention of $(target_alias).
23133
23134 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
23135
23136         * Make-lang.in (ada.info): Replace with ...
23137         (info): ... this.
23138         (ada.dvi): Replace with ...
23139         (dvi): ... this.
23140
23141 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
23142
23143         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
23144         initialize dconstp5 and dconstmp5.
23145
23146 2003-09-28  Richard Henderson  <rth@redhat.com>
23147
23148         * trans.c (tree_transform): Update call to expand_asm_operands.
23149
23150 2003-09-21  Richard Henderson  <rth@redhat.com>
23151
23152         * trans.c, utils.c: Revert.
23153
23154 2003-09-21  Richard Henderson  <rth@redhat.com>
23155
23156         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
23157         change to const.
23158
23159 2003-09-04  Michael Matz  <matz@suse.de>
23160
23161         * misc.c: Include "target.h".
23162         * Make-lang.in (misc.o): Add dependency on target.h.
23163
23164 2003-09-03  DJ Delorie  <dj@redhat.com>
23165
23166         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
23167         hook.
23168
23169 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
23170
23171         * Makefile.in: Update substitutions to match changes to
23172         configure.  Use include directives instead of @-insertions
23173         to read in host and target fragments.  Add a rule to
23174         regenerate ada/Makefile.
23175
23176 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
23177
23178         * lang-options.h: Remove.
23179         * lang.opt: Add help text.
23180
23181 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23182
23183         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
23184         calls.
23185
23186 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
23187
23188         * misc.c (gnat_handle_option): Don't handle filenames.
23189
23190 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
23191
23192         * Make-lang.in: Replace PWD with PWD_COMMAND.
23193         * Makefile.adalib: Likewise.
23194         * Makefile.in: Likewise.
23195
23196 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
23197
23198         * misc.c (gnat_argv): Revert last change.
23199         (gnat_handle_option, gnat_init_options): Copy arguments.
23200
23201 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
23202
23203         * misc.c (gnat_argv): Make const.
23204
23205 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23206
23207         * misc.c (save_argc, save_argv): Keep non-static!
23208
23209 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23210
23211         * misc.c (save_argc, save_argv): Make static.
23212         (gnat_init_options): New prototype.
23213         (gnat_init_options): Update.
23214
23215 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
23216
23217         * gnat_ug.texi: Remove unlikely characters from @vars.
23218         * gnat_ug_vms.texi: Regenerate.
23219
23220 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
23221
23222         * misc.c (record_code_position): Adjust emit_note call.
23223
23224 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
23225
23226         * misc.c (gnat_handle_option): Don't check for missing arguments.
23227
23228 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
23229
23230         * utils.c (end_subprog_body): Adjust expand_function_end call.
23231
23232 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
23233
23234         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
23235         Bind_Main_Program.
23236
23237 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
23238
23239         * lang.opt: Declare Ada.
23240         * misc.c (gnat_init_options): Update.
23241
23242 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
23243
23244         * utils.c (begin_subprog_body): Adjust init_function_start call.
23245
23246 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23247
23248         * Make-lang.in: Update to use options.c and options.h.
23249         * misc.c: Include options.h not aoptions.h.
23250         (gnat_handle_option): Abort on unrecognized switch.
23251         (gnat_init_options): Request Ada switches.
23252
23253 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23254
23255         * lang.opt: Add -Wall.
23256         * misc.c (gnat_handle_option): Handle it.
23257
23258 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
23259
23260         * misc.c (gnat_handle_option): Fix warnings.
23261
23262 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
23263
23264         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
23265
23266 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
23267
23268         * Make-lang.in: Update to handle command-line options.
23269         * lang.opt: New file.
23270         * misc.c: Include aoptions.h.
23271         (cl_options_count, cl_options): Remove.
23272         (gnat_handle_option): New.
23273         (gnat_decode_option): Remove.
23274         (LANG_HOOKS_DECODE_OPTION): Remove.
23275         (LANG_HOOKS_HANDLE_OPTION): Override.
23276
23277 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
23278
23279         * init.c, misc.c, trans.c, utils.c: Remove dead code.
23280
23281 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
23282
23283         * Makefile.in: Replace "host_canonical" with "host" for autoconf
23284         substitution.
23285
23286 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
23287
23288         * Make-lang.in: Update.
23289         * misc.c: Include opts.h. Define cl_options_count and cl_options.
23290
23291 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
23292
23293         * misc.c (gnat_init_options): Update.
23294
23295 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23296
23297         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
23298         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
23299         __attribute__ ((__unused__)).
23300
23301 2003-06-05  Jan Hubicka  <jh@suse.cz>
23302
23303         * Make-lang.in:  Add support for stageprofile and stagefeedback
23304
23305 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23306
23307         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
23308         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
23309
23310 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
23311
23312         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
23313         Remove non-VMS directive.
23314         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
23315         alternatives.
23316         (Examples of gnatls Usage): Remove VMS alternative.
23317
23318 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
23319
23320         PR ada/9953:
23321         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
23322         and turn ZCX_By_Default back to False since the underlying support
23323         is not quite there yet.
23324
23325 2003-06-01  Andreas Jaeger  <aj@suse.de>
23326
23327         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
23328         and ROUND_TYPE_SIZE_UNIT.
23329
23330 2003-05-22   Geert Bosch <bosch@gnat.com>
23331
23332         * gnat_rm.texi : Remove reference to Ada Core Technologies.
23333
23334 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
23335
23336         * trans.c (tree_transform): Use location_t and input_location
23337         directly.
23338         (build_unit_elab): Likewise.
23339         * utils.c (create_label_decl): Likewise.
23340
23341 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
23342
23343         * trans.c (tree_transform, build_unit_elab,
23344         set_lineno): Rename lineno to input_line.
23345         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
23346         end_subprog_body): Likewise.
23347         * utils2.c (build_call_raise): Likewise.
23348
23349 2003-05-01  Laurent Guerby <guerby@acm.org>
23350
23351         PR ada/10546
23352         * 5iosinte.ads: Increase pthread_cond_t size to match recent
23353         LinuxThread and NPTL version, merge from ACT.
23354
23355 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
23356
23357         * utils.c (convert): No need to clear TREE_CST_RTL.
23358
23359 2003-04-23   Geert Bosch <bosch@gnat.com>
23360
23361         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
23362         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
23363         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
23364         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
23365         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
23366         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
23367         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
23368         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
23369         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
23370         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
23371         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
23372         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
23373         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
23374         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
23375         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
23376         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
23377         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
23378         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
23379         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
23380         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
23381         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
23382         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
23383         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
23384         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
23385         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
23386         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
23387         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
23388         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
23389         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
23390         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
23391         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
23392         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
23393         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
23394         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
23395         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
23396         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
23397         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
23398         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
23399         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
23400         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
23401         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
23402         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
23403         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
23404         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
23405         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
23406         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
23407         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
23408         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
23409         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
23410         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
23411         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23412         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23413         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
23414         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
23415         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
23416         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
23417         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
23418         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
23419         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
23420         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
23421         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
23422         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
23423         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
23424         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
23425         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
23426         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
23427         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
23428         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
23429         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
23430         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
23431         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
23432         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
23433         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23434         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
23435         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
23436         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
23437         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
23438         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
23439         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
23440         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
23441         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
23442         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
23443         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
23444         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
23445         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
23446         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
23447         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
23448         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23449         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
23450         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
23451         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
23452         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
23453         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
23454         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
23455         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
23456         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
23457         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
23458         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
23459         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
23460         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
23461         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
23462         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
23463         ali.adb, ali.ads, alloc.ads, argv.c,
23464         atree.adb, atree.ads, atree.h, aux-io.c,
23465         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
23466         binde.adb, binde.ads, binderr.adb, binderr.ads,
23467         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
23468         butil.adb, butil.ads, cal.c, calendar.ads,
23469         casing.adb, casing.ads, ceinfo.adb, checks.adb,
23470         checks.ads, cio.c, comperr.adb, comperr.ads,
23471         config-lang.in, csets.adb, csets.ads, csinfo.adb,
23472         cstand.adb, cstand.ads, cuintp.c, debug.adb,
23473         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
23474         dec-io.ads, dec.ads, deftarg.c, directio.ads,
23475         einfo.adb, einfo.ads, elists.adb, elists.ads,
23476         elists.h, errno.c, errout.adb, errout.ads,
23477         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
23478         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
23479         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
23480         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
23481         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
23482         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
23483         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
23484         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
23485         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
23486         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
23487         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
23488         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
23489         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
23490         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
23491         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
23492         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
23493         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
23494         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
23495         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
23496         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
23497         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
23498         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
23499         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
23500         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
23501         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
23502         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
23503         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
23504         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
23505         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
23506         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
23507         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
23508         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
23509         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
23510         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
23511         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
23512         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
23513         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
23514         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
23515         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
23516         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
23517         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
23518         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
23519         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
23520         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
23521         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
23522         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
23523         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
23524         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
23525         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
23526         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
23527         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
23528         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
23529         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
23530         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
23531         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
23532         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
23533         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
23534         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
23535         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
23536         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23537         lib.adb, lib.ads, live.adb, live.ads,
23538         machcode.ads, make.adb, make.ads, makeusg.adb,
23539         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
23540         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
23541         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
23542         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
23543         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
23544         mlib.ads, namet.adb, namet.ads, nlists.adb,
23545         nlists.ads, opt.adb, opt.ads, osint-b.adb,
23546         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
23547         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
23548         osint.ads, output.adb, output.ads, par-ch10.adb,
23549         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
23550         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23551         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
23552         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
23553         par-tchk.adb, par-util.adb, par.adb, par.ads,
23554         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
23555         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
23556         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
23557         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
23558         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
23559         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
23560         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
23561         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
23562         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
23563         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
23564         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
23565         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
23566         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
23567         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
23568         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
23569         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
23570         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
23571         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
23572         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
23573         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
23574         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
23575         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
23576         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23577         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
23578         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
23579         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
23580         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
23581         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
23582         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
23583         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
23584         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
23585         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
23586         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
23587         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
23588         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
23589         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
23590         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
23591         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
23592         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
23593         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
23594         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23595         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
23596         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
23597         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
23598         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
23599         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23600         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
23601         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
23602         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
23603         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
23604         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23605         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
23606         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
23607         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
23608         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
23609         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23610         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
23611         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
23612         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
23613         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
23614         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23615         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
23616         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
23617         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
23618         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
23619         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
23620         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
23621         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
23622         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
23623         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
23624         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
23625         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
23626         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
23627         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
23628         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
23629         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
23630         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
23631         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
23632         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
23633         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
23634         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
23635         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
23636         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
23637         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
23638         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
23639         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
23640         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
23641         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
23642         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
23643         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
23644         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
23645         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
23646         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
23647         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
23648         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
23649         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
23650         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
23651         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
23652         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
23653         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
23654         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23655         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
23656         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
23657         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
23658         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
23659         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
23660         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
23661         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
23662         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
23663         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
23664         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23665         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23666         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
23667         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
23668         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
23669         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23670         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
23671         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
23672         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
23673         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
23674         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
23675         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
23676         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
23677         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
23678         snames.ads, sprint.adb, sprint.ads, stand.adb,
23679         stand.ads, stringt.adb, stringt.ads, style.adb,
23680         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
23681         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
23682         switch-m.ads, switch.adb, switch.ads, system.ads,
23683         table.adb, table.ads, targparm.adb, targparm.ads,
23684         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
23685         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
23686         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
23687         ttypef.ads, ttypes.ads, types.adb, types.ads,
23688         uintp.adb, uintp.ads, uname.adb, uname.ads,
23689         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
23690         usage.adb, usage.ads, validsw.adb, validsw.ads,
23691         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
23692         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
23693         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
23694         formatting and other trivial changes from ACT.
23695
23696 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
23697
23698         * gigi.h, utils2.c (build_constructor):
23699         Rename gnat_build_constructor. Use build_constructor.
23700         * decl.c (gnat_to_gnu_entity)
23701         * trans.c (tree_transform, pos_to_constructor, extract_values)
23702         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
23703         (unchecked_convert)
23704         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
23705         (fill_vms_descriptor):
23706         Update to match.
23707
23708 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
23709
23710         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
23711         * misc.c (gnat_tree_size): New function.
23712         (LANG_HOOKS_TREE_SIZE): Override.
23713
23714 2003-04-03  Jason Merrill  <jason@redhat.com>
23715
23716         * misc.c (gnat_adjust_rli): #if 0.
23717
23718 2003-03-31   Geert Bosch <bosch@gnat.com>
23719
23720         PR ada/10020
23721         * link.c : Fix misspelled "const" keyword
23722
23723 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
23724
23725         PR c++/7086
23726         * utils2.c: Adjust calls to put_var_into_stack.
23727
23728 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
23729
23730         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
23731
23732 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
23733
23734         * misc.c (gnat_init): Update for new prototype.
23735
23736 2003-03-05  Olivier Hainque  <hainque@gnat.com>
23737
23738         ada/9961
23739         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
23740         warning, and fix return type for the IN_RTS && !SJLJ case.
23741
23742 2003-03-04  Tom Tromey  <tromey@redhat.com>
23743
23744         * Make-lang.in (ada.tags): New target.
23745
23746 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
23747
23748         ada/9911
23749         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
23750         wrapper, which name remains constant whatever underlying GCC
23751         scheme.
23752
23753         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
23754         the stable interface needed for a-except.
23755
23756 2003-03-02  Andreas Jaeger  <aj@suse.de>
23757
23758         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23759         gnat_ug_wnt.texi: Regenerate.
23760
23761 2003-03-02  Laurent Guerby <guerby@acm.org>
23762
23763         * Makefile.in (install-gnatlib): Match previous change there
23764         so it works.
23765
23766 2003-02-28  Andreas Schwab  <schwab@suse.de>
23767
23768         * Make-lang.in (install-gnatlib): Change to ada directory before
23769         running make instead of using ada/Makefile directly.
23770
23771 2003-02-18  Ben Elliston  <bje@redhat.com>
23772
23773         Part of fix for PR ada/9406
23774         * gnat_ug.texi (Binder output file): Grammar fix.
23775
23776 2003-02-18  Ben Elliston  <bje@redhat.com>
23777
23778         PR other/7350
23779         * 5qtaprop.adb (Sleep): Fix typo in comment.
23780
23781 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
23782
23783         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
23784         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23785         gnat_ug_wnt.texi: Regenerate.
23786
23787 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
23788
23789         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
23790         be created if necessary.
23791         (ada.install-common): Let $(DESTDIR)$(bindir) be created
23792         if necessary.  Remove erroneous and redundant gnatchop
23793         installation commands.  Test for gnatdll before attempting
23794         to install it.
23795         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
23796         and gnatdll from all plausible locations.
23797
23798 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
23799
23800         * utils2.c (build_unary_op): Don't check flag_volatile.
23801         * gnat_ug.texi: Remove -fvolatile from example.
23802         * gnat_ug_vxw.texi: Likewise.
23803
23804 2003-01-29  Laurent Guerby <guerby@acm.org>
23805
23806         PR ada/8344
23807         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
23808         * Makefile.in: match previous change.
23809         * Make-lang.in: match previous change.
23810
23811 2003-01-29      Joel Sherrill <joel@OARcorp.com>
23812
23813         * 5rosinte.ads: Add SIGXCPU.
23814         * 5rtpopsp.adb: New file.
23815         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
23816         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
23817         specific file 5rtpopsp.adb.
23818         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
23819         is likely needed for all newlib targets.
23820         * init.c: Add RTEMS specific version of __gnat_initialize().
23821
23822 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23823
23824         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
23825
23826 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23827
23828         * init.c (__gnat_error_handler): Make msg const.
23829
23830         * gmem.c (convert_addresses): Move declaration ...
23831         * adaint.h: ... here.
23832         * adaint.c (convert_addresses): Adapt addrs type to match
23833         prototype.
23834
23835         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
23836
23837 2003-01-24  Andreas Schwab  <schwab@suse.de>
23838
23839         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
23840         size_t to avoid warning.
23841
23842 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
23843
23844         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
23845
23846 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
23847
23848         * gnat_rm.texi: Remove RCS version number.
23849
23850         * ada-tree.h (union lang_tree_node): Add chain_next option.
23851
23852 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
23853
23854         * Make-lang.in (ada.install-info, ada.install-common,
23855         ada.uninstall): Prepend $(DESTDIR) to the destination
23856         directory in all (un)installation commands.
23857         * Makefile.in (install-gnatlib, install-rts): Ditto.
23858
23859 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
23860
23861         * gnat_rm.texi, gnat_ug.texi: Use @copying.
23862         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23863         gnat_ug_wnt.texi: Regenerate.
23864
23865 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
23866
23867         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
23868         only.
23869         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
23870         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
23871         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
23872         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
23873         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
23874         $(srcdir)/doc/include/gcc-common.texi.
23875
23876 2002-12-15   Geert Bosch <bosch@gnat.com>
23877
23878         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
23879
23880 2002-12-14   Geert Bosch <bosch@gnat.com>
23881
23882         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
23883         case of a body created for a Renaming_As_Body, on which
23884         conformance checks are not performed. Fixes PR ada/5690.
23885
23886 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
23887
23888         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
23889         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
23890         not already included.
23891         * Make-lang.in: Update dependencies.
23892
23893 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
23894         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
23895         solution to buffer overflow bug on GNU/Linux.
23896
23897 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23898         Closes PR ada/5856 and PR ada/6919 !
23899         * bindgen.adb: Remove all references to Public_Version.
23900         * comperr.adb: Remove all references to Public_Version and
23901         GNATPRO_Version; correct bug reporting instructions.
23902         * comperr.ads: Change to match bug box.
23903         * gnatvsn.ads: Remove all references to Public version and
23904         GNATPRO version.
23905
23906 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
23907         PR ada/6919
23908         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
23909         GNU/Linux.
23910
23911         PR ada/6558
23912         * config-lang.in: Remove diff_excludes.
23913
23914 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
23915         PR ada/8358
23916         * trans.c (gnu_pending_elaboration_lists): New GC root.
23917         (build_unit_elab): Use..
23918
23919 2002-10-30   Geert Bosch <bosch@gnat.com>
23920         PR ada/6558
23921         * misc.c : Include optabs.h
23922
23923         * Make-lang.in (misc.o): Add dependency on optabs.h
23924
23925 2002-10-29   Geert Bosch <bosch@gnat.com>
23926         PR ada/6558
23927         * Make-lang.in (gnatbind): Depend on CONFIG_H
23928
23929 2002-10-29  Geert bosch  <bosch@gnat.com>
23930         PR ada/6558
23931         * misc.c: Unrevert misc.c (1.13)
23932
23933 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
23934
23935         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
23936         maintainership comments.
23937
23938 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
23939         PR ada/5904
23940         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
23941         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
23942         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
23943         7staprop.adb: Correct statements in comments about
23944         maintainership of GNAT.
23945
23946         PR ada/5904
23947         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
23948         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
23949         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
23950         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
23951         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
23952         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
23953         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
23954         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
23955         comments about maintainership of GNAT.
23956
23957         PR ada/6919 (forward port of patch for PR ada/5904)
23958         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
23959         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
23960         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
23961         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
23962         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
23963         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
23964         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
23965         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
23966         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
23967         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
23968         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
23969         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
23970         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
23971         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
23972         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
23973         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
23974         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
23975         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
23976         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
23977         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
23978         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
23979         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
23980         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
23981         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
23982         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
23983         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
23984         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
23985         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
23986         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
23987         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
23988         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
23989         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
23990         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
23991         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
23992         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
23993         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
23994         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
23995         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
23996         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
23997         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
23998         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
23999         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
24000         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
24001         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
24002         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
24003         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
24004         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
24005         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
24006         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
24007         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
24008         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
24009         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
24010         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
24011         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
24012         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
24013         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
24014         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
24015         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
24016         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
24017         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
24018         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
24019         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
24020         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
24021         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
24022         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
24023         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
24024         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
24025         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
24026         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
24027         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
24028         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
24029         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
24030         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
24031         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
24032         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
24033         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
24034         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
24035         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
24036         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
24037         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
24038         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
24039         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
24040         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
24041         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
24042         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
24043         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
24044         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
24045         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
24046         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
24047         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
24048         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
24049         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
24050         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
24051         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
24052         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
24053         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
24054         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
24055         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
24056         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
24057         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
24058         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
24059         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
24060         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
24061         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
24062         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
24063         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
24064         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
24065         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
24066         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
24067         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
24068         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
24069         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
24070         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
24071         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
24072         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
24073         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
24074         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
24075         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
24076         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
24077         par-endh.adb par-labl.adb par-load.adb par-prag.adb
24078         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
24079         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
24080         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
24081         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
24082         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
24083         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
24084         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
24085         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
24086         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
24087         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
24088         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
24089         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
24090         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
24091         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
24092         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
24093         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
24094         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
24095         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
24096         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
24097         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
24098         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
24099         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
24100         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
24101         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
24102         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
24103         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
24104         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
24105         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
24106         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
24107         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
24108         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
24109         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
24110         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
24111         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
24112         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
24113         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
24114         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
24115         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
24116         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
24117         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
24118         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
24119         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
24120         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
24121         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
24122         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
24123         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
24124         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
24125         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
24126         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
24127         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
24128         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
24129         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
24130         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
24131         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
24132         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
24133         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
24134         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
24135         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
24136         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
24137         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
24138         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
24139         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
24140         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
24141         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
24142         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
24143         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
24144         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
24145         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
24146         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
24147         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
24148         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
24149         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
24150         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
24151         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
24152         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
24153         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
24154         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
24155         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
24156         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
24157         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
24158         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
24159         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
24160         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
24161         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
24162         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
24163         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
24164         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
24165         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
24166         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
24167         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
24168         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
24169         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
24170         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
24171         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
24172         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
24173         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
24174         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
24175         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
24176         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
24177         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
24178         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
24179         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
24180         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
24181         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
24182         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
24183         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
24184         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
24185         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
24186         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
24187         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
24188         stringt.ads stringt.h style.adb style.ads stylesw.adb
24189         stylesw.ads switch.adb switch.ads sysdep.c system.ads
24190         table.adb table.ads targparm.adb targparm.ads targtyps.c
24191         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
24192         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
24193         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
24194         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
24195         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
24196         usage.ads utils.c utils2.c validsw.adb validsw.ads
24197         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
24198         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
24199         xtreeprs.adb: Correct statements in comments about maintainership
24200         of GNAT.
24201
24202 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
24203
24204         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
24205         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
24206         * gnatvsn.ads: Gnat_Version_String is now a function.
24207         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
24208         copy the C version_string into a String and return it.
24209         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
24210         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
24211         Remove pragma Ident (Gnat_Version_String).  If this was the
24212         sole use of package Gnatvsn, remove the with statement too.
24213         * gnat1drv.adb: Tweak -gnatv output.
24214
24215 2002-09-17  Richard Henderson  <rth@redhat.com>
24216
24217         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
24218         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
24219         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
24220         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
24221         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
24222         and real_2expN instead of a loop.
24223         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
24224         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
24225
24226 2002-08-25  Andre Leis <a.leis@gmx.net>
24227             David Billinghurst (David.Billinghurst@riotinto.com>
24228
24229         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
24230
24231 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24232
24233         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
24234         Remove $(CONFIG_H) dependency.
24235
24236 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
24237
24238         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
24239
24240 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24241
24242         * adadecode.c (ada_demangle): Use xstrdup in lieu of
24243         xmalloc/strcpy.
24244         * misc.c (gnat_decode_option): Likewise.
24245
24246 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
24247
24248         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24249         function approach did not work well because of a side effect (the
24250         function call could reallocate the table which was being indexed
24251         using its result). Fixes ada/4851. [RESURRECTED]
24252
24253 2002-07-01  Roger Sayle  <roger@eyesopen.com>
24254
24255         * ada/utils.c (builtin_function): Accept an additional parameter.
24256
24257 2002-06-28  Andreas Jaeger  <aj@suse.de>
24258
24259         PR ada/7144
24260         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
24261         <adi@thur.de>.
24262
24263 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24264
24265         * Makefile.in (SHELL): Set to @SHELL@.
24266
24267 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24268
24269         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
24270         array size calculation.
24271
24272 2002-06-04  Andreas Jaeger  <aj@suse.de>
24273
24274         * Make-lang.in (gnatbind): Readd rule that has been lost in last
24275         patch.
24276
24277 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
24278
24279         Merge from pch-branch:
24280
24281         * config-lang.in (gtfiles): Add ada-tree.h.
24282         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
24283         (SET_TYPE_MODULUS): New.
24284         (SET_TYPE_INDEX): New.
24285         (SET_TYPE_DIGITS_VALUE): New.
24286         (SET_TYPE_RM_SIZE): New.
24287         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
24288         (SET_TYPE_ADA_SIZE): New.
24289         (SET_TYPE_ACTUAL_BOUNDS): New.
24290         (SET_DECL_CONST_CORRESPONDING_VAR): New.
24291         (SET_DECL_ORIGINAL_FIELD): New.
24292         (TREE_LOOP_ID): Correct typo.
24293         * decl.c: Use new macros.
24294         * utils.c: Include debug.h, use new macros.
24295         * utils2.c: Use new macros.
24296
24297         * ada-tree.h: Update all macros for new tree description.
24298         (struct tree_loop_id): New.
24299         (union lang_tree_node): New.
24300         (struct lang_decl): New.
24301         (struct lang_type): New.
24302         * misc.c (gnat_mark_tree): Delete.
24303         (LANG_HOOKS_MARK_TREE): Delete.
24304         * trans.c (tree_transform): No longer any need to cast
24305         for TREE_LOOP_ID.
24306
24307         * utils.c (struct language_function): New dummy structure.
24308
24309         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
24310         (misc.o): Likewise.
24311         (utils.o): Likewise; also gtype-ada.h.
24312         * Make-lang.in (gnat1): Add dependency on s-gtype.
24313         (gnatbind): Add dependency on $(CONFIG_H).
24314         * utils.c: Correct last #include.
24315         (stuct e_stack): Remove unnecessary 'static'.
24316         (mark_e_stack): Remove unused prototype.
24317
24318         * scn-nlit.adb: Remove whitespace after version number to
24319         keep lines under 80 chars.
24320         * snames.adb: Likewise.
24321         * treepr.ads: Likewise.
24322
24323         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
24324         (misc.o): Likewise.
24325         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
24326         * config-lang.in (gtfiles): New.
24327         * decl.c: Use gengtype for roots.
24328         * gigi.h: Use gengtype for roots.
24329         * trans.c: Use gengtype for roots.
24330         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
24331
24332 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
24333
24334         * misc.c (gnat_init): Adjust setting of internal_error_function.
24335
24336 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
24337
24338         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
24339         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
24340         gnat_ug_wnt.texi: Regenerate.
24341
24342 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
24343
24344         * 5ntaprop.adb (with System.OS_Primitives): Remove.
24345
24346         * cstreams.c (max_path_len): Move from here ...
24347         * adaint.c (__gnat_max_path_len): ... to here.
24348         * adaint.c (__gnat_max_path_len): Declare.
24349         * g-dirope.adb (Max_Path): Adjust.
24350         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
24351         * i-cstrea.ads (max_path_len): Adjust.
24352         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
24353         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
24354
24355         * Makefile.in, Make-lang.in: Documentation is now built in
24356         Make-lang.in.  Store Info and generated Texinfo files in the
24357         source directory.
24358         * gnat_ug.texi: Remove CVS keywords, correct version number.
24359         Set file name correctly.
24360
24361         * gnat_ug_*.texi: Add.
24362         * .cvsignore: Ignore generated Texinfo files.
24363
24364 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
24365
24366         * ada.h: Add MI guard macro.
24367         (SUBTYPE): Define constants with an anonymous enum, not static
24368         const variables.
24369         (IN): Cast constants to appropriate type before use.
24370
24371 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
24372
24373         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
24374         (experimental)".
24375
24376 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24377
24378         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
24379         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
24380         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
24381         (ALL_ADA_CFLAGS): Likewise.
24382         (ADA_INCLUDES): Likewise.
24383         Adapt for new working dir.
24384         (GNATBIND): Use Makefile.in version.
24385         (.SUFFIXES): Copy from Makefile.in.
24386         (ada-warn): Define.
24387         (.adb.o, .ads.o): Copy from Makefile.in.
24388         Added $(OUTPUT_OPTION).
24389         (GNAT1_C_OBJS): Moved from Makefile.in.
24390         Prefix with ada subdir.
24391         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
24392         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
24393         Adapt for new working dir.
24394         (EXTRA_GNATBIND_OBJS): Likewise.
24395         (ADA_BACKEND): Moved from Makefile.in.
24396         Renamed to avoid conflict with global BACKEND.
24397         Use that one.
24398         (TARGET_ADA_SRCS): Moved from Makefile.in.
24399         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
24400         Use ADA_BACKEND.
24401         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
24402         (ada_extra_files): Moved from Makefile.in.
24403         Prefix with ada subdir.
24404         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
24405         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
24406         (ada/nmake.ads): Likewise.
24407         (update-sources): Moved from Makefile.in.
24408         Prefix with ada subdir.
24409         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
24410         (ADA_TREE_H): Likewise.
24411         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
24412         (ada/memtrack.o): Likewise.
24413         (ada/adadecode.o): Likewise.
24414         Update dependencies.
24415         (ada/adaint.o): New.
24416         (ada/argv.o): Moved from Makefile.in.
24417         Prefix with ada subdir.
24418         Update dependencies.
24419         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
24420         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
24421         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
24422         Prefix with ada subdir.
24423         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
24424         (GNAT DEPENDENCIES): Regenerate.
24425         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
24426         toplevel Makefile.in.
24427         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
24428         (TARGET_ADA_SRCS): Removed.
24429         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
24430         (GNATBIND_OBJS): Likewise.
24431         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
24432         (BACKEND): Removed.
24433         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
24434         (TREE_H): Likewise.
24435         (ada_extra_files): Likewise.
24436         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
24437         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
24438         (update-sources): Likewise.
24439         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
24440         (ADA_TREE_H): Likewise.
24441         (adadecoce.o): Likewise.
24442         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
24443         (GNAT DEPENDENCIES): Likewise.
24444
24445 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24446
24447         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
24448         * Makefile.in: Likewise.
24449
24450 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24451
24452         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
24453         Restore $(CONFIG_H) and prefix.o dependencies.
24454         (ada.stage[1-4]): Depend on stage?-start.
24455
24456         * Makefile.in (b_gnatb.c): Depend on interfac.o.
24457
24458 2002-05-02  Jim Wilson  <wilson@redhat.com>
24459
24460         * utils.c (finish_record_type): Change record_size to record_type.
24461
24462 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24463
24464         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
24465         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
24466         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
24467
24468 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24469
24470         * misc.c (gnat_parse_file): Update.
24471
24472 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24473
24474         * misc.c (gnat_init): Don't set lang_attribute_common.
24475
24476 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
24477
24478         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
24479
24480 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
24481
24482         * gnat_ug.texi: New file.
24483
24484         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
24485         instead of gfdl.texi
24486
24487         * xgnatug.adb, ug_words: New files.
24488
24489         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
24490         gnat_rm and gnat-style manuals.
24491
24492 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
24493
24494         * gigi.h (incomplete_type_error): Remove.
24495         * utils.c (incomplete_type_error): Remove.
24496
24497 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
24498
24499         * trans.c (tree_transform): Add has_scope argument to
24500         expand_start_stmt_expr.
24501
24502 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24503
24504         * gigi.h (truthvalue_conversion): Rename.
24505         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
24506         * trans.c (tree_transform): Update.
24507         * utils2.c (truthvalue_conversion): Rename, update.
24508         (build_binary_op, build_unary_op): Update.
24509
24510 2002-04-04  Laurent Guerby  <guerby@acm.org>
24511
24512         * make.adb: Implement -margs, remove restriction about file name placement.
24513         * makeusg.adb: Documentation update.
24514         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
24515         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
24516
24517 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24518
24519         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
24520         (builtin_function): Similarly.
24521
24522 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24523
24524         * decl.c (gnat_to_gnu_entity): Update.
24525         * gigi.h (mark_addressable): Rename.
24526         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
24527         * trans.c (tree_transform): Update.
24528         * utils.c (create_var_decl): Update.
24529         * util2.c (build_binary_op, build_unary_op,
24530         fill_vms_descriptor): Update.
24531         (mark_addressable): Rename, update.
24532
24533 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24534
24535         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
24536         Rename.
24537         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
24538         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
24539         * trans.c (tree_transform, convert_with_check): Update.
24540         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
24541         Rename.
24542
24543 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
24544
24545         * gigi.h (finish_incomplete_decl): Rename.
24546         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
24547         * utils.c (gnat_init_decl_processing): Don't set hook.
24548         (finish_incomplete_decl): Rename.
24549
24550 2002-03-29  Andreas Schwab  <schwab@suse.de>
24551
24552         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
24553         directory.
24554
24555 2001-03-28  Robert Dewar <dewar@gnat.com>
24556
24557         * checks.ads:
24558         (Remove_Checks): New procedure
24559
24560         * checks.adb:
24561         (Remove_Checks): New procedure
24562
24563         * exp_util.adb:
24564         Use new Duplicate_Subexpr functions
24565         (Duplicate_Subexpr_No_Checks): New procedure
24566         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24567         (Duplicate_Subexpr): Restore original form (checks duplicated)
24568         (Duplicate_Subexpr): Call Remove_Checks
24569
24570         * exp_util.ads:
24571         (Duplicate_Subexpr_No_Checks): New procedure
24572         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24573         Add 2002 to copyright notice
24574
24575         * sem_util.adb: Use new Duplicate_Subexpr functions
24576
24577         * sem_eval.adb:
24578         (Eval_Indexed_Component): This is the place to call
24579         Constant_Array_Ref and to replace the value. We simply merge
24580         the code of this function in here, since it is now no longer
24581         used elsewhere. This fixes the problem of the back end not
24582         realizing we were clever enough to see that this was
24583         constant.
24584         (Expr_Val): Remove call to Constant_Array_Ref
24585         (Expr_Rep_Val): Remove call to Constant_Array_Ref
24586         Minor reformatting
24587         (Constant_Array_Ref): Deal with string literals (patch
24588         suggested by Zack Weinberg on the gcc list)
24589
24590 2001-03-28  Ed Schonberg <schonber@gnat.com>
24591
24592         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
24593         Duplicate_Subexpr_Move_Checks.
24594
24595         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
24596         Duplicate_Subexpr_Move_Checks.
24597
24598         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
24599         value of array exists before retrieving it (it may a private
24600         protected component in a function).
24601
24602 2002-03-28   Geert Bosch <bosch@gnat.com>
24603
24604         * prj-pp.adb : New file.
24605
24606         * prj-pp.ads : New file.
24607
24608 2002-03-28  Andreas Jaeger  <aj@suse.de>
24609
24610         * Makefile.in (stamp-sdefault): Fix path for Makefile.
24611
24612 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24613
24614         * misc.c (gnat_expand_expr): Move prototype.
24615
24616 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24617
24618         * misc.c (insert_default_attributes): Remove.
24619
24620 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24621
24622         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
24623         (gnat_init): Don't set hook.
24624         (gnat_expand_expr): Fix prototype.
24625
24626 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24627
24628         * misc.c (ggc_p): Remove.
24629
24630 2002-03-27  Geert Bosch  <bosch@gnat.com>
24631
24632         * prj-makr.ads, prj-makr.adb : New files.
24633
24634 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
24635
24636         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
24637         (lang_mark_tree): Make static, rename.
24638
24639 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24640
24641         * misc.c (maybe_build_cleanup): Remove.
24642
24643 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24644
24645         * gigi.h (yyparse): Remove.
24646
24647 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
24648
24649         * gnat_rm.texi: Sync with ACT version.
24650           (From Ben Brosgol <brosgol@gnat.com>)
24651
24652 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
24653
24654         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
24655         (gnat_init): Remove old hook.
24656
24657 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
24658
24659         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
24660         (yyparse): Rename gnat_parse_file.
24661
24662 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
24663
24664         Delete all lines containing "$Revision:".
24665         * xeinfo.adb: Don't look for revision numbers.
24666         * xnmake.adb: Likewise.
24667         * xsinfo.adb: Likewise.
24668         * xsnames.adb: Likewise.
24669         * xtreeprs.adb: Likewise.
24670
24671 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24672
24673         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
24674         gnat_tree_code_name): Delete.
24675         (tree_code_type, tree_code_length, tree_code_name): Define.
24676         (gnat_init): Don't try to copy into the various tree_code
24677         arrays.
24678
24679 2002-03-11  Richard Henderson  <rth@redhat.com>
24680
24681         * Makefile.in (.NOTPARALLEL): Add fake tag.
24682
24683 2002-03-07  Geert Bosch  <bosch@gnat.com>
24684
24685         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
24686         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
24687         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
24688         switch-m.adb, switch-m.ads : New files.
24689
24690 2002-03-07  Geert Bosch  <bosch@gnat.com>
24691
24692         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
24693         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
24694         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
24695         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
24696         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
24697         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
24698         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
24699         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
24700         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
24701         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
24702         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
24703         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
24704         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
24705         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
24706         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
24707         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
24708         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
24709         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
24710         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
24711         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
24712         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
24713         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
24714         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
24715         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
24716         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
24717         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
24718         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
24719         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
24720         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
24721         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
24722         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
24723         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
24724         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
24725         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
24726         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
24727         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
24728         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
24729         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
24730         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
24731         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
24732         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
24733         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
24734         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
24735         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
24736         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
24737         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
24738         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
24739         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
24740         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
24741         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
24742         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
24743         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
24744         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
24745         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
24746         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
24747         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
24748         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
24749         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
24750         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
24751         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
24752         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
24753         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
24754         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
24755         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
24756         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
24757         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
24758         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
24759         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
24760         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
24761         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
24762         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
24763         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
24764         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
24765         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24766         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24767         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
24768         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
24769         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
24770         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
24771         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
24772         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
24773         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
24774         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
24775         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
24776         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
24777         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
24778         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
24779         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
24780         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
24781         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
24782         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
24783         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
24784         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
24785         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
24786         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
24787         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
24788         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
24789
24790         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
24791         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
24792         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
24793         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
24794
24795         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
24796         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
24797
24798         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
24799         to mdll-fil.ad[bs] and mdll-util.ad[bs]
24800
24801         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
24802         from mdllfile.ad[bs] and mdlltool.ad[bs]
24803
24804 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24805
24806         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
24807         lieu of explicit sizeof/sizeof.
24808
24809 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24810
24811         * misc.c (copy_lang_decl): Remove.
24812
24813 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
24814
24815         * misc.c: Delete traditional-mode-related code copied from the
24816         C front end but not used, or used only to permit the compiler
24817         to link.
24818
24819 2002-02-07  Richard Henderson  <rth@redhat.com>
24820
24821         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
24822         * adaint.h (__gnat_to_gm_time): Update prototype.
24823
24824 2002-01-30  Richard Henderson  <rth@redhat.com>
24825
24826         * trans.c (tree_transform) [N_Loop_Statement]: Use
24827         expand_exit_loop_top_cond.
24828
24829 2001-12-23  Richard Henderson  <rth@redhat.com>
24830
24831         * utils.c (end_subprog_body): Push GC context around
24832         rest_of_compilation for nested functions.
24833
24834 2001-12-23  Richard Henderson  <rth@redhat.com>
24835
24836         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
24837
24838 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
24839
24840         * gnat-style.texi (Declarations and Types): Remove ancient style
24841         rule which was mandated by code generation issues.
24842
24843         * gnat-style.texi (header): Add @dircategory, @direntry.
24844         (title page): Remove date.
24845         (general) Add @./@: where approriate, and two spaces after the
24846         full stop at the end of a sentence.  Use @samp markup when
24847         referring concrete lexical entities (keywords, attribute names
24848         etc.), and @syntax for ARM grammar elements. Use @r for English
24849         text in comments.  Use @emph for emphasis.  Change "if-statements"
24850         etc. to "if statements" (without @samp). Break long lines.  Make
24851         casing of section names consistent.
24852         (Identifiers): Use @samp markup for variable names.
24853         (Comments): Use @samp markup for comment characters. Line-end
24854         comments may follow any Ada code, not just statements.  Fix
24855         misspelling of "Integer" as "integer".
24856         (Loop statements): Do not use variable name "I", use "J".
24857         (Subprogram Declarations): Document alignment.
24858         (Subprogram Bodies, Block statements): Document empty line before
24859         "begin".
24860
24861 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
24862
24863         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24864         function approach did not work well because of a side effect (the
24865         function call could reallocate the table which was being indexed
24866         using its result). Fixes ada/4851.
24867
24868 2001-12-19  Robert Dewar <dewar@gnat.com>
24869
24870         * bindgen.adb: Minor reformatting
24871
24872         * cstand.adb: Minor reformatting
24873
24874         * fmap.adb: Minor reformatting
24875         Change name from Add for Add_To_File_Map (Add is much too generic)
24876         Change Path_Name_Of to Mapped_Path_Name
24877         Change File_Name_Of to Mapped_File_Name
24878         Fix copyright dates in header
24879
24880         * fmap.ads:
24881         Change name from Add for Add_To_File_Map (Add is much too generic)
24882         Change Path_Name_Of to Mapped_Path_Name
24883         Change File_Name_Of to Mapped_File_Name
24884         Fix copyright dates in header
24885
24886         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
24887         Add use clause for Fmap.
24888
24889         * make.adb: Minor reformatting
24890
24891         * osint.adb: Minor reformatting.  Change of names in Fmap.
24892         Add use clause for Fmap.
24893
24894         * prj-env.adb: Minor reformatting
24895
24896         * prj-env.ads: Minor reformatting
24897
24898         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
24899         error found (there were odd exceptions to this general rule in
24900         -gnatec/-gnatem processing)
24901
24902 2001-12-19  Olivier Hainque <hainque@gnat.com>
24903
24904         * raise.c (__gnat_eh_personality): Exception handling personality
24905         routine for Ada.  Still in rough state, inspired from the C++ version
24906         and still containing a bunch of debugging artifacts.
24907         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
24908         inspired from the C++ library.
24909
24910         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
24911         exception handling integration.
24912
24913 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24914
24915         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
24916         (HIE_SOURCES): Add s-secsta.ad{s,b}.
24917         (HIE_OBJS): Add s-fat*.o
24918         (RAVEN_SOURCES): Remove files that are no longer required. Add
24919         interrupt handling files.
24920         (RAVEN_MOD): Removed, no longer needed.
24921
24922 2001-12-19  Robert Dewar <dewar@gnat.com>
24923
24924         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
24925         Add 2001 to copyright date
24926
24927         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
24928         need to force universal inlining for these cases.
24929
24930 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24931
24932         * s-taprob.adb: Minor clean ups so that this unit can be used in
24933         Ravenscar HI.
24934
24935         * exp_ch7.adb: Allow use of secondary stack in HI mode.
24936         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
24937
24938 2001-12-19  Vincent Celier <celier@gnat.com>
24939
24940         * prj-tree.ads (Project_Node_Record): Add comments for components
24941         Pkg_Id and Case_Insensitive.
24942
24943 2001-12-19  Pascal Obry <obry@gnat.com>
24944
24945         * g-socket.adb: Minor reformatting. Found while reading code.
24946
24947 2001-12-19  Robert Dewar <dewar@gnat.com>
24948
24949         * prj-tree.ads: Minor reformatting
24950
24951 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
24952
24953         * config-lang.in (diff_excludes): Remove.
24954
24955 2001-12-17  Ed Schonberg <schonber@gnat.com>
24956
24957         * sem_res.adb (Resolve_Selected_Component): do not generate a
24958         discriminant check if the selected component is a component of
24959         the argument of an initialization procedure.
24960
24961         * trans.c (tree_transform, case of arithmetic operators): If result
24962         type is private, the gnu_type is the base type of the full view,
24963         given that the full view itself may be a subtype.
24964
24965 2001-12-17  Robert Dewar <dewar@gnat.com>
24966
24967         * sem_res.adb: Minor reformatting
24968
24969         * trans.c (tree_transform, case N_Real_Literal): Add missing third
24970         parameter in call to Machine (unknown horrible effects from this
24971         omission).
24972
24973         * urealp.h: Add definition of Round_Even for call to Machine
24974         Add third parameter for Machine
24975
24976 2001-12-17  Ed Schonberg <schonber@gnat.com>
24977
24978         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
24979         predefined units in No_Run_Time mode.
24980
24981 2001-12-17  Richard Kenner <kenner@gnat.com>
24982
24983         * misc.c (insn-codes.h): Now include.
24984
24985 2001-12-17  Olivier Hainque <hainque@gnat.com>
24986
24987         * a-except.adb: Preparation work for future integration of the GCC 3
24988         exception handling mechanism
24989         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
24990         to factorize previous code sequences and make them externally callable,
24991         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
24992         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
24993         Use the new notification routines.
24994
24995 2001-12-17  Emmanuel Briot <briot@gnat.com>
24996
24997         * prj-tree.ads (First_Choice_Of): Document the when others case
24998
24999 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25000
25001         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
25002         HI-E mode, in order to support Ravenscar profile properly.
25003
25004         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
25005         mode on 32 bits targets.
25006
25007 2001-12-17  Vincent Celier <celier@gnat.com>
25008
25009         * fmap.adb: Initial version.
25010
25011         * fmap.ads: Initial version.
25012
25013         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
25014         If search is successfully done, add to mapping.
25015
25016         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
25017
25018         * make.adb:
25019         (Gnatmake): Add new local variable Mapping_File_Name.
25020          Create mapping file when using project file(s).
25021          Delete mapping file before exiting.
25022
25023         * opt.ads (Mapping_File_Name): New variable
25024
25025         * osint.adb (Find_File): Use path name found in mapping, if any.
25026
25027         * prj-env.adb (Create_Mapping_File): New procedure
25028
25029         * prj-env.ads (Create_Mapping_File): New procedure.
25030
25031         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
25032         (Mapping_File)
25033
25034         * usage.adb: Add entry for new switch -gnatem.
25035
25036         * Makefile.in: Add dependencies for fmap.o.
25037
25038 2001-12-17  Ed Schonberg <schonber@gnat.com>
25039
25040         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
25041         is a package instantiation rewritten as a package body.
25042         (Install_Withed_Unit): Undo previous change, now redundant.
25043
25044 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25045
25046         * layout.adb:
25047         (Compute_Length): Move conversion to Unsigned to callers.
25048         (Get_Max_Size): Convert Len expression to Unsigned after calls to
25049         Compute_Length and Determine_Range.
25050         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
25051         Compute_Length and Determine_Range.
25052         Above changes fix problem with length computation for supernull arrays
25053         where Max (Len, 0) wasn't getting applied due to the Unsigned
25054         conversion used by Compute_Length.
25055
25056 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25057
25058         * rtsfind.ads:
25059         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
25060          System.Secondary_Stack.
25061         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
25062          in HI-E mode.
25063         Remove unused entity RE_Exception_Data.
25064
25065         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
25066
25067         * rident.ads (No_Secondary_Stack): New restriction.
25068
25069 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25070
25071         * gnat_rm.texi: Fix minor typos. Found while reading the section
25072         regarding "Bit_Order Clauses" that was sent to a customer.
25073         Very interesting documentation!
25074
25075 2001-12-17  Robert Dewar <dewar@gnat.com>
25076
25077         * sem_case.adb (Choice_Image): Avoid creating improper character
25078         literal names by using the routine Set_Character_Literal_Name. This
25079         fixes bombs in certain error message cases.
25080
25081 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25082
25083         * a-reatim.adb: Minor reformatting.
25084
25085 2001-12-17  Ed Schonberg <schonber@gnat.com>
25086
25087         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
25088         case where the formal is an extension of another formal in the current
25089         unit or in a parent generic unit.
25090
25091 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25092
25093         * s-tposen.adb: Update comments.  Minor reformatting.
25094         Minor code clean up.
25095
25096         * s-tarest.adb: Update comments.  Minor code reorganization.
25097
25098 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25099
25100         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
25101         when Java_VM.
25102
25103 2001-12-17  Robert Dewar <dewar@gnat.com>
25104
25105         * exp_attr.adb: Minor reformatting
25106
25107 2001-12-17  Ed Schonberg <schonber@gnat.com>
25108
25109         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
25110         derivations nested within a child unit: verify that the parent
25111         type is declared in an outer scope.
25112
25113 2001-12-17  Robert Dewar <dewar@gnat.com>
25114
25115         * sem_ch12.adb: Minor reformatting
25116
25117 2001-12-17  Ed Schonberg <schonber@gnat.com>
25118
25119         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
25120         warning if current unit is a predefined one, from which bodies may
25121         have been deleted.
25122
25123 2001-12-17  Robert Dewar <dewar@gnat.com>
25124
25125         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
25126         Fix header format. Add 2001 to copyright date.
25127
25128         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
25129         which caused CE during compilation if checks were enabled.
25130
25131 2001-12-17  Vincent Celier <celier@gnat.com>
25132
25133         * make.adb:
25134         (Switches_Of): New function
25135         (Test_If_Relative_Path): New procedure
25136         (Add_Switches): Use new function Switches_Of
25137         (Collect_Arguments_And_Compile): Use new function Switches_Of.
25138         When using a project file, test if there are any relative
25139         search path. Fail if there are any.
25140         (Gnatmake): Only add switches for the primary directory when not using
25141         a project file. When using a project file, change directory to the
25142         object directory of the main project file. When using a project file,
25143         test if there are any relative search path. Fail if there are any.
25144         When using a project file, fail if specified executable is relative
25145         path with directory information, and prepend executable, if not
25146         specified as an absolute path, with the exec directory.  Make sure
25147         that only one -o switch is transmitted to the linker.
25148
25149         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
25150
25151         * prj-nmsc.adb:
25152         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
25153         when using a non standard naming scheme.
25154         (Check_Ada_Naming_Scheme): Make sure that error messages
25155         do not raise exceptions.
25156         (Is_Illegal_Append): Return True if there is no dot in the suffix.
25157         (Language_Independent_Check): Check the exec directory.
25158
25159         * prj.adb (Project_Empty): Add new component Exec_Directory
25160
25161         * prj.ads:
25162         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
25163         (Project_Data): Add component Exec_Directory
25164
25165         * snames.adb: Updated to match snames.ads revision 1.215
25166
25167         * snames.ads: Added Exec_Dir
25168
25169 2001-12-17  Robert Dewar <dewar@gnat.com>
25170
25171         * make.adb: Minor reformatting
25172
25173         * prj-nmsc.adb: Minor reformatting
25174
25175         * snames.adb: Updated to match snames.ads
25176
25177         * snames.ads: Alphebetize entries for project file
25178
25179 2001-12-17  Ed Schonberg <schonber@gnat.com>
25180
25181         * trans.c (process_freeze_entity): Do nothing if the entity is a
25182         subprogram that was already elaborated.
25183
25184 2001-12-17  Richard Kenner <kenner@gnat.com>
25185
25186         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
25187         and Esize if object is referenced via pointer.
25188
25189 2001-12-17  Ed Schonberg <schonber@gnat.com>
25190
25191         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
25192         is discrete before analyzing choices.
25193
25194 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25195
25196         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
25197         containing the name of the Ada Main Program. This string is mainly
25198         intended for the debugger.
25199         (Gen_Output_File_C): Do the equivalent change when generating a C file.
25200
25201 2001-12-17  Robert Dewar <dewar@gnat.com>
25202
25203         * ali.adb: Set new Dummy_Entry field in dependency entry
25204
25205         * ali.ads: Add Dummy_Entry field to source dependency table
25206
25207         * bcheck.adb (Check_Consistency): Ignore dummy D lines
25208
25209         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
25210
25211         * lib-writ.ads: Document dummy D lines for missing files.
25212
25213         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
25214
25215 2001-12-17  Robert Dewar <dewar@gnat.com>
25216
25217         * ali.adb: Type reference does not reset current file.
25218
25219         * ali.adb: Recognize and scan renaming reference
25220
25221         * ali.ads: Add spec for storing renaming references.
25222
25223         * lib-xref.ads: Add documentation for handling of renaming references
25224
25225         * lib-xref.adb: Implement output of renaming reference.
25226
25227         * checks.adb:
25228         (Determine_Range): Document local variables
25229         (Determine_Range): Make sure Hbound is initialized. It looks as though
25230          there could be a real problem here with an uninitialized reference
25231          to Hbound, but no actual example of failure has been found.
25232
25233 2001-12-17  Laurent Pautet <pautet@gnat.com>
25234
25235         * g-socket.ads:
25236         Fix comment of Shutdown_Socket and Close_Socket. These functions
25237         should not fail silently because if they are called twice, this
25238         probably means that there is a race condition in the user program.
25239         Anyway, this behaviour is consistent with the rest of this unit.
25240         When an error occurs, an exception is raised with the error message
25241         as exception message.
25242
25243 2001-12-17  Robert Dewar <dewar@gnat.com>
25244
25245         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
25246         that it happens before modification of Sloc values for -gnatD.
25247
25248         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
25249         so that it happens before modification of Sloc values for -gnatD.
25250
25251         * switch.adb: Minor reformatting
25252
25253 2001-12-15  Richard Henderson  <rth@redhat.com>
25254
25255         * sem_ch7.adb: Wrap comment.
25256
25257 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25258
25259         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
25260         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
25261         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
25262         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
25263         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
25264         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
25265         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
25266         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
25267         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
25268         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
25269         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
25270         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
25271         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
25272         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
25273         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
25274         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
25275         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
25276         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
25277         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
25278         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
25279         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
25280         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
25281         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
25282         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
25283         spelling errors.
25284
25285 2001-12-14  Vincent Celier <celier@gnat.com>
25286
25287         * osint.adb(Create_Debug_File): When an object file is specified,
25288         put the .dg file in the same directory as the object file.
25289
25290 2001-12-14  Robert Dewar <dewar@gnat.com>
25291
25292         * osint.adb: Minor reformatting
25293
25294         * lib-xref.adb (Output_Instantiation): New procedure to generate
25295         instantiation references.
25296
25297         * lib-xref.ads: Add documentation of handling of generic references.
25298
25299         * ali.adb (Read_Instantiation_Ref): New procedure to read
25300         instantiation references
25301
25302         * ali.ads: Add spec for storing instantiation references
25303
25304         * bindusg.adb: Minor reformatting
25305
25306         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25307
25308         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25309
25310         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25311
25312         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25313
25314         * csets.ads:
25315         Fix header format
25316         Add 2001 to copyright date
25317         Add entry for Latin-5 (Cyrillic ISO-8859-5)
25318
25319 2001-12-14  Matt Gingell <gingell@gnat.com>
25320
25321         * adaint.c: mktemp is a macro on Lynx and can not be used as an
25322         expression.
25323
25324 2001-12-14  Richard Kenner <kenner@gnat.com>
25325
25326         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
25327         if operand is CONSTRUCTOR.
25328
25329 2001-12-14  Ed Schonberg <schonber@gnat.com>
25330
25331         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
25332         before emiting check on right-hand side, so that exception information
25333         is correct.
25334
25335 2001-12-14  Richard Kenner <kenner@gnat.com>
25336
25337         * utils.c (create_var_decl): Throw away initializing expression
25338         if just annotating types and non-constant.
25339
25340 2001-12-14  Vincent Celier <celier@gnat.com>
25341
25342         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
25343         Default_Ada_...
25344
25345         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25346         Remove functions.
25347         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
25348
25349         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25350         Remove functions.
25351         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
25352
25353 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25354
25355         * ChangeLog: Remove piece of diff output.
25356
25357 2001-12-14  Geert Bosch <bosch@gnat.com>
25358
25359         * config-lang.in: Update copyright notice
25360
25361         * layout.adb: Remove commented out code.
25362
25363         * mdllfile.ads: Update copyright notice. Fix header format.
25364
25365         * sem_case.ads: Likewise.
25366
25367         * sem_ch3.adb: Minor reformatting.
25368
25369 2001-12-12  Geert Bosch <bosch@gnat.com>
25370
25371         * freeze.ads: Update copyright date.
25372
25373         * g-comlin.ads: Minor reformatting.
25374
25375         * gnat-style.texi: Fix typo.
25376
25377 2001-12-12  Geert Bosch <bosch@gnat.com>
25378
25379         *  einfo.h: Regenerate.
25380
25381 2001-12-12  Ed Schonberg <schonber@gnat.com>
25382
25383         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
25384         on known node types, rather than untyped fields. Further cleanups.
25385
25386 2001-12-12  Robert Dewar <dewar@gnat.com>
25387
25388         * sem_ch12.adb:
25389         (Save_Entity_Descendant): Minor comment update.
25390         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
25391          of an N_Attribute_Reference node. As per note below, this does not
25392         eliminate need for Associated_Node in attribute ref nodes.
25393         (Associated_Node): Documentation explicitly mentions attribute
25394         reference nodes, since this field is used in such nodes.
25395
25396         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
25397
25398 2001-12-12  Robert Dewar <dewar@gnat.com>
25399
25400         * s-stalib.adb: Add more comments on with statements being needed
25401
25402         * par-ch12.adb: Minor reformatting
25403
25404         * prj-dect.ads: Fix copyright header
25405
25406         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
25407         inputs fit in 32 bits, but the result still overflows.
25408
25409         * s-fatgen.ads: Minor comment improvement
25410
25411 2001-12-12  Ed Schonberg <schonber@gnat.com>
25412
25413         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
25414         formal derived type, look for an inherited component from the full
25415         view of the parent, if any.
25416
25417 2001-12-12  Robert Dewar <dewar@gnat.com>
25418
25419         * checks.ads (Apply_Alignment_Check): New procedure.
25420
25421         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
25422         ensure that the alignment of objects with address clauses is
25423         appropriate, and raise PE if not.
25424
25425         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
25426         Exp_Pakd.Known_Aligned_Enough
25427
25428         * mdllfile.ads: Minor reformatting
25429
25430         * mlib-fil.ads: Minor reformatting
25431
25432 2001-12-12  Ed Schonberg <schonber@gnat.com>
25433
25434         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
25435         fix to any component reference if enclosing record has non-standard
25436         representation.
25437
25438 2001-12-12  Vincent Celier <celier@gnat.com>
25439
25440         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
25441         Iteration
25442
25443 2001-12-12  Ed Schonberg <schonber@gnat.com>
25444
25445         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
25446         sem_attr.
25447
25448 2001-12-12  Robert Dewar <dewar@gnat.com>
25449
25450         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
25451
25452 2001-12-12  Emmanuel Briot <briot@gnat.com>
25453
25454         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
25455         and it adds dependencies to system.io.
25456
25457 2001-12-12  Pascal Obry <obry@gnat.com>
25458
25459         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
25460         variable name.
25461
25462 2001-12-11  Ed Schonberg <schonber@gnat.com>
25463
25464         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
25465         that is the parent of other generics, the instance body replaces the
25466         instance node.  Retrieve the instance of the spec, which is the one
25467         that is visible in clients and within the body.
25468
25469 2001-12-11  Vincent Celier <celier@gnat.com>
25470
25471         * gnatmain.adb: Initial version.
25472
25473         * gnatmain.ads: Initial version.
25474
25475         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
25476
25477         * snames.adb: Updated to match snames.ads.
25478
25479         * snames.ads: Added Gnatstub.
25480
25481 2001-12-11  Vincent Celier <celier@gnat.com>
25482
25483         * prj-attr.adb (Initialization_Data): Change name from
25484         Initialisation_Data.
25485
25486 2001-12-11  Emmanuel Briot <briot@gnat.com>
25487
25488         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
25489         + and * applied to backslashed expressions like \r.
25490
25491 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
25492
25493         * g-os_lib.ads: String_List type added, Argument_List type is now
25494         subtype of String_List.
25495
25496 2001-12-11  Robert Dewar <dewar@gnat.com>
25497
25498         * g-os_lib.ads: Change copyright to FSF
25499         Add comments for String_List type
25500
25501 2001-12-11  Vincent Celier <celier@gnat.com>
25502
25503         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
25504         string to the buffer).
25505
25506 2001-12-11  Ed Schonberg <schonber@gnat.com>
25507
25508         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
25509         sem_attr.
25510
25511         * sem_attr.adb: Simplify previous fix for Address.
25512         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
25513         to avoid anomalies where the bound of the type appears to raise
25514         constraint error.
25515
25516 2001-12-11  Robert Dewar <dewar@gnat.com>
25517
25518         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
25519         handled.
25520
25521 2001-12-11  Ed Schonberg <schonber@gnat.com>
25522
25523         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
25524         renamed unit before checking for recursive instantiations.
25525
25526 2001-12-11  Emmanuel Briot <briot@gnat.com>
25527
25528         * prj.ads: Add comments for some of the fields.
25529
25530 2001-12-11  Robert Dewar <dewar@gnat.com>
25531
25532         * lib-xref.adb (Output_Refs): Don't output type references outside
25533         the main unit if they are not otherwise referenced.
25534
25535 2001-12-11  Ed Schonberg <schonber@gnat.com>
25536
25537         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
25538         code and diagnose additional illegal uses
25539
25540         * sem_util.adb (Is_Object_Reference): An indexed component is an
25541         object only if the prefix is.
25542
25543 2001-12-11  Vincent Celier <celier@gnat.com>
25544
25545         * g-diopit.adb: Initial version.
25546
25547         * g-diopit.ads: Initial version.
25548
25549         * g-dirope.adb:
25550         (Expand_Path): Avoid use of Unbounded_String
25551         (Find, Wildcard_Iterator): Moved to child package Iteration
25552
25553         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
25554
25555 2001-12-11  Robert Dewar <dewar@gnat.com>
25556
25557         * sem_attr.adb: Minor reformatting
25558
25559 2001-12-11  Ed Schonberg <schonber@gnat.com>
25560
25561         * sem_ch3.adb: Clarify some ???.
25562
25563 2001-12-11  Robert Dewar <dewar@gnat.com>
25564
25565         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
25566         Exp_Pakd.Known_Aligned_Enough
25567
25568         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
25569         version is moved to Exp_Ch13.
25570
25571 2001-12-11  Robert Dewar <dewar@gnat.com>
25572
25573         * einfo.ads: Minor reformatting
25574
25575         * exp_ch5.adb: Add comment for previous.change
25576
25577         * ali.adb: New interface for extended typeref stuff.
25578
25579         * ali.ads: New interface for typeref stuff.
25580
25581         * checks.adb (Apply_Alignment_Check): New procedure.
25582
25583         * debug.adb: Add -gnatdM for modified ALI output
25584
25585         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
25586
25587         * lib-xref.adb: Extend generation of <..> notation to cover
25588         subtype/object types. Note that this is a complete rewrite,
25589         getting rid of the very nasty quadratic algorithm previously
25590         used for derived type output.
25591
25592         * lib-xref.ads: Extend description of <..> notation to cover
25593         subtype/object types. Uses {..} for these other cases.
25594         Also use (..) for pointer types.
25595
25596         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
25597
25598         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
25599         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
25600
25601 2001-12-11  Vincent Celier <celier@gnat.com>
25602
25603         * gnatcmd.adb:
25604         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
25605         Changed /BIND_ONLY to /ACTIONS=BIND
25606         Changed /LINK_ONLY to /ACTIONS=LINK
25607
25608 2001-12-11  Ed Schonberg  <schonber@gnat.com>
25609
25610         * sem_ch8.adb (Find_Selected_Component): improved search for a
25611         candidate package in case of error.
25612
25613         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
25614         chain back on scope stack before reinstalling use clauses.
25615
25616         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
25617         is enabled, do not kill the code for the condition, to preserve
25618         warning.
25619
25620 2001-12-11  Robert Dewar <dewar@gnat.com>
25621
25622         * checks.adb (Insert_Valid_Check): Apply validity check to expression
25623         of conversion, not to result of conversion.
25624
25625 2001-12-11  Ed Schonberg <schonber@gnat.com>
25626
25627         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
25628         before freezing parent. If the declarations are mutually recursive,
25629         an access to the current record type may be frozen before the
25630         derivation is complete.
25631
25632 2001-12-05  Vincent Celier <celier@gnat.com>
25633
25634         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
25635         -c /COMPILE_ONLY, -l /LINK_ONLY
25636
25637         * opt.ads:
25638         (Bind_Only): New Flag
25639         (Link_Only): New flag
25640
25641         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
25642         and -l (Link_Only)
25643
25644         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
25645
25646         * make.adb:
25647         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
25648         (Gnatmake): Set the step flags. Only perform a step if the
25649         corresponding step flag is True.
25650         (Scan_Make_Arg): Reset the bind and link step flags when -u
25651         or -gnatc has been specified.
25652
25653 2001-12-05  Ed Schonberg <schonber@gnat.com>
25654
25655         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
25656         get bounds from right operand.
25657
25658         * sem_eval.adb: Minor reformatting
25659
25660         * exp_util.adb (Make_Literal_Range): use bound of literal rather
25661         than Index'First, its lower bound may be different from 1.
25662
25663         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
25664         and C48009J
25665
25666 2001-12-05  Vincent Celier <celier@gnat.com>
25667
25668         * prj-nmsc.adb Minor reformatting
25669
25670         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
25671         set and libraries are not supported.
25672
25673 2001-12-05  Ed Schonberg <schonber@gnat.com>
25674
25675         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
25676         private view explicitly, so the back-end can treat as a global
25677         when appropriate.
25678
25679 2001-12-05  Ed Schonberg <schonber@gnat.com>
25680
25681         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
25682          unit, always replace instance node with new body, for ASIS use.
25683
25684 2001-12-05  Vincent Celier <celier@gnat.com>
25685
25686         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
25687         libraries are not supported and both attributes Library_Name and
25688         Library_Dir are specified.
25689
25690         * prj-proc.adb (Expression): Set location of Result to location of
25691         first term.
25692
25693         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
25694         (prj-nmsc is now importing MLib.Tgt)
25695
25696         * prj-proc.adb: Put the change indicated above that was forgotten.
25697
25698 2001-12-05  Robert Dewar <dewar@gnat.com>
25699
25700         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
25701
25702 2001-12-05  Ed Schonberg <schonber@gnat.com>
25703
25704         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
25705         constraint, introduce explicit subtype declaration and derive from it.
25706
25707         * sem_ch3.adb: Minor reformatting
25708
25709 2001-12-05  Robert Dewar <dewar@gnat.com>
25710
25711         * checks.adb (Determine_Range): Increase cache size for checks.
25712         Minor reformatting
25713
25714         * exp_ch6.adb: Minor reformatting
25715         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
25716         a parameter whose root type is System.Address, since treating such
25717         subprograms as pure in the code generator is almost surely a mistake
25718         that will lead to unexpected results.
25719
25720         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
25721         change handling of conversions.
25722
25723         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
25724
25725 2001-12-05  Ed Schonberg <schonber@gnat.com>
25726
25727         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
25728         aggregate with static wrong size, attach generated Raise node to
25729         declaration.
25730
25731 2001-12-05  Robert Dewar <dewar@gnat.com>
25732
25733         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
25734         Fixes compilation abandoned bomb in B24009B.
25735
25736 2001-12-05  Ed Schonberg <schonber@gnat.com>
25737
25738         * sem_ch12.adb:
25739         Document use of Associated_Node on Selected_Components.
25740         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
25741         to clarify use of untyped descendant fields.
25742
25743 2001-12-05  Robert Dewar <dewar@gnat.com>
25744
25745         * prj-dect.ads: Add ??? comment
25746         Add 2001 to copyright notice (was not done in after all)
25747
25748         * prj-part.adb: Minor reformatting. Reword one awkward error message.
25749
25750         * prj.ads: Minor reformatting throughout, and add some ??? comments
25751
25752         * snames.ads: Minor reformatting
25753
25754 2001-12-05  Geert Bosch <bosch@gnat.com>
25755
25756         * snames.adb: Autoupdate
25757
25758 2001-12-05  Vincent Celier <celier@gnat.com>
25759
25760         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
25761
25762         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
25763
25764         * prj-env.adb: Minor comment changes (modifying -> extends).
25765
25766         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
25767
25768         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
25769         Tok_Extends.
25770
25771         * prj.adb (Initialize): Change Modifying to Extends.
25772
25773         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
25774
25775         * prj.ads: Minor comment change (Modifying -> extending).
25776
25777         * snames.ads: Change modifying to extends.
25778
25779 2001-12-05  Robert Dewar <dewar@gnat.com>
25780
25781         * sem_warn.adb: Remove stuff for conditionals, we are not going to
25782         do this after all.
25783
25784         * sem_warn.ads: Remove stuff for conditionals, we are not going to
25785         do this after all.  Add 2001 to copyright notice
25786
25787 2001-12-04  Geert Bosch <bosch@gnat.com>
25788
25789         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
25790
25791 2001-12-04  Robert Dewar <dewar@gnat.com>
25792
25793         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
25794         location if we already have errors. Stops some cases of cascaded
25795         errors.
25796
25797         * errout.adb: Improve comment.
25798
25799 2001-12-04  Robert Dewar <dewar@gnat.com>
25800
25801         * sem_ch12.adb:
25802         (Analyze_Formal_Type_Definition): Defend against Error.
25803         (Analyze_Formal_Subprogram): Defend against Error.
25804
25805         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
25806         remove following semicolon if present. Removes cascaded error.
25807
25808 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25809
25810         * bindgen.adb:
25811         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
25812          exceptions equals 0.
25813         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
25814         Fixes PIWG E tests (which have to be run with -gnatL).
25815
25816 2001-12-04  Robert Dewar <dewar@gnat.com>
25817
25818         * einfo.ads: Minor reformatting
25819
25820 2001-12-04  Ed Schonberg <schonber@gnat.com>
25821
25822         * einfo.ads: Block_Node points to the identifier of the block, not to
25823         the block node itself, to preserve the link when the block is
25824         rewritten, e.g. within an if-statement with a static condition.
25825
25826         * inline.adb (Cleanup_Scopes): recover block statement from block
25827         entity using new meaning of Block_Node.
25828
25829         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
25830         identifier of block node, rather than to node itself.
25831
25832 2001-12-04  Gary Dismukes <dismukes@gnat.com>
25833
25834         * layout.adb:
25835         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
25836         (Discrimify): Go back to setting the Etypes of the selected component
25837         because the Vname component does not exist at this point and will
25838         fail name resolution. Also set Analyzed.
25839         Remove with and use of Sem_Res.
25840
25841 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25842
25843         * Makefile.in: (HIE_SOURCES): add s-fat*.
25844
25845 2001-12-04  Robert Dewar <dewar@gnat.com>
25846
25847         * sem_attr.adb:
25848         (Compile_Time_Known_Attribute): New procedure.
25849         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
25850          proper range check.
25851
25852 2001-12-04  Ed Schonberg <schonber@gnat.com>
25853
25854         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
25855         processing discriminants to diagnose illegal default values.
25856
25857 2001-12-04  Ed Schonberg <schonber@gnat.com>
25858
25859         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
25860         access discriminant within a type extension that constrains its
25861         parent discriminants.
25862
25863 2001-12-04  Ed Schonberg <schonber@gnat.com>
25864
25865         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
25866         is malformed, use instance of Any_Id to allow analysis to proceed.
25867
25868         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
25869         type definition is illegal.
25870         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
25871         misplaced.
25872
25873 2001-12-04  Ed Schonberg <schonber@gnat.com>
25874
25875         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
25876         constants.
25877
25878 2001-12-04  Robert Dewar <dewar@gnat.com>
25879
25880         * errout.adb: Minor reformatting
25881
25882 2001-12-04  Robert Dewar <dewar@gnat.com>
25883
25884         * exp_util.adb: Minor reformatting from last change
25885
25886         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
25887         which is a rewriting of an expression, traverse the original
25888         expression to remove warnings that may have been posted on it.
25889
25890 2001-12-04  Ed Schonberg <schonber@gnat.com>
25891
25892         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
25893         record that has other packed components.
25894
25895 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25896
25897         * adaint.c: Minor cleanups.
25898
25899 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25900
25901         * adaint.c: Do not use utime.h on vxworks.
25902
25903 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25904
25905         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
25906         more confusion than it solves.
25907
25908 2001-12-04  Geert bosch <bosch@gnat.com>
25909
25910         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
25911
25912 2001-12-04  Geert Bosch  <bosch@gnat.com>
25913
25914         * Makefile.in (update-sources): New target.
25915         For use by gcc_release script.
25916
25917 2001-12-04  Ed Schonberg <schonber@gnat.com>
25918
25919         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
25920         a configuration pragma, it is now legal wherever a pragma can appear.
25921
25922 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
25923
25924         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
25925         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
25926         is now @CROSS@ -DIN_GCC; update comment.
25927
25928 2001-12-04  Robert Dewar <dewar@gnat.com>
25929
25930         * einfo.adb (Has_Pragma_Pure_Function): New flag.
25931         Fix problem that stopped ceinfo from working
25932
25933         * einfo.ads (Has_Pragma_Pure_Function): New flag.
25934
25935         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
25936
25937 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25938
25939         * gnatchop.adb:
25940         (File_Time_Stamp): New procedure.
25941         (Preserve_Mode): New boolean.
25942         (Write_Unit): Pass time stamp.
25943         Implement -p switch (preserve time stamps).
25944
25945         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
25946
25947         * gnatchop.adb: Do usage info for -p switch
25948
25949         * adaint.h (__gnat_set_file_time_name): New function
25950
25951         * adaint.c (__gnat_set_file_time_name): Implement
25952
25953         * adaint.h: Fix typo
25954
25955 2001-12-03  Robert Dewar <dewar@gnat.com>
25956
25957         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
25958         have Associated_Node.
25959
25960 2001-12-03  Robert Dewar <dewar@gnat.com>
25961
25962         * prj-proc.adb: Minor reformatting
25963
25964         * make.adb: Minor reformatting
25965
25966 2001-12-03  Geert Bosch <bosch@gnat.com>
25967
25968         * make.adb: Minor reformatting.
25969
25970 2001-12-03 Robert Dewar  <dewar@gnat.com>
25971
25972         * sem_ch12.adb: Minor reformatting
25973
25974 2001-12-03  Ed Schonberg <schonber@gnat.com>
25975
25976         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
25977         push Standard on the stack before analyzing the instance body,
25978         in order to have a clean visibility environment.
25979
25980         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
25981
25982 2001-12-03  Ed Schonberg <schonber@gnat.com>
25983
25984         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
25985         instantiation of a body that contains an inlined body.
25986
25987 2001-12-03  Ed Schonberg <schonber@gnat.com>
25988
25989         * sem_ch12.adb:
25990         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
25991         to prevent freezing within formal packages.
25992         (Freeze_Subprogram_Body): If body comes from another instance that
25993         appeared before its own body, place freeze node at end of current
25994         declarative part, to prevent a back-end crash.
25995         (Inline_Instance_Body): Handle properly a package instance within
25996         a subprogram instance that is a child unit.
25997
25998 2001-12-01  Graham Stott  <grahams@redhat.com>
25999
26000         * Makefile.in (misc.o): Add missing $(srcdir) prefix
26001         and add optabs.h dependency.
26002
26003         * misc.c: Include optabs.h
26004         (gnat_tree_code_type): Make static and const.
26005         (gnat_tree_code_length): Likewise.
26006         (gnat_tree_code_name): Likewise.
26007         (update_setjmp_buf): Obtain operands mode from insn_data.
26008
26009 2001-11-29  Richard Henderson  <rth@redhat.com>
26010
26011         * init.c: Remove obsolete dwarf2 frame.h section.
26012
26013 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
26014
26015         * Make-lang.in (ada.generated-manpages): New dummy target.
26016
26017 2001-11-29  Ed Schonberg <schonber@gnat.com>
26018
26019         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
26020         into Command, an array conversion is illegal here. Uncovered by
26021         ACATS B460005.
26022
26023 2001-11-28  Geert Bosch <bosch@gnat.com>
26024
26025         * init.c: Minor whitespace changes.
26026
26027 2001-11-28  Doug Rupp <rupp@gnat.com>
26028
26029         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
26030         signal stack.
26031
26032 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
26033
26034         * misc.c (gnat_expand_constant): Move declaration above
26035         definition of lang_hooks.
26036         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
26037         (gnat_init): lang_expand_constant no longer exists.
26038
26039         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
26040         always have vprintf.
26041         (gnat_init): Always call set_internal_error_function.
26042
26043 2001-11-27  Andreas Jaeger  <aj@suse.de>
26044
26045         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
26046
26047 2001-11-27  Laurent Guerby  <guerby@acm.org>
26048
26049         * Makefile.in: Regenerate Ada dependencies.
26050
26051 2001-11-26  Richard Henderson  <rth@redhat.com>
26052
26053         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
26054         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
26055         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
26056
26057 2001-11-25  Laurent Guerby  <guerby@acm.org>
26058
26059         * sysdep.c (rts_get_*): Fix style.
26060
26061 2001-11-19  Laurent Guerby  <guerby@acm.org>
26062
26063         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
26064         since it is of no apparent use and cause warnings.
26065
26066 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
26067
26068         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
26069         static too.
26070         (gnat_init): Don't return NULL.
26071         (finish_parse): Remove.
26072
26073 2001-11-17  Laurent Guerby  <guerby@acm.org>
26074
26075         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
26076         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
26077         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
26078         * lang-spec.h: Add missing struct field to silence warnings.
26079         * sysdep.c (rts_get_*): Provide K&R prototype.
26080         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
26081         * traceback.c (Unlock_Task, Lock_Task): Likewise.
26082         * tracebak.c (__gnat_backtrace): Remove unused variable.
26083         * utils.c (end_subprog_body): Move to K&R style.
26084
26085 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26086
26087         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
26088
26089 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
26090
26091         * misc.c (gnat_init): Change prototype.  Include the
26092         functionality of the old init_parse and init_decl_processing.
26093         (gnat_init_decl_processing): New prototype.
26094         (init_parse): Remove.
26095         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
26096
26097 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26098
26099         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
26100         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
26101         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
26102         set_yydebug): Remove.
26103
26104 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26105
26106         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
26107         (struct lang_hooks): Constify.
26108         (language_string, lang_identify): Remove.
26109         * utils.c (init_decl_processing): Update.
26110
26111 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
26112
26113         * misc.c: Include langhooks-def.h.
26114         * Makefile.in: Update.
26115
26116 2001-10-30  Robert Dewar <dewar@gnat.com>
26117
26118         * style.adb:
26119         (Check_Identifier): Rewrite circuit to be compatible with use of letters
26120         in the upper half of ASCII.
26121         (Check_Identifier): Minor reformatting
26122
26123 2001-10-30  Geert Bosch <bosch@gnat.com>
26124
26125         * (Associated_Node, Set_Associated_Node): Do not check for
26126         Freeze_Entity.
26127
26128 2001-10-30  Robert Dewar <dewar@gnat.com>
26129
26130         * a-reatim.ads: Minor reformatting
26131
26132 2001-10-30  Robert Dewar <dewar@gnat.com>
26133
26134         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
26135         undocumented declarations.
26136
26137 2001-10-30  Pascal Obry <obry@gnat.com>
26138
26139         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
26140         to the binder and linker.
26141         Minor style fix.
26142
26143         * mdll.ads: Fix layout.  Update copyright notice.
26144
26145         * mdll.adb: Fix layout.  Update copyright notice.
26146
26147 2001-10-30  Robert Dewar <dewar@gnat.com>
26148
26149         * usage.adb: Minor fix to output for -gnaty.
26150
26151 2001-10-30  Ed Schonberg <schonber@gnat.com>
26152
26153         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
26154         to accommodate all its possible values.
26155
26156         * a-reatim.adb (Split): Special-case handling of Time_Span_First
26157         and of small absolute values of T.
26158
26159 2001-10-30  Richard Kenner <kenner@gnat.com>
26160
26161         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
26162         set_mem_attributes since not needed and wrong if RESULT if a REG;
26163         fixes ACATS failures.
26164
26165 2001-10-30  Geert Bosch <bosch@gnat.com>
26166
26167         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
26168         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
26169
26170 2001-10-30  Robert Dewar <dewar@gnat.com>
26171
26172         * bindusg.adb: Undocument -f switch.
26173
26174         * gnatcmd.adb: Remove /FULL_ELABORATION.
26175
26176         * opt.ads (Force_RM_Elaboration_Order): Document that this is
26177         obsolescent.
26178
26179         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
26180
26181         * gnatbind.adb: Minor update of warning msg.
26182
26183 2001-10-30  Vincent Celier <celier@gnat.com>
26184
26185         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
26186         for project file switches (-P (/PROJECT_FILE=),
26187          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
26188         or MEDIUM or HIGH)
26189
26190 2001-10-30  Geert Bosch <bosch@gnat.com>
26191
26192         * decl.c: Minor whitespace fixes.
26193
26194 2001-10-30  Richard Kenner <kenner@gnat.com>
26195
26196         * utils2.c (build_allocator): Test for SIZE overflow in array case too
26197
26198 2001-10-30  Geert Bosch <bosch@gnat.com>
26199
26200         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
26201         Found due to GCC 3.0 warning of using uninitialized value.
26202
26203         * layout.adb:
26204         (Get_Max_Size): Use variant record for tracking value/expression.
26205          Makes logic clearer and prevents warnings for uninitialized variables.
26206         (Layout_Array_Type): Use variant record for tracking value/expression.
26207          Makes logic clearer and prevents warnings for uninitialized variables.
26208
26209 2001-10-30  Robert Dewar <dewar@gnat.com>
26210
26211         * lib.adb: Minor reformatting
26212
26213         * s-taprop.ads: Minor reformatting
26214
26215 2001-10-29  Laurent Guerby  <guerby@acm.org>
26216
26217         * init.c:
26218         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
26219         const.
26220         (_gnat_error_handler): Make MSG const.
26221
26222 2001-10-29  Richard Kenner <kenner@gnat.com>
26223
26224         * sysdep.c: Fix localtime_r problem on LynxOS.
26225         Also remove #elif to avoid warnings.
26226
26227         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
26228         used by this.
26229
26230         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
26231
26232 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
26233
26234         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
26235         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
26236         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
26237         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
26238         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
26239         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
26240         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
26241         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
26242         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
26243         types.ads, urealp.adb: Fix spelling errors.
26244
26245 2001-10-27  Laurent Guerby <guerby@acm.org>
26246
26247         * trans.c (gigi): Fix non determinism leading to bootstrap
26248         comparison failures for debugging information.
26249
26250 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
26251
26252         * gnat_rm.texi: Use @./@: where appropriate.
26253
26254 2001-10-26  Robert Dewar <dewar@gnat.com>
26255
26256         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
26257
26258 2001-10-26  Richard Kenner <kenner@gnat.com>
26259
26260         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
26261
26262 2001-10-26  Richard Kenner <kenner@gnat.com>
26263
26264         * decl.c (validate_size): Modify message for bad size to avoid
26265         implication that compiler is modifying the size.
26266
26267 2001-10-26  Robert Dewar <dewar@gnat.com>
26268
26269         * prj-util.adb: Minor reformatting. Fix bad header format.
26270
26271 2001-10-26  Robert Dewar <dewar@gnat.com>
26272
26273         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
26274
26275         * sinfo.ads: Clarify use of Associated_Node (documentation only).
26276
26277         * sem_ch12.adb: Change Node4 to Associated_Node. Change
26278         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
26279         much more narrowly in places where needed. These are cleanups.
26280
26281 2001-10-26  Joel Brobecker <brobecke@gnat.com>
26282
26283         * 5zosinte.ads (null_pthread): new constant.
26284
26285         * 5ztaprop.adb:
26286         (Initialize_TCB): Initialize thread ID to null, to be able to verify
26287          later that this field has been set.
26288         (Finalize_TCB): ditto.
26289         (Suspend_Task): Verify that the thread ID is not null before using it.
26290         (Resume_Task): ditto.
26291
26292         * s-tasdeb.adb:
26293         (Resume_All_Tasks): Lock the tasks list before using it.
26294         (Suspend_All_Tasks): ditto.
26295
26296 2001-10-26  Richard Kenner <kenner@gnat.com>
26297
26298         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
26299         Make constant variant of designated type for Is_Access_Constant.
26300         Call update_pointer_to with main variant.
26301
26302         * trans.c (process_freeze_entity, process_type):
26303         Call update_pointer_to on main variant.
26304
26305         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
26306         If main variant, update all other variants.
26307
26308         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
26309         TREE_STATIC.
26310
26311 2001-10-26  Robert Dewar <dewar@gnat.com>
26312
26313         * prj-util.adb: Minor reformatting
26314
26315 2001-10-26  Robert Dewar <dewar@gnat.com>
26316
26317         * prj-util.adb: Minor reformatting
26318
26319 2001-10-26  Robert Dewar <dewar@gnat.com>
26320
26321         * prj-attr.adb: Minor reformatting throughout
26322
26323 2001-10-26  Robert Dewar <dewar@gnat.com>
26324
26325         * prj-attr.ads: Minor reformatting
26326         Add ??? comment (this whole spec has almost no comments)
26327
26328 2001-10-26  Vincent Celier <celier@gnat.com>
26329
26330         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
26331         ("//") that precede the drive letter on Interix.
26332
26333 2001-10-26  Geert Bosch <bosch@gnat.com>
26334
26335         * gnat_rm.texi: Add GNAT Reference Manual.
26336
26337 2001-10-25  Robert Dewar <dewar@gnat.com>
26338
26339         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
26340         is Error. Similar change for other renaming cases.
26341
26342 2001-10-25  Robert Dewar <dewar@gnat.com>
26343
26344         * s-atacco.ads: Add pragma Inline_Always for functions.
26345         Fix header format. Add copyright 2001
26346
26347 2001-10-25  Ed Schonberg <schonber@gnat.com>
26348
26349         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
26350         return Error rather than Empty so that analysis can proceed.
26351
26352 2001-10-25  Ed Schonberg <schonber@gnat.com>
26353
26354         * sem_util.adb (Enter_Name): better handling of cascaded error
26355         messages when a unit appears in its own context.
26356
26357 2001-10-25  Ed Schonberg <schonber@gnat.com>
26358
26359         * sem_util.adb (Defining_Entity): in case of error, attach created
26360         entity to specification, so that semantic analysis can proceed.
26361
26362 2001-10-25  Robert Dewar <dewar@gnat.com>
26363
26364         * sem_util.adb
26365         (Defining_Entity): Deal with Error.
26366         (Process_End_Label): Deal with bad end label for.
26367
26368 2001-10-25  Ed Schonberg <schonber@gnat.com>
26369
26370         * sem_elab.adb (Check_A_Call): refine message when call is in an
26371         instance but callee is not declared in the generic unit.
26372
26373 2001-10-25  Ed Schonberg <schonber@gnat.com>
26374
26375         * sem_elab.adb (Check_A_Call): check for renaming before finding the
26376         enclosing unit, which may already be different from the calling unit.
26377
26378 2001-10-25  Geert Bosch <bosch@gnat.com>
26379
26380         * 4gintnam.ads: fix header format.
26381
26382 2001-10-25  Ed Schonberg <schonber@gnat.com>
26383
26384         * sem_res.adb (Resolve_Call): if the call is actually an indexing
26385         operation on the result of a parameterless call, perform elaboration
26386         check after the node has been properly rewritten.
26387
26388         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
26389         inlined within the generic tree, the defining identifier is not a
26390         compilation_unit.
26391
26392 2001-10-25  Ed Schonberg <schonber@gnat.com>
26393
26394         * sem_res.adb (Resolve): special-case resolution of Null in an
26395          instance or an inlined body to avoid view conflicts.
26396
26397         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
26398          compatibility by retrieving the access type of the generic copy.
26399
26400 2001-10-25  Robert Dewar <dewar@gnat.com>
26401
26402         * sem_ch3.adb:
26403         (Analyze_Number_Declaration): Handle error expression.
26404         (Signed_Integer_Type_Declaration): Handle error bound.
26405         (Analyze_Subtype_Indication): Handle error range.
26406
26407         * sem_util.adb (Get_Index_Bounds): Check for Error.
26408
26409 2001-10-25  Robert Dewar <dewar@gnat.com>
26410
26411         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
26412         in no run time mode.
26413
26414 2001-10-25  Pascal Obry <obry@gnat.com>
26415
26416         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
26417         mode case for ALLOC case.
26418
26419         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
26420         all platforms. Improvement of last change.
26421
26422 2001-10-25  Robert Dewar <dewar@gnat.com>
26423
26424         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
26425
26426 2001-10-25  Geert Bosch  <bosch@gnat.com>
26427
26428         * osint.adb (Is_Relative): Remove duplicate.
26429
26430 2001-10-25  Pascal Obry <obry@gnat.com>
26431
26432         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
26433         pathnames in UNIX and DOS style with drive letter.
26434         (Is_Relative): new routine.
26435
26436         * osint.adb: Minor reformatting
26437
26438         * osint.adb (Is_Relative): implementation using
26439         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
26440
26441 2001-10-25  Pascal Obry <obry@gnat.com>
26442
26443         * g-dirope.adb (Basename): correctly compute offset between the
26444         original Path and the translated one.
26445
26446         * g-dirope.adb: (Base_Name): add some comments.
26447
26448 2001-10-25  Robert Dewar <dewar@gnat.com>
26449
26450         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
26451         in HIE mode, avoids compilation abandoned message
26452
26453         * exp_imgv.adb: Correct typo in previous change
26454
26455         * exp_imgv.adb: Correct typo in previous change (not my day!)
26456
26457 2001-10-25  Robert Dewar <dewar@gnat.com>
26458
26459         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
26460
26461 2001-10-25  Pascal Obry <obry@gnat.com>
26462
26463         * g-awk.ads: Move all pragma inlines next to the routine
26464          declarations. This is more uniform with other GNAT spec.
26465
26466 2001-10-22  Geert Bosch  <bosch@gnat.com>
26467
26468         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
26469
26470 2001-10-19  Geert Bosch  <bosch@gnat.com>
26471
26472         * Makefile.in (tools, gnattools): Remove gnatmem.
26473
26474 2001-10-17  Richard Henderson  <rth@redhat.com>
26475
26476         * Makefile.in (misc.o): Depend on langhooks.h.
26477         * misc.c: Include it.
26478         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
26479         (LANG_HOOKS_DECODE_OPTION): New.
26480         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
26481
26482 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
26483
26484         * trans.c (tree_transform): Adjust to recent change in
26485         expand_asm_operands to implement named asm operands.
26486
26487 2001-10-11  Ed Schonberg  <schonber@gnat.com>
26488
26489         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
26490         renaming of discriminant for mutable record type.
26491
26492 2001-10-11  Robert Dewar  <dewar@gnat.com>
26493
26494         * validsw.adb: Properly save -gnatVn status.
26495
26496 2001-10-11  Robert Dewar <dewar@gnat.com>
26497
26498         * usage.adb: Add lines for V switch.
26499
26500         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
26501         (/VALIDITY_CHECKING).
26502
26503 2001-10-11  Ed Schonberg <schonber@gnat.com>
26504
26505         * sem_type.adb (Add_One_Interp): an operator for a type declared in
26506         an extension of System is known to be visible.
26507
26508 2001-10-11  Ed Schonberg <schonber@gnat.com>
26509
26510         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
26511         properly. Fixes regression on ACATS C34005G.
26512
26513 2001-10-11  Robert Dewar <dewar@gnat.com>
26514
26515         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
26516         loop in generic instance, since this is likely not very useful.
26517
26518 2001-10-11  Robert Dewar <dewar@gnat.com>
26519
26520         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
26521         the error message for high integrity mode.
26522
26523         * rtsfind.adb (RTE): Give message if we try to find an entity that
26524         is not available in high integrity mode.
26525
26526         * rtsfind.ads:
26527         (OK_To_Use_In_HIE_Mode): New array.
26528         (RTE): May return Empty in high integrity mode.
26529
26530         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
26531         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
26532
26533         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
26534         unit if not inlined always and in no runtime mode. Fixes problem
26535         caused by new Rtsfind changes.
26536
26537         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
26538         body is deleted.
26539
26540         * rtsfind.adb (RTE): Make sure we do not try to load unit after
26541         giving message for entity not available in high integrity mode.
26542
26543 2001-10-11  Pascal Obry <obry@gnat.com>
26544
26545         * impunit.adb: Add GNAT.CRC32.
26546
26547 2001-10-11  Ed Schonberg <schonber@gnat.com>
26548
26549         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
26550         properly the case where one universal operand in a non-static
26551         exponentiation of a real literal.
26552
26553 2001-10-11  Ed Schonberg <schonber@gnat.com>
26554
26555         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
26556         clause, return the gobal finalization list, for lack of anthing else.
26557
26558 2001-10-11  Ed Schonberg <schonber@gnat.com>
26559
26560         * exp_ch7.adb (Make_Transient_Block): if statement is within
26561         exception handler, always use new transient scope to place Clean
26562         procedure.
26563
26564 2001-10-11  Pascal Obry <obry@gnat.com>
26565
26566         * Makefile.in:
26567         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26568         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26569         (GNATLS_RTL_OBJS): add g-crc32.o
26570         (GNATMAKE_RTL_OBJS): add g-crc32.o
26571
26572         * ali-util.adb:
26573         (CRC_Match): new function.
26574         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
26575         instead of the previous simple checksum algorithm.
26576         (Time_Stamp_Mismatch): use CRC_Match for comparison.
26577         (Set_Source_Table): idem.
26578
26579         * ali-util.ads:
26580         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
26581         instead of simple checksum.
26582         (CRC_Match): new function.
26583         (CRC_Error): new constant.
26584
26585         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
26586         a CRC now and not a simple checksum. A CRC uses lower-case hex
26587         letters, fixes ambiguity in parsing.
26588
26589         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
26590         is what this variable will store.
26591
26592         * bcheck.adb: Change reference to chechsum in comments by CRC.
26593         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
26594         rename All_Checksum_Match to All_CRC_Match. Change due to API
26595         renaming since now GNAT does not use a simple checksum but a
26596         CRC using GNAT.CRC32.
26597
26598         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
26599         now and not anymore a simple checksum.
26600
26601         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
26602         places.
26603
26604         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
26605
26606         * scans.adb:
26607         (Restore_Scan_State): rename Checksum to CRC.
26608         (Save_Scan_State): idem.
26609
26610         * scans.ads:
26611         With GNAT.CRC32.
26612         (Checksum): rename to CRC.
26613         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
26614
26615         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
26616         GNAT.CRC32).  Update copyright notice.
26617
26618         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
26619         GNAT.CRC32).  Update copyright notice.
26620
26621         * scn.adb:
26622         (Accumulate_Checksum): removed.
26623         (Update): new procedure. Add a wide-character into the CRC.
26624
26625         * sinput-l.adb:
26626         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
26627         (Load_File): fix initialization of S (change Source_Checksum to
26628         Source_CRC)
26629
26630         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
26631         Source_CRC in S initialization.
26632
26633         * sinput.adb (Source_Checksum): renamed to Source_CRC.
26634
26635         * sinput.ads (Source_Checksum): renamed to Source_CRC.
26636         Update comments for the CRC.
26637
26638         * types.adb (Hex): Use lowercase for the letter part.
26639
26640         * types.ads (Get_Hex_String): Returns the hexadecimal representation
26641         for a word. This is currently used only for CRC. In previous version,
26642         the checksum was using a representation with all letter being
26643         upper-case. With the new implementation (using CRC) we do not remove
26644         the 32th bit of the CRC, so we can have an upper-case starting letter
26645         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
26646         It is ambigous since the CRC was optional and could be followed by
26647         options like EB, EE. So now this routines uses lower-case letter for
26648         the hexadecimal representation. Strange enough only lower case letters
26649         where checked in Scan_ALI (even if this was not a possible case).
26650
26651         * gnatvsn.ads (Library_Version): changed to 3.15a.
26652
26653         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
26654         for the compiler.
26655
26656         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
26657         for the compiler.
26658
26659         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
26660         Add 2001 to copyright notice
26661         (Accumulate_Checksum): Modify to use System.CRC32.
26662
26663         * ali-util.ads: Redo changes of previous revision to continue to use
26664         the word Checksum. Add 2001 to copyright notice.
26665
26666         * ali.adb: Undo some of previous changes, not needed.
26667         Keep the change for lower case letters in the checksum.
26668
26669         * ali.ads: Undo previous change not needed.
26670
26671         * bcheck.adb: Undo most of previous change, not needed.
26672         But do use Checksums_Match for checksum comparison.
26673
26674         * gnatls.adb: Undo most of previous change, not needed.
26675         But do use Checksums_Match for comparing checksums.
26676
26677         * lib-load.adb: Undo previous change, not needed.
26678
26679         * lib-writ.adb: Undo previous change, not needed.
26680
26681         * lib-writ.ads: Document that checksums use lower case,
26682         not upper case letters.
26683
26684         * scans.adb: Undo previous change, not needed
26685
26686         * scans.ads: Undo previous change, not needed.
26687
26688         * scn-nlit.adb: Undo previous changes, not needed.
26689
26690         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
26691
26692         * scn.adb:
26693         (Accumulate_Checksum): Use System.CRC32.
26694         (Initialize_Checksum): New procedure.
26695         Remove other changes of previous revision.
26696
26697         * sinput-p.adb: Undo previous change, not needed.
26698
26699         * sinput.adb: Undo previous change, not needed.
26700
26701         * sinput-l.adb: Undo previous change, not needed.
26702
26703         * sinput.ads: Undo previous change, not needed.  Keep only comment
26704         on new checksum algorithm
26705
26706         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
26707         Also remove a-tags and a-stream from GNAT sources.
26708
26709         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
26710
26711         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
26712
26713 2001-10-11  Geert Bosch  <bosch@gnat.com>
26714
26715         * einfo.h: Regenerate.
26716
26717         * nmake.ads: Regenerate.
26718
26719         * nmake.adb: Regenerate.
26720
26721         * sinfo.h: Regenerate.
26722
26723         * treeprs.adb: Regenerate.
26724
26725 2001-10-10  Geert Bosch  <bosch@gnat.com>
26726
26727         * gnat-style.texi: New file describing coding guidelines for Ada.
26728
26729 2001-10-10  Ed Schonberg <schonber@gnat.com>
26730
26731         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
26732         is Flag174.
26733
26734 2001-10-10  Geert Bosch  <bosch@gnat.com>
26735
26736         * snames.ads: Add new names for project facility.
26737
26738         * snames.adb: Update to reflect snames.ads changes.
26739
26740         * snames.h: Update to reflect snames.ads changes.
26741
26742 2001-10-10  Vincent Celier <celier@gnat.com>
26743
26744         * make.adb:
26745         (Add_Switches): reflect the changes for the switches attributes
26746         Default_Switches indexed by the programming language,
26747         Switches indexed by the file name.
26748         (Collect_Arguments_And_Compile): Idem.
26749         Reflect the attribute name changes.
26750
26751         * prj-attr.adb:
26752         (Initialisation_Data): Change the names of some packages and
26753         attributes.
26754         (Initialize): process case insensitive associative arrays.
26755
26756         * prj-attr.ads:
26757         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
26758
26759         * prj-dect.adb:
26760         (Parse_Attribute_Declaration): For case insensitive associative
26761          arrays, set the index string to lower case.
26762
26763         * prj-env.adb:
26764         Reflect the changes of the project attributes.
26765
26766         * prj-nmsc.adb:
26767         Replace Check_Naming_Scheme by Ada_Check and
26768         Language_Independent_Check.
26769
26770         * prj-nmsc.ads:
26771         Replaced Check_Naming_Scheme by 2 procedures:
26772         Ada_Check and Language_Independent_Check.
26773
26774         * prj-proc.adb:
26775         (Process_Declarative_Items): For case-insensitive associative
26776         arrays, set the index string to lower case.
26777         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
26778         Prj.Nmsc.Check_Naming_Scheme.
26779
26780         * prj-tree.adb:
26781         (Case_Insensitive): New function
26782         (Set_Case_Insensitive): New procedure
26783
26784         * prj-tree.ads:
26785         (Case_Insensitive): New function
26786         (Set_Case_Insensitive): New procedure
26787         (Project_Node_Record): New flag Case_Insensitive.
26788
26789         * prj-util.adb:
26790         (Value_Of): new function to get the string value of a single
26791         string variable or attribute.
26792
26793         * prj-util.ads:
26794         (Value_Of): new function to get the string value of a single
26795         string variable or attribute.
26796
26797         * prj.adb:
26798         (Ada_Default_Spec_Suffix): New function
26799         (Ada_Default_Impl_Suffix): New function
26800         Change definitions of several constants to reflect
26801         new components of record types.
26802
26803         * prj.ads:
26804         (Naming_Data): Change several components to reflect new
26805         elements of naming schemes.
26806         (Project_Data): New flags Sources_Present and
26807         Language_Independent_Checked.
26808         (Ada_Default_Spec_Suffix): New function.
26809         (Ada_Default_Impl_Suffix): New function.
26810
26811         * snames.ads:
26812         Modification of predefined names for project manager: added
26813         Implementation, Specification_Exceptions, Implementation_Exceptions,
26814         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
26815         Default_Switches, _Languages, Builder, Cross_Reference,
26816         Finder. Removed Body_Part, Specification_Append, Body_Append,
26817         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
26818         Gnatlink.
26819
26820         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
26821         Add comments.
26822
26823         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
26824         not that it is Nil_Variable_Value.
26825
26826         * prj.ads: Add ??? for uncommented declarations
26827
26828 2001-10-10  Ed Schonberg <schonber@gnat.com>
26829
26830         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
26831         constant, do not indicate possible modification, so that gigi can
26832         treat it as a bona fide constant.
26833
26834 2001-10-10  Robert Dewar <dewar@gnat.com>
26835
26836         * sem_prag.adb: Add processing for pragma External.
26837
26838         * snames.ads: Add entry for pragma External.
26839
26840         * par-prag.adb: Add pragma External.
26841
26842         * snames.adb: Updated to match snames.ads.
26843
26844 2001-10-10  Ed Schonberg <schonber@gnat.com>
26845
26846         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
26847         a dynamic task if the allocator appears in an indexed assignment
26848         or selected component assignment.
26849
26850         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
26851         For a dynamic task in an assignment statement, use target of
26852         assignment to generate meaningful name.
26853
26854 2001-10-10  Ed Schonberg <schonber@gnat.com>
26855
26856         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
26857         a generic package.
26858
26859         * einfo.ads: Body_Entity is also defined for generic package.
26860         Documentation change only
26861
26862         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
26863         others_choice for a discriminated component initialization,
26864         convert discriminant references into the corresponding discriminals.
26865
26866         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
26867         only if original type is private and expression has to be wrapped
26868         in a conversion.
26869
26870         * checks.adb:
26871         (Apply_Constraint_Check): Do not perform length check
26872         if expression is an aggregate with only an others_choice.
26873         (Length_N_Cond): two references to the same in_parameter
26874         (typically the discriminal in an init_proc) denote the same value.
26875         Two useful optimization uncovered by bugfixes above.
26876
26877 2001-10-10  Robert Dewar <dewar@gnat.com>
26878
26879         * xeinfo.adb: Change int to char in translation of enumeration types.
26880         This fixes a problem in the C representation of component alignment.
26881         Add 2001 to copyright notice
26882
26883 2001-10-10  Richard Kenner <kenner@gnat.com>
26884
26885         * decl.c: (validate_size): Do check size of object of integral type
26886         if it is a packed array type.
26887
26888 2001-10-10  Richard Kenner <kenner@gnat.com>
26889
26890         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
26891         VAR_DECL for constant if not Is_Public but -O0.
26892
26893 2001-10-10  Richard Kenner  <kenner@gnat.com>
26894
26895         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
26896
26897 2001-10-10  Geert Bosch  <bosch@gnat.com>
26898
26899         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
26900         use '/' as switch character, allowing for absolute file names.
26901
26902 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
26903
26904         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
26905         FSF address.
26906
26907 2001-10-08  Geert Bosch  <bosch@gnat.com>
26908
26909         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
26910         Automatically build utilities when files need to be regenerated.
26911
26912 2001-10-08  Geert Bosch  <bosch@gnat.com>
26913
26914         * xsnames.adb: New utility for updating snames.ads and snames.adb
26915
26916 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
26917
26918         * Make-lang.in (ADAFLAGS): Add -W -Wall.
26919         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
26920         (gnat1): Also depend on attribs.o.
26921         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
26922         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
26923         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
26924         (ADAFLAGS): Add -W -Wall.
26925         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
26926         take out CFLAGS.
26927
26928         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
26929         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
26930         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
26931         Use $(ADAC), not $(CC), as compilation command.
26932
26933         (gnattools): Depend directly on tools to build, don't use
26934         recursive make.
26935         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
26936
26937         * einfo.h, sinfo.h: New files (autogenerated).
26938
26939 2001-10-08  Richard Henderson  <rth@redhat.com>
26940
26941         * comperr.adb (Abort_In_Progress): New.
26942         (Compiler_Abort): Use it to prevent recursion.
26943
26944 2001-10-08  Robert Dewar <dewar@gnat.com>
26945
26946         * atree.adb: Set Error_Posted in Error node, helps error recovery.
26947
26948         * par-endh.adb (Output_End_Expected): We should also not test
26949         Error_Posted on the Error node, since now it is always set.
26950
26951         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
26952         to help error recovery. Part of general work on 9407-004.
26953
26954         * par.adb: Add ??? for misuse of error
26955
26956         * sem_res.adb:
26957         (Resolve): Defend against Error, fixes 9407-003.
26958         (Resolve_Discrete_Subtype_Indication): Defend against Error.
26959
26960         * sinfo.ads (N_Error): Now has Etype field (which will be set
26961         to Any_Type to help error recovery).
26962
26963 2001-10-08  Richard Kenner (kenner@gnat.com)
26964
26965         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
26966         Consistently set MEM attributes from expression; fixes
26967         bootstrap failure on x86.
26968
26969 2001-10-08  Geert Bosch  (bosch@gnat.com)
26970
26971         * 5oosinte.adb: Add 2001 to copyright notice.
26972
26973 2001-10-08  Geert Bosch  (bosch@gnat.com)
26974
26975         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
26976
26977         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
26978
26979 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
26980
26981         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
26982
26983 2001-10-05  Geert Bosch  (bosch@gnat.com)
26984
26985         * adaint.h: Small formatting fix.
26986
26987 2001-10-04  Geert Bosch  <bosch@gnat.com>
26988
26989         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
26990         Arg is int, not FILE *, in dummy version of functions.
26991
26992         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
26993         Arg is int, not FILE *.
26994
26995 2001-10-04  Geert Bosch  <bosch@gnat.com>
26996
26997         * 3lsoccon.ads: Added file, missed with initial check ins.
26998
26999         * 4lintnam.ads: Fix header format.
27000         Change Linux to GNU/Linux.
27001
27002         * 5iosinte.adb: Change Linux to GNU/Linux.
27003
27004         * 5iosinte.ads: Change Linux to GNU/Linux.
27005
27006         * 5itaprop.adb: Change Linux to GNU/Linux.
27007
27008         * 5itaspri.ads: Change Linux to GNU/Linux.
27009         Update copyright notice.
27010
27011         * 5lintman.adb: Change Linux to GNU/Linux.
27012
27013         * 5lml-tgt.adb: Change Linux to GNU/Linux.
27014
27015         * 5losinte.ads: Change Linux to GNU/Linux.
27016
27017         * 5lsystem.ads: Change Linux to GNU/Linux.
27018
27019         * 5qosinte.adb: Change Linux to GNU/Linux.
27020
27021         * 5qosinte.ads: Change Linux to GNU/Linux.
27022
27023         * 5qparame.ads: Change Linux to GNU/Linux.
27024
27025         * 5qtaprop.adb: Change Linux to GNU/Linux.
27026
27027         * 5qtaspri.ads: Change Linux to GNU/Linux.
27028         Add 2001 to copyright notice.
27029
27030         * 5vintman.ads: Change Linux to GNU/Linux.
27031         Fix header format.  Add 2001 to copyright notice.
27032
27033         * g-soccon.ads: Change Linux to GNU/Linux.
27034
27035         * g-trasym.ads: Change Linux to GNU/Linux.
27036         Add 2001 to copyright notice.
27037
27038         * memtrack.adb: Change Linux to GNU/Linux.
27039
27040         * s-intman.ads: Change Linux to GNU/Linux.
27041         Add 2001 to copyright notice.  Fix header format.
27042
27043         * s-stache.adb: Change Linux to GNU/Linux.
27044
27045         * adaint.c: Change Linux to GNU/Linux.
27046
27047         * cio.c: Change Linux to GNU/Linux.
27048
27049         * cstreams.c: Change Linux to GNU/Linux.
27050
27051         * init.c: Change Linux to GNU/Linux.
27052
27053         * gmem.c: Change Linux to GNU/Linux.
27054
27055         * tracebak.c: Change Linux to GNU/Linux.
27056
27057
27058 2001-10-02  Geert Bosch  <bosch@gnat.com>
27059
27060         * misc.c (insert_default_attributes): Add dummy version.