OSDN Git Service

5641887a2176764d4c6fcd629c1473701a5eb30c
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
2
3         * misc.c, utils2.c: Fix comment typos.
4
5 2007-01-24  Roger Sayle  <roger@eyesopen.com>
6
7         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
8         TREE_CONSTANT_OVERFLOW.
9         (allocatable_size_p, annotate_value): Likewise.
10         * trans.c (gnat_to_gnu): Likewise.
11         * utils.c (unchecked_convert): Likewise.
12         * utils2.c (build_simple_component_ref): Likewise.
13
14 2007-01-23  Richard Guenther  <rguenther@suse.de>
15
16         PR bootstrap/30541
17         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
18         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
19         (gnatboot3): Likewise.
20         (GNATBIND): Do not define.
21         * Makefile.in (GNATBIND): Do not define.
22
23 2007-01-08  Richard Guenther  <rguenther@suse.de>
24
25         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
26         * trans.c (gnat_to_gnu): Likewise.
27
28 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
29
30         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
31         * adaint.c: Likewise.
32
33 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
34
35         Merge from gimple-tuples-branch.
36
37         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
38         * ada-tree.h (lang_tree_node): Handle gimple tuples.
39         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
40         GIMPLE_MODIFY_STMT.
41
42 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
43
44         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
45         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
46         Fix typos.
47
48 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
49
50         PR ada/27936
51         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
52         if the initializer takes into account the padding.
53
54 2006-11-11  Richard Guenther  <rguenther@suse.de>
55
56         * trans.c (maybe_stabilize_reference): Remove handling of
57         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
58
59 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
60
61         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
62         (To_Target_Priority): New function.
63         Fix PR ada/29707
64
65 2006-10-31  Robert Dewar  <dewar@adacore.com>
66
67         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
68         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
69         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
70         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
71         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
72         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
73         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
74         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
75         a-szbzha.adb: Minor reformatting. Fix header.
76
77         * a-numaux-x86.adb: Add parentheses for use of unary minus
78         * a-ngcefu.adb: Supply missing parentheses for unary minus
79         * a-ngcoty.adb: Add parens for use of unary minus
80         * a-ngelfu.adb: Add missing parens for unary minus
81         * a-tifiio.adb: Add parentheses for uses of unary minus
82
83 2006-10-31  Robert Dewar  <dewar@adacore.com>
84             Bob Duff  <duff@adacore.com>
85             Ed Schonberg  <schonberg@adacore.com>
86
87         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
88         with multiplying operator.
89         (Expected_Type_Is_Any_Real): New function to determine from the Parent
90         pointer whether the context expects "any real type".
91         (Resolve_Arithmetic_Op): Do not give an error on calls to the
92         universal_fixed "*" and "/" operators when they are used in a context
93         that expects any real type. Also set the type of the node to
94         Universal_Real in this case, because downstream processing requires it
95         (mainly static expression evaluation).
96         Reword some continuation messages
97         Add some \\ sequences to continuation messages
98         (Resolve_Call): Refine infinite recursion case. The test has been
99         sharpened to eliminate some false positives.
100         Check for Current_Task usage now includes entry barrier, and is now a
101         warning, not an error.
102         (Resolve): If the call is ambiguous, indicate whether an interpretation
103         is an inherited operation.
104         (Check_Aggr): When resolving aggregates, skip associations with a box,
105         which are priori correct, and will be replaced by an actual default
106         expression in the course of expansion.
107         (Resolve_Type_Conversion): Add missing support for conversion from
108         a class-wide interface to a tagged type. Minor code cleanup.
109         (Valid_Tagged_Converion): Add support for abstact interface type
110         conversions.
111         (Resolve_Selected_Component): Call Generate_Reference here rather than
112         during analysis, and use May_Be_Lvalue to distinguish read/write.
113         (Valid_Array_Conversion): New procedure, abstracted from
114         Valid_Conversion, to incorporate accessibility checks for arrays of
115         anonymous access types.
116         (Valid_Conversion): For a conversion to a numeric type occurring in an
117         instance or inlined body, no need to check that the operand type is
118         numeric, since this has been checked during analysis of the template.
119         Remove legacy test for scope name Unchecked_Conversion.
120
121         * sem_res.ads: Minor reformatting
122
123         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
124         (PE_Current_Task_In_Entry_Body): New exception code
125         (SE_Restriction_Violation): Removed, not used
126
127         * a-except.ads:  Update comments.
128
129         * types.h, types.ads: Add definition for Validity_Check
130         (PE_Current_Task_In_Entry_Body): New exception code
131         (SE_Restriction_Violation): Removed, not used
132
133 2006-10-31  Thomas Quinot  <quinot@adacore.com>
134
135         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
136         error status.
137
138 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
139             Jose Ruiz  <ruiz@adacore.com>
140
141         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
142         part of Ada.Calendar: all subprogram raise Unimplemented.
143         (Split_W_Offset): Temp function body, raising Unimplemented
144
145         * a-calend.ads, a-calend-vms.ads: 
146         Add imported variable Invalid_TZ_Offset used to designate targets unable
147         to support time zones.
148         (Unimplemented): Temporary function raised by the body of new
149         subprograms below.
150         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
151         unit provides handling of leap seconds and is used by the new Ada 2005
152         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
153         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
154         version returns an extra value which is the offset to UTC.
155
156         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
157         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
158         (Split_W_Offset): New function body.
159         (Time_Of): When a date is close to UNIX epoch, compute the time for
160         that date plus one day (that amount is later substracted after
161         executing mktime) so there are no problems with time zone adjustments.
162
163         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
164
165         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
166         a-catizo.ads, a-catizo.adb: New files.
167
168         * impunit.adb: Add new Ada 2005 entries
169
170         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
171         Rename all occurences of "__gnat_localtime_r" to
172         "__gnat_localtime_tzoff".
173         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
174         zone data and calculate the GMT offset.
175         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
176         Use the field "tm_gmtoff" to extract the GMT offset.
177         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
178         the external variable "timezone" to calculate the GMT offset.
179
180 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
181             Jose Ruiz  <ruiz@adacore.com>
182
183         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
184         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
185         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
186         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
187         System.Any_Priority to a POSIX priority on the target.
188
189         * system-linux-ia64.ads: 
190         Extend range of Priority types on Linux to use the whole range made
191         available by the system.
192
193         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
194         function maps from System.Any_Priority to a POSIX priority on the
195         target.
196         (PTHREAD_PRIO_PROTECT): Set real value.
197         (PTHREAD_PRIO_INHERIT): Now a function.
198         (SIGCPUFAIL): New signal.
199         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
200         are documented as reserved by the OS.
201
202         * system-aix.ads: Use the full range of priorities provided by the
203         system on AIX.
204
205         * s-taprop-posix.adb: Call new function To_Target_Priority.
206         (Set_Priority): Take into account Task_Dispatching_Policy and
207         Priority_Specific_Dispatching pragmas when determining if Round Robin
208         must be used for scheduling the task.
209
210         * system-linux-x86_64.ads, system-linux-x86.ads, 
211         system-linux-ppc.ads: Extend range of Priority types on Linux to use
212         the whole range made available by the system.
213
214         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
215         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
216         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
217         when deallocating the TCB in order to avoid potential references to
218         deallocated data.
219         (Set_Priority): Take into account Task_Dispatching_Policy and
220         Priority_Specific_Dispatching pragmas when determining if Round Robin
221         or FIFO within priorities must be used for scheduling the task.
222
223         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
224         the Thread field (to be used internally by the run-time system) and the
225         kernel-level task id in the LWP field (to be used by the debugger).
226         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
227         instance, and propagate the current task options to the spawned task.
228         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
229         (Initialize): Set Round Robin dispatching when the corresponding pragma
230         is in effect.
231
232 2006-10-31  Robert Dewar  <dewar@adacore.com>
233
234         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
235         system-linux-hppa.ads, system-hpux-ia64.ads, 
236         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
237         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
238         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
239         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
240         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
241         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
242         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
243         Default_Bit_Order) to kill constant condition warnings for references
244         to this switch.
245
246 2006-10-31  Vincent Celier  <celier@adacore.com>
247             Eric Botcazou  <ebotcazou@adacore.com>
248
249         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
250         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
251         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
252         Ext_To, when building the library file name
253
254         * mlib-tgt-vxworks.adb: ditto.
255         (Get_Target_Suffix): Add support for x86 targets.
256
257         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
258
259         * mlib-tgt-darwin.adb: 
260         Use Append_To, instead of Ext_To, when building the library file name
261         (Flat_Namespace): New global variable.
262         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
263         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
264         (Link_Shared_Libgcc): Delete.
265         (Build_Dynamic_Library): Adjust for above changes.
266         Use Opt package.
267         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
268
269 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
270
271         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
272         (Initialize): Add type conversions required by above change.
273
274 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
275
276         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
277         (getpid): New body for this function that uses the underlying taskIdSelf
278         function for VxWorks 5 and VxWorks 6 in kernel mode.
279         (unsigned_int): New type, modular to allow logical bit operations.
280         (taskOptionsGet): New imported function.
281
282         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
283         field to be compliant with the type used by the corresponding operating
284         system primitive.
285
286 2006-10-31  Pascal Obry  <obry@adacore.com>
287             Eric Botcazou  <ebotcazou@adacore.com>
288             Vincent Celier  <celier@adacore.com>
289
290         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
291         ASCII version of the registry API. This is needed as the GNAT runtime
292         is now UNICODE by default.
293         Include version.h.
294         (get_gcc_version): Do not hardcode the return value.
295         (__gnat_file_time_name): On Windows properly set the default returned
296         value to -1 which corresponds to Invalid_Time.
297         (__gnat_fopen): New routine. A simple wrapper on all plateforms
298          except on Windows where it does conversion for unicode support.
299         (__gnat_freopen): Idem.
300         (__gnat_locate_exec_on_path): If environment variable PATH does not
301         exist, return a NULL pointer
302
303         * adaint.h: (__gnat_fopen): Declare.
304         (__gnat_freopen): Likewise.
305
306         * mingw32.h (_tfreopen): Define this macro here for older MingW
307         version.
308         Activate the unicode support on platforms using a MingW runtime
309         version 3.9 or newer.
310
311         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
312         This is needed for proper unicode support on Windows.
313         (freopen): Idem.
314
315 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
316             Nicolas Setton  <setton@adacore.com>
317             Olivier Hainque  <hainque@adacore.com>
318             Gary Dismukes  <dismukes@adacore.com>
319
320         * gigi.h: (tree_code_for_record_type): Declare.
321         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
322         (get_global_renaming_pointers): Rename to
323         invalidate_global_renaming_pointers.
324         (static_ctors): Delete.
325         (static_dtors): Likewise.
326         (gnat_write_global_declarations): Declare.
327         (create_var_decl): Adjust descriptive comment to indicate that the
328         subprogram may return a CONST_DECL node.
329         (create_true_var_decl): Declare new function, similar to
330         create_var_decl but forcing the creation of a VAR_DECL node.
331         (get_global_renaming_pointers): Declare.
332         (add_global_renaming_pointer): Likewise.
333
334         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
335
336         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
337         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
338         processing.
339         (gnat_to_gnu_entity): Remove From_With_Type from computation for
340         imported_p.
341         <E_Access_Type>: Use the Non_Limited_View as the full view of the
342         designated type if the pointer comes from a limited_with clause.  Make
343         incomplete designated type if it is in the main unit and has a freeze
344         node.
345         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
346         Underlying_Full_View similarly.  Return earlier if the full view already
347         has an associated tree.
348         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
349         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
350         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
351         reference type built for objects with an address clause.
352         Use create_true_var_decl with const_flag set for
353         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
354         TREE_READONLY set.
355         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
356         for Character and Wide_Character types. This info is read by the
357         dwarf-2 writer, and is needed to be able to use the command "ptype
358         character" in the debugger.
359         (gnat_to_gnu_entity): When generating a type representing
360         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
361         so that debug writers can distinguish it from ordinary integers.
362         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
363         addition to TREE_READONLY to assert the constantness of variables for
364         elaboration purposes.
365         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
366         parameters to call new Einfo function First_Formal_With_Extras.
367         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
368         protected type with its corresponding discriminant, to obtain a usable
369         declaration
370         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
371         for a multiple elaboration of the "equivalent" type.
372         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
373         into record_global_renaming_pointer.
374         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
375         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
376         <E_Array_Subtype>: Likewise.
377         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
378         incomplete subtypes and incomplete subtypes of incomplete types visible
379         through a limited with clause.
380         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
381         the base index type for the maximum size of the array only if they are
382         constant.
383         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
384         expression into a SAVE_EXPR if stabilization failed.
385
386         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
387         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
388         by lower level compilation passes.
389         (gnat_genericize): New function, lowering a function body to GENERIC.
390         Turn the type of RESULT_DECL into a real reference type if the decl
391         has been marked DECL_BY_REFERENCE, and adjust references to the latter
392         accordingly.
393         (gnat_genericize_r): New function. Tree walking callback for
394         gnat_genericize.
395         (convert_from_reference, is_byref_result): New functions. Helpers for
396         gnat_genericize_r.
397         (create_type_decl): Call gnat_pushdecl before calling
398         rest_of_decl_compilation, to make sure that field TYPE_NAME of
399         type_decl is properly set before calling the debug information writers.
400         (write_record_type_debug_info): The heuristics which compute the
401         alignment of a field in a variant record might not be accurate. Add a
402         safety test to make sure no alignment is set to a smaller value than
403         the alignment of the field type.
404         (make_dummy_type): Use the Non_Limited_View as the underlying type if
405         the type comes from a limited_with clause. Do not loop on the full view.
406         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
407         (dummy_node_table): New global variable, moved from decl.c.
408         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
409         (save_gnu_tree): Use above macros.
410         (get_gnu_tree): Likewise.
411         (present_gnu_tree): Likewise.
412         (init_dummy_type): New function, moved from decl.c. Use above macros.
413         (make_dummy_type): Likewise.
414         (tree_code_for_record_type): New function extracted from make_dummy_type
415         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
416         (static_ctors): Change it to a vector, make static.
417         (static_dtors): Likewise.
418         (end_subprog_body): Adjust for above change.
419         (build_global_cdtor): Moved from trans.c.
420         (gnat_write_global_declarations): Emit global constructor and
421         destructor, and call cgraph_optimize before emitting debug info for
422         global declarations.
423         (global_decls): New global variable.
424         (gnat_pushdecl): Store the global declarations in global_decls, for
425         later use.
426         (gnat_write_global_declarations): Emit debug information for global
427          declarations.
428         (create_var_decl_1): Former create_var_decl, with an extra argument to
429          state whether the creation of a CONST_DECL is allowed.
430         (create_var_decl): Behavior unchanged. Now a wrapper around
431         create_var_decl_1 allowing CONST_DECL creation.
432         (create_true_var_decl): New function, similar to create_var_decl but
433         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
434         (create_field_decl): Do not always mark the field as addressable
435         if its type is an aggregate.
436         (global_renaming_pointers): New static variable.
437         (add_global_renaming_pointer): New function.
438         (get_global_renaming_pointers): Likewise.
439
440         * misc.c (gnat_dwarf_name): New function.
441         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
442         (gnat_post_options): Add comment about structural alias analysis.
443         (gnat_parse_file): Do not call cgraph_optimize here.
444         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
445
446         * trans.c (process_freeze_entity): Don't abort if we already have a
447         non dummy GCC tree for a Concurrent_Record_Type, as it might
448         legitimately have been elaborated while processing the associated
449         Concurrent_Type prior to this explicit freeze node.
450         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
451         exception handler volatile if it is of variable size.
452         (process_type): Remove bypass for types coming from a limited_with
453         clause.
454         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
455         actual, convert the corresponding gnu_actual to the real destination
456         type when necessary.
457         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
458         originally TREE_READONLY but whose elaboration cannot be performed
459         statically.
460         Part of fix for F504-021.
461         (tree_transform, subprogram cases): Change loops on formal parameters to
462         call new Einfo function First_Formal_With_Extras.
463         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
464         stemming from type conversion for the lhs.
465         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
466         number of bits per unit for components of records.
467         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
468         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
469         with At_End_Proc after the SJLJ EH cleanup.
470         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
471         compilation unit.
472         (elaborate_all_entities): Do not retest type_annotate_only.
473         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
474         result type of an abstract subprogram, which may be an itype associated
475         with an anonymous access result (related to AI-318-02).
476         (build_global_cdtor): Move to utils.c.
477         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
478         this choice is not a null tree nor an integer constant.
479         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
480         on the body of elaboration routines instead of mark_unvisited.
481         (add_stmt): Do not mark the tree.
482         (add_decl_expr): Tweak comment.
483         (mark_unvisited): Delete.
484         (unshare_save_expr): New static function.
485         (call_to_gnu): Issue an error when making a temporary around a
486         procedure call because of non-addressable actual parameter if the
487         type of the formal is by_reference.
488         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
489         after building the elaboration routine.
490
491 2006-10-31  Bob Duff  <duff@adacore.com>
492
493         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
494         as finalization-started, so we can raise Program_Error on 'new'.
495
496         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
497         collection has already started.
498
499         * s-finimp.ads (Collection_Finalization_Started): Added new special
500         flag value for indicating that a collection's finalization has started.
501
502         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
503         create a task whose master has already waited for dependent tasks.
504
505 2006-10-31  Robert Dewar  <dewar@adacore.com>
506
507         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
508
509         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
510         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
511         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
512         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
513         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
514         a-except-2005.ads: Add pragma Preelaborable_Warning
515
516 2006-10-31  Robert Dewar  <dewar@adacore.com>
517             Jose Ruiz  <ruiz@adacore.com>
518
519         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
520
521         * ali.adb (Get_Name): Properly handle scanning of wide character names
522         encoded with brackets notation.
523         (Known_ALI_Lines): Add S lines to this list.
524         (Scan_ALI): Acquire S (priority specific dispatching) lines.
525         New flag Elaborate_All_Desirable in unit table
526
527         * ali.ads (Priority_Specific_Dispatching): Add this range of
528         identifiers to be used for Priority_Specific_Dispatching table entries.
529         (ALIs_Record): Add First_Specific_Dispatching and
530         Last_Specific_Dispatching that point to the first and last entries
531         respectively in the priority specific dispatching table for this unit.
532         (Specific_Dispatching): Add this table for storing each S (priority
533         specific dispatching) line encountered in the input ALI file.
534         New flag Elaborate_All_Desirable in unit table
535
536         * bcheck.adb: (Check_Configuration_Consistency): Add call to
537         Check_Consistent_Dispatching_Policy.
538         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
539         verifying that the use of Priority_Specific_Dispatching,
540         Task_Dispatching_Policy, and Locking_Policy is consistent across the
541         partition.
542
543         * bindgen.adb: (Public_Version_Warning): function removed.
544         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
545         required information from ALI files in order to initialize the table
546         containing the specific dispatching policy.
547         (Gen_Adainit_Ada): Generate the variables required for priority specific
548         dispatching entries (__gl_priority_specific_dispatching and
549         __gl_num_specific_dispatching).
550         (Gen_Adainit_C): Generate the variables required for priority specific
551         dispatching entries (__gl_priority_specific_dispatching and
552         __gl_num_specific_dispatching).
553         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
554         pragma entries.
555         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
556         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
557         (Tab_To): Removed.
558         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
559         a call to gnat_set_globals.
560         Generate a string containing settings from
561         Priority_Specific_Dispatching pragma entries.
562         (Gen_Object_Files_Options): Do not include the runtime libraries when
563         pragma No_Run_Time is specified.
564
565         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
566         consistency with s-intman-posix.adb.
567         (__gnat_error_handler, case FreeBSD): Account for the fact that the
568         handler is installed with SA_SIGINFO.
569         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
570         FreeBSD ZCX support, copied from Linux version.
571         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
572         sigfillset, and sigemptyset so the routines defined by MaRTE.
573         (__gl_priority_specific_dispatching): Add this variable that stores the
574         string containing priority specific dispatching policies in the
575         partition.
576         (__gl_num_specific_dispatching): Add this variable that indicates the
577         highest priority for which a priority specific dispatching pragma
578         applies.
579         (__gnat_get_specific_dispatching): Add this routine that returns the
580         priority specific dispatching policy, as set by a
581         Priority_Specific_Dispatching pragma appearing anywhere in the current
582         partition. The input argument is the priority number, and the result
583         is the upper case first character of the policy name.
584         (__gnat_set_globals): Now a dummy function.
585         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
586         mechargs instead of sigargs, as the latter can be retrieved from the
587         former and sigargs is not what we want on ia64.
588         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
589         mechargs argument.
590         (__gnat_adjust_context_for_raise, ia64-vms): New function.
591         (tasking_error): Remove unused symbol.
592         (_abort_signal): Move this symbol to the IRIX specific part since this
593         is the only target that uses this definition.
594         (Check_Abort_Status): Move this symbol to the IRIX specific part since
595         this is the only target that uses this definition.
596         (Lock_Task): Remove unused symbol.
597         (Unlock_Task): Remove unused symbol.
598
599         * lib-writ.adb (Write_ALI): Output new S lines for
600         Priority_Specific_Dispatching pragmas.
601         Implement new flag BD for elaborate body desirable
602
603         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
604         (Specific_Dispatching): Add this table for storing the entries
605         corresponding to Priority_Specific_Dispatching pragmas.
606         Document new BD flag for elaborate body desirable
607
608         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
609         of known pragmas.
610
611 2006-10-31  Javier Miranda  <miranda@adacore.com>
612
613         * a-tags.ads, a-tags.adb: 
614         (Predefined_DT): New function that improves readability of the code.
615         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
616         Inherit_DT): Use the new function Predefined_DT to improve code
617         readability.
618         (Register_Interface_Tag): Update assertion.
619         (Set_Interface_Table): Update assertion.
620         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
621         determining progenitor interfaces in Tags.
622         (Inherit_CPP_DT): New subprogram.
623
624         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
625         analysis of the thunk code.
626         (Expand_Interface_Conversion): Handle run-time conversion of
627         access to class wide types.
628         (Expand_Dispatching_Call): When generating the profile for the
629         subprogram itype for a dispatching operation, properly terminate the
630         formal parameters chaind list (set the Next_Entity of the last formal
631         to Empty).
632         (Collect_All_Interfaces): Removed. This routine has been moved to
633         sem_util and renamed as Collect_All_Abstract_Interfaces.
634         (Set_All_DT_Position): Hidden entities associated with abstract
635         interface primitives are not taken into account in the check for
636         3.9.3(10); this check is done with the aliased entity.
637         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
638         interfacing with CPP by default.
639         (Expand_Interface_Conversion): Add missing support for static conversion
640         from an interface to a tagged type.
641         (Collect_All_Interfaces): Add new out formal containing the list of
642         abstract interface types to cleanup the subprogram Make_DT.
643         (Make_DT): Update the code to generate the table of interfaces in case
644         of abstract interface types.
645         (Is_Predefined_Dispatching_Alias): New function that returns true if
646         a primitive is not a predefined dispatching primitive but it is an
647         alias of a predefined dispatching primitive.
648         (Make_DT): If the ancestor of the type is a CPP_Class and we are
649         compiling under full ABI compatibility mode we avoid the generation of
650         calls to run-time services that fill the dispatch tables because under
651         this mode we currently inherit the dispatch tables in the IP subprogram.
652         (Write_DT): Emit an "is null" indication for a null procedure primitive.
653         (Expand_Interface_Conversion): Use an address as the type of the formal
654         of the internally built function that handles the case in which the
655         target type is an access type.
656
657 2006-10-31  Robert Dewar  <dewar@adacore.com>
658
659         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
660
661 2006-10-31  Robert Dewar  <dewar@adacore.com>
662
663         * bindusg.ads, bindusg.adb:
664         Change to package and rename procedure as Display, which
665         now ensures that it only outputs usage information once.
666
667 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
668
669         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
670         using RTPs.
671
672         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
673         when using RTPs.
674
675 2006-10-31  Robert Dewar  <dewar@adacore.com>
676             Ed Schonberg  <schonberg@adacore.com>
677
678         * treepr.adb: Use new subtype N_Membership_Test
679
680         * checks.ads, checks.adb: Add definition for Validity_Check
681         (Range_Or_Validity_Checks_Suppressed): New function
682         (Ensure_Valid): Test Validity_Check suppressed
683         (Insert_Valid_Check): Test Validity_Check suppressed
684         (Insert_Valid_Check): Preserve Do_Range_Check flag
685         (Validity_Check_Range): New procedure
686         (Expr_Known_Valid): Result of membership test is always valid
687         (Selected_Range_Checks): Range checks cannot be applied to discriminants
688         by themselves. Disabling those checks must also be done for task types,
689         where discriminants may be used for the bounds of entry families.
690         (Apply_Address_Clause_Check): Remove side-effects if address expression
691         is non-static and is not the name of a declared constant.
692         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
693         Code cleanup and new error messages.
694         (Enable_Range_Check): Test for some cases of suppressed checks
695         (Generate_Index_Checks): Suppress index checks if index checks are
696         suppressed for array object or array type.
697         (Apply_Selected_Length_Checks): Give warning for compile-time detected
698         length check failure, even if checks are off.
699         (Ensure_Valid): Do not generate a check on an indexed component whose
700         prefix is a packed boolean array.
701         * checks.adb: (Alignment_Checks_Suppressed): New function
702         (Apply_Address_Clause_Check): New procedure, this is a completely
703         rewritten replacement for Apply_Alignment_Check
704         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
705         we request a discriminal value only in case of discriminants.
706         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
707         assignments where the target subtype is unconstrained and the target
708         object is a parameter or dereference (other aliased cases are known
709         to be unconstrained).
710
711 2006-10-31  Robert Dewar  <dewar@adacore.com>
712
713         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
714         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
715         vms_conv.adb: Fix bad table increment values (much too small)
716
717         * table.adb (Realloc): Make sure we get at least some new elements
718         Defends against silly small values for table increment
719
720 2006-10-31  Robert Dewar  <dewar@adacore.com>
721             Ed Schonberg  <schonberg@adacore.com>
722             Bob Duff  <duff@adacore.com>
723
724         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
725         entities. Move other fields around to make this possible
726         (Is_Derived_Type): Add missing call to Is_Type.
727         (Extra_Formals): New function for subprograms, entries, subprogram
728         types.
729         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
730         (First_Formal_With_Extras): New function for subprogs, entries, subp
731         types.
732         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
733         Add node information for E_Return_Statement.
734         (Elaborate_Body_Desirable): New flag
735         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
736         to be Is_Inherently_Limited_Type, because return-by-reference has
737         no meaning in Ada 2005.
738         (E_Return_Statement): New entity kind.
739         (Return_Applies_To): Field of E_Return_Statement.
740         (Is_Return_Object): New flag in object entities.
741         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
742         (Must_Have_Preelab_Init): New flag
743         (Known_To_Have_Preelab_Init): New flag
744         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
745         (Is_Visible_Formal): New flag on entities in formal packages.
746         (Low_Bound_Known): New flag
747         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
748         Incomplete_Kind.
749         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
750         output when Id is an incomplete subtype.
751
752 2006-10-31  Robert Dewar  <dewar@adacore.com>
753
754         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
755         Avoid abbreviation Creat
756         (Finalize): List all sources in extended mail source if -gnatl
757         switch is active.
758         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
759         (Finalize): Implement new -gnatl=xxx switch to output listing to file
760         (Set_Specific_Warning_On): New procedure
761         (Set_Specific_Warning_Off): New procedure
762         Add implementation of new insertion \\
763         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
764         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
765         types.
766         (Error_Msg_Internal): Make sure that we set Last_Killed to
767         True when a message from another package is suppressed.
768         Implement insertion character ~ (insert string)
769         (First_Node): Minor adjustments to get better placement.
770
771         * frontend.adb: 
772         Implement new -gnatl=xxx switch to output listing to file
773
774         * gnat1drv.adb: 
775         Implement new -gnatl=xxx switch to output listing to file
776
777         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
778         (Commands_To_Stdout): New flag
779         Implement new -gnatl=xxx switch to output listing to file
780         New switch Dump_Source_Text
781         (Warn_On_Deleted_Code): New warning flag for -gnatwt
782         Define Error_Msg_Line_Length
783         (Warn_On_Assumed_Low_Bound): New switch
784
785         * osint.ads, osint.adb
786         (Normalize_Directory_Name): Fix bug.
787         Implement new -gnatl=xxx switch to output listing to file
788         (Concat): Removed, replaced by real concatenation
789         Make use of concatenation now allowed in compiler
790         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
791         we find the 'lib' or 'bin' directory even when the tool has been
792         invoked with a relative path.
793         (Executable_Name): New function taking string parameters.
794
795         * osint-c.ads, osint-c.adb: 
796         Implement new -gnatl=xxx switch to output listing to file
797
798         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
799
800         * switch-c.adb: 
801         Implement new -gnatl=xxx switch to output listing to file
802         Recognize new -gnatL switch
803         (no longer keep in old warning about old style usage)
804         Use concatenation to simplify code
805         Recognize -gnatjnn switch
806         (Scan_Front_End_Switches): Clean up handling of -gnatW
807         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
808
809 2006-10-31  Robert Dewar  <dewar@adacore.com>
810
811         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
812         (Set_Specific_Warning_Off): New procedure
813         (Warning_Specifically_Suppressed): New function
814         (Validate_Specific_Warnings): New procedure
815         (Output_Msg_Text): Complete rewrite to support -gnatjnn
816
817         * err_vars.ads: Implement insertion character ~ (insert string)
818
819 2006-10-31  Bob Duff  <duff@adacore.com>
820             Ed Schonberg  <schonberg@adacore.com>
821
822         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
823         the parent part is a build-in-place function call, generate assignments.
824         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
825         are build-in-place function calls.
826         (Replace_Self_Reference): New subsidiary of
827         Make_OK_Assignment_Statement, to replace an access attribute that is a
828         self-reference into an access to the appropriate component of the
829         target object. Generalizes previous mechanism to handle self-references
830         nested at any level.
831         (Is_Self_Referential_Init): Remove, not needed.
832         (Is_Self_Referential_Init): New predicate to simplify handling of self
833         referential components in record aggregates.
834         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
835         check for presence of entity before checking for self-reference.
836         (Has_Default_Init_Comps): Return True if a component association is a
837         self-reference to the enclosing type, which can only come from a
838         default initialization.
839         (Make_OK_Assignment_Statement): If the expression is of the form
840         Typ'Acc, where Acc is an access attribute, the expression comes from a
841         default initialized self-referential component.
842         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
843         that has been derived from several abstract interfaces we must also
844         initialize the tags of the secondary dispatch tables.
845
846 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
847             Thomas Quinot  <quinot@adacore.com>
848             Javier Miranda  <miranda@adacore.com>
849             Robert Dewar  <dewar@adacore.com>
850         
851         * exp_attr.adb: 
852         (Expand_Access_To_Protected_Op): If the context indicates that an access
853         to a local operation may be transfered outside of the object, create an
854         access to the wrapper operation that must be used in an external call.
855         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
856         target, pass the Valid attribute applied to a floating-point prefix on
857         to the back end without expansion.
858         (Storage_Size): Use the new run-time function Storage_Size to retrieve
859         the allocated storage when it is specified by a per-object expression.
860         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
861         Nothing to do here, the attribute has been rewritten during semantic
862         analysis.
863         (Expand_Attribute_Reference): Handle expansion of the new Priority
864         attribute
865         (Find_Fat_Info): Handle case of universal real
866         (Expand_Access_To_Protected_Op): Fix use of access to protected
867         subprogram from inside the body of a protected entry.
868         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
869         'Access and 'Unrestricted_Access, to transform the attribute reference
870         into a fat pointer.
871         (Is_Constrained_Aliased_View): New predicate to help determine whether a
872         subcomponent's enclosing variable is aliased with a constrained subtype.
873         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
874         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
875         an aliased prefix must be known to be constrained in order to use True
876         for the attribute value, and now it's possible for some aliased views
877         to be unconstrained.
878
879 2006-10-31  Robert Dewar  <dewar@adacore.com>
880
881         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
882         (Expand_Entity_Reference): Correct error of not handling subprogram
883         formals in current_value processing.
884
885 2006-10-31  Javier Miranda  <miranda@adacore.com>
886             Robert Dewar  <dewar@adacore.com>
887             Ed Schonberg  <schonberg@adacore.com>
888             Gary Dismukes  <dismukes@adacore.com>
889
890         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
891         register in the final list objects containing class-wide interfaces;
892         otherwise we incorrectly register the tag of the interface in the final
893         list.
894         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
895         generate the wrapper if the parent primitive is abstract. This is
896         required to report the correct error message.
897         (Expand_N_Subtype_Indication): Do validity checks on range
898         (Clean_Task_Names): If an initialization procedure includes a call to
899         initialize a task (sub)component, indicate that the procedure will use
900         the secondary stack.
901         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
902         compatibility for interfacing with CPP by default.
903         (Expand_N_Object_Declaration): Only build an Adjust call when the
904         object's type is a nonlimited controlled type.
905         * exp_ch3.adb: Add with and use of Exp_Ch6.
906         (Expand_N_Object_Declaration): Check for object initialization that is a
907         call to build-in-place function and apply Make_Build_In_Place_Call_In_
908         Object_Declaration to the call.
909         (Freeze_Type): When the designated type of an RACW was not frozen at the
910         point where the RACW was declared, validate the primitive operations
911         with respect to E.2.2(14) when it finally is frozen.
912         (Build_Initialization_Call,Expand_Record_Controller): Rename
913         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
914         return-by-reference has no meaning in Ada 2005.
915         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
916         to register tag of the immediate ancestor interfaces in the
917         run-time structure.
918         (Init_Secondary_Tags): Moved to the specification to allow the
919         initialization of extension aggregates with abstract interfaces.
920         (Build_Master_Renaming): Make public, for use by function declarations
921         whose return type is an anonymous access type.
922         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
923         Insert_List_Before_And_Analyze after the generation of the specs
924         associated with null procedures.
925         (Expand_Tagged_Root): Update documentation in its specification.
926         (Init_Secondary_Tags): Update documentation.
927         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
928         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
929         then generate code to inherit the contents of the dispatch table
930         directly from the ancestor.
931         (Expand_Record_Controller): Insert controller component after tags of
932         implemented interfaces.
933         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
934         create null procedure overridings when null procedures are inherited
935         from interfaces.
936         (Make_Null_Procedure_Specs): New procedure to generate null procedure
937         declarations for overriding null primitives inherited from interfaces.
938         (Is_Null_Interface_Procedure): New function in
939         Make_Null_Procedure_Specs.
940         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
941         immediate ancestor of a tagged type is an abstract interface type we
942         must generate the specification of the predefined primitives associated
943         with controlled types (because the dispatch table of the ancestor is
944         null and hence these entries cannot be inherited). This is required to
945         elaborate well the dispatch table.
946
947 2006-10-31  Javier Miranda  <miranda@adacore.com>
948             Ed Schonberg  <schonberg@adacore.com>
949             Bob Duff  <duff@adacore.com>
950             Gary Dismukes  <dismukes@adacore.com>
951             Robert Dewar  <dewar@adacore.com>
952         
953         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
954         conversion.
955         (Expand_N_In): Do validity checks on range
956         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
957         (Expand_N_Allocator): For "new T", if the object is constrained by
958         discriminant defaults, allocate the right amount of memory, rather than
959         the maximum for type T.
960         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
961         when the allocator is initialized by a build-in-place call, since the
962         allocator is already rewritten as a reference to the function result,
963         and this prevents an unwanted duplication of the function call.
964         Add with and use of Exp_Ch6.
965         (Expand_Allocator_Expresssion): Check for an allocator whose expression
966         is a call to build-in-place function and apply
967         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
968         untagged designated types).
969         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
970         optimization if source or target is biased.
971         (Expand_N_Allocator): Add comments for case of an allocator within a
972         function that returns an anonymous access type designating tasks.
973         (Expand_N_Allocator): apply discriminant checks for access
974         discriminants of anonymous access types (AI-402, AI-416)
975
976 2006-10-31  Bob Duff  <duff@adacore.com>
977             Robert Dewar  <dewar@adacore.com>
978             Gary Dismukes  <dismukes@adacore.com>
979             Ed Schonberg  <schonberg@adacore.com>
980
981         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
982
983         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
984         (Expand_N_Assignment_Statement): Call
985         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
986         build-in-place function call. Currently, this can happen only for
987         assignments that come from aggregates.
988         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
989         in order to alleviate the upward compatibility introduced by AI-318.
990         (Expand_N_Extended_Return_Statement): Add support for handling the
991         return object as a build-in-place result.
992         (Expand_Non_Function_Return): Implement simple return statements nested
993         within an extended return.
994         (Enable_New_Return_Processing): Turn on the new processing of return
995         statements.
996         (Expand_Non_Function_Return): For a return within an extended return,
997         don't raise Program_Error, because Sem_Ch6 now gives a warning.
998         (Expand_N_Extended_Return_Statement): Implement AI-318
999         (Expand_Simple_Function_Return): Ditto.
1000         (Expand_N_If_Statement): Handle new -gnatwt warning
1001         (Expand_N_Case_Statement): Handle new -gnatwt warning
1002         (Expand_N_Assignment): Handle assignment to the Priority attribute of
1003         a protected object.
1004         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
1005         validity checking of assignments to elementary record components.
1006         (Expand_N_Return_Statement): return Class Wide types on the secondary
1007         stack independantly of their controlled status since with HIE runtimes,
1008         class wide types are not potentially controlled anymore.
1009
1010         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
1011         node kind.
1012
1013         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
1014         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
1015         it expects a block, procedure, or task. The return statement will get
1016         turned into a block, and Expand_Cleanup_Actions will happen then.
1017
1018 2006-10-31  Robert Dewar  <dewar@adacore.com>
1019             Ed Schonberg  <schonberg@adacore.com>
1020             Bob Duff  <duff@adacore.com>
1021             Gary Dismukes  <dismukes@adacore.com>
1022
1023         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
1024         capability.
1025         (Expand_Inlined_Call): Tagged types are by-reference types, and
1026         therefore should be replaced by a renaming declaration in the expanded
1027         body, as is done for limited types.
1028         (Expand_Call): If this is a call to a function with dispatching access
1029         result, propagate tag from context.
1030         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
1031         CPP by default.
1032         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
1033         build-in-place when the right-hand side of an assignment is a
1034         build-in-place function call.
1035         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
1036         of the explicit dereference of the allocator to the result subtype of
1037         the build-in-place function. This is needed to satisfy type checking
1038         in cases where the caller's return object is created by an allocator for
1039         a class-wide access type and the type named in the allocator is a
1040         specific type.
1041         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
1042         conversion of the reference to the declared object to the result subtype
1043         of the build-in-place function. This is needed to satisfy type checking
1044         in cases where the declared object has a class-wide type. Also, in the
1045         class-wide case, change the type of the object entity to the specific
1046         result subtype of the function, to avoid passing a class-wide object
1047         without explicit initialization to the back end.
1048         (Register_Interface_DT_Entry): Moved outside the body of
1049         Freeze_Subprogram because this routine is now public; it is called from
1050         Check_Dispatching_Overriding to handle late overriding of abstract
1051         interface primitives.
1052         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
1053         adding an implicit access actual on a call to a build-in-place function.
1054         (Expand_Actuals): Test for an actual parameter that is a call to a
1055         build-in-place function and apply
1056         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
1057         (Is_Build_In_Place_Function): New function to determine whether an
1058         entity is a function whose calls should be handled as build-in-place.
1059         (Is_Build_In_Place_Function_Call): New function to determine whether an
1060         expression is a function call that should handled as build-in-place.
1061         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
1062         calls to build-in-place functions as the initialization of an allocator.
1063         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
1064         handling calls to build-in-place functions in contexts that do not
1065         involve init of a separate object (for example, actuals of subprogram
1066         calls).
1067         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
1068         handling calls to build-in-place functions as the initialization of an
1069         object declaration.
1070         (Detect_Infinite_Recursion): Add explicit parameter Process to
1071         instantiation of Traverse_Body to avoid unreferenced warning.
1072         (Check_Overriding_Inherited_Interfaces): Removed.
1073         (Register_Interface_DT_Entry): Code cleanup.
1074         (Register_Predefined_DT_Entry): Code cleanup.
1075         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
1076         inlined statements if within a transient scope.
1077         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
1078         formal parameters with occurrences of actuals in inlined body, establish
1079         visibility on the proper view of the actual's subtype for the body's
1080         context.
1081         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
1082         compatibility mode and we have an imported CPP subprogram because
1083         for now we assume that imported CPP primitives correspond with
1084         objects whose constructor is in the CPP side (and therefore we
1085         don't need to generate code to register them in the dispatch table).
1086         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
1087         aligned selected component.
1088         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
1089         the actual of an in-mode parameter is a type conversion.
1090         (Expand_Actuals): If the call does not come from source and the actual
1091         is potentially misaligned, let gigi handle it rather than rejecting the
1092         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
1093         Class Wide types as returning by reference independantly of their
1094         controlled status since with HIE runtimes class wide types are not
1095         potentially controlled anymore.
1096
1097 2006-10-31  Ed Schonberg  <schonberg@adacore.com>             
1098
1099         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
1100         references that are private components of the protected object.
1101         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
1102         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
1103         instantiation to deal with warnings.
1104         (Initialize_Protection): If expression for priority is non-static, use
1105         System_Priority as its expected type, in case the expression has not
1106         been analyzed yet.
1107
1108 2006-10-31  Robert Dewar  <dewar@adacore.com>
1109
1110         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
1111         initialization of Homonym_Len.
1112         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
1113         names from fully qualified name. Fixes problem of duplicate
1114         external names differing only in the presence of such a block name.
1115
1116 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1117             Pablo Oliveira  <oliveira@adacore.com>
1118         
1119         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
1120         subprogram Ids, even if they are not yet assigned.
1121         (Build_Subprogram_Id): It is now this function that will take care of
1122         calling Assign_Subprogram_Ids if necessary.
1123         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
1124         should be done only once they are assigned.
1125         (Build_From_Any_Function, case of tagged types): Add missing call to
1126         Allocate_Buffer.
1127         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
1128         type for an RACW type.
1129         (Add_RACW_Features): When processing an RACW declaration for which the
1130         designated type is already frozen, enforce E.2.2(14) rules immediately.
1131         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
1132         special reordering of controlling formals.
1133
1134         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
1135         associated stub type for an RACW type.
1136
1137 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1138
1139         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
1140         fixed-point operations in an integer context, i.e. as operands of a
1141         conversion to an integer type, indicate that result must be rounded.
1142
1143 2006-10-31  Robert Dewar  <dewar@adacore.com>
1144
1145         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
1146         cases, pass the encoding method, since it is now required by the run
1147         time.
1148
1149         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
1150         assumption that Str'First = 1.
1151         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
1152         it on to the Value_Wide_Wide_Character call.
1153         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
1154         properly handles a string of the form quote-encoded_wide_char-quote.
1155
1156         * s-wchcnv.adb: Minor reformatting
1157
1158 2006-10-31  Javier Miranda  <miranda@adacore.com>
1159         
1160         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1161         run-time membership test to ensure that the constructed object
1162         implements the target abstract interface.
1163
1164 2006-10-31  Robert Dewar  <dewar@adacore.com>
1165
1166         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
1167         Machine_Attribute pragma internally to implement the user pragma.
1168         Add processing for pragma Interface so that it is now completely
1169         equivalent to pragma Import.
1170
1171         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
1172         so that it can be applied to all entities, including record components
1173         and enumeration literals.
1174         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
1175         priority ranges are correct, verify compatibility against task
1176         dispatching and locking policies, and if everything is correct an entry
1177         is added to the table containing priority specific dispatching entries
1178         for this compilation unit.
1179         (Delay_Config_Pragma_Analyze): Delay processing
1180         Priority_Specific_Dispatching pragmas because when processing the
1181         pragma we need to access run-time data, such as the range of
1182         System.Any_Priority.
1183         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
1184         Allow pragma Unreferenced as a context item
1185         Add pragma Preelaborable_Initialization
1186         (Analyze_Pragma, case Interface): Interface is extended so that it is
1187         now syntactically and semantically equivalent to Import.
1188         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
1189         insertion characters.
1190         Add handling for Pragma_Wide_Character_Encoding
1191         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
1192         never supercedes a real restriction, and that a real restriction
1193         always supercedes a warning.
1194         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
1195         appropriate form.
1196
1197 2006-10-31  Bob Duff  <duff@adacore.com>
1198             Ed Schonberg  <schonberg@adacore.com>
1199             Robert Dewar  <dewar@adacore.com>
1200
1201         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
1202         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
1203         Is_Inherently_Limited_Type, because return-by-reference has no meaning
1204         in Ada 2005.
1205         (Find_Node_To_Be_Wrapped): Use new method of determining the result
1206         type of the function containing a return statement, because the
1207         Return_Type field was removed. We now use the Return_Applies_To field.
1208
1209         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
1210         (Build_Task_Image_Decl): If procedure is not called from an
1211         initialization procedure, indicate that function that builds task name
1212         uses the sec. stack. Otherwise the enclosing initialization procedure
1213         will carry the indication.
1214         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
1215         N_Object_Declaration instead.
1216         (Kill_Dead_Code): New interface to implement -gnatwt warning for
1217         conditional dead code killed, and change implementation accordingly.
1218         (Insert_Actions): Add N_Return_Object_Declaration case.
1219         Correct comment to mention N_Extension_Aggregate node.
1220         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
1221         attempts to save information for global variables which cannot be
1222         safely tracked.
1223         (Get_Current_Value_Condition): Handle conditions the other way round
1224         (constant on left). Also handle right operand of AND and AND THEN
1225         (Set_Current_Value_Condition): Corresponding changes
1226         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
1227         (Get_Current_Value_Condition): Handle simple boolean operands
1228         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
1229         (Get_Current_Value_Condition): If the variable reference is within an
1230         if-statement, does not appear in the list of then_statments, and does
1231         not come from source, treat it as being at unknown location.
1232         (Get_Current_Value_Condition): Enhance to allow while statements to be
1233         processed as well as if statements.
1234         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
1235         come from source.
1236         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
1237         of loop. This is safe now that we fixed Kill_Current_Values.
1238         (OK_To_Do_Constant_Replacement): Check whether current scope is
1239         Standard, before examining outer scopes.
1240
1241 2006-10-31  Vincent Celier  <celier@adacore.com>
1242
1243         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
1244         When True, apply VMS treatment to children of packages A, G, I and S.
1245         For F320-016
1246
1247         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
1248
1249 2006-10-31  Robert Dewar  <dewar@adacore.com>
1250             Ed Schonberg  <schonberg@adacore.com>
1251
1252         * freeze.adb: Add handling of Last_Assignment field
1253         (Warn_Overlay): Supply missing continuation marks in error msgs
1254         (Freeze_Entity): Add check for Preelaborable_Initialization
1255
1256         * g-comlin.adb: Add Warnings (Off) to prevent new warning
1257
1258         * g-expect.adb: Add Warnings (Off) to prevent new warning
1259
1260         * lib-xref.adb: Add handling of Last_Assignment field
1261         (Generate_Reference): Centralize handling of pragma Obsolescent here
1262         (Generate_Reference): Accept an implicit reference generated for a
1263         default in an instance.
1264         (Generate_Reference): Accept a reference for a node that is not in the
1265         main unit, if it is the generic body corresponding to an subprogram
1266         instantiation.
1267
1268         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
1269
1270         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
1271         -gnatwq/Q.
1272         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
1273         exception handler.
1274         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
1275         use clauses, to avoid messages on packages used to qualify, and also
1276         to avoid messages from obsolescent units.
1277         (Warn_On_Useless_Assignments): Don't generate messages for imported
1278         and exported variables.
1279         (Warn_On_Useless_Assignments): New procedure
1280         (Output_Obsolescent_Entity_Warnings): New procedure
1281         (Check_Code_Statement): New procedure
1282
1283         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
1284         Change name Is_Ada_2005 to Is_Ada_2005_Only
1285         (Last_Assignment): New field for useless assignment warning
1286
1287 2006-10-31  Olivier Hainque  <hainque@adacore.com>
1288
1289         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
1290         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
1291
1292 2006-10-31  Bob Duff  <duff@adacore.com>
1293             Robert Dewar  <dewar@adacore.com>
1294             Ed Schonberg  <schonberg@adacore.com>
1295
1296         * g-awk.adb (Default_Session, Current_Session): Compile this file in
1297         Ada 95 mode, because it violates the new rules for AI-318.
1298
1299         * g-awk.ads: Use overloaded subprograms in every case where we used to
1300         have a default of Current_Session. This makes the code closer to be
1301         correct for both Ada 95 and 2005.
1302
1303         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
1304         code, relying on the fact that the compiler generates a warning
1305         instead of an error in -gnatg mode.
1306
1307         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
1308         E_Return_Statement entity kind.
1309         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
1310
1311         * par.adb (P_Interface_Type_Definition): Addition of one formal to
1312         report an error if the reserved word abstract has been previously found.
1313         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
1314         
1315         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
1316         parenthesized range attribute usage
1317         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
1318
1319         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
1320         in the syntax for extended_return_statement. This is not in the latest
1321         RM, but the ARG is expected to issue an AI allowing this.
1322         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
1323         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
1324         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
1325         P_Return_Statement): Parse the new syntax for extended_return_statement.
1326
1327         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
1328         Output_End_Missing): Add error-recovery code for the new
1329         extended_return_statement syntax; that is, the new E_Return entry on
1330         the scope stack.
1331
1332         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
1333         limited to nonlimited, because otherwise we violate the new Ada 2005
1334         rules about returning limited types in function Create_AST_Handler in
1335         s-asthan.adb.
1336
1337         * sem.adb (Analyze): Add cases for new node kinds
1338         N_Extended_Return_Statement and N_Return_Object_Declaration.
1339
1340         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
1341         type is in the same category as type of context before applying check,
1342         to prevent anomalies in instantiations.
1343         (Resolve_Aggregate): Remove test for limited components in aggregates.
1344         It's unnecessary in Ada 95, because if it has limited components, then
1345         it must be limited. It's wrong in Ada 2005, because limited aggregates
1346         are now allowed.
1347         (Resolve_Record_Aggregate): Move check for limited types later, because
1348         OK_For_Limited_Init requires its argument to have been resolved.
1349         (Get_Value): When copying the component default expression for a
1350         defaulted association in an aggregate, use the sloc of the aggregate
1351         and not that of the original expression, to prevent spurious
1352         elaboration errors, when the expression includes function calls.
1353         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
1354         were missing. We also didn't handle qualified expressions. Now also
1355         allow function calls. Use new common routine OK_For_Limited_Init.
1356         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
1357         with space can upper case letter).
1358
1359         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
1360         Has_Static_Discriminants flag
1361         (Record_Type_Declaration): Diagnose an attempt to declare an interface
1362         type with discriminants.
1363         (Process_Range_Expr_In_Decl): Do validity checks on range
1364         (Build_Discriminant_Constraints): Use updated form of
1365         Denotes_Discriminant.
1366         (Process_Subtype): If the subtype is a private subtype whose full view
1367         is a concurrent subtype, introduce an itype reference to prevent scope
1368         anomalies in gigi.
1369         (Build_Derived_Record_Type, Collect_Interface_Primitives,
1370         Record_Type_Declaration):  The functionality of the subprograms
1371         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
1372         is now performed by a single routine.
1373         (Build_Derived_Record_Type): If the type definition includes an explicit
1374         indication of limitedness, then the type must be marked as limited here
1375         to ensure that any access discriminants will not be treated as having
1376         a local anonymous access type.
1377         (Check_Abstract_Overriding): Issue a detailed error message when an
1378         abstract subprogram was not overridden due to incorrect mode of its
1379         first parameter.
1380         (Analyze_Private_Extension_Declaration): Add support for the analysis of
1381         synchronized private extension declarations. Verify that the ancestor is
1382         a limited or synchronized interface or in the generic case, the ancestor
1383         is a tagged limited type or synchronized interface and all progenitors
1384         are either limited or synchronized interfaces.
1385         Derived_Type_Declaration): Check for presence of private extension when
1386         dealing with synchronized formal derived types.
1387         Process_Full_View): Enchance the check done on the usage of "limited" by
1388         testing whether the private view is synchronized.
1389         Verify that a synchronized private view is completed by a protected or
1390         task type.
1391         (OK_For_Limited_Init_In_05): New function.
1392         (Analyze_Object_Declaration): Move check for limited types later,
1393         because OK_For_Limited_Init requires its argument to have been resolved.
1394         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1395         in order to alleviate the upward compatibility introduced by AI-318.
1396         (Constrain_Corresponding_Record): If the constraint is for a component
1397         subtype, mark the itype as frozen, to avoid out-of-scope references to
1398         discriminants in the back-end.
1399         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
1400         this subprogram against wrong sources.
1401         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
1402         discriminant of limited type completed with a protected type, when the
1403         discriminant is used to constrain a private component of the type, and
1404         expansion is disabled.
1405         (Find_Type_Of_Object): Do not treat a return subtype that is an
1406         anonymous subtype as a local_anonymous_type, because its accessibility
1407         level is the return type of the enclosing function.
1408         (Check_Initialization): In -gnatg mode, turn the error "cannot
1409         initialize entities of limited type" into a warning.
1410         (OK_For_Limited_Init): Return true for generated nodes, since it
1411         sometimes violates the legality rules.
1412         (Make_Incomplete_Declaration): If the type for which an incomplete
1413         declaration is created happens to be the currently visible entity,
1414         preserve the homonym chain when removing it from visibility.
1415         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
1416         inherited subprograms.
1417         (Access_Definition): If this is an access to function that is the return
1418         type of an access_to_function definition, context is a type declaration
1419         and the scope of the anonymous type is the current one.
1420         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
1421         incomplete subtype to the set of private dependents of the original
1422         incomplete type.
1423         (Constrain_Discriminated_Type): Emit an error message whenever an
1424         incomplete subtype is being constrained.
1425         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
1426         corresponding subtype of the full view of the original incomplete type.
1427         (Check_Incomplete): Properly detect invalid usage of incomplete types
1428         and subtypes.
1429
1430 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1431
1432         * g-catiio.ads, g-catiio.adb (Value): New function.
1433         Given an input String, try and parse a valid Time value.
1434
1435 2006-10-31  Vincent Celier  <celier@adacore.com>
1436
1437         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1438         Integer_Address arithmetic, as in Set_Valid.
1439
1440 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1441             Robert Dewar  <dewar@adacore.com>
1442
1443         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
1444         handling executable extension manually and duplicating code.
1445
1446         * make.adb: Implement new -S switch
1447         (Gnatmake): Use new function Osint.Executable_Name instead
1448         of handling executable extension manually.
1449
1450         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
1451         is specified, the executable name ends with this suffix.
1452         Take advantage of Osint.Executable_Name instead of duplicating code.
1453
1454         * switch-m.adb: Recognize new gnatmake -S switch
1455
1456         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
1457         variable.
1458         (Get_Target_Parameters): Set Executable_Extension_On_Target if
1459         available.
1460
1461         * makeusg.adb: Add line for gnatmake -S switch
1462
1463 2006-10-31  Vincent Celier  <celier@adacore.com>
1464
1465         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
1466         call it with -static-libgcc, as there are some platforms, such as
1467         Darwin, where one of these two switches is compulsory to link.
1468
1469 2006-10-31  Vincent Celier  <celier@adacore.com>
1470         
1471         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
1472         instead of ADA_PROJECT_PATH, for the project path.
1473         (Gnatls): When displaying the project path directories, use host dir
1474         specs.
1475
1476         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
1477         names in the project path, as absolute paths may correspond to
1478         multi-valued VMS logical names.
1479
1480 2006-10-31  Vincent Celier  <celier@adacore.com>
1481
1482         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
1483         absolute path name.
1484         (Locate_Regular_File): Ditto
1485         (Change_Dir): Remove, no longer used
1486         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
1487         on Windows. Get it calling Get_Current_Dir.
1488         (OpenVMS): Remove imported boolean, no longer needed.
1489         (Normalize_Pathname)[VMS]: Do not resolve directory names.
1490         (Pid_To_Integer): New function to convert a Process_Id to  Integer
1491
1492 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1493
1494         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
1495         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
1496         to No_Socket.
1497         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
1498         W_Sig_Socket.
1499
1500 2006-10-31  Robert Dewar  <dewar@adacore.com>
1501
1502         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1503         initial letter o as a zero.
1504
1505 2006-10-31  Robert Dewar  <dewar@adacore.com>
1506
1507         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1508
1509 2006-10-31  Robert Dewar  <dewar@adacore.com>
1510
1511         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
1512         variant records
1513         (Layout_Variant_Record): Retrieve the discriminants from the entity
1514         rather than from the type definition, because in the case of a full
1515         type for a private type we need to take the discriminants from the
1516         partial view.
1517         (Layout_Component_List): When applying the Max operator to variants with
1518         a nonstatic size, check whether either operand is static and scale that
1519         operand from bits to storage units before applying Max.
1520         (Layout_Type): In VMS, if a C-convention access type has no explicit
1521         size clause (and does not inherit one in the case of a derived type),
1522         then the size is reset to 32 from 64.
1523
1524 2006-10-31  Vincent Celier  <celier@adacore.com>
1525
1526         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
1527         its file has already been loaded, according to the unit being loaded,
1528         not to the current value of Multiple_Unit_Index.
1529
1530 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1531             Eric Botcazou  <ebotcazou@adacore.com>
1532             Arnaud Charlet  <charlet@adacore.com>
1533
1534         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
1535         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
1536         possible.
1537         (a-except.o): Pass it to the compiler.
1538         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
1539         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
1540         a-calend-mingw.adb version.
1541
1542         * Makefile.rtl: Added s-dsaser.
1543         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
1544         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
1545         Ada.Dispatching.Round_Robin.
1546         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
1547
1548         * Make-lang.in: Remove all references to gt-ada-decl.h.
1549         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
1550         sources.
1551         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
1552         Update dependencies.
1553
1554         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
1555
1556 2006-10-31  Vincent Celier  <celier@adacore.com>
1557
1558         * mlib-utl.adb (Initialized): Remove, no longer used
1559         (Initialize): Remove, no longer used
1560         (Ar): If Ar_Exec is null, get the location of the archive builder and,
1561         if there is one, the archive indexer. Fail if the archive builder cannot
1562         be found.
1563         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
1564         be found.
1565
1566 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1567
1568         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
1569         Process_Body_Clauses): If the context of a body includes a use clause
1570         for P.Q then a with_clause for P in the same body is not redundant,
1571         even if the spec also has a with_clause on P.
1572         Add missing continuation mark to error msg
1573         (Build_Limited_Views): A limited view of a type is tagged if its
1574         declaration includes a record extension.
1575         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
1576         node, even if the subunit has errors. This avoids malfunction by
1577         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
1578         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
1579         generation of obsolescent messages for with statements (cannot do
1580         this too early, or we cannot implement avoiding the messages in the
1581         case of obsolescent units withing obsolescent units).
1582         (Install_Siblings): If the with_clause is on a remote descendant of
1583         an ancestor of the current compilation unit, find whether there is
1584         a sibling child unit that is immediately visible.
1585         (Remove_Private_With_Clauses): New procedure, invoked after completing
1586         the analysis of the private part of a nested package, to remove from
1587         visibility the private with_clauses of the enclosing package
1588         declaration.
1589         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
1590         now centralized in Generate_Reference.
1591         (Install_Limited_Context_Clauses): Remove superfluous error
1592         message associated with unlimited view visible through use
1593         and renamings. In addition, at the point in which the error
1594         is reported, we add the backslash to the text of the error
1595         to ensure that it is reported as a single error message.
1596         Use new // insertion for some continuation messages
1597         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
1598         to create implicit with_clause for parent unit mentioned in original
1599         limited_with_clause.
1600         (Install_Limited_With_Unit): Set entity of parent identifiers if the
1601         unit is a child unit. For ASIS queries.
1602         (Analyze_Subunit): If the subunit appears within a child unit, make all
1603         ancestor child units directly visible again.
1604
1605 2006-10-31  Robert Dewar  <dewar@adacore.com>
1606
1607         * par-ch10.adb (P_Context_Clause): Minor error message fix
1608
1609 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1610             Javier Miranda  <miranda@adacore.com>
1611
1612         * par-ch12.adb: Grammar update and cleanup.
1613         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
1614         support for synchronized derived type definitions.
1615         Add the new actual Abstract_Present to every call to
1616         P_Interface_Type_Definition.
1617         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
1618         a formal object declaration with an access definition or a subtype mark
1619         with a null exclusion.
1620         (P_Generic_Association): Handle association with box, and others_choice
1621         with box, to support Ada 2005 partially parametrized formal packages.
1622
1623 2006-10-31  Robert Dewar  <dewar@adacore.com>
1624             Javier Miranda  <miranda@adacore.com>
1625         
1626         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
1627         (P_Type_Declaration): Remove barrier against the reserved word "limited"
1628         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
1629         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
1630         private extensions.
1631         (P_Type_Declaration): Add the new actual Abstract_Present to every call
1632         to P_Interface_Type_Definition.
1633         (P_Interface_Type_Definition): Addition of one formal to report an error
1634         if the reserved word abstract has been previously found.
1635         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
1636         object renaming declaration with an access definition or subtype mark
1637         with a possible null exclusion.
1638
1639         * par-ch9.adb: Minor error msg fix
1640
1641         * par-load.adb: Add missing continuation mark to error msg
1642
1643         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
1644
1645 2006-10-31  Vincent Celier  <celier@adacore.com>
1646
1647         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
1648         unknown attribute in unknown package or in package that does not need
1649         to be checked.
1650         (Parse_Package_Declaration): Do not issue warning for unknown package in
1651         quiet output.
1652
1653 2006-10-31  Vincent Celier  <celier@adacore.com>
1654
1655         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
1656         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
1657         Packages_To_Check.
1658
1659 2006-10-31  Vincent Celier  <celier@adacore.com>
1660
1661         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
1662         on VMS, change "__" to '.' before checking the name.
1663         (Record_Ada_Source): Always add the source file name in the list of
1664         of sources, even if it is not the first time, as it is for another
1665         source index.
1666         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
1667         dot, instead of replacing only the first '_'.
1668
1669         * prj-part.adb (Parse): Convert project file path to canonical form
1670
1671         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
1672         extended, the project id of the project extending it is recorded in its
1673         data, even when it has already been processed as an imported project.
1674
1675 2006-10-31  Robert Dewar  <dewar@adacore.com>
1676
1677         * repinfo.adb (List_Entities): Don't list entities from renaming
1678         declarations.
1679
1680 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1681             Robert Dewar  <dewar@adacore.com>
1682
1683         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
1684         only a restriction warning is active for the given restriction. This is
1685         desirable because we do not want to modify code in the case where only
1686         a warning is set.
1687         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
1688         causes overriding of real restrictions.
1689         Take advantage of new No_Restrictions constant.
1690
1691         * raise.h: (__gnat_set_globals): Change profile.
1692
1693 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1694         
1695         * rtsfind.adb: Remove s-polint from comment as it exists no more.
1696
1697         * rtsfind.ads: 
1698         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
1699         Move all the entities in obsolete package System.PolyORB_Interface to
1700         System.Partition_Interface.
1701         (RE_Storage_Size): New function in System.Tasking.
1702         (RE_Get_Ceiling): New entity.
1703         (RE_Set_Ceiling): New entity.
1704         (RO_PE_Get_Ceiling): New entity.
1705         (RO_RE_Set_Ceiling): New entity.
1706         (Inherit_CPP_DT): New entity
1707
1708 2006-10-31  Robert Dewar  <dewar@adacore.com>
1709
1710         * scng.adb (Scan, case of numeric literal): Better msg for identifier
1711         starting with a digit.
1712
1713 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1714             Thomas Quinot  <quinot@adacore.com>
1715             Javier Miranda  <miranda@adacore.com>
1716             Gary Dismukes  <dismukes@adacore.com>
1717
1718         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
1719         properly an attempt to apply Unchecked_Access to a protected operation.
1720         (OK_Self_Reference): New subprogram to check the legality of an access
1721         attribute whose prefix is the type of an enclosing aggregate.
1722         Generalizes previous mechanism to handle attribute references nested
1723         arbitrarily deep within the aggregate.
1724         (Analyze_Access_Attribute): An access attribute whose prefix is a type
1725         can appear in an aggregate if this is a default-initialized aggregate
1726         for a self-referential type.
1727         (Resolve_Attribute, case Access): Ditto.
1728         Add support for new implementation defined attribute Stub_Type.
1729         (Eval_Attribute, case Attribute_Stub_Type): New case.
1730         (Analyze_Attribute, case Attribute_Stub_Type): New case.
1731         (Stream_Attribute_Available): Implement using new subprogram from
1732         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
1733         Has_Specified_Stream_Attribute flag.
1734         Disallow Storage_Size and Storage_Pool for access to subprogram
1735         (Resolve_Attribute, case 'Access et al): Take into account anonymous
1736         access types of return subtypes in extended return statements. Remove
1737         accessibility checks on anonymous access types when Unchecked_Access is
1738         used.
1739         (Analyze_Attribute): Add support for the use of 'Class to convert
1740         a class-wide interface to a tagged type.
1741         Add support for the attribute Priority.
1742         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
1743         whether the designated type is discriminated with a constrained partial
1744         view and require static matching in that case.
1745         Add local variable Des_Btyp. The Designated_Type
1746         of an access to incomplete subtype is either its non-limited view if
1747         coming from a limited with or its etype if regular incomplete subtype.
1748
1749         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
1750         Fix predicate to identify and allow cases of (expander-generated)
1751         references to tag of designated object of a RACW.
1752         (Validate_Static_Object_Name): In Ada 2005, a formal object is
1753         non-static, and therefore cannot appear as a primary in a preelaborable
1754         package.
1755         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
1756         Has_Read_Write_Attributes.
1757         (Has_Read_Write_Attributes): Reimplement in termes of
1758         Has_Stream_Attribute_Definition.
1759         (Missing_Read_Write_Attributes): When checking component types in a
1760         record, unconditionally call Missing_Read_Write_Attributes recursively
1761         (remove guard checking for Is_Record_Type / Is_Access_Type).
1762
1763 2006-10-31  Robert Dewar  <dewar@adacore.com>
1764
1765         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
1766         useless assignments here and conditionalize it on absence of exception
1767         handlers.
1768         (Analyze_Exception_Handlers): Small code reorganization of error
1769         detection code, for new handling of formal packages.
1770
1771 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1772             Hristian Kirtchev  <kirtchev@adacore.com>
1773         
1774         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
1775         that has been constant-folded, preserve information of original tree,
1776         for ASIS uses.
1777         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
1778         generated private extension declaration if the formal derived type is
1779         synchronized. Carry synchronized present over to the generated private
1780         extension.
1781         (Validate_Derived_Type_Instance): Ensure that the actual of a
1782         synchronized formal derived type is a synchronized tagged type.
1783         (Instantiate_Formal_Package): When creating the instantiation used to
1784         validate the actual package of a formal declared without a box, check
1785         whether the formal itself depends on a prior actual.
1786         (Instantiate_Formal_Subprogram): Create new entities for the defining
1787         identifiers of the formals in the renaming declaration, for ASIS use.
1788         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
1789         a renaming declaration or a subtype declaration for an actual in an
1790         instance, capture location information of declaration in generic, for
1791         ASIS use.
1792         (Instantiate_Formal_Package): Add comments on needed additional tests.
1793         AI-317 (partial parametrization) is fully implemented.
1794         (Validate_Private_Type_Instance): Add check for actual which
1795         must have preelaborable initialization
1796         Use new // insertion for some continuation messages
1797         (Analyze_Formal_Object_Declaration): Change usage of Expression to
1798         Default_Expression. Add type retrieval when the declaration has an
1799         access definition. Update premature usage of incomplete type check.
1800         (Check_Access_Definition): New subsidiary routine. Check whether the
1801         current compilation version is Ada 05 and the supplied node has an
1802         access definition.
1803         (Instantiate object): Alphabetize local variables. Handle the creation
1804         of new renaming declarations with respect to the kind of definition
1805         used - either an access definition or a subtype mark. Guard against
1806         unnecessary error message in the context of anonymous access types after
1807         they have been resolved. Add check for required null exclusion in a
1808         formal object declaration.
1809         (Switch_View): A private subtype of a non-private type needs to be
1810         switched (the base type can have been switched without its private
1811         dependents because of the last branch of Check_Private_View.
1812         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
1813         value from BT.
1814         (Instantiate_Type): Emit an error message whenever a class-wide type of
1815         a tagged incomplete type is used as a generic actual.
1816         (Find_Actual_Type): Extend routine to handle a component type in a child
1817         unit that is imported from a formal package in a parent.
1818         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
1819         agree on constrainedness, rather than checking against ultimate ancestor
1820         (Instantiate_Subprogram_Body): Create a cross-reference link to the
1821         generic body, for navigation purposes.
1822
1823 2006-10-31  Robert Dewar  <dewar@adacore.com>
1824             Thomas Quinot  <quinot@adacore.com>
1825
1826         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
1827         type.
1828         (New_Stream_Subprogram): When processing an attribute definition clause
1829         for a stream-oriented subprogram, record an entity node occurring at
1830         the point of clause to use for checking the visibility of the clause,
1831         as defined by 8.3(23) as amended by AI-195.
1832         (New_Stream_Subprogram): New procedure, factoring behaviour from both
1833          New_Stream_Function and New_Stream_Procedure.
1834         (New_Stream_Function, New_Stream_Procedure): Removed.
1835         (Analyze_Attribute_Definition_Clause, case Address): Check new
1836         Alignment_Check check
1837
1838 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1839             Javier Miranda  <miranda@adacore.com>
1840             Robert Dewar  <dewar@adacore.com>
1841
1842         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
1843         generate the same errors compiling under -gnatc.
1844         (Try_Object_Operation): If no candidate interpretation succeeds, but
1845         there is at least one primitive operation with the right name, report
1846         error in call rather than on a malformed selected component.
1847         (Analyze_Selected_Component): If the prefix is an incomplete type from
1848         a limited view, and the full view is available, use the full view to
1849         determine whether this is a prefixed call to a primitive operation.
1850         (Operator_Check): Verify that a candidate interpretation is a binary
1851         operation before checking the type of its second formal.
1852         (Analyze_Call): Add additional warnings for function call contexts not
1853         yet supported.
1854         (Analyze_Allocator): Move the check for "initialization not allowed for
1855         limited types" after analyzing the expression. This is necessary,
1856         because OK_For_Limited_Init looks at the structure of the expression.
1857         Before analysis, we don't necessarily know what sort of expression it
1858         is. For example, we don't know whether F(X) is a function call or an
1859         indexed component; the former is legal in Ada 2005; the latter is not.
1860         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
1861         were missing. We also didn't handle qualified expressions. Now also
1862         allow function calls. Use new common routine OK_For_Limited_Init.
1863         (Analyze_Type_Conversion): Do not perform some legality checks in an
1864         instance, because the error message will be redundant or spurious.
1865         (Analyze_Overloaded_Selected_Component): Do not do style check when
1866         setting an entity, since we do not know it is the right entity yet.
1867         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
1868         (Analyze_Overloaded_Selected_Component): Same change
1869         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
1870         since regular incomplete subtypes are transformed into corresponding
1871         subtypes of their full views.
1872         (Complete_Object_Operation): Treat name of transformed subprogram call
1873         as coming from source, for browsing purposes.
1874         (Try_Primitive_Operation): If formal is an access parameter, compare
1875         with base type of object to determine whether it is a primitive
1876         operation.
1877         (Operator_Check): If no interpretation of the operator matches, check
1878         whether a use clause on any candidate might make the operation legal.
1879         (Try_Class_Wide_Operation): Check whether the first parameter is an
1880         access type whose designated type is class-wide.
1881
1882 2006-10-31  Robert Dewar  <dewar@adacore.com>
1883             Ed Schonberg  <schonberg@adacore.com>
1884             Gary Dismukes  <dismukes@adacore.com>
1885
1886         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
1887         warn on infinite loops.
1888         Add \\ to some continuation messages
1889         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
1890         (Process_Bounds): If the bounds are integer literals that result from
1891         constant-folding, and they carry a user-defined type, preserve that type
1892         rather than treating this as an integer range.
1893         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
1894         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
1895         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
1896         left hand side of assignment.
1897         (Analyze_Assignment): Add suport to manage assigments to the attribute
1898         priority of a protected object.
1899         (Check_Possible_Current_Value_Condition): Allow fully qualified names
1900         not just identifiers.
1901         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
1902         or AND THEN for possible tracking.
1903         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
1904         case of while loops so we can track values in the loop body.
1905
1906 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1907             Hristian Kirtchev  <kirtchev@adacore.com>
1908             Bob Duff  <duff@adacore.com>
1909         
1910         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
1911         procedure cannot be a protected operation (it is a basic_declaration,
1912         not a subprogram_declaration).
1913         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
1914         Subp. Add logic for entry processing.
1915         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
1916         Determine whether an entry or subprogram of a protected or task type
1917         override an inherited primitive of an implemented interface.
1918         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
1919         Update the actual used in calls to Check_Overriding_Indicator.
1920         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
1921         generate the proper reference to the parent unit, for cross-reference.
1922         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
1923         Is_Formal.
1924         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1925         (Add_Extra_Formal): Revise procedure to allow passing in associated
1926         entity, scope, and name suffix, and handle setting of the new
1927         Extra_Formals field.
1928         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
1929         pass new parameters. Add support for adding the new extra access formal
1930         for functions whose calls are treated as build-in-place.
1931         (Analyze_A_Return_Statement): Correct casing in error message.
1932         Move Pop_Scope to after Analyze_Function_Return, because an extended
1933         return statement really is a full-fledged scope. Otherwise, visibility
1934         doesn't work right. Correct use of "\" for continuation messages.
1935         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
1936         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
1937         the node doesn't get properly marked as analyzed.
1938         (Analyze_Subprogram_Body): If subprogram is a function that returns
1939         an anonymous access type that denotes a task, build a Master Entity
1940         for it.
1941         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
1942         proper usage of null exclusion in a result definition.
1943         (Process_Formals): Code cleanup and new error message.
1944         (Process_Formals): Detect incorrect application of null exclusion to
1945         non-access types.
1946         (Conforming_Types): Handle conformance between [sub]types and itypes
1947          generated for entities that have null exclusions applied to them.
1948         (Maybe_Primitive_Operation): Add an additional type retrieval when the
1949          base type is an access subtype. This case arrises with null exclusions.
1950         (New_Overloaded_Entity): Do not remove the overriden entity from the
1951         homonym chain if it corresponds with an abstract interface primitive.
1952         (Process_Formals): Replace membership test agains Incomplete_Kind with a
1953         call to the synthesized predicate Is_Incomplete_Type.
1954         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
1955         primitives.
1956         (Analyze_Subprogram_Declaration): Check that abstract interface
1957         primitives are abstract or null.
1958         (Analyze_Subprogram_Specification): Remove previous check for abstract
1959         interfaces because it was not complete.
1960         (Has_Interface_Formals): Removed.
1961
1962 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1963             Javier Miranda  <miranda@adacore.com>
1964
1965         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
1966         of Analyze_Package_Body, to create Itype references for anonymous
1967         access types created in the package declaration, whose designated types
1968         may have only a limited view.
1969         (Analyze_Package_Specification): For the private part of a nested
1970         package, install private_with_clauses of enclosing compilation unit if
1971         we are in its visible part.
1972         (Declare_Inherited_Private_Subprograms): Complete barrier
1973         to ensure that the primitive operation has an alias to some parent
1974         primitive. This is now required because, after the changes done for the
1975         implementation of abstract interfaces, the contents of the list of
1976         primitives has entities whose alias attribute references entities of
1977         such list of primitives.
1978         (Analyze_Package_Specification): Simplify code that handles parent units
1979         of instances and formal packages.
1980         (Uninstall_Declarations): Check the convention consistency among
1981         primitive overriding operations of a tagged record type.
1982
1983 2006-10-31  Robert Dewar  <dewar@adacore.com>
1984             Hristian Kirtchev  <kirtchev@adacore.com>
1985             Javier Miranda  <miranda@adacore.com>
1986             Ed Schonberg  <schonberg@adacore.com>
1987         
1988         * sem_ch8.adb: Minor error msg rewording
1989         (Undefined): When checking for misspellings, invert arguments (to get
1990         expected and found set right)
1991         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
1992         (Analyze_Generic_Renaming): Same fix
1993         (Use_One_Package): Do not take into account the internal entities of
1994         abstract interfaces during the analysis of entities that are marked
1995         as potentially use-visible.
1996         (Find_Type): Handle the case of an attribute reference for
1997         implementation defined attribute Stub_Type (simply let the analysis of
1998         the attribute reference rewrite it).
1999         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
2000         type that appears in a Use_Type clause.
2001         (Analyze_Object_Renaming): Add support for renaming of the Priority
2002         attribute.
2003         (Find_Type): In Ada 2005, a task type can be used within its own body,
2004         when it appears in an access definition.
2005         (Analyze_Object_Renaming): Remove warning on null_exclusion.
2006         (Analyze_Object_Renaming): Introduce checks for required null exclusion
2007          in a formal object declaration or in a subtype declaration.
2008         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
2009         (Check_Null_Exclusion): New local routine to
2010         Analyze_Subprogram_Renaming. Check whether the formals and return
2011         profile of a renamed subprogram have required null exclusions when
2012         their counterparts of the renaming already impose them.
2013         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
2014         Determine whether an entity is inside a generic scope.
2015         (In_Open_Scope): First pass of documentation update.
2016         (Find_Expanded_Name): Add support for shadow entities associated with
2017         limited withed packages. This is required to handle nested packages.
2018         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
2019         that makes a renaming of a limited withed package illegal.
2020
2021 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2022             Ed Schonberg  <schonberg@adacore.com>
2023
2024         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
2025         Check_Overriding_Indicator.
2026         (Analyze_Task_Definition): Ditto.
2027         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
2028         (Check_Overriding_Indicator): To find overridden interface operation,
2029         examine only homonyms that have an explicit subprogram declaration, not
2030         inherited operations created by an unrelated type derivation.
2031         (Check_Overriding_Indicator): When checking for the presence of "null"
2032         in a procedure, ensure that the queried node is a procedure
2033         specification.
2034         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
2035         type when the formal is an access to variable.
2036         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
2037         (Analyze_Task_Type): Same addition
2038         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
2039         provide navigation capabilities for entries.
2040
2041 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2042             Ed Schonberg  <schonberg@adacore.com>
2043             Javier Miranda  <miranda@adacore.com>
2044             Gary Dismukes  <dismukes@adacore.com>
2045
2046         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
2047         inherited from an interface ancestor by another interface in the
2048         context of an instance as 'late'.
2049         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
2050         of a call to a function that dispatches on access result.
2051         (Check_Dispatching_Operation): In case of late overriding of a primitive
2052         that covers abstract interface subprograms we register it in all the
2053         secondary dispatch tables associated with abstract interfaces.
2054         (Check_Dispatching_Call): Add check that a dispatching call is not made
2055         to a function with a controlling result of a limited type. This is a
2056         current implementation restriction.
2057         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
2058         (Check_Dispatching_Operation): Do no emit a warning if the controlling
2059         argument is an interface type that is a generic formal.
2060         (Is_Interface_Subprogram): Removed.
2061         (Check_Dispatching_Operation): If the subprogram is not a dispatching
2062         operation, check the formals to handle the case in which it is
2063         associated with an abstract interface type.
2064
2065 2006-10-31  Robert Dewar  <dewar@adacore.com>
2066             Ed Schonberg  <schonberg@adacore.com>
2067
2068         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
2069         Add new calls to this procedure during traversal
2070         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
2071         another unit if expansion is disabled.
2072
2073 2006-10-31  Robert Dewar  <dewar@adacore.com>
2074
2075         * sem_eval.adb (Compile_Time_Compare): Make use of information from
2076         Current_Value in the conditional case, to evaluate additional
2077         comparisons at compile time.
2078
2079 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2080             Hristian Kirtchev  <kirtchev@adacore.com>
2081             Javier Miranda  <miranda@adacore.com>
2082
2083         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
2084         subprogram type to provide better diagnostics in case of ambiguity.
2085         (Covers): Handle coverage of formal and actual anonymous access types in
2086         the context of generic instantiation.
2087         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
2088         abstract interface types; this is required to handle concurrent types
2089         with discriminants and abstract interface types.
2090         (Covers): Include type coverage of both regular incomplete subtypes and
2091         incomplete subtypes of incomplete type visibles through a limited with
2092         clause.
2093
2094 2006-10-31  Robert Dewar  <dewar@adacore.com>
2095             Hristian Kirtchev  <kirtchev@adacore.com>
2096             Ed Schonberg  <schonberg@adacore.com>
2097         
2098         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
2099         messages for entities in packages which are not used.
2100         (Collect_Synchronized_Interfaces): New procedure.
2101         (Overrides_Synchronized_Primitive): New function.
2102         (Denotes_Discriminant): Extend predicate to apply to task types.
2103         Add missing continuation marks in error msgs
2104         (Unqualify): New function for removing zero or more levels of
2105         qualification from an expression. There are numerous places where this
2106         ought to be used, but we currently only deal properly with zero or one
2107         level.
2108         (In_Instance); The analysis of the actuals in the instantiation of a
2109         child unit is not within an instantiation, even though the parent
2110         instance is on the scope stack.
2111         (Safe_To_Capture_Value): Exclude the case of variables that are
2112         renamings.
2113         (Check_Obsolescent): Removed
2114         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
2115         is an aliased view, even when rewritten as a reference to the target
2116         object in an assignment.
2117         (Get_Subprogram_Entity): New function
2118         (Known_To_Be_Assigned): New function
2119         (Type_Access_Level): Compute properly the access level of a return
2120         subtype that is an anonymous access type.
2121         (Explain_Limited_Type): Correct use of "\" for continuation messages.
2122         (Is_Transfer): The new extended_return_statement causes a transfer of
2123         control.
2124         (Has_Preelaborable_Initialization): New function
2125         (Has_Null_Exclusion): New function. Given a node N, determine whether it
2126         has a null exclusion depending on its Nkind.
2127         Change Is_Lvalue to May_Be_Lvalue
2128         (May_Be_Lvalue): Extensive additional code to deal with subprogram
2129         arguments (IN parameters are not Lvalues, IN OUT parameters are).
2130         (Safe_To_Capture_Value): Extend functionality so it can be used for
2131         the current value condition case.
2132         (Has_Compatible_Alignment): New function
2133         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
2134         objects to handle the Ada 2005 case, where aliasedness no longer implies
2135         that the object is constrained. In particular, for dereferenced names,
2136         the designated object must be assumed to be unconstrained.
2137         (Kill_Current_Values): Properly deal with the case where we encounter
2138         a loop in the scope chain.
2139         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
2140         a value.
2141         (Compile_Time_Constraint_Error): Improve error message in error case
2142
2143         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
2144         associated with entities of abstract interface primitives.
2145         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
2146
2147 2006-10-31  Robert Dewar  <dewar@adacore.com>
2148
2149         * s-osinte-tru64.adb: 
2150         Mark Asm statements Volatile to prevent warnings (seems a
2151         reasonable change anyway)
2152         Fixes new warnings
2153
2154         * s-mastop-irix.adb: Add Volatile to Asm statements
2155         Suppresses warning, and seems appropriate in any case
2156
2157         * s-osinte-vms.adb: Add Volatile to Asm statement
2158
2159         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
2160
2161         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
2162         returned.
2163         Add call to Check_Code_Statement
2164
2165 2006-10-31  Robert Dewar  <dewar@adacore.com>
2166             Ed Schonberg  <schonberg@adacore.com>
2167             Bob Duff  <duff@adacore.com>
2168
2169         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
2170         Synchronized_Present): Add Formal_Derived_Type_Definition and
2171         Private_Extension_Declaration to the list of assertions.
2172         (Is_Entry_Barrier_Function): New flag
2173         (Has_Self_Reference): New flag on aggregates, to indicate that they
2174         contain a reference to the enclosing type, inserted through a default
2175         initialization.
2176         (Next_Rep_Item): Move from Node4 to Node5.
2177         (Entity): Add this field for N_Attribute_Definition_Clause.
2178         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
2179         (N_Return_Object_Declaration): Remove this node kind. We now use
2180         N_Object_Declaration instead.
2181         (Actual_Designated_Subtype): Move to a different place to make room in
2182         N_Extended_Return_Statement.
2183         (Procedure_To_Call): Move to a different place to make room in
2184         N_Extended_Return_Statement.
2185         (Return_Type): Removed this field to make room in return statements
2186         (both kinds).
2187         (Return_Statement_Entity): New field in return statements, in part to
2188         replace Return_Type, and in part to support the fact that return
2189         statements are now pushed on the scope stack during semantic analysis.
2190         (Return_Object_Declarations): New field to support extended return
2191         statements.
2192         (N_Extended_Return_Statement): New node for extended_return_statement
2193         nonterminal.
2194         (N_Return_Object_Declaration): New node for part of
2195         extended_return_statement nonterminal. Needed because all the necessary
2196         fields won't fit in N_Extended_Return_Statement.
2197         Generic_associations now carry the Box_Present flag, to indicate a
2198         default for an actual in a partially parametrized formal package.
2199
2200         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
2201         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
2202         and for the new predefined dispatching policies: EDF_Across_Priorities,
2203         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
2204         Introduce new name Stub_Type for implementation defined attribute.
2205         Add pragma Preelaborable_Initialization
2206         Add entry for Priority attribute.
2207         Add Pragma_Wide_Character_Encoding
2208         (Get_Convention_Name): Given a convention id, this function returns the
2209         corresponding name id from the names table.
2210
2211 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2212             Robert Dewar  <dewar@adacore.com>
2213             Bob Duff  <duff@adacore.com>
2214
2215         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
2216         print null exclusion twice in the case of an access definition,
2217         Implement new -gnatL switch
2218         Remove N_Return_Object_Declaration. We now use
2219         N_Object_Declaration instead. Implement the case for
2220         N_Extended_Return_Statement. Alphabetize the cases.
2221         Add cases for new nodes N_Extended_Return_Statement and
2222         N_Return_Object_Declaration. The code is not yet written.
2223         Update the output for N_Formal_Object_Declaration
2224         and N_Object_Renaming_Declaration.
2225         (Write_Itype): Account for the case of a modular integer subtype whose
2226         base type is private.
2227
2228 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2229
2230         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
2231         Remove elaboration code, now done in the binder.
2232
2233         * s-rident.ads: Make this unit Preelaborate.
2234         (No_Restrictions): New constant used to clean up code and follow
2235         preelaborate constraints.
2236
2237         * s-stalib.adb: 
2238         Add System.Restrictions dependence, referenced directly from the
2239         binder generated file.
2240
2241 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
2242
2243         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
2244         True when AAMP extended floating-point is in use (48-bit). Change type
2245         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
2246         the two byte array types on AFloat. Change type of IV_Ilf overlay
2247         variable from Byte8 to ByteLF. Add appropriate initializations of
2248         floating-point overlays for AAMP cases.
2249
2250 2006-10-31  Javier Miranda  <miranda@adacore.com>
2251
2252         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
2253         (Get_Ceiling): New subprogram that returns
2254         the ceiling priority of the protected object.
2255         (Set_Ceiling): New subprogram that sets the new ceiling priority of
2256         the protected object.
2257
2258         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
2259
2260         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
2261
2262 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2263
2264         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
2265         requeuing to the same protected object to give higher priority tasks
2266         the opportunity to execute.
2267
2268 2006-10-31  Robert Dewar  <dewar@adacore.com>
2269
2270         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
2271         add more precise check for the character sequence that follows '[' to
2272         avoid possible confusion in case if '[' is the last character of a
2273         string literals.
2274         (Scan_Wide): Always allow brackets encoding
2275
2276 2006-10-31  Olivier Hainque  <hainque@adacore.com>
2277
2278         * s-stchop.ads: make this unit preelaborate. This is desirable in
2279         general and made mandatory by the use of this unit by s-taprop which
2280         is itself preelaborate.
2281
2282         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
2283         Td_Events component.
2284
2285 2006-10-31  Vincent Celier  <celier@adacore.com>
2286
2287         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2288         in file names.
2289
2290 2006-10-31  Vincent Celier  <celier@adacore.com>
2291
2292         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2293
2294 2006-10-31  Vincent Celier  <celier@adacore.com>
2295
2296         * makegpr.adb (Check_Compilation_Needed): Take into account path names
2297         with spaces.
2298         (Check_Compilation_Needed): When checking a C or C++ source, do not
2299         resolve symbolic links.
2300         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
2301         When not in verbose mode and Ellipse is True, display "..." for the
2302         first argument with Display set to False.
2303         (Build_Global_Archive): Always set Display True for the first object
2304         file. Call Display_Command with Ellipse set to True.
2305
2306 2006-10-31  Matt Heaney  <heaney@adacore.com>
2307
2308         * a-crbtgo.ads: Commented each subprogram
2309
2310         * a-crbtgo.adb: Added reference to book from which algorithms were
2311         adapted.
2312
2313         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
2314         indicate which child.
2315         (Generic_Conditional_Insert): changed parameter name from "Success" to
2316         "Inserted".
2317         (Generic_Unconditional_Insert_With_Hint): improved algorithm
2318
2319         * a-coorse.adb (Replace_Element): changed parameter name in call to
2320         conditional insert operation.
2321
2322         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
2323
2324         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
2325         Generic_Iteration
2326
2327         * a-ciorse.adb (Replace_Element): changed parameter name in call to
2328         conditional insert operation.
2329
2330         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
2331         Generic_Iteration.
2332
2333         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
2334         instead of mode inout.
2335
2336         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
2337         draft
2338         (Generic_Read): preserve existing buckets array if possible
2339         (Generic_Write): don't send buckets array length anymore
2340
2341         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
2342         instead of mode inout.
2343
2344         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
2345         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2346
2347         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
2348         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2349         (Replace_Element): local operation is now an instantiation
2350
2351         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
2352         check current length.
2353         (Generic_Replace_Element): new operation
2354
2355 2006-10-31  Doug Rupp  <rupp@adacore.com>
2356
2357         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2358         Call TBK$SYMBOLIZE without omitting parameters.
2359
2360 2006-10-31  Vincent Celier  <celier@adacore.com>
2361
2362         * symbols-processing-vms-ia64.adb,
2363         symbols-processing-vms-alpha.adb (Process): Do not include symbols
2364         that come from generic instantiations in bodies.
2365
2366 2006-10-31  Pat Rogers  <rogers@adacore.com>
2367
2368         * a-rttiev.ads, a-rttiev.adb: 
2369         This is a significant redesign primarily for the sake of automatic
2370         timer task termination but also to fix a design flaw.
2371         Therefore we are now using an RTS lock, instead of a protected
2372         object, to provide mutual exclusion to the queue of pending events
2373         and the type Timing_Event is no longer a protected type.
2374
2375 2006-10-31  Robert Dewar  <dewar@adacore.com>
2376             Cyrille Comar  <comar@adacore.com>
2377             Ben Brosgol  <brosgol@adacore.com>
2378
2379         * debug.adb:  Update flags documentation
2380
2381         * gnat_ugn.texi: Add documentation for new -gnatwq switch
2382         Clean up documentation for several other warning switches
2383         Clarify how task stack size can be specified with various
2384         versions of Windows.
2385         Add note that -gnatVo includes ranges including loops
2386         Add documentation for -gnatL switch
2387         Add note on elaboration warning for initializing variables
2388         Add documentation for new -gnatwt warning switch
2389         Document new form of pragma Warnings (On|Off, string)
2390         Add comment on use of pragma Warnings to control warnings
2391         Add documentation for -gnatjnn switch
2392         Modify section on interfacing with C for VMS 64-bit.
2393         Add doc for -gnatVe/E
2394         Add documentation of new warning flags -gnatww/-gnatwW
2395         Add warnings about address clause overlays to list of warnings
2396         (Exception Handling Control): Document that the option --RTS must be
2397         used consistently for gcc and gnatbind.
2398         Clarify that inlining is not always possible
2399         Update documentation on pragma Unchecked_Union.
2400
2401         * gnat_rm.texi: 
2402         Add documentation for new extended version of pragma Obsolescent
2403         Add documentation for implementation defined attribute 'Stub_Type.
2404         Add note on use of Volatile in asm statements
2405         Add documentation on use of pragma Unreferenced in context clause
2406         Document new form of pragma Warnings (On|Off, pattern)
2407         Document pragma Wide_Character_Encoding
2408         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
2409         enforced if code generation is active.
2410         Add section on pragma Suppress to document GNAT specific check
2411         Alignment_Check
2412         Clarify difference between No_Dispatching_Calls & No_Dispatch.
2413         Add documentation for pragma Restrictions (No_Elaboration_Code)
2414
2415         * gnat-style.texi: 
2416         Add comments on layout of subprogram local variables in the
2417         presence of nested subprograms.
2418
2419         * ug_words: Resync.
2420
2421         * elists.ads: Minor reformatting
2422         Node returns Node_Or_Entity_Id (doc change only)
2423
2424         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
2425
2426         * g-arrspl.ads (Create): Update comments.
2427
2428         * sem.ads: Add details on the handling of the scope stack.
2429
2430         * usage.adb: Update documentation.
2431
2432         * validsw.ads, validsw.adb: 
2433         Add definition of Validity_Check_Components and implement -gnatVe/E
2434
2435         * vms_data.ads: Add missing VMS qualifiers.
2436
2437         * s-addope.ads: Add documentation on overflow and divide by zero
2438
2439 2006-10-31  Robert Dewar  <dewar@adacore.com>
2440             Thomas Quinot  <quinot@adacore.com>
2441             Arnaud Charlet  <charlet@adacore.com>
2442
2443         * fmap.adb: Put routines in alpha order
2444
2445         * g-boumai.ads: Remove redundant 'in' keywords
2446
2447         * g-cgi.adb: Minor reformatting
2448
2449         * g-cgi.ads: Remove redundant 'in' keywords
2450
2451         * get_targ.adb: Put routines in alpha order
2452
2453         * prj-attr.ads: Minor reformatting
2454
2455         * s-atacco.ads: Minor reformatting
2456
2457         * scn.adb: Put routines in alpha order
2458
2459         * sinput-l.adb: Minor comment fix
2460
2461         * sinput-p.adb: Minor comment fix
2462
2463         * s-maccod.ads: Minor reformatting
2464
2465         * s-memory.adb: Minor reformatting
2466
2467         * s-htable.adb: Fix typo in comment.
2468
2469         * s-secsta.adb: Minor comment update.
2470
2471         * s-soflin.adb: Minor reformatting
2472
2473         * s-stoele.ads: 
2474         Add comment about odd qualification in Storage_Offset declaration
2475
2476         * s-strxdr.adb: 
2477         Remove unnecessary 'in' keywords for formal parameters.
2478
2479         * treeprs.adt: Minor reformatting
2480
2481         * urealp.adb: Put routines in alpha order
2482
2483         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
2484         taking string.
2485
2486         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2487
2488         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
2489
2490         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
2491         workaround as on other platforms.
2492
2493         * g-eacodu-vms.adb: Remove redundant 'in' keywords
2494         * g-expect-vms.adb: Remove redundant 'in' keywords
2495
2496         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
2497         clear error message if the list-of-files file cannot be opened.
2498
2499         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
2500         equality operator is always visible.
2501
2502         * lang.opt: Woverlength-strings: New option.
2503
2504         * nmake.adt: 
2505         Update copyright, since nmake.ads and nmake.adb have changed.
2506
2507         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
2508         (Binder_Output_Time_Stamps_Set): removed.
2509         (Old_Binder_Output_Time_Stamp): idem.
2510         (New_Binder_Output_Time_Stamp): idem.
2511         (Recording_Time_From_Last_Bind): idem.
2512         (Recording_Time_From_Last_Bind): Make constant.
2513
2514         * output.ads, output.adb (Write_Str): Allow LF characters
2515         (Write_Spaces): New procedure
2516
2517         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
2518
2519         * inline.adb: Minor reformatting
2520
2521         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2522
2523         * s-mastop-vms.adb: Remove redundant 'in' keywords
2524
2525         * s-osprim-vms.adb: Remove redundant 'in' keywords
2526
2527         * s-trafor-default.adb: Remove redundant 'in' keywords
2528
2529         * 9drpc.adb: Remove redundant 'in' keywords
2530
2531         * s-osinte-mingw.ads: Minor reformatting
2532
2533         * s-inmaop-posix.adb: Minor reformatting
2534
2535         * a-direio.ads: Remove quotes from Compile_Time_Warning message
2536
2537         * a-exexda.adb: Minor code reorganization
2538
2539         * a-filico.adb: Minor reformatting
2540
2541         * a-finali.adb: Minor reformatting
2542
2543         * a-nudira.ads: Remove quote from Compile_Time_Warning message
2544
2545         * a-numeri.ads: Minor reformatting
2546
2547         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
2548
2549         * exp_pakd.ads: Fix obsolete comment
2550
2551         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
2552         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
2553         Probably not a bug, but certainly neater and more efficient.
2554
2555         * a-tienio.adb: Minor reformatting
2556
2557         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
2558         Avoid assuming low bound of string is 1.
2559
2560         * gnatbind.adb: Change Bindusg to package and rename procedure as
2561         Display, which now ensures that it only outputs usage information once.
2562         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
2563
2564         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
2565         Table'First.
2566
2567         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
2568         warning.
2569         (Match): Add pragma Assert to ensure that Matches'First is zero
2570
2571         * g-regpat.ads (Match): Document that Matches lower bound must be zero
2572
2573         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
2574         documented preconditions (also kills warnings about bad indexes).
2575
2576         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
2577         is 1.
2578         (Build_Import_Library): Ditto;
2579
2580         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
2581
2582         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
2583
2584         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
2585         lower bound of choice table is 1.
2586
2587         * sem_case.ads (Analyze_Choices): Document that lower bound of
2588         Choice_Table is 1.
2589
2590         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
2591         string is 1.
2592
2593         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
2594         and add appropriate Assert pragma to suppress warnings.
2595
2596         * atree.h, atree.ads, atree.adb
2597         Change Elist24 to Elist25
2598         Add definitions of Field28 and Node28
2599         (Traverse_Field): Use new syntactic parent table in sinfo.
2600
2601         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2602
2603         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2604
2605         * exp_tss.adb: Put routines in alpha order
2606
2607         * fe.h: Remove redundant declarations.
2608
2609 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
2610         * utils.c (builtin_function): Rename to gnat_builtin_function.
2611         Move common code to add_builtin_function.
2612         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2613         gnat_builtin_function.
2614         * gigi.h (builtin_function): Rename to gnat_builtin_function.
2615         Change the signature.
2616
2617 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2618
2619         * Makefile.in: Add TEXI2PDF definition.
2620         * Make-lang.in: Add "ada.pdf" target.
2621
2622 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2623
2624         * decl.c, utils.c: Fix comment typos.
2625         * utils.c: Fix a typo.
2626
2627 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2628
2629         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
2630         on "pure" Ada subprograms if SJLJ exceptions are used.
2631         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
2632         on the declaration node of JMPBUF_SAVE.
2633         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
2634         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
2635         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
2636
2637 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
2638
2639         PR ada/28716
2640         g-socket.adb (Bind_Socket): Call Set_Address.
2641
2642 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2643
2644         PR ada/15802
2645         * decl.c (same_discriminant_p): New static function.
2646         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
2647         subtype and we have discriminants, fix up the COMPONENT_REFs
2648         for the discriminants to make them reference the corresponding
2649         fields of the parent subtype after it has been built.
2650
2651 2006-09-15  Roger Sayle  <roger@eyesopen.com>
2652
2653         PR ada/18817
2654         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
2655         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
2656
2657 2006-09-13  Olivier Hainque  <hainque@adacore.com>
2658
2659         PR ada/29025
2660         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
2661         of a SAVE_EXPR, just make the operand addressable/not-readonly and
2662         let the common gimplifier code make and propagate a temporary copy.
2663         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
2664         out/in-out actuals and defer setting the addressable/readonly bits
2665         to the gimplifier.
2666
2667 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2668
2669         PR ada/28591
2670         * decl.c (components_to_record): Defer emitting debug info for the
2671         record type associated with the variant until after we are sure to
2672         actually use it.
2673
2674 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2675
2676         PR ada/21952
2677         * gigi.h (gnat_internal_attribute_table): Declare.
2678         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
2679         * utils.c (gnat_internal_attribute_table): New global variable.
2680         (builtin_function): Always call decl_attributes on the builtin.
2681         (handle_const_attribute): New static function.
2682         (handle_nothrow_attribute): Likewise.
2683
2684 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2685
2686         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2687
2688 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2689
2690         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
2691         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
2692
2693 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
2694             Eric Botcazou  <ebotcazou@adacore.com>
2695
2696         PR ada/18692
2697         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2698         check-gnat into check-acats.
2699
2700 2006-06-17  Karl Berry  <karl@gnu.org>
2701
2702         * gnat-style.texi (@dircategory): Use "Software development"
2703         instead of "Programming", following the Free Software Directory.
2704
2705 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2706
2707         PR ada/27944
2708         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2709
2710 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
2711
2712         PR ada/27769
2713         mlib-utl.adb: Use Program_Name.
2714         
2715 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2716
2717         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
2718         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
2719         trans.c, utils.c: Fix comment typos.  Follow spelling
2720         conventions.
2721         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
2722         conventions.
2723
2724 2006-05-19  Nicolas Setton  <setton@adacore.com>
2725
2726         * misc.c (gnat_dwarf_name): New function.
2727         (LANG_HOOKS_DWARF_NAME): Define to it.
2728
2729 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2730
2731         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
2732         (ada/misc.o): Likewise.
2733         (ada/utils.o): Likewise.
2734
2735 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
2736
2737         * Makefile.in: Add Ada support for GNU/kFreeBSD.
2738         * s-osinte-kfreebsd-gnu.ads: New file.
2739
2740 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2741
2742         * Make-lang.in: Rename docdir to gcc_docdir.
2743
2744 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2745
2746         * gigi.h (get_ada_base_type): Delete.
2747         * utils2.c (get_ada_base_type): Likewise.
2748         * trans.c (convert_with_check): Operate in the real base type.
2749
2750 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2751
2752         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2753
2754 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2755
2756         * utils.c (create_var_decl): Use have_global_bss_p when deciding
2757         whether to make the decl common.
2758
2759 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2760
2761         * Make-lang.in (Ada): Remove
2762         (.PHONY): Remove Ada
2763
2764 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2765
2766         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
2767         aggregate, check the interpretations of the other operand to find one
2768         that may be a boolean array.
2769
2770         (Analyze_Selected_Component): Fix flow-of-control typo in case where
2771         the prefix is a private extension.
2772
2773 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
2774
2775         PR ada/26315
2776
2777         * utils2.c (find_common_type): If both input types are BLKmode and
2778         have the same constant size, keep using the first one.
2779
2780         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
2781
2782         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
2783
2784         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
2785
2786 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
2787
2788         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
2789         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2790         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
2791         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
2792         Abort_Defer/Undefer pairs to avoid the possibility of a task being
2793         aborted while owning a lock.
2794
2795 2006-02-17  Javier Miranda  <miranda@adacore.com>
2796             Robert Dewar  <dewar@adacore.com>
2797
2798         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
2799         through an access to class-wide interface we force the displacement of
2800         the pointer to the allocated object to reference the corresponding
2801         secondary dispatch table.
2802         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
2803         if Long_Shifts are supported on the target, even if 64 bit divides
2804         are not supported (configurable run time mode).
2805         (Expand_N_Type_Conversion): Do validity check if validity checks on
2806         operands are enabled.
2807         (Expand_N_Qualified_Expression): Do validity check if validity checks
2808         on operands are enabled.
2809
2810 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2811
2812         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
2813         must be materialized when the renamed expression is an explicit
2814         dereference.
2815
2816 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2817
2818         * freeze.adb (Statically_Discriminated_Components): Return false if
2819         the bounds of the type of the discriminant are not static expressions.
2820
2821         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
2822         the bounds of the discriminant type are not static.
2823
2824 2006-02-17  Robert Dewar  <dewar@adacore.com>
2825
2826         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
2827         then we close To if it is valid.
2828
2829 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2830
2831         * init.c (facility_resignal_table): new array
2832         (__gnat_default_resignal_p): enhance default predicate to resignal if
2833         VMS condition has one of the predefined facility codes.
2834
2835 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2836
2837         * Makefile.in: Use VMS64 specialized versions of several units in
2838         Interfaces.C hierarchy to be compatible with HP C default size choices.
2839         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
2840
2841 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2842
2843         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
2844         instantiation, the corresponding entity is the related_instance of the
2845         wrapper package created for the instance.
2846
2847 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2848
2849         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
2850         the current instance is nested within another instance in a child unit.
2851
2852 2006-02-17  Javier Miranda  <miranda@adacore.com>
2853             Ed Schonberg  <schonberg@adacore.com>
2854
2855         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
2856         type we cannot inherit the primitive operations; we inherit the
2857         Corresponding_Record_Type (which has the list of primitive operations).
2858         (Check_Anonymous_Access_Types): When creating anonymous access types for
2859         access components, use Rewrite in order to preserve the tree structure,
2860         for ASIS use.
2861         (Analyze_Object_Declaration): For limited types with access
2862         discriminants with defaults initialized by an aggregate, obtain
2863         subtype from aggregate as for other mutable types.
2864         (Derived_Type_Declaration): If the derived type is a limited interface,
2865         set the corresponding flag (Is_Limited_Record is not sufficient).
2866
2867 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2868
2869         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
2870         to inline a function that returns an unconstrained type, the return
2871         expression must be the first variable declared in the body of the
2872         function.
2873
2874 2006-02-17  Javier Miranda  <miranda@adacore.com>
2875
2876         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
2877         abstract interface type, the static analysis is not enough to know if
2878         the interface is implemented or not by the source tagged type. Hence
2879         we must pass the work to the expander to generate the required code to
2880         evaluate the conversion at run-time.
2881         (Resolve_Equality_Op): Do not apply previous
2882         transformation if expansion is disasbled, to prevent anomalies when
2883         locating global references in a generic unit.
2884
2885 2006-02-17  Vincent Celier  <celier@adacore.com>
2886
2887         * snames.ads, snames.adb: New standard names for new project attributes:
2888         archive_builder, archive_indexer, compiler_pic_option,
2889         config_body_file_name, config_body_file_name_pattern,
2890         config_file_switches, config_file_unique, config_spec_file_name,
2891         config_spec_file_name_pattern, default_builder_switches,
2892         default_global_compiler_switches, default_language,
2893         dependency_file_kind, global_compiler_switches, include_path,
2894         include_path_file, language_kind, linker_executable_option,
2895         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
2896         roots, runtime_project.
2897
2898 2006-02-17  Matthew Heaney  <heaney@adacore.com>
2899
2900         * a-convec.ads, a-convec.adb: 
2901         (operator "&"): handle potential overflow for large index types
2902         (Insert): removed Contraint_Error when using large index types
2903         (Insert_Space): removed Constraint_Error for large index types
2904         (Length): moved constraint check from Length to Insert
2905
2906         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
2907         as not null access.
2908         Explicit raise statements now include an exception message.
2909         (operator "&"): handle potential overflow for large index types
2910         (Insert): removed Contraint_Error when using large index types
2911         (Insert_Space): removed Constraint_Error for large index types
2912         (Length): moved constraint check from Length to Insert
2913
2914 2006-02-17  Robert Dewar  <dewar@adacore.com>
2915
2916         * s-wchcnv.adb: Document handling of [ on output (we do not change
2917         this to ["5B"] and the new comments say why not.
2918
2919         * gnat_ugn.texi: 
2920         Add note for -gnatVo that this now includes the cases of type
2921         conversions and qualified expressions.
2922         Add comments on handling of brackets encoding for Text_IO
2923
2924 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
2925             Thomas Quinot  <quinot@adacore.com>
2926             Robert Dewar  <dewar@adacore.com>
2927             Javier Miranda  <miranda@adacore.com>
2928
2929         * expander.adb: Fix typo in comment
2930
2931         * exp_pakd.adb: Fix typo
2932         Minor comment reformatting.
2933
2934         * g-dyntab.adb: Minor reformatting
2935
2936         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
2937         aliased subprograms to look for the abstract interface subprogram.
2938
2939 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2940
2941         * env.c (__gnat_setenv): Use size_t.
2942         (__gnat_unsetenv): Likewise.
2943         (__gnat_clearenv): Likewise.
2944
2945 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
2946
2947         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2948
2949 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
2950
2951         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
2952         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
2953         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
2954         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
2955         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
2956         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
2957         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
2958         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
2959         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
2960         no longer used.
2961
2962 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
2963
2964         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
2965         protection against race conditions is not needed.
2966         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
2967         fallback handler.
2968         (Set_Specific_Handler): Add mutual exclusive access to the specific
2969         handler.
2970         (Specific_Handler): Add mutual exclusive access for retrieving the
2971         specific handler.
2972
2973         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
2974         back handler.
2975
2976         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
2977         Fall_Back_Handler and Specific_Handler.
2978
2979         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
2980         termination handlers.
2981         Set two different owerflow depending on the maximal stack size.
2982
2983         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
2984         protection against race conditions is not needed when executing the
2985         task termination handler.
2986
2987 2006-02-13  Robert Dewar  <dewar@adacore.com>
2988
2989         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
2990         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
2991         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
2992         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
2993         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
2994         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
2995         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
2996         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
2997         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
2998         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
2999         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
3000         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
3001         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
3002         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
3003         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
3004         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
3005         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
3006         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
3007         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
3008         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
3009         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
3010         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
3011         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
3012         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
3013         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
3014         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
3015         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
3016         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
3017         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
3018         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
3019         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
3020         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
3021         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
3022         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
3023         reformatting.
3024
3025 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3026
3027         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
3028         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
3029         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
3030         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
3031         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
3032         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
3033         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
3034         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
3035         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
3036
3037 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3038
3039         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
3040         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
3041         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
3042         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
3043         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
3044         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
3045         replaced by anonymous access type.
3046         (pthread_sigmask): Now take an access sigset_t
3047
3048         * s-osinte-hpux.ads:  Ditto.
3049         (pthread_mutex_t, pthread_cond_t): Update definitions to support
3050         properly 32 and 64 bit ABIs.
3051
3052 2006-02-13  Pascal Obry  <obry@adacore.com>
3053
3054         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
3055         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
3056         s-taprop-linux.adb, s-taprop-solaris.adb,
3057         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
3058         adjustement is already done when calling this routine.
3059
3060 2006-02-13  Pascal Obry  <obry@adacore.com>
3061
3062         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
3063         table to take advantage of the 16 priority levels available on Windows
3064         2000 and XP. On NT4 there are only 7 priority levels, this is properly
3065         supported by this new mapping.
3066
3067 2006-02-13  Nicolas Setton  <setton@adacore.com>
3068
3069         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
3070         (get_encoding): New subprogram. Extracts the encodings from an encoded
3071         Ada name.
3072
3073 2006-02-13  Pascal Obry  <obry@adacore.com>
3074             Nicolas Roche  <roche@adacore.com>
3075             Arnaud Charlet  <charlet@adacore.com>
3076
3077         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
3078         support.
3079         (__gnat_try_lock): Add unicode support by using a specific section on
3080         Windows.
3081         (__gnat_get_current_dir): Idem.
3082         (__gnat_open_read): Idem.
3083         (__gnat_open_rw): Idem.
3084         (__gnat_open_create): Idem.
3085         (__gnat_create_output_file): Idem.
3086         (__gnat_open_append): Idem.
3087         (__gnat_open_new): Idem.
3088         (__gnat_file_time_name): Idem.
3089         (__gnat_set_file_time_name): Idem.
3090         (__gnat_stat): Idem.
3091         (win32_no_block_spawn): Idem.
3092         (__gnat_locate_exec_on_path): Idem.
3093         (__gnat_opendir): New routine.
3094         (__gnat_closedir): Idem.
3095         (__gnat_readdir): Add new parameter length (pointer to int). Update
3096         implementation to use it and add specific Win32 code for Unicode
3097         support.
3098         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
3099         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
3100         (convert_addresses): Do not define this dummy routine on VMS.
3101
3102         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
3103         runtime Unicode support will be activated.
3104         (S2WS): String to Wide-String conversion. This version just copy a
3105         string in non Unicode version.
3106         (WS2S): Wide-String to String conversion. This version just copy a
3107         string in non Unicode version.
3108
3109         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
3110         (Open): Now import __gnat_opendir from adaint.c.
3111         (Read): Change the implementation to support unicode characters. It is
3112         not possible to use strlen() on Windows as this version supports only
3113         standard ASCII characters. So the length of the directory entry is now
3114         returned from the imported __gnat_readdir routine.
3115         Update copyright notice.
3116
3117         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
3118         (opendir): Moved to adaint.c.
3119
3120         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
3121         (Get_Directory): Fix wrong indexing.
3122         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
3123         __gnat_getenv from env.c
3124         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
3125         from env.c
3126
3127         * env.h, env.c: New file.
3128
3129         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
3130         adaint.c by __gnat_getenv from env.c
3131
3132         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
3133         adaint.c by __gnat_getenv from env.c
3134
3135         * Make-lang.in: Add env.o in the list of C object needed by gnat1
3136         and gnatbind.
3137         Update dependencies.
3138
3139 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3140             Olivier Hainque  <hainque@adacore.com>
3141             Eric Botcazou  <ebotcazou@adacore.com>
3142
3143         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
3144         
3145         * gigi.h (value_factor_p): Add prototype and description, now public.
3146
3147         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
3148         promotion for field with rep clause if the associated size was proven
3149         to be in error.
3150         Expand comments describing attempts to use a packable type.
3151         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
3152         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
3153         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
3154         necessary since these are not different types and pointers may
3155         actually designate any subtype in this hierarchy.
3156         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
3157         discriminants but put them into record only if not Unchecked_Union;
3158         pass flag to components_to_record showing Unchecked_Union.
3159         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
3160         components before variants; don't set TYPE_UNCHECKED_UNION_P.
3161         (components_to_record): New argument UNCHECKED_UNION.
3162         Remove special case code for Unchecked_Union and instead use main code
3163         with small changes.
3164
3165         PR ada/26096
3166         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
3167         aligning variable with the expression being built, only its inner
3168         field.
3169
3170         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
3171         emit_sequence_entry_statements.
3172         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
3173         (establish_gnat_vms_condition_handler): Move before
3174         Subprogram_Body_to_gnu.
3175         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
3176         for a subprogram if it has a foreign convention or is exported.
3177         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
3178         substituted for a CONST_DECL.
3179         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
3180         Etype to assoc_to_constructor.
3181         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
3182         discriminants of Unchecked_Union.
3183         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
3184         don't need cluttering preprocessor directives.
3185         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
3186         condition handler as current in the compiled function.
3187         (body_with_handlers_p): New function. Tell whether a given sequence of
3188         statements node is attached to a package or subprogram body and involves
3189         exception handlers possibly nested within inner block statements.
3190         (emit_sequence_entry_statements): New function, to emit special
3191         statements on entry of sequences when necessary. Establish GNAT
3192         condition handler in the proper cases for VMS.
3193         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
3194         emit_sequence_entry_statements.
3195
3196         * utils2.c (find_common_type): If both input types are BLKmode and
3197         have a constant size, use the smaller one.
3198         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
3199         the same.
3200
3201         * utils.c (value_factor_p): Make public, to allow uses from other gigi
3202         units.
3203         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
3204         (convert, case UNION_TYPE): Remove special treatment for unchecked
3205         unions.
3206
3207         PR ada/18659
3208         (update_pointer_to): Update variants of pointer types to
3209         unconstrained arrays by attaching the list of fields of the main
3210         variant.
3211
3212 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3213             Robert Dewar  <dewar@adacore.com>
3214
3215         * a-exexpr.adb, a-exexpr-gcc.adb
3216         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
3217         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
3218         Remove code unused for exception propagation for the compiler itself
3219         from a-except.adb and update to still share separate packages.
3220
3221         * a-except.ads, a-except.adb: Ditto.
3222         Add comments that this version is now used only by the compiler and
3223         other basic tools. The full version that includes the Ada 2005 stuff
3224         is in separate files a-except-2005.ads/adb. The reason is that we do
3225         not want to cause bootstrap problems with compilers not recognizing
3226         Wide_Wide_String.
3227         Add exception reason code PE_Implicit_Return
3228         Add new exception reason code (Null Exception_Id)
3229
3230         * a-except-2005.adb, a-except-2005.ads: New files.
3231
3232         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
3233
3234         * s-wchcon.adb: New file.
3235
3236         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
3237         (traceback.o deps): Likewise.
3238         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
3239         Activate build of GMEM instrumentation library on VMS targets.
3240         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
3241         Use a-except-2005.ads/adb for all run-time library builds unless
3242         specified otherwise.
3243         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
3244         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
3245         Use s-parame.adb on all native platforms.
3246         Use s-parame-vxworks.adb on all vxworks platforms.
3247         Add env.c env.h in LIBGNAT_SRCS
3248         Add env.o in LIBGNAT_OBJS
3249         (GNATMAKE_OBJS): Remove ctrl_c.o object.
3250         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
3251         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
3252         supports VxWorks 6 RTPs.
3253         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
3254         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
3255
3256         * types.h, types.ads (Terminate_Program): New exception
3257         Add comment on modifying multiple versions of a-except.adb when the
3258         table of exception reasons is modified.
3259         Add exception reason code PE_Implicit_Return
3260         Add new exception reason code (Null Exception_Id)
3261
3262         * clean.adb (Initialize): Get the target parameters before checking
3263         if target is OpenVMS. Move the OpenVMS specific code here from package
3264         body elaboration code.
3265
3266 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3267             Vincent Celier  <celier@adacore.com>
3268             Robert Dewar  <dewar@adacore.com>
3269
3270         * ali-util.adb (Get_File_Checksum): Update to account for change in
3271         profile of Initialize_Scanner.
3272
3273         * gprep.adb (Gnatprep): Update to account for change in profile of
3274         Initialize_Scanner.
3275         (Process_One_File): Same.
3276
3277         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
3278         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
3279         that behaviour using the new Unit information recorded in the source
3280         files table, rather than going through all units every time.
3281         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
3282         (Get_Source_Unit): Same.
3283
3284         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
3285         change in profile of Initialize_Scanner.
3286         (Prepare_To_Preprocess): Same.
3287
3288         * lib.ads: Fix typo in comment (templace -> template).
3289
3290         * prj-part.adb (Parse_Single_Project): Update to account for change in
3291         profile of Initialize_Scanner.
3292
3293         * scn.adb (Initialize_Scanner): Account for change in profile of
3294         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
3295         Also record the association of the given Source_File_Index to the
3296         corresponding Unit_Number_Type.
3297
3298         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
3299         procedure.
3300         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
3301         Remove Unit formal for generic scanner: this formal
3302         is only relevant to Scn (the scanner instance used to parse Ada source
3303         files), not to other instances. Update comment accordingly.
3304         (Scan): Use new function Snames.Is_Keyword_Name.
3305
3306         * sinfo-cn.adb: Fix typo in comment.
3307
3308         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
3309         Unit.
3310
3311         * sinput.ads (Source_File_Record): New component Unit, used to capture
3312         the unit identifier (if any) associated to a source file.
3313
3314         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
3315         Unit in Source_File_Record.
3316
3317         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
3318         in profile of Initialize_Scanner.
3319
3320         * scans.adb (Initialize_Ada_Keywords): New procedure
3321
3322         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
3323         Ada keywords in the Namet table, without the need to call
3324         Initialize_Scanner.
3325
3326         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
3327         (Is_Keyword_Name): New function
3328
3329         * snames.ads: Add subtype Configuration_Pragma_Names
3330         Add pragma Ada_2005 (synonym for Ada_05)
3331         (Is_Keyword_Name): New function
3332
3333         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
3334
3335 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3336
3337         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
3338         index.
3339
3340         * a-stwima.adb (To_Set): Add extra check when N = 0.
3341
3342         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
3343
3344 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3345
3346         * s-parame-mingw.adb, s-parame-linux.adb,
3347         s-parame-solaris.adb: Removed, replaced by s-parame.adb
3348
3349         * s-parame-vxworks.ads: Fix typo.
3350
3351         * s-parame-vxworks.adb: New file.
3352
3353         * s-parame.adb: Version now used by all native platforms.
3354         (Default_Stack_Size): Use 2 megs for default stack size and use
3355         __gl_default_stack_size when available.
3356         (Minimum_Stack_Size): Use 12K.
3357
3358         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
3359         (Create_Task): Refine implementation taking advantage of the XP stack
3360         size support. On XP, we now create the thread using the flag
3361         STACK_SIZE_PARAM_IS_A_RESERVATION.
3362
3363         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
3364
3365         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
3366         XP and 0 on older Windows versions.
3367
3368         * interfac-vms.ads: Removed, no longer used.
3369
3370 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3371
3372         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
3373         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
3374         a-cohase.adb: All explicit raise statements now include an exception
3375         message.
3376
3377         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
3378         (Update_Element_Preserving_Key): renamed op to just Update_Element.
3379         Explicit raise statements now include an exception message
3380
3381         * a-cihase.ads, a-cohase.ads: Removed comment.
3382
3383         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
3384         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
3385         a-szbzha.adb, a-szfzha.ads: New files.
3386
3387 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3388
3389         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
3390         quicksort.
3391
3392 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3393
3394         * lang.opt: Wvariadic-macros: New option.
3395         Wold-style-definition: Likewise.
3396         Wmissing-format-attribute: Likewise.
3397
3398         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
3399         -Wold-style-definition and -Wmissing-format-attribute.
3400
3401 2006-02-13  Robert Dewar  <dewar@adacore.com>
3402
3403         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
3404
3405         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
3406
3407 2006-02-13  Nicolas Roche  <roche@adacore.com>
3408
3409         * a-envvar.adb, a-envvar.ads: New files.
3410
3411 2006-02-13  Douglas Rupp  <rupp@adacore.com>
3412
3413         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
3414
3415         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
3416
3417 2006-02-13  Pat Rogers  <rogers@adacore.com>
3418
3419         * a-rttiev.adb, a-rttiev.ads: New files.
3420
3421 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3422
3423         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
3424         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
3425
3426         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
3427
3428 2006-02-13  Robert Dewar  <dewar@adacore.com>
3429
3430         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
3431         sem_case.adb: Minor code reorganization (not Present should be No)
3432
3433 2006-02-13  Geert Bosch  <bosch@adacore.com>
3434             Gary Dismukes  <dismukes@adacore.com>
3435
3436         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
3437         0, since the lower bound of the actual string may be greater than one.
3438
3439         PR ada/20753
3440
3441         (Put): Fix condition to raise Layout_Error when invalid
3442         layout is requested.
3443
3444 2006-02-13  Vincent Celier  <celier@adacore.com>
3445
3446         * back_end.adb (Scan_Compiler_Arguments): Check if
3447         Search_Directory_Present is True and, if it is, add the argument in
3448         the source search directory path.
3449
3450         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
3451         Search_Directory_Present to True.
3452
3453 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
3454
3455         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
3456         volatile, to tell the compiler to preserve this variable at any level
3457         of optimization.
3458         (Gen_Versions_Ada): Temporarily work around codegen bug.
3459
3460 2006-02-13  Vincent Celier  <celier@adacore.com>
3461
3462         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
3463         gcc to link with option -shared-libgcc.
3464         (Gnatlink): Remove duplicate switches -shared-libgcc
3465
3466 2006-02-13  Robert Dewar  <dewar@adacore.com>
3467
3468         * gnatvsn.ads (Current_Year): New constant, used to easily update
3469         copyright on all GNAT tools.
3470
3471         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
3472         copyright notice.
3473
3474 2006-02-13  Robert Dewar  <dewar@adacore.com>
3475
3476         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
3477         after hyphen (small aesthetic change useful for a range of numbers
3478         using ^-^.
3479         Suppress range checks for a couple of assignments which otherwise
3480         cause validity checks with validity checking turned on.
3481
3482         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
3483         Improvement in error message for object.
3484         (Rep_Item_Too_Late): Remove '!' in warning message.
3485
3486 2006-02-13  Robert Dewar  <dewar@adacore.com>
3487             Eric Botcazou  <ebotcazou@adacore.com>
3488
3489         * err_vars.ads: Suppress range checks for a couple of assignments
3490         which otherwise cause validity checks with validity checking turned on.
3491         Update comments.
3492
3493         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
3494         Make message unconditional if it is a warning.
3495         (Error_Msg_NEL): Always output warning messages.
3496         Suppress range checks for a couple of assignments which otherwise
3497         cause validity checks with validity checking turned on.
3498
3499         * errout.ads (Message Insertion Characters): Document that '!' is
3500         implied by '?' in error messages.
3501
3502         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
3503         (Gnat1drv): Use a goto to end of main subprogram instead of
3504         Exit_Program (E_Success) so that finalization can occur normally.
3505
3506 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3507
3508         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
3509         wrapped around.
3510
3511 2006-02-13  Vincent Celier  <celier@adacore.com>
3512
3513         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
3514         Unchecked_Conversion functions.
3515         (Modification_Time): Use direct conversion of OS_Time to Calendar time
3516         when OpenVMS returns False.
3517
3518         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
3519         a-dirval.adb (OpenVMS): New Boolean function
3520
3521 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3522             Thomas Quinot  <quinot@adacore.com>
3523
3524         * checks.adb (Build_Discriminant_Checks): If the expression being
3525         checks is an aggregate retrieve the values of its discriminants to
3526         generate the check, rather than creating a temporary and a reference
3527         to it.
3528         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
3529         (Install_Null_Excluding_Check): Ditto
3530         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
3531         not for the renamed object, so that the actual itype is attached in the
3532         proper context.
3533
3534 2006-02-13  Robert Dewar  <dewar@adacore.com>
3535             Vincent Celier  <celier@adacore.com>
3536
3537         * debug.adb: Eliminate numeric switches for binder/gnatmake
3538
3539         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
3540         switches for the compiler.
3541         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
3542         (Scan_Make_Switches): When failing with an illegal switch, output an
3543         error message with the full switch.
3544         Eliminate numeric switches for binder/gnatmake
3545
3546         * switch.ads, switch.adb (Bad_Switch): New procedure
3547
3548         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
3549         Remove 0-9 as debug flag character possibilities
3550         -d is now controlling the primary stack size when its value is a
3551         positive. Also add checks against invalid values, and support for kb,
3552         mb. Ditto for -D switch.
3553
3554 2006-02-13  Robert Dewar  <dewar@adacore.com>
3555             Serguei Rybin  <rybin@adacore.com>
3556
3557         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
3558         save/restore routines.
3559         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3560         were not always properly handled previously.
3561         Since we are changing the tree format anyway, also get rid of the
3562         junk obsolete Immediate_Errors flag.
3563         (Tree_Read): Change the way of reading Tree_Version_String - now we
3564         read the version string from the tree even if its length is not the
3565         same as the length of the version string computed from Gnatvsn.
3566         (Search_Directory_Present): New Boolean flag for the compiler.
3567         Define Tree_Version_String as a dynamic string.
3568         (Default_Stack_Size): new variable, used to handle switch -d.
3569
3570         * par-prag.adb: 
3571         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
3572         only for main unit.
3573         Add pragma Ada_2005 (synonym for Ada_05)
3574         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3575         were not always properly handled previously.
3576
3577         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
3578         explicit Ada_95 to Ada_2005.
3579
3580 2006-02-13  Javier Miranda  <miranda@adacore.com>
3581             Robert Dewar  <dewar@adacore.com>
3582             Ed Schonberg  <schonberg@adacore.com>
3583
3584         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
3585         against errors in the source program: a private types for which the
3586         corresponding full type declaration is missing and pragma CPP_Virtual
3587         is used.
3588         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
3589         (Is_Known_Null): New flag
3590         (Has_Pragma_Pure): New flag
3591         (No_Return): Present in all entities, set only for procedures
3592         (Is_Limited_Type): A type whose ancestor is an interface is limited if
3593         explicitly declared limited.
3594         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
3595         entities. Only used for component marked Is_Tag. If present it stores
3596         the Offset_To_Top function used to provide this value in tagged types
3597         whose ancestor has discriminants.
3598
3599         * exp_ch2.adb: Update status of new Is_Known_Null flag
3600
3601         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
3602
3603         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
3604         the categorization sense if Is_Pure was set by pragma Pure_Function.
3605
3606 2006-02-13  Quentin Ochem  <ochem@adacore.com>
3607             Olivier Hainque  <hainque@adacore.com>
3608
3609         * bindusg.adb: Updated documentation for -d and -D switches.
3610
3611         * raise.h (__gnat_set_globals): added new parameter for
3612         Default_Stack_Size.
3613
3614         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
3615         (__gnat_handle_vms_condition): Adjust context before raise.
3616         (__gnat_install_handler): Restore the global vector setup for GCC
3617         versions before 3.4, as the frame based circtuitry is not available
3618         in this case.
3619         (__gnat_set_globals): added a parameter default_stack_size
3620         (__gl_default_stack_size): new variable.
3621
3622 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3623
3624         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
3625         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
3626         does not exist in the Ada RM.
3627         (Compatible_Int_Bounds): Determine whether two integer range bounds
3628         are of equal length and have the same start and end values.
3629         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
3630         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
3631         aggregate when it is part of an object declaration.
3632         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
3633         constrains discriminants of its parent, add explicitly the discriminant
3634         constraints of the ancestor by retrieving them from the
3635         stored_constraint of the parent.
3636
3637 2006-02-13  Robert Dewar  <dewar@adacore.com>
3638
3639         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
3640         attribute Mechanism_Code is applied to renamed subprogram, modify
3641         prefix to point to base subprogram.
3642         Max/Min attributes now violate Restriction No_Implicit_Conditionals
3643
3644         * sinfo.ads: Document that Mechanism_Code cannot be applied to
3645         renamed subprograms so that the front-end must replace the prefix
3646         appropriately.
3647
3648 2006-02-13  Javier Miranda  <miranda@adacore.com>
3649             Gary Dismukes  <dismukes@adacore.com>
3650
3651         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
3652         availability of RE_Interface_Tag.
3653         (Build_Initialization_Call): Fix wrong access to the discriminant value.
3654         (Freeze_Record_Type): Do not generate the tables associated with
3655         timed and conditional dispatching calls through synchronized
3656         interfaces if compiling under No_Dispatching_Calls restriction.
3657         When compiling for Ada 2005, for a nonabstract
3658         type with a null extension, call Make_Controlling_Function_Wrappers
3659         and insert the wrapper function declarations and bodies (the latter
3660         being appended as freeze actions).
3661         (Predefined_Primitive_Bodies): Do not generate the bodies of the
3662         predefined primitives associated with timed and conditional
3663         dispatching calls through synchronized interfaces if we are
3664         compiling under No_Dispatching_Calls.
3665         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
3666         service is available before generating a call.
3667         (Make_Controlling_Function_Wrappers): New procedure.
3668         (Expand_N_Full_Type_Declaration): Create a class-wide master for
3669         access-to-limited-interfaces because they can be used to reference
3670         tasks that implement such limited interface.
3671         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
3672         procedure spec and body of the Offset_To_Top function that is generated
3673         when the parent of a type with discriminants has secondary dispatch
3674         tables.
3675         (Init_Secondary_Tags): Handle the case in which the parent of the type
3676         containing secondary dispatch tables has discriminants to generate the
3677         correct arguments to call Set_Offset_To_Top.
3678         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
3679
3680         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
3681         Add Wide_[Wide_]Expanded_Name.
3682         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
3683         the same functionality of Get_Prim_Op_Address but applied to predefined
3684         primitive operations because the pointers to the predefined primitives
3685         are now saved in a separate table.
3686         (Parent_Size): Modified to get access to the separate table of primitive
3687         operations or the parent type.
3688         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
3689         functionality of Set_Prim_Op_Address but applied to predefined primitive
3690         operations.
3691         (Set_Signature): New subprogram used to store the signature of a DT.
3692         (Displace): If the Offset_To_Top value is not static then call the
3693         function generated by the expander to get such value; otherwise use
3694         the value stored in the table of interfaces.
3695         (Offset_To_Top): The type of the actual has been changed to Address to
3696         give the correct support to tagged types with discriminants. In this
3697         case this value is stored just immediately after the tag field.
3698         (Set_Offset_To_Top): Two new formals have been added to indicate if the
3699         offset_to_top value is static and hence pass this value to the run-time
3700         to store it in the table of interfaces, or else if this value is dynamic
3701         and then pass to the run-time the address of a function that is
3702         generated by the expander to provide this value for each object of the
3703         type.
3704
3705         * rtsfind.ads (Default_Prin_Op_Count): Removed.
3706         (Default_Prim_Op_Count): New entity
3707         (Get_Predefined_Prim_Op_Address): New entity
3708         (Set_Predefined_Prim_Op_Address): New entity
3709         (RE_Set_Signature): New entity
3710
3711 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3712             Ed Schonberg  <schonberg@adacore.com>
3713
3714         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
3715         Make_Adjust_Call done for a newly-allocated object.
3716
3717         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
3718         in a subprogram are wrapped in a cleanup block, indicate that the
3719         subprogram contains an inner block with an exception handler.
3720         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
3721         Adjust call is for a newly-allocated object. In that case we must not
3722         assume that the finalization list chain pointers are correct (since they
3723         come from a bit-for-bit copy of the original object's pointers) so if
3724         the attach level would otherwise be zero (no change), we set it to 4
3725         instead to cause the pointers to be reset to null.
3726
3727         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
3728         reset chain pointers to null.
3729
3730 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3731
3732         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
3733         string, and the context requires a loop for the assignment (e.g.
3734         because the left-hand side is packed), generate a unique name for the
3735         temporary that holds the string, to prevent spurious name clashes.
3736
3737 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3738             Javier Miranda  <miranda@adacore.com>
3739             Robert Dewar  <dewar@adacore.com>
3740             Gary Dismukes  <dismukes@adacore.com>
3741
3742         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
3743         return unconstrained arrays.
3744         Update comments.
3745         (Expand_Call):  An indirect call through an access parameter of a
3746         protected operation is not a protected call.
3747         Add circuit to raise CE in Ada 2005 mode following call
3748         to Raise_Exception.
3749         (Register_DT_Entry): Do nothing if
3750         the run-time does not give support to abstract interfaces.
3751         (Freeze_Subprogram): In case of dispatching operations, do not generate
3752         code to register the operation in the dispatch table if the source
3753         is compiled with No_Dispatching_Calls.
3754         (Register_Predefined_DT_Entry): Generate code that calls the new
3755         run-time subprogram Set_Predefined_Prim_Op_Address instead of
3756         Set_Prim_Op_Address.
3757
3758         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
3759         on array assignments if the right-hand side is a function call that has
3760         been inlined. Check is performed on the assignment in the block.
3761         (Process_Bounds): If bounds and range are overloaded, apply preference
3762         rule for root operations to disambiguate, and diagnose true ambiguity.
3763         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
3764         a tag-indeterminate right-hand side even when Expander_Active is True.
3765         Needed to ensure that dispatching calls to T'Input are allowed and
3766         get the tag of the target class-wide object.
3767
3768         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
3769         an inherited primitive operation that already overrides several
3770         abstract interface primitives. For transitivity, the new entity must
3771         also override all the abstract interface primitives covered by the
3772         inherited overriden primitive.
3773         Emit warning if new entity differs from homograph in same scope only in
3774         that one has an access parameter and the other one has a parameter of
3775         a general access type with the same designated type, at the same
3776         position in the signature.
3777         (Make_Inequality_Operator): Use source locations of parameters and
3778         subtype marks from corresponding equality operator when creating the
3779         tree structure for the implicit declaration of "/=". This does not
3780         change anything in behaviour except that the decoration of the
3781         components of the subtree created for "/=" allows ASIS to get the
3782         string images of the corresponding identifiers.
3783         (Analyze_Return_Statement): Remove '!' in warning message.
3784         (Check_Statement_Sequence): Likewise.
3785         (Analyze_Subprogram_Body): For an access parameter whose designated type
3786         is an incomplete type imported through a limited_with clause, use the
3787         type of the corresponding formal in the body.
3788         (Check_Returns): Implicit return in No_Return procedure now raises
3789         Program_Error with a compile time warning, instead of beging illegal.
3790         (Has_Single_Return):  Function returning unconstrained type cannot be
3791         inlined if expression in unique return statement is not an identifier.
3792         (Build_Body_To_Inline): It is possible to inline a function call that
3793         returns an unconstrained type if all return statements in the function
3794         return the same local variable. Subsidiary procedure Has_Single_Return
3795         verifies that the body conforms to this restriction.
3796
3797         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
3798         same type, and  one of them is of an anonymous access type, convert
3799         the other operand to it, so that this is a valid binary operation for
3800         gigi.
3801         (Resolve_Type_Conversion): Handle subtypes of protected types and
3802         task types when accessing to the corresponding record type.
3803         (Resolve_Allocator): Add '\' in 2-line warning message.
3804         Remove '!' in warning message.
3805         (Resolve_Call): Add '\' in 2-line warning message.
3806         (Valid_Conversion): Likewise.
3807         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
3808         resulting type may be an access type with an implicit dereference.
3809         Obtain the proper component from the designated type.
3810         (Make_Call_Into_Operator): Handle properly a call to predefined equality
3811         given by an expanded name with prefix Standard, when the operands are
3812         of an anonymous access type.
3813         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
3814         Explicit_Dereference and Resolve_Selected_Component, to verify that the
3815         prefix of the expression is not of an incomplete type. Allows full
3816         diagnoses of all semantic errors.
3817         (Resolve_Actuals): If the actual is an allocator whose directly
3818         designated type is a class-wide interface we build an anonymous
3819         access type to use it as the type of the allocator. Later, when
3820         the subprogram call is expanded, if the interface has a secondary
3821         dispatch table the expander will add a type conversion to force
3822         the displacement of the pointer.
3823         (Resolve_Call): If a function that returns an unconstrained type is
3824         marked Inlined_Always and inlined, the call will be inlined and does
3825         not require the creation of a transient scope.
3826         (Check_Direct_Boolean_Op): Removed
3827         (Resolve_Comparison_Op): Remove call to above
3828         (Resolve_Equality_Op): Remove call to above
3829         (Resolve_Logical_Op): Inline above, since this is only call.
3830         (Valid_Conversion): Handle properly conversions between arrays of
3831         convertible anonymous access types.
3832
3833         PR ada/25885
3834
3835         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
3836         the literal in an unchecked conversion, because GCC 4.x needs a static
3837         value for a string bound.
3838
3839 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3840             Hristian Kirtchev  <kirtchev@adacore.com>
3841
3842         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
3843         components of the corresponding record, take into account component
3844         definitions that are access definitions.
3845         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
3846         procedure is not considered a dispatching call and will be expanded
3847         properly.
3848
3849 2006-02-13  Javier Miranda  <miranda@adacore.com>
3850
3851         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
3852         controlling argument of the dispatching call is an abstract interface
3853         class-wide type then we use it directly.
3854         Check No_Dispatching_Calls restriction.
3855         (Default_Prim_Op_Position): Remove the code that looks for the last
3856         entity in the list of aliased subprograms. This code was wrong in
3857         case of renamings.
3858         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
3859         when the source is compiled with the No_Dispatching_Calls restriction.
3860         (Init_Predefined_Interface_Primitives): No need to inherit primitives
3861         if we are compiling with restriction No_Dispatching_Calls.
3862         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
3863         subprograms if we are compiling under No_Dispatching_Calls restriction.
3864         (Make_DT): Generate a dispatch table with a single dummy entry if
3865         we are compiling with the No_Dispatching_Calls restriction. In
3866         addition, in this case we don't generate code that calls to the
3867         following run-time subprograms: Set_Type_Kind, Inherit_DT.
3868         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
3869         of this subprogram if compiling with the No_Dispatching_Calls
3870         restriction.
3871         (Expand_Type_Conversion): Instead of using the actual parameter,
3872         the argument passed as parameter to the conversion function was
3873         erroneously referenced by the expander.
3874         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
3875         Set_Predefined_Primitive_Op_Address and Set_Signature.
3876         (Expand_Dispatching_Call): Generate call to
3877         Get_Predefined_Prim_Op_Address for predefined primitives.
3878         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
3879         predefined primitives.
3880         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
3881         primitives we reserve one dummy entry to ensure that the tag does not
3882         point to some memory that is associated with some other object. In
3883         addition, remove all the old code that generated the assignments
3884         associated with the signature of the dispatch table and replace them
3885         by a call to the new subprogram Set_Signature.
3886         (Set_All_DT_Position): Change the algorithm because now we have a
3887         separate dispatch table associated with predefined primitive operations.
3888         (Expand_Interface_Conversion): In case of non-static offset_to_top
3889         add explicit dereference to get access to the object after the call
3890         to displace the pointer to the object.
3891         (Expand_Interface_Thunk): Modify the generation of the actual used
3892         in the calls to the run-time function Offset_To_Top to fulfil its
3893         new interface.
3894         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
3895
3896 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3897
3898         * exp_dist.adb (Copy_Specification): For access parameters, copy
3899         Null_Exclusion flag, which will have been set for stream subprograms
3900         in Ada2005 mode.
3901
3902 2006-02-13  Pascal Obry  <obry@adacore.com>
3903
3904         * expect.c (__gnat_expect_portable_execvp): New implementation. The
3905         previous implementation was using the C runtime spawnve routine but
3906         the corresponding wait was using directly the Win32 API. This was
3907         causing some times a lock when waiting for an event using
3908         WaitForSingleObject in __gnat_waitpid. This new implementation uses
3909         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
3910         API fixes this problem.
3911
3912 2006-02-13  Robert Dewar  <dewar@adacore.com>
3913
3914         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
3915         call.
3916
3917 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3918
3919         * exp_pakd.ads: Fix typos in comments.
3920
3921         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
3922         array reference that is an explicit dereference, mark the converted
3923         (packed) array reference as analyzed to prevent a forthcoming
3924         reanalysis from resetting its type to the original (non-packed) array
3925         type.
3926
3927 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3928             Javier Miranda  <miranda@adacore.com>
3929             Eric Botcazou  <ebotcazou@adacore.com>
3930
3931         * exp_util.ads, exp_util.adb (Find_Prim_Op,
3932         Is_Predefined_Primitive_Operation): When
3933         searching for the predefined equality operator, verify that operands
3934         have the same type.
3935         (Is_Predefined_Dispatching_Operation): Remove the code that looks
3936         for the last entity in the list of aliased subprograms. This code
3937         was wrong in case of renamings.
3938         (Set_Renamed_Subprogram): New procedure
3939         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
3940         Exp_Type constant computed when entering this subprogram.
3941         (Known_Null): New function
3942         (OK_To_Do_Constant_Replacement): New function
3943         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
3944         (Side_Effect_Free): An attribute reference 'Input is not free of
3945         side effect, unlike other attributes that are functions. (from code
3946         reading).
3947         (Remove_Side_Effects): Expressions that involve packed arrays or records
3948         are copied at the point of reference, and therefore must be marked as
3949         renamings of objects.
3950         (Is_Predefined_Dispatching_Operation): Return false if the operation is
3951         not a dispatching operation.
3952
3953         PR ada/18819
3954         (Remove_Side_Effects): Lift enclosing type conversion nodes for
3955         elementary types in all cases.
3956
3957 2006-02-13  Javier Miranda  <miranda@adacore.com>
3958
3959         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
3960         task types when accessing to the corresponding record type.
3961         Remove '!' in warning message.
3962
3963 2006-02-13  Olivier Hainque  <hainque@adacore.com>
3964
3965         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
3966         to avoid useless and space inefficient overalignments on targets where
3967         Max_Alignment is larger than 16.
3968
3969 2006-02-13  Pascal Obry  <obry@adacore.com>
3970
3971         * g-catiio.adb (Sec_Number): New type used to compute the number of
3972         seconds since 1-1-1970.
3973         (Image) [Natural]: The parameter was an Integer, as we can't deal with
3974         negative numbers (years, months...) it is better to have a Natural here.
3975         Code clean-up.
3976         (Image) [Number]: Change parameter from Long_Integer to Number.
3977         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
3978         overflow for dates past year 2038.
3979
3980 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3981
3982         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
3983         Constraint_Error.
3984
3985 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3986
3987         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
3988         native platforms.
3989         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
3990         finalization can occur normally.
3991
3992 2006-02-13  Vincent Celier  <celier@adacore.com>
3993
3994         * gnatcmd.adb (Rules_Switches): New table
3995         (Add_To_Rules_Switches): New procedure
3996         (GNATCmd): For command CHECK, put all options following "-rules" in the
3997         Rules_Switches table. Append these -rules switches after the -cargs
3998         switches.
3999
4000 2006-02-13  Robert Dewar  <dewar@adacore.com>
4001
4002         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
4003         These two cases were generating incorrect output, and if this unit
4004         was built with checks on, generated a discriminant mismatch constraint
4005         error.
4006
4007 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4008             Robert Dewar  <dewar@adacore.com>
4009
4010         * lib-xref.adb (Get_Type_Reference): For a private type whose full
4011         view is an array type, indicate the component type as well, for
4012         navigation purposes.
4013         (Generate_Reference): Don't consider array ref on LHS to be a case
4014         of violating pragma Unreferenced.
4015         Do not give Ada 2005 warning except on real reference.
4016
4017 2006-02-13  Vincent Celier  <celier@adacore.com>
4018
4019         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
4020         main source, add switch -mdebug-main=_ada_ so that the executable can
4021         be debugged by the standard VMS debugger.
4022         (Gnatmake): Set No_Main_Subprogram to True when there is no main
4023         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
4024         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
4025         of the last source, as the binding and linking phases are never
4026         performed.
4027         Set all executable obsolete when rebuilding a library.
4028
4029         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
4030         options.
4031
4032 2006-02-13  Javier Miranda  <miranda@adacore.com>
4033
4034         PR ada/23973
4035
4036         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
4037         code to improve the error message reported when the program has
4038         declarations of abstract interface types and it is not compiled with
4039         the -gnat05 switch.
4040         (P_Access_Definition): Reorganize the code to improve the error
4041         message reported when the new Ada 2005 syntax for anonymous
4042         access types is used and the program is not compiled with the
4043         -gnat05 switch.
4044
4045 2006-02-13  Robert Dewar  <dewar@adacore.com>
4046
4047         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
4048         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
4049         (MODE_IN)
4050
4051 2006-02-13  Javier Miranda  <miranda@adacore.com>
4052
4053         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
4054         against source containing syntax errors.
4055
4056 2006-02-13  Vincent Celier  <celier@adacore.com>
4057
4058         * prj.adb (Reset): Initialize the first element of table Namings with
4059         the standard naming data.
4060
4061 2006-02-13  Vincent Celier  <celier@adacore.com>
4062
4063         * prj.ads (Error_Warning): New enumeration type
4064
4065         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
4066         unknown, use the location of the project to report the error.
4067         (When_No_Sources): New global variable
4068         (Report_No_Ada_Sources): New procedure
4069         (Check): New parameter When_No_Sources. Set value of global variable
4070         When_No_Sources,
4071         (Find_Sources): Call Report_No_Ada_Sources when appropriate
4072         (Get_Sources_From_File): Ditto
4073         (Warn_If_Not_Sources): Better warning messages indicating the unit name
4074         and the file name.
4075
4076         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
4077         Call Prj.Proc.Process with parameter When_No_Sources.
4078
4079         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
4080         Call Recursive_Check with parameter When_No_Sources.
4081         (Recursive_Check): New parameter When_No_Sources. Call itself and
4082         Prj.Nmsc.Check with parameter When_No_Sources.
4083         (Process): New parameter When_No_Sources. Call Check with parameter
4084         When_No_Sources.
4085         (Copy_Package_Declarations): New procedure to copy renamed parameters
4086         and setting the location of the declared attributes to the location
4087         of the renamed package.
4088         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
4089         packages.
4090
4091 2006-02-13  Vincent Celier  <celier@adacore.com>
4092
4093         * prj-makr.adb (Make): Preserve the comments from the original project
4094         file.
4095         When removing nodes (attributes Source_Dirs, Source_Files,
4096         Source_List_File and package Naming), save the comments and attach the
4097         saved comments to the newly created nodes.
4098         Do not add a with clause for the naming package if one already exists.
4099
4100 2006-02-13  Javier Miranda  <miranda@adacore.com>
4101             Gary Dismukes  <dismukes@adacore.com>
4102             Robert Dewar  <dewar@adacore.com>
4103
4104         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
4105
4106         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
4107         aliased entities to look for the overriden abstract interface
4108         subprogram.
4109         (Is_Interface_Subprogram): Complete documentation.
4110         (Check_Dispatching_Operation): Do not generate code to register the
4111         operation in the dispatch table if the source is compiled with
4112         restriction No_Dispatching_Calls.
4113         (Override_Dispatching_Operation): Check for illegal attempt to override
4114         No_Return procedure with procedure that is not No_Return
4115         (Check_Dispatching_Call): Suppress the check for an abstract operation
4116         when the original node of an actual is a tag-indeterminate attribute
4117         call, since the attribute, which must be 'Input, can never be abstract.
4118         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
4119         call to the Input attribute (even when rewritten).
4120         (Propagate_Tag): Augment comment to indicate the possibility of a call
4121         to an Input attribute.
4122
4123         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
4124         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
4125
4126         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
4127         No_Wide_Characters is no longer partition-wide
4128         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
4129         rather than GNAT
4130
4131 2006-02-13  Douglas Rupp  <rupp@adacore.com>
4132
4133         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
4134
4135 2006-02-13  Javier Miranda  <miranda@adacore.com>
4136
4137         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
4138         handles default-initialized components to keep separate the management
4139         of this feature but also avoid the unrequired resolution and
4140         expansion of components that do not have partially initialized
4141         values.
4142         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
4143         (Check_Bounds): Likewise.
4144         (Check_Length): Likewise.
4145
4146 2006-02-13  Javier Miranda  <miranda@adacore.com>
4147             Ed Schonberg  <schonberg@adacore.com>
4148
4149         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
4150         abstract interface type call analyze_and_resolve to expand the type
4151         conversion into the corresponding displacement of the
4152         reference to the base of the object.
4153         (Eval_Attribute, case Width): For systems where IEEE extended precision
4154         is supported, the maximum exponent occupies 4 decimal digits.
4155         (Accessibility_Message): Add '\' in 2-line warning message.
4156         (Resolve_Attribute): Likewise.
4157         (case Attribute_Access): Significantly revise checks
4158         for illegal access-to-subprogram Access attributes to properly enforce
4159         the rules of 3.10.2(32/2).
4160         Diagnose use of current instance with an illegal attribute.
4161
4162         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
4163         to a Node_Id.
4164         (Enclosing_Generic_Unit): New function to return a node's innermost
4165         enclosing generic declaration node.
4166         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
4167         (Type_Access_Level): The accessibility level of anonymous acccess types
4168         associated with discriminants is that of the current instance of the
4169         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
4170         (Compile_Time_Constraint_Error): Handle case of conditional expression.
4171         (Kill_Current_Values_For_Entity): New function
4172         (Enter_Name): Change formal type to Entity_Id
4173
4174 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
4175             Ed Schonberg  <schonberg@adacore.com>
4176             Gary Dismukes  <dismukes@adacore.com>
4177
4178         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
4179         Analyze_Compilation_Unit.
4180         Detect and warn on redundant with clauses detected in a package spec
4181         and/or body when -gnatwr is used.
4182         (Analyze_Context): Analyze config pragmas before other items
4183         (Install_Context_Items): Don't analyze config pragmas here
4184         (Install_Limited_Withed_Unit): Set limited entity of package in
4185         with_clause so that cross-reference information or warning messages on
4186         unused packages can be properly generated
4187         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
4188         has Error_Posted set. Prevent infinite loops in illegal programs.
4189         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
4190         to the point of the error test requiring the current unit to be private.
4191         This ensures that private with clauses are not exempted from the basic
4192         checking for being a descendant of the same library unit parent as a
4193         withed private descendant unit.
4194         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
4195         handle private with clauses properly, as well as to account for cases
4196         where the withed unit is a public descendant of a private ancestor
4197         (in which case the current unit must be a descendant of the private
4198         ancestor's parent). The spec comments were updated accordingly. Also,
4199         the old error message in this subprogram was replaced with error
4200         messages that mirror the errors tested and reported by
4201         Check_Private_Child_Unit.
4202         Parameter and variable names improved for readability.
4203         (Install_Limited_Context_Clauses): Remove test for a withed unit being
4204         private as the precondition for calling
4205         Check_Private_Limited_Withed_Unit since that subprogram has been
4206         revised to test public units as well as private units.
4207
4208 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4209             Robert Dewar  <dewar@adacore.com>
4210             Ed Schonberg  <schonberg@adacore.com>
4211             Javier Miranda  <miranda@adacore.com>
4212
4213         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
4214         that Scope_Stack.First = 1.
4215         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4216         were not always properly handled previously.
4217         (Formal_Entity): Complete rewrite, to handle properly some complex case
4218         with multiple levels of parametrization by formal packages.
4219         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
4220         to the corresponding derived type declaration for proper semantics.
4221
4222         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
4223         (Check_Component): Enforce restriction on components of
4224         unchecked_unions: a component in a variant cannot contain tasks or
4225         controlled types.
4226         (Unchecked_Union): Allow nested variants and multiple discriminants, to
4227         conform to AI-216.
4228         Add pragma Ada_2005 (synonym for Ada_05)
4229         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4230         were not always properly handled previously.
4231         Document that pragma Propagate_Exceptions has no effect
4232         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
4233         (Set_Convention_From_Pragma): Check that if a convention is
4234         specified for a dispatching operation, then it must be
4235         consistent with the existing convention for the operation.
4236         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
4237         longer required to specify an vtable-ptr component in the record. For
4238         compatibility reasons we leave the support for the previous definition.
4239         (Analyze_Pragma, case No_Return): Allow multiple arguments
4240
4241         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
4242         non-overrideen inherited operation with a controlling result as
4243         illegal only its implicit declaration comes from the derived type
4244         declaration of its result's type.
4245         (Check_Possible_Deferred_Completion): Relocate the object definition
4246         node of the subtype indication of a deferred constant completion rather
4247         than directly analyzing it. The analysis of the generated subtype will
4248         correctly decorate the GNAT tree.
4249         (Record_Type_Declaration): Check whether this is a declaration for a
4250         limited derived record before analyzing components.
4251         (Analyze_Component_Declaration): Diagnose record types  not explicitly
4252         declared limited when a component has a limited type.
4253         (Build_Derived_Record_Type): Code reorganization to check if some of
4254         the inherited subprograms of a tagged type cover interface primitives.
4255         This check was missing in case of a full-type associated with a private
4256         type declaration.
4257         (Constant_Redeclaration): Check that the subtypes of the partial and the
4258         full view of a constrained deferred constant statically match.
4259         (Mentions_T): A reference to the current type in an anonymous access
4260         component declaration  must be an entity name.
4261         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
4262         class_wide type to refer to full type, not to the incomplete one.
4263         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
4264         available. Required to give support to the certified run-time.
4265         (Analyze_Component_Declaration): In case of anonymous access components
4266         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
4267         (Process_Discriminants): For an access discriminant, use the
4268         discriminant specification as the associated_node_for_itype, to
4269         simplify accessibility checks.
4270
4271 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4272             Javier Miranda  <miranda@adacore.com>
4273
4274         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
4275         abstract interpretations on an operator, remove interpretations that
4276         yield Address or a type derived from it, if one of the operands is an
4277         integer literal.
4278         (Try_Object_Operation.Try_Primitive_Operation,
4279         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
4280         location when creating the new reference to a primitive or class-wide
4281         operation as a part of rewriting a subprogram call.
4282         (Try_Primitive_Operations): If context requires a function, collect all
4283         interpretations after the first match, because there may be primitive
4284         operations of the same type with the same profile and different return
4285         types. From code reading.
4286         (Try_Primitive_Operation): Use the node kind to choose the proper
4287         operation when a function and a procedure have the same parameter
4288         profile.
4289         (Complete_Object_Operation): If formal is an access parameter and prefix
4290         is an object, rewrite as an Access reference, to match signature of
4291         primitive operation.
4292         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
4293         by an expanded name with prefix Standard, when the operands are of an
4294         anonymous access type.
4295         (Remove_Abstract_Operations): If the operation is abstract because it is
4296         inherited by a user-defined type derived from Address, remove it as
4297         well from the set of candidate interpretations of an overloaded node.
4298         (Analyze_Membership_Op): Membership test not applicable to cpp-class
4299         types.
4300
4301 2006-02-13  Bob Duff  <duff@adacore.com>
4302
4303         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
4304         redundant use clauses.
4305         In particular, if the scope of two use clauses overlaps, but one is not
4306         entirely included in the other, we should not warn.  This can happen
4307         with nested packages.
4308         (Analyze_Subprogram_Renaming): Protect the compiler against previously
4309         reported errors. The bug was reported when the compiler was built
4310         with assertions enabled.
4311         (Find_Type): If the node is a 'Class reference and the prefix is a
4312         synchronized type without a corresponding record, return the type
4313         itself.
4314
4315 2006-02-13  Javier Miranda  <miranda@adacore.com>
4316
4317         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
4318         if this is the full-declaration associated with a private declaration
4319         that implement interfaces, then the private type declaration must be
4320         limited.
4321         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
4322         as aliased. The use of the 'access attribute is not available for such
4323         object (for this purpose the object should be explicitly marked as
4324         aliased, but being an anonymous type this is not possible).
4325
4326 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4327             Robert Dewar  <dewar@adacore.com>
4328
4329         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
4330         compilation unit is an elaboration scope.
4331         (Add_Task_Proc): Add '\' in 2-line warning message.
4332         (Activate_All_Desirable): Deal with case of unit with'ed by parent
4333
4334 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4335             Javier Miranda  <miranda@adacore.com>
4336
4337         * sem_type.adb (Write_Overloads): Improve display of candidate
4338         interpretations.
4339         (Add_One_Interp): Do not add to the list of interpretations aliased
4340         entities corresponding with an abstract interface type that is an
4341         immediate ancestor of a tagged type; otherwise we have a dummy
4342         conflict between this entity and the aliased entity.
4343         (Disambiguate): The predefined equality on universal_access is not
4344         usable if there is a user-defined equality with the proper signature,
4345         declared in the same declarative part as the designated type.
4346         (Find_Unique_Type): The universal_access equality operator defined under
4347         AI-230 does not cover pool specific access types.
4348         (Covers): If one of the types is a generic actual subtype, check whether
4349         it matches the partial view of the other type.
4350
4351 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4352
4353         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
4354         line. This is necessary to allow In_Extended_Main_Unit to provide
4355         correct results for itypes while writing out expanded source.
4356         (Close_File): No need to update the source_index_table here since it's
4357         now done for each line.
4358
4359 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4360             Robert Dewar  <dewar@adacore.com>
4361
4362         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
4363         preserve the source unit where the itype is declared, and prevent a
4364         backend abort.
4365         (Note_Implicit_Run_Time_Call): New procedure
4366         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
4367         E_Subprogram_Type)
4368
4369         * sprint.ads: Document use of $ for implicit run time routine call
4370
4371 2006-02-13  Quentin Ochem  <ochem@adacore.com>
4372
4373         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
4374         task name.
4375
4376 2006-02-13  Bob Duff  <duff@adacore.com>
4377
4378         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
4379         Scan_Unsigned, so we do not scan leading blanks and sign twice.
4380         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4381         raise Constraint_Error.
4382
4383         * s-vallli.adb (Scan_Long_Long_Integer): Call
4384         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
4385         do not scan leading blanks and sign twice.
4386         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4387         raise Constraint_Error.
4388
4389         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
4390         Scan_Long_Long_Unsigned): Split out most of the processing from
4391         Scan_Long_Long_Unsigned out into
4392         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
4393         This prevents scanning leading blanks and sign twice.
4394         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
4395         See RM-3.5(44).
4396
4397         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
4398         out most of the processing from Scan_Unsigned out into
4399         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
4400         This prevents scanning leading blanks and sign twice.
4401
4402         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
4403         use with Modular'Value attribute.
4404         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
4405         attribute.
4406
4407 2006-02-13  Robert Dewar  <dewar@adacore.com>
4408
4409         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
4410
4411 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
4412
4413         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
4414         (PPC VxWorks): Likewise.
4415         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
4416         (forced_callee): Make non-inlinable and non-pure.
4417         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
4418
4419 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4420             Ben Brosgol  <brosgol@adacore.com>
4421             Robert Dewar  <dewar@adacore.com>
4422
4423         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
4424         support.
4425         Document that gnatbind -M option is for cross environments only.
4426         Added description of using gnatmem to trace gnat rtl allocs and deallocs
4427         Add note on use of $ to label implicit run time calls
4428         Add documentation for -gnatyI (check mode IN)
4429         Updated chapter on compatibility with HP Ada
4430         VMS-oriented edits.
4431         Ran spell and corrected errors
4432         Add documentation for gnatbind -d and rework documentation of -D
4433         at the same time.
4434         Add subprogram/data elimination section.
4435         Minor editing of annex A.
4436         Add section for gnatcheck.
4437         Add documentation for restriction No_Dispatching_Calls
4438         Add documentation for pragma Ada_2005
4439         Remove mention of obsolete pragma Propagate_Exceptions
4440         Document that pragma Unreferenced can appear after DO in ACCEPT
4441         Clarify Pure_Function for library level units
4442         Mention Max/Min in connection with No_Implicit_Conditionals
4443         No_Wide_Characters restriction is no longer partition-wide
4444         Add a nice example for Universal_Literal_String attribute
4445         Document that pragma No_Return can take multiple arguments
4446
4447         * ug_words: Added entry for gnatcheck
4448
4449         * g-ctrl_c.ads (Install_Handler): Enhance comments
4450
4451         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
4452
4453         * g-trasym.ads: Add documentation on how to do off line symbolic
4454         traceback computation.
4455
4456         * s-fatgen.adb: Add comments for Unaligned_Valid
4457
4458         * stand.ads: Fix typo in comment
4459
4460 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4461
4462         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
4463
4464 2006-02-06  Roger Sayle  <roger@eyesopen.com>
4465
4466         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
4467
4468 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4469
4470         PR target/25926
4471         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
4472         implementation that calls __main.
4473
4474 2006-01-25  Peter O'Gorman  <peter@pogma.com>
4475
4476         PR bootstrap/25859
4477         * Makefile.in (GCC_LINK): Remove quotes.
4478         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
4479         or $(GCC_LINK).
4480
4481         (powerpc-darwin): Pass -shared-libgcc when building shared library.
4482
4483 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4484
4485         PR ada/24533
4486         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
4487
4488 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4489
4490         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
4491
4492 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4493
4494         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
4495         needed.
4496
4497 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4498
4499         * Make-lang.in: Update dependencies
4500
4501 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4502
4503         * Make-lang.in: Add rule for ada/exp_sel.o
4504
4505 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4506
4507         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
4508
4509 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
4510
4511         * gnatvsn.ads (Library_Version): Bump to version 4.2
4512         (ASIS_Version_Number): Bumped.
4513
4514 2005-12-09  Doug Rupp  <rupp@adacore.com>
4515
4516         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
4517         Ada bind file prefix on VMS from b$ to b__.
4518         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
4519         __init.
4520
4521         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
4522         Targparm.OpenVMS_On_Target.
4523         (Object_Suffix): Initialize with target object suffix.
4524         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
4525
4526         * butil.adb: Change some Hostparm.OpenVMS checks to
4527         Targparm.OpenVMS_On_Target.
4528
4529         * clean.adb: Change some Hostparm.OpenVMS checks to
4530         Targparm.OpenVMS_On_Target.
4531         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
4532         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
4533         Ada bind file prefix on VMS from b$ to b__.
4534
4535         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
4536         --GCC so that Get_Target_Parameters can find system.ads.
4537         (Gnatlink): Call Get_Target_Parameters in mainline.
4538         Initialize standard packages for Targparm.
4539         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
4540         (Process_Args): Also Check for object files with target object
4541         extension.
4542         (Make_Binder_File_Names): Create with target object extension.
4543         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
4544         to b__.
4545
4546         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
4547         Targparm.OpenVMS_On_Target.
4548         ({declaration},Build_Library,Check_Library): Change Ada bind file
4549         prefix on VMS from b$ to b__.
4550
4551         * osint-b.adb: Change some Hostparm.OpenVMS checks to
4552         Targparm.OpenVMS_On_Target.
4553         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
4554         b__.
4555
4556         * targext.c: New file.
4557
4558         * Makefile.in: add support for vxworks653 builds
4559         (../../vxaddr2line): gnatlink with targext.o.
4560         (TOOLS_LIBS): Move targext.o to precede libgnat.
4561         (init.o, initialize.o): Minor clean up in dependencies.
4562         (GNATLINK_OBJS): Add targparm.o, snames.o
4563         Add rules fo building targext.o and linking it explicitly with all
4564         tools.
4565         Also add targext.o to gnatlib.
4566
4567         * Make-lang.in: Add rules for building targext.o and linking it in
4568         with gnat1 and gnatbind.
4569         Add entry for exp_sel.o.
4570
4571         * osint.adb Change some Hostparm.OpenVMS checks to
4572         Targparm.OpenVMS_On_Target.
4573         (Object_File_Name): Use target object suffix.
4574
4575         * osint.ads (Object_Suffix): Remove, no longer used.
4576         (Target_Object_Suffix): Initialize with target object suffix.
4577
4578         * rident.ads: Add special exception to license.
4579
4580         * targparm.adb (Get_Target_Parameters): Set the value of
4581         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
4582         value.
4583         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
4584         
4585         * targparm.ads: Add special exception to license.
4586
4587         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
4588         function.
4589         (Copy_File): Make sure from file is closed if error on to file
4590         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
4591
4592         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
4593         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
4594
4595         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
4596         target object suffix.
4597
4598 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
4599             Quentin Ochem  <ochem@adacore.com>
4600             Florian Villoing  <villoing@adacore.com>
4601
4602         * a-taster.ads, a-taster.adb: New files.
4603
4604         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
4605         link to the version that does nothing. This way the task termination
4606         routine is not executed twice for the environment task when finishing
4607         because of an unhandled exception.
4608
4609         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
4610         handler because of an unhandled exception.
4611
4612         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
4613         System.Tasking.Utilities instead of that in System.Tasking.Stages.
4614
4615         * s-finimp.adb (initialization code): Modify the soft link for the
4616         finalization of the global list instead of Adafinal.
4617
4618         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
4619         non-tasking version of the soft link for task termination. We do
4620         nothing since if we are using the non-tasking version it
4621         means that the task termination functionality is not used.
4622         (Null_Finalize_Global_List): Add this null version for the procedure
4623         in charge of finalizing the global list for controlled objects.
4624         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
4625         instead for handling run-time termination in a more flexible way.
4626         (Adafinal_NT): This new procedure will take care of finalizing the
4627         global list for controlled objects if needed, but no tasking
4628         finalization.
4629
4630         * s-tarest.adb (Task_Lock): Do not try to lock again the
4631         Global_Task_Lock if we already own it. Otherwise, we get blocked in
4632         some run-time operations.
4633         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
4634         until all nested locks have been released.
4635         (Task_Wrapper): Call the fall-back task termination handler. It
4636         applies to all tasks but the environment task.
4637         (Finalize_Global_Tasks): Add the call for the task termination
4638         procedure for the environment task.
4639         (Task_Wrapper): suppress warnings around declaration of
4640         Secondary_Stack_Address.
4641
4642         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
4643         moved to the Common_ATCB record.
4644         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
4645         Common_ATCB record.
4646         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
4647         Common_ATCB record.
4648
4649         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
4650         Fall_Back_Handler, and Specific_Handler.
4651
4652         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
4653         defined in Ada.Task_Termination, to avoid circular dependencies.
4654         (Termination_Handler): Redefine this type here, alredy defined in
4655         Ada.Task_Termination, for avoiding circular dependencies.
4656         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
4657         for storing task termination handlers. In addition,
4658         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
4659         Common_ATCB because it is used by both the regular and the restricted
4660         run times.
4661         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
4662         Common_ATCB because it is used by both the regular and the restricted
4663         run times.
4664         (Common_ATCB): Added a dynamic task analyzer field.
4665
4666         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
4667         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
4668         (Task_Wrapper): Call the task termination handler. It applies to all
4669         tasks but the environment task.
4670         (Finalize_Global_Tasks): Call the task termination procedure for the
4671         environment task. The call to Finalize_Global_List is now performed
4672         using the soft links mechanism.
4673         (Task_Wrapper): added dynamic stack analysis.
4674
4675         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
4676         potentially blocking operations has been moved from
4677         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
4678         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
4679         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
4680         this run-time check.
4681
4682         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
4683         of task termination procedure.
4684         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
4685         link for the task termination procedure.
4686
4687         * bindusg.adb: (Bindusg): Added documentation for -u option.
4688
4689         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
4690         (Get_Main_C): Add handling of dynamic stack analysis.
4691         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
4692
4693         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
4694         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
4695         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
4696
4697         * opt.ads: Added flags used by dynamic stack measurement.
4698         (Max_Line_Length): Remove (not used anymore)
4699
4700         * s-io.ads, s-io.adb (Standard_Error): new subprogram
4701         (Standart_Output): new subprogram
4702         (Set_Output): new subprogram
4703         (Put): now uses the value of Current_Out to know if the output has to be
4704         send to stderr or stdout.
4705         
4706         * s-stausa.ads: Complete implementation.
4707
4708         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
4709         
4710         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
4711         list of Ada 05 files.
4712         (GNAT Library Units): Add AltiVec files.
4713
4714         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
4715         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
4716         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
4717
4718 2005-12-09  Nicolas Setton  <setton@adacore.com>
4719
4720         * adaint.c (__gnat_locate_regular_file): Return immediately if
4721         file_name is empty.
4722
4723 2005-12-09  Javier Miranda  <miranda@adacore.com>
4724             Hristian Kirtchev  <kirtchev@adacore.com>
4725
4726         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
4727         to the specification because the frontend generates code that uses this
4728         subprogram.
4729         (Set_Interface_Table): Add missing assertion.
4730         Update documentation describing the run-time structure.
4731         (Displace): New subprogram that displaces the pointer to the object
4732         to reference one of its secondary dispatch tables.
4733         (IW_Membership): Modified to use the new table of interfaces.
4734         (Inherit_TSD): Modified to use the new table of interfaces.
4735         (Register_Interface_Tag): Use the additional formal to fill the
4736         contents of the new table of interfaces.
4737         (Set_Interface_Table): New subprogram that stores in the TSD the
4738         pointer to the table of interfaces.
4739         (Set_Offset_To_Top): Use the additional formal to save copy of
4740         the offset value in the table of interfaces.
4741         Update structure of GNAT Primary and Secondary dispatch table diagram.
4742         Add comment section on GNAT dispatch table prologue.
4743         (Offset_To_Signature): Update the constant value of the Signature field.
4744         (Dispatch_Table): Update comment on hidden fields in the prologue.
4745         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
4746         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
4747         the type of formal parameter T to Tag, introduce additional assertions.
4748         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
4749         conversion.
4750         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
4751
4752         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
4753         in all the calls to Expand_Interface_Thunk. Instead of referencing the
4754         record component containing the tag of the secondary dispatch table we
4755         have to use the Offset_To_Top run-time function to get this information;
4756         otherwise if the pointer to the base of the object has been displace
4757         we get a wrong value if we use the 'position attribute.
4758
4759         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
4760         all the calls to Expand_Interface_Thunk.
4761         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
4762         interfaces; hence the call to Set_Interface_Table was clearly wrong.
4763         (Collect_All_Interfaces): Modify the internal subprogram Collect to
4764         ensure that the interfaces implemented by the ancestors are placed
4765         at the header of the generated list.
4766         (Expand_Interface_Conversion): Handle the case in which the displacement
4767         associated with the interface conversion is not statically known. In
4768         this case we generate a call to the new run-time subprogram Displace.
4769         (Make_DT): Generate and fill the new table of interfaces.
4770         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
4771         Get_Tagged_Kind and Set_Tagged_Kind.
4772         (Tagged_Kind): New function that determines the tagged kind of a type
4773         with respect to limitedness and concurrency and returns a reference to
4774         RE_Tagged_Kind.
4775         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
4776         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
4777         primary dispatch table for a type.
4778         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
4779         secondary dispatch table respectively of a tagged type.
4780
4781         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
4782         (Expand_Interface_Conversion): New subprogram to indicate if the
4783         displacement of the type conversion is statically known.
4784         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
4785
4786         * rtsfind.ads (RE_Offset_To_Top): New entity
4787         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
4788         accessible to users.
4789         (Re_Displace): New entity
4790         (RE_Interface_Data): New entity
4791         (RE_Set_Interface_Data): New_Entity
4792         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
4793         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
4794         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
4795         RE_TK_Tagged, RE_TK_Task.
4796
4797         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
4798         Init_Secondary_Tags_Internal to allow its use with interface types and
4799         also to generate the code for the new additional actual required
4800         by Set_Offset_To_Top.
4801         (Build_Init_Statements): In case of components associated with abstract
4802         interface types there is no need to generate a call to its IP.
4803         (Freeze_Record_Type): Generate Select Specific Data tables only for
4804         concurrent types.
4805         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
4806         the bodies and specifications of the predefined primitive operations
4807         dealing with dispatching selects and abort, 'Callable, 'Terminated only
4808         for concurrent types.
4809
4810         * exp_sel.ads, exp_sel.adb: New files.
4811
4812         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
4813         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
4814         properly protected objects and attach handler in the case of the
4815         restricted profile.
4816         Move embeded package Select_Expansion_Utilities into a separate external
4817         package.
4818         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
4819         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
4820         (Build_K, Build_S_Assignment): New subprograms, part of the select
4821         expansion utilities.
4822         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
4823         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
4824         where the trigger is a dispatching procedure of a limited tagged type.
4825
4826 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4827
4828         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
4829         pointer initialization values. Make a SAVE_EXPR instead. Add comments
4830         about the use and expansion of SAVE_EXPRs in the various possible
4831         renaming handling cases.
4832         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
4833         abusing DECL_FCONTEXT.
4834
4835 2005-12-09  Matthew Heaney  <heaney@adacore.com>
4836
4837         * a-convec.adb (Merge): Added assertions to check whether vector params
4838         are sorted.
4839
4840         * a-coinve.adb (Merge): Added assertions to check whether vector params
4841         are sorted.
4842
4843         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
4844         draft.
4845         (Cursor'Read): raises PE
4846
4847         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
4848         to its default value.
4849
4850         * a-cihama.adb: Manually check whether cursor's key and elem are
4851         non-null
4852
4853         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
4854         (Merge): Assert that target and source lists are in order
4855         (Swap): Declare non-const temporaries, to pass to Splice
4856
4857         * a-cdlili.ads: (Splice): Changed param name and param mode
4858
4859         * a-cdlili.adb: (Splice): Changed param name and param mode
4860         (Merge): Assert that target and source lists are in order
4861         (Swap): Declare non-const temporaries, to pass to Splice
4862
4863         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
4864         (Write): declare Stream param as not null
4865
4866         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
4867         an exception message.
4868
4869 2005-12-09  Thomas Quinot  <quinot@adacore.com>
4870             Robert Dewar  <dewar@adacore.com>
4871
4872         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
4873         which is the absolute maximum length we can support.
4874
4875         * frontend.adb: For the processing of configuration pragma files,
4876         remove references to Opt.Max_Line_Length, which is not checked anymore.
4877
4878         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
4879         length.
4880
4881         * scn.adb, scng.adb: 
4882         Always check line length against the absolute supported maximum,
4883         Hostparm.Max_Line_Length.
4884
4885         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
4886         value for the maximum line length is Max_Line_Length (not
4887         Column_Number'Last).
4888         Minor error msg update
4889         (Set_Style_Check_Options): New interface returning error msg
4890         Minor code reorganization (processing for 'M' was out of alpha order)
4891
4892         * switch-c.adb: New interface for Set_Style_Check_Options
4893
4894         * stylesw.ads (Set_Style_Check_Options): New interface returning error
4895         msg.
4896
4897 2005-12-09  Javier Miranda  <miranda@adacore.com>
4898
4899         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
4900         with IP subprogram were only supported if there were limited types.
4901
4902         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
4903         records with IP subprogram were only supported if there were limited
4904         types.
4905
4906 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4907             Eric Botcazou  <ebotcazou@adacore.com>
4908
4909         * trans.c (tree_transform, emit_check): Adjust calls to
4910         build_call_raise, passing the now expected GNAT_NODE argument.
4911
4912         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
4913         source line information than what the current global locus indicates
4914         when appropriate.
4915
4916         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
4917         field has overflowed.
4918         (build_call_raise): Add a GNAT_NODE argument to convey better source
4919         line information than what the current global locus indicates when
4920         appropriate.
4921         (build_component_ref): Adjust call to build_call_raise.
4922
4923 2005-12-09  Pascal Obry  <obry@adacore.com>
4924
4925         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
4926         the iterator is quitting iteration on parent directory.
4927
4928 2005-12-09  Javier Miranda  <miranda@adacore.com>
4929
4930         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
4931         and the assignment to a class-wide object, before the assignment we
4932         generate a run-time check to ensure that the tag of the Target is
4933         covered by the tag of the source.
4934
4935 2005-12-09  Robert Dewar  <dewar@adacore.com>
4936
4937         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
4938         parameter in call to Image_Wide_Character.
4939
4940         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
4941         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
4942         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
4943         annoying FFFE/FFFF inconsistency.
4944
4945 2005-12-09  Robert Dewar  <dewar@adacore.com>
4946             Javier Miranda  <miranda@adacore.com>
4947             Ed Schonberg  <schonberg@adacore.com>
4948
4949         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
4950         of type conversion.
4951         (Find_Interface): New subprogram that given a tagged type and one of its
4952         component associated with the secondary table of an abstract interface
4953         type, return the entity associated with such abstract interface type.
4954         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
4955         base type to create anonymous subtype, because entity may be a locally
4956         declared subtype or generic actual.
4957         (Find_Interface): New subprogram that given a tagged type and one of its
4958         component associated with the secondary table of an abstract interface
4959         type, return the entity associated with such abstract interface type.
4960
4961         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
4962         conversion cannot be handled at compile time. In this case we pass this
4963         information to the expander to generate the appropriate code.
4964
4965 2005-12-09  Robert Dewar  <dewar@adacore.com>
4966             Ed Schonberg  <schonberg@adacore.com>
4967             Gary Dismukes  <dismukes@adacore.com>
4968             Javier Miranda  <miranda@adacore.com>
4969             Hristian Kirtchev  <kirtchev@adacore.com>
4970
4971         * einfo.adb (Itype_Printed): New flag
4972         (Is_Limited_Type): Derived types do not inherit limitedness from
4973         interface progenitors.
4974         (Is_Return_By_Reference_Type): Predicate does not apply to limited
4975         interfaces.
4976
4977         * einfo.ads (Itype_Printed): New flag
4978         Move Is_Wrapper_Package to proper section
4979         Add missing Inline for Is_Volatile
4980
4981         * output.ads, output.adb (Write_Erase_Char): New procedure
4982         (Save/Restore_Output_Buffer): New procedures
4983         (Save/Restore_Output_Buffer): New procedures
4984
4985         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
4986         Add missing support for anonymous access type
4987         (Write_Id): Insert calls to Write_Itype
4988         (Write_Itype): New procedure to output itypes
4989
4990         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
4991         use of "limited" in declaration.
4992
4993         * sinfo.ads, sinfo.adb: 
4994         Formal derived types can carry an explicit "limited" indication.
4995
4996         * sem_ch3.adb: Add with and use of Targparm.
4997         (Create_Component): If Frontend_Layout_On_Target is True and the
4998         copied component does not have a known static Esize, then reset
4999         the size and positional fields of the new component.
5000         (Analyze_Component_Declaration): A limited component is
5001         legal within a protected type that implements an interface.
5002         (Collect_Interfaces): Do not add to the list the interfaces that
5003         are implemented by the ancestors.
5004         (Derived_Type_Declaration): If the parent of the full-view is an
5005         interface perform a transformation of the tree to ensure that it has
5006         the same parent than the partial-view. This simplifies the job of the
5007         expander in order to generate the correct object layout, and it is
5008         needed because the list of interfaces of the full-view can be given in
5009         any order.
5010         (Process_Full_View): The parent of the full-view does not need to be
5011         a descendant of the parent of the partial view if both parents are
5012         interfaces.
5013         (Analyze_Private_Extension_Declaration): If declaration has an explicit
5014         "limited" the parent must be a limited type.
5015         (Build_Derived_Record_Type): A derived type that is explicitly limited
5016         must have limited ancestor and progenitors.
5017         (Build_Derived_Type): Ditto.
5018         (Process_Full_View): Verify that explicit uses of "limited" in partial
5019         and full declarations are consistent.
5020         (Find_Ancestor_Interface): Remove function.
5021         (Collect_Implemented_Interfaces): New procedure used to gather all
5022         implemented interfaces by a type.
5023         (Contain_Interface): New function used to check whether an interface is
5024         present in a list.
5025         (Find_Hidden_Interface): New function used to determine whether two
5026         lists of interfaces constitute a set equality. If not, the first
5027         differing interface is returned.
5028         (Process_Full_View): Improve the check for the "no hidden interface"
5029         rule as defined by AI-396.
5030
5031 2005-12-09  Robert Dewar  <dewar@adacore.com>
5032
5033         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
5034         types, not on record subtypes.
5035         (Freeze_Entity): Code cleanup. Add barrier to the loop
5036         that generates the references for primitive operations. This allows to
5037         remove an unnecessary exception handler.
5038         Code reformatting and comment clean ups.
5039
5040 2005-12-09  Vincent Celier  <celier@adacore.com>
5041
5042         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
5043         If GNAT CHECK is called with a project file, but with no
5044         source on the command line, call gnatcheck with all the compilable
5045         sources of the project.
5046         Take into account the new command Check, for gnatcheck. Treat as for
5047         other ASIS tools: take into account project, specific package Check and
5048         Compiler switches.
5049         For ASIS tools, add the switches in package Compiler for
5050         the invocation of the compiler.
5051
5052         * prj-attr.adb: Add package Check and its attributes
5053
5054         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
5055
5056         * vms_conv.adb (Initialize): Change Params of command Check to
5057         unlimited files.
5058         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
5059         Add data for new command Check
5060
5061         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
5062         ELIM.
5063         Add qualifiers for Check command options
5064         (Command_Type): New command Check
5065
5066 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5067
5068         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
5069         command line switch overruns the output buffer.
5070
5071 2005-12-09  Robert Dewar  <dewar@adacore.com>
5072
5073         * sem_prag.adb: Processing for new pragma Complete_Representation
5074         (Analyze_Pragma, case Debug): Implement two argument form.
5075
5076         * par-prag.adb: Entry for new pragma Complete_Representation
5077         (Prag, case Debug): Recognize two argument form of pragma Debug
5078         New interface for Set_Style_Check_Options.
5079
5080         * sem_ch13.adb: Implement new pragma Complete_Representation.
5081
5082         * snames.adb, snames.ads, snames.h: Entry for new pragma
5083         Complete_Representation.
5084
5085 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5086
5087         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
5088         available user-specified stream attributes on limited parameters to
5089         also test the type directly rather than only its underlying type (for
5090         Ada 95) and, in the case of Ada 2005, to check that the user-specified
5091         attributes are visible at the point of the subprogram declaration.
5092         For Ada 2005, the error message is modified to indicate that the
5093         type's stream attributes must be visible (again, only for -gnat05).
5094
5095 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5096
5097         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
5098         anonymous access types.
5099
5100         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
5101         matching of anonymous access types and anonymous access to subprogram
5102         types. 'R'M 4.9.1 (2/2).
5103
5104 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5105
5106         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
5107         rule prematurely when operands are universal, remaining ambiguities
5108         will be removed during resolution.
5109         Code cleanup.
5110
5111         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
5112         that are Ada 2005 functions.
5113         (Has_Abstract_Interpretation): Subsidiary to
5114         Remove_Conversions, to remove ambiguities caused by abstract operations
5115         on numeric types when operands are universal.
5116
5117 2005-12-09  Robert Dewar  <dewar@adacore.com>
5118
5119         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
5120         for case where spec is categorized.
5121
5122 2005-12-09  Javier Miranda  <miranda@adacore.com>
5123
5124         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
5125         types use the corresponding record type. This was not needed before
5126         the implementation of Ada 2005 synchronized types because
5127         concurrent types were never tagged types in Ada 95.
5128
5129 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5130
5131         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
5132         first subtype of the type of the expression to verify that it is a
5133         legal Time type.
5134
5135 2005-12-09  Robert Dewar  <dewar@adacore.com>
5136
5137         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
5138         decoded names.
5139
5140 2005-12-09  Quentin Ochem  <ochem@adacore.com>
5141             Robert Dewar  <dewar@adacore.com>
5142             Ed Falis  <falis@adacore.com>
5143             Florian Villoing  <villoing@adacore.com>
5144             Thomas Quinot  <quinot@adacore.com>
5145             Arnaud Charlet  <charlet@adacore.com>
5146
5147         * gnat_ugn.texi: Created section "Stack Related Tools"
5148         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
5149         "Stack Related Tools"
5150         Added subsection "Static Stack Usage Analysis"
5151         Added subsection "Dynamic Stack Usage Analysis"
5152         Include documentation of itypes in sprint listing (-gnatG)
5153         Documented gnatbind -D switch (default sec stack size for fixed sec
5154         stacks).
5155         Added Interrupt_State and Persistent_BSS to list of configuration
5156         pragmas.
5157         Add missing doc for maximum value of nnn in -gnatyMnnn
5158
5159         * gnat_rm.texi: Document the AltiVec binding.
5160         Add documentation for pragma Complete_Representation
5161         Shortened an overly long line (> 79 chars)
5162         Clarify documentation of unchecked conversion in implementation
5163         defined cases.
5164         Document two argument form of pragma Debug
5165
5166         * types.ads (Column_Number): Update documentation.
5167
5168         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
5169         library level Finalize_Storage_Only objects (these are not attached to
5170         any finalization list).
5171
5172         * system-mingw.ads: (Underlying_Priorities): Update comment.
5173
5174 2005-12-09  Robert Dewar  <dewar@adacore.com>
5175
5176         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
5177         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
5178         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
5179         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
5180         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
5181         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
5182         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
5183         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
5184         reformatting.
5185
5186 2005-12-09  Robert Dewar  <dewar@adacore.com>
5187
5188         * s-vaflop-vms-alpha.adb: (Ne_F): New function
5189         (Ne_G): New function
5190
5191         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
5192         for tag assignment.
5193         (Rewrite_Comparison): Handle case where operation is not a comparison
5194         and ignore, and also handle type conversion case.
5195
5196 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5197
5198         * exp_aggr.ads: Fix typo in comment.
5199         ???-mark Convert_Aggr_In_Assignment as needing documentation.
5200
5201 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5202
5203         * layout.adb: Replace various uses of byte by storage unit throughout.
5204         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
5205         static size, convert to storage units before returning, to conform to
5206         spec.
5207
5208 2005-12-09  Matthew Gingell  <gingell@adacore.com>
5209
5210         * g-exctra.ads: Fix typo in comment.
5211
5212 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5213
5214         * utils.c: Minor reformatting.
5215
5216 2005-12-09  Robert Dewar  <dewar@adacore.com>
5217
5218         * g-soccon.ads: 
5219         Further comment fixes to make the status of the default file clear
5220
5221         * s-bitops.adb: Clarify comment for Bits_Array
5222
5223 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5224
5225         * Make-lang.in (ada.install-normal): Remove.
5226
5227 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5228
5229         * Make-lang.in: Remove all dependencies on s-gtype.
5230
5231 2005-12-05  Richard Guenther  <rguenther@suse.de>
5232
5233         * utils.c (convert): Use fold_convert where appropriate.
5234
5235 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
5236
5237         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
5238         a period is meant.
5239
5240 2005-12-02  Richard Guenther  <rguenther@suse.de>
5241
5242         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
5243
5244 2005-12-01  Roger Sayle  <roger@eyesopen.com>
5245
5246         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
5247         nodes.
5248
5249 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
5250
5251         * mlib-prj.adb (Build_Library): Initialize Delete.
5252
5253 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
5254
5255         * socket.c: Add extern int h_errno for rtems since networking header
5256         files are not available at this point in a tool bootstrap. Newlib
5257         only has basic C library header files.
5258
5259 2005-11-19  Richard Guenther  <rguenther@suse.de>
5260         Roger Sayle  <roger@eyesopen.com>
5261
5262         PR ada/23717
5263         * misc.c (internal_error_function): Don't use vsprintf to format
5264         the error message text, instead use pp_format_text and the new
5265         pretty printer APIs.  This allows handling of %qs, %w, etc.
5266
5267 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
5268
5269         PR ada/24857
5270         * Makefile.in: Use s-auxdec-empty for RTEMS.
5271
5272 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5273
5274         PR ada/22333
5275         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
5276         a temporary if taking the address of something that is neither
5277         reference, declaration, or constant, since the gimplifier
5278         can't handle that case.
5279
5280 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
5281
5282         PR ada/24857
5283         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
5284         
5285 2005-11-16  Richard Guenther  <rguenther@suse.de>
5286
5287         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
5288
5289 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
5290
5291         PR ada/24855
5292         * raise-gcc.c: Add missing stdarg.h include.
5293  
5294 2005-11-16  Richard Guenther  <rguenther@suse.de>
5295
5296         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
5297         (ada/misc.o): Likewise.
5298
5299 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5300
5301         * g-soccon.ads: Minor reformatting. Update comments.
5302
5303         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
5304         gain visibility on the declaration of struct timeval.
5305
5306         * g-soccon-freebsd.ads,
5307         g-soccon-darwin.ads,
5308         g-soccon-tru64.ads,
5309         g-soccon-aix.ads,
5310         g-soccon-irix.ads,
5311         g-soccon-hpux.ads,
5312         g-soccon-solaris.ads,
5313         g-soccon-vms.ads,
5314         g-soccon-mingw.ads,
5315         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
5316
5317         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
5318         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
5319         g-soccon-linux-x86.ads: New files.
5320
5321         * g-socthi-mingw.adb: 
5322         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
5323
5324         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
5325         (time_t, suseconds_t): New types constructed to match the tv_sec
5326         and tv_usec fields of C struct timeval.
5327         (Timeval): Construct structure in terms of the new types.
5328         (Host_Errno): New function (imported from socket.c), returns last hosts
5329         database error.
5330
5331         * g-socthi-vxworks.adb:  Add error handling circuitry.
5332
5333         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
5334         components of struct timeval.
5335         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
5336         (Check_Selector): In error conditions, clear internal socket sets to
5337         avoid a memory leak.
5338         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
5339         Send_Timeout, Receive_Timeout.
5340
5341         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
5342         the tv_sec and tv_usec fields of C struct timeval.
5343         (Timeval): Construct structure in terms of the new types.
5344         (Host_Errno): New function (imported from socket.c), returns last hosts
5345         database error.
5346
5347         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
5348         hosts database last error code.
5349
5350         * gen-soccon.c: Complete value expansion should not be performed on
5351         TARGET, as it has the form of a math expression, and some components
5352         may be platform-defined macros.
5353         For VxWorks, generate the OK and ERROR values.
5354         New constants giving the sizes of the components of C struct timeval.
5355
5356 2005-11-14  Robert Dewar  <dewar@adacore.com>
5357             Ed Schonberg  <schonberg@adacore.com>
5358
5359         PR ada/18434
5360
5361         * types.ads: Include All_Checks in Suppress_Array
5362
5363         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
5364         not(a=b), since we no longer do this rewriting, and hence it is not
5365         needed.
5366         (Elaboration_Checks_Suppressed): Add special casing to
5367         deal with different cases of static and dynamic elaboration checks (all
5368         checks does not count in the first case, but does in the second).
5369         (Expr_Known_Valid): Do not assume that the result of any arbitrary
5370         function call is valid, since this is not the case.
5371         (Ensure_Valid): Do not apply validity check to a real literal
5372         in a universal or fixed context
5373
5374         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
5375         elementary types using the operator in standard. It is cleaner not to
5376         modify the programmers intent, especially in the case of floating-point.
5377         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
5378         it did not matter because we always rewrote a/=b to not(a=b).
5379         (Expand_Allocator_Expression): For an allocator expression whose nominal
5380         subtype is an unconstrained packed type, convert the expression to its
5381         actual constrained subtype.
5382         Implement warning for <= or >= where < or > not possible
5383         Fix to Vax_Float tests (too early in many routines, causing premature
5384         Vax_Float expansions.
5385
5386         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
5387         to be used with packages and generic packages as well as with
5388         subprograms.
5389         (Suppress): Set All_Checks, but not Elaboration_Check, for case
5390         of pragma Suppress (All_Checks)
5391         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
5392         a string literal for precise control over warnings.
5393         Avoid raise of pragma in case of unrecognized pragma and just return
5394         instead.
5395
5396         * sem_prag.ads: Minor reformatting
5397
5398         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
5399         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
5400         Switch. Do not handle any exception.
5401         Include -gnatwx as part of -gnatg (warn on redundant parens)
5402         Allow optional = after -gnatm
5403         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
5404         longer sets Elaboration_Checks.
5405         Code to set warning mode moved to Sem_Warn
5406         so that it can be shared by pragma processing.
5407
5408         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
5409         statement.
5410
5411         * s-taprop-solaris.adb: 
5412         Change some <= to =, to avoid new warning
5413
5414         * a-exexda.adb, prj-proc.adb: 
5415         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
5416         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
5417
5418 2005-11-14  Robert Dewar  <dewar@adacore.com>
5419
5420         * exp_vfpt.adb: Handle /= case
5421         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
5422         so that we do not get duplicate scaling for fixed point conversions.
5423
5424         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
5425
5426 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5427
5428         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
5429         Increase default priority on Lynx from 15 to 17, and meet the Ada
5430         requirement that Default_Priority be ((Priority'First +
5431         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
5432
5433 2005-11-14  Vincent Celier  <celier@adacore.com>
5434
5435         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5436         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
5437         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
5438         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
5439         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
5440         mlib-tgt-lynxos.adb (DLL_Prefix): New function
5441
5442 2005-11-14  Doug Rupp  <rupp@adacore.com>
5443
5444         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
5445         private part.
5446
5447 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5448
5449         * s-traces-default.adb, s-trafor-default.ads,
5450         s-tratas-default.adb: Fix compilation errors.
5451
5452 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5453
5454         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
5455         raising the exception so the memory used is freed.
5456
5457 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5458
5459         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
5460         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
5461         (convert_address): Update comments and list of platforms using this.
5462
5463         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
5464         no longer used.
5465
5466 2005-11-14  Pascal Obry  <obry@adacore.com>
5467             Vincent Celier  <celier@adacore.com>
5468
5469         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
5470         GNAT.Command_Line.
5471
5472         * memroot.adb: Remove redundant with/use clause on
5473         System.Storage_Elements.
5474
5475 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5476
5477         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
5478         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
5479         related code to a-exexpr.adb
5480         (Save_Occurrence_And_Private): Move GCC EH related code to
5481         a-exexpr-gcc.adb
5482         (Raise_Current_Excep): Add new variable Id with pragma
5483         volatile, to ensure that the variable lives on stack.
5484
5485         * a-exexpr-gcc.adb, raise-gcc.c: New file.
5486
5487         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
5488         from a-except.adb.
5489         Move GCC EH related code to a-exexpr-gcc.adb
5490
5491         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
5492         64-bit Solaris
5493         Split the Linux version of g-soccon into separate variants for 32 and 64
5494         bit platforms.
5495         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
5496         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
5497         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
5498         of host variable $(RANLIB_FLAGS).
5499         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
5500         Code clean up: remove unused/obsolete targets.
5501         (EH_MECHANISM): New variable introduced to differenciate between the
5502         two EH mechanisms statically.
5503         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
5504         (LIBGNAT_OBJS): Add raise-gcc.o
5505         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
5506         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
5507         supports VxWorks 6 RTPs.
5508         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
5509         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
5510
5511         * raise.c: Move all GCC EH-related routines to raise-gcc.c
5512
5513 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5514
5515         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
5516         deferral level, when abort is not allowed, to a later stage (the
5517         Task_Wrapper).
5518         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
5519         it will not get changed by the generated code. It was previously done
5520         in Create_Task.
5521
5522 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5523             Olivier Hainque  <hainque@adacore.com>
5524             Eric Botcazou  <ebotcazou@adacore.com>
5525
5526         * decl.c:
5527         Factor common code to build a storage type for an unconstrained object
5528         from a fat or thin pointer type and a constrained object type.
5529         (annotate_value): Handle BIT_AND_EXPR.
5530         (annotate_rep): Don't restrict the back annotation of inherited
5531         components to the type_annotate_only case.
5532         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
5533         we are not defining the type.
5534         <E_Record_Type>: Likewise.
5535         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
5536         to get advantage of the new maybe_stabilize_reference interface, to
5537         ensure that what we reference is indeed stabilized instead of relying
5538         on assumptions on what the stabilizer does.
5539         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
5540         type imported through a limited_with clause, use its non-limited view.
5541         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
5542         differentiation.
5543         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
5544         of #if sections + explicit comparisons of convention identifiers.
5545         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
5546         before early-returning for certain types when code generation is
5547         disabled.
5548         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
5549         nullification of gnu_expr we do for objects with address clause and
5550         that we are not defining.
5551         (elaborate_expression_1): Do not create constants when creating
5552         variables needed by the debug info: the dwarf2 writer considers that
5553         CONST_DECLs is used only to represent enumeration constants, and emits
5554         nothing for them.
5555         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
5556         object with an address clause into an indirect reference, drop the
5557         initializing expression.
5558         Include "expr.h".
5559         (STACK_CHECK_BUILTIN): Delete.
5560         (STACK_CHECK_PROBE_INTERVAL): Likewise.
5561         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
5562         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
5563         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
5564         corresponding to the renamed object as ignored for debugging purposes.
5565
5566         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
5567         related): For a prefix that is a dereference of a fat or thin pointer,
5568         if there is an actual subtype provided by the front-end, use that
5569         subtype to build an actual type with bounds template.
5570         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
5571         is provided by the front-end, use that subtype to compute the size of
5572         the deallocated object.
5573         (gnat_to_gnu): When adding a statement into an elaboration procedure,
5574         check for a potential violation of a No_Elaboration_Code restriction.
5575         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5576         with extra arguments to control whether to recurse through non-values
5577         and to let the caller know if the stabilization has succeeded.
5578         (gnat_stabilize_reference): Now a simple wrapper around
5579         maybe_stabilize, for common uses without restriction on lvalues and
5580         without need to check for the success indication.
5581         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
5582         pass false instead of 0 as the FORCE argument which is a bool.
5583         (Identifier_to_gnu): Remove checks ensuring that an renamed object
5584         attached to a renaming pointer has been properly stabilized, as no such
5585         object is attached otherwise.
5586         (call_to_gnu): Invoke create_var_decl to create the temporary when the
5587         function uses the "target pointer" return mechanism.
5588         Reinstate conversion of the actual to the type of the formal
5589         parameter before any other specific treatment based on the passing
5590         mechanism. This turns out to be necessary in order for PLACEHOLDER
5591         substitution to work properly when the latter type is unconstrained.
5592
5593         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
5594         common pattern.
5595         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5596         with extra arguments to control whether to recurse through non-values
5597         and to let the caller know if the stabilization has succeeded.
5598
5599         * utils2.c (gnat_build_constructor): Only sort the fields for possible
5600         static output of record constructor if all the components are constant.
5601         (gnat_build_constructor): For a record type, sort the list of field
5602         initializers in increasing bit position order.
5603         Factor common code to build a storage type for an unconstrained object
5604         from a fat or thin pointer type and a constrained object type.
5605         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
5606         types variants, and process special cases of VIEW_CONVERT expressions
5607         as their NOP_EXPR counterpart to ensure we get to the
5608         CORRESPONDING_VARs associated with CONST_DECls.
5609         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
5610         on the right-hand side.
5611
5612         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
5613         a common pattern.
5614         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
5615         are converting back to its original type.
5616         (convert) <JM input>: Fallthrough regular conversion code instead of
5617         extracting the object if converting to a type variant.
5618         (create_var_decl): When a variable has an initializer requiring code
5619         generation and we are at the top level, check for a potential violation
5620         of a No_Elaboration_Code restriction.
5621         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
5622         SIZE and SIZE_UNIT which we need for later back-annotations.
5623         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
5624         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
5625         is an unchecked union.
5626         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
5627         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
5628         main variant, just replace the VIEW_CONVERT_EXPR.
5629         <UNION_TYPE>: Revert 2005-03-02 change.
5630
5631         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
5632
5633         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
5634
5635 2005-11-14  Matthew Heaney  <heaney@adacore.com>
5636
5637         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
5638         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
5639         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
5640         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
5641         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5642         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
5643         Compiles against the spec for ordered maps described in sections
5644         A.18.6 of the most recent (August 2005) AI-302 draft.
5645
5646 2005-11-14  Olivier Hainque  <hainque@adacore.com>
5647
5648         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
5649         to ensure bias adjustments take place when need be and to prevent
5650         occurrences of intermediate overflows.
5651
5652 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5653             Olivier Hainque  <hainque@adacore.com>
5654
5655         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
5656         ia64 HP-UX.
5657
5658         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
5659         tracebacks on ia64 HP-UX and provide explanatory comment.
5660         Enable backtraces on ia64 GNU/Linux.
5661         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
5662         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
5663
5664 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
5665             Javier Miranda  <miranda@adacore.com>
5666
5667         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
5668         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
5669         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
5670         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
5671
5672         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
5673         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
5674         assertions).
5675
5676         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
5677         subprogram that generates the external name associated with a
5678         secondary dispatch table.
5679         (Get_Secondary_DT_External_Name): New subprogram that generates the
5680         external name associated with a secondary dispatch table.
5681
5682 2005-11-14  Emmanuel Briot  <briot@adacore.com>
5683
5684         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
5685         line in the ALI file to include both an instantiation reference, and a
5686         returned value.
5687
5688 2005-11-14  Vincent Celier  <celier@adacore.com>
5689
5690         * clean.adb (Check_Project): Look for Ada code in extending project,
5691         even if Ada is not specified as a language.
5692         Use new function DLL_Prefix for DLL_Name
5693         (Clean_Interface_Copy_Directory): New procedure
5694         (Clean_Library_Directory): New procedure
5695         (Clean_Directory): Remove procedure, no longer used
5696         (Clean_Project): Do not delete any file in an externally built project
5697
5698         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
5699         directory of an extending project, even when there are no Ada source
5700         present.
5701         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
5702         (Set_Ada_Paths.Add.Recursive_Add): Ditto
5703
5704         * mlib-prj.adb (Check_Library): For all library projects, get the
5705         library file timestamp.
5706         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
5707         (Build_Library): Use new function DLL_Prefix for the DLL_Name
5708         (Clean): Remove procedure, no longer used
5709         (Ultimate_Extension_Of): New function
5710         (Build_Library): When cleaning the library directory, only remove an
5711         existing library file and any ALI file of a source of the project.
5712         When cleaning the interface copy directory, remove any source that
5713         could be a source of the project.
5714
5715         * prj.ads, prj.adb (Project_Empty): Add values of new components
5716         Library_TS and All_Imported_Projects.
5717         (Project_Empty): Add values for new components of Project_Data:
5718         Library_ALI_Dir and Display_Library_ALI_Dir
5719
5720         * prj-attr.adb: New project level attribute name Library_ALI_Dir
5721
5722         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
5723         attribute Library_ALI_Dir.
5724         (Check_Library_Attributes): The library directory cannot be the same as
5725         any source directory of the project tree.
5726         (Check_Stand_Alone_Library): The interface copy directory cannot be
5727         the same as any source directory of the project tree.
5728
5729         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
5730         all temporary files.
5731
5732 2005-11-14  Robert Dewar  <dewar@adacore.com>
5733             Ed Schonberg  <schonberg@adacore.com>
5734
5735         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5736         (Check_Elab_Call): A call within a protected body is never an
5737         elaboration call, and does not require checking.
5738         (Same_Elaboration_Scope): Take into account protected types for both
5739         entities.
5740         (Activate_Elaborate_All_Desirable): New procedure
5741
5742         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
5743         desirable
5744
5745         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
5746         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
5747
5748         * lib-writ.ads, lib-writ.adb: 
5749         Implement new AD/ED for Elaborate_All/Elaborate desirable
5750         Use new Elaborate_All_Desirable flag in N_With_Clause node
5751
5752         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
5753         N_Free_Statement nodes.
5754         Define new class N_Subprogram_Instantiation
5755         Add Elaborate_Desirable flag to N_With_Clause node
5756         Add N_Delay_Statement (covering two kinds of delay)
5757
5758         * debug.adb: Introduce d.f flag for compiler
5759         Add -da switch for binder
5760
5761 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5762             Cyrille Comar  <comar@adacore.com>
5763
5764         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
5765         for task component, in the case of a limited aggregate. The enclosed
5766         object declaration will create it earlier. Otherwise, in the case of a
5767         nested aggregate, the object may appear in the wrong scope.
5768         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
5769         (Gen_Assign): If the component being assigned is an array type and the
5770         expression is itself an aggregate, wrap the assignment in a block to
5771         force finalization actions on the temporary created for each row of the
5772         enclosing object.
5773         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
5774         structures are initialized after all discriminants are set so that
5775         they can be accessed even when their offset is dynamic.
5776
5777 2005-11-14  Robert Dewar  <dewar@adacore.com>
5778             Hristian Kirtchev  <kirtchev@adacore.com>
5779
5780         * sem_attr.adb: Implement Machine_Rounding attribute
5781         (Analyze_Access_Attribute): The access attribute may appear within an
5782         aggregate that has been expanded into a loop.
5783         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
5784         'Terminated whenever the prefix is of a task interface class-wide type.
5785         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
5786         the prefix is of a task interface class-wide type.
5787
5788         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
5789         to avoid warnings.
5790
5791         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
5792         Remove pragma Inline for [Unaligned_]Valid.
5793         Add comments that Valid routines do not work for Vax_Float
5794
5795         * exp_attr.adb: Implement Machine_Rounding attribute
5796
5797         * snames.h: Add entry for Machine_Rounding attribute
5798
5799 2005-11-14  Javier Miranda  <miranda@adacore.com>
5800             Robert Dewar  <dewar@adacore.com>
5801             Hristian Kirtchev  <kirtchev@adacore.com>
5802
5803         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
5804         and related): For a prefix that is an explicit dereference of an
5805         access to unconstrained packed array type, annotate the dereference
5806         with an actual subtype so GIGI can make a correct size computation.
5807         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
5808         'Unrestricted_Access, if the designated type is an interface we
5809         add a type conversion to force the displacement of the pointer
5810         to the secondary dispatch table.
5811         Use Universal_Real instead of Long_Long_Float when we need a high
5812         precision float type for the generated code (prevents gratuitous
5813         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
5814         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
5815         'Terminated for task interface class-wide objects. Generate a call to
5816         the predefined dispatching routine used to retrieve the _task_id from
5817         a task corresponding record.
5818         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
5819
5820         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5821         (Check_Dispatching_Operation): Protect the frontend againts
5822         previously detected errors.
5823
5824         * Makefile.rtl: Add new instantiations of system.fat_gen
5825
5826         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
5827         Change name of instantiated package for better consistency
5828         with newly added system.fat_gen instantiations.
5829
5830         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
5831         s-fvagfl.ads: New files.
5832
5833 2005-11-14  Cyrille Comar  <comar@adacore.com>
5834             Thomas Quinot  <quinot@adacore.com>
5835
5836         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
5837         assignment of a value of a tagged type that has been rewritten to a
5838         block statement, it is known by construction that no checks are
5839         necessary for the statements within the block: analyze it with checks
5840         suppressed.
5841         (Expand_N_If_Statement): When killing a dead then-branch in an
5842         if-statement that has elsif_parts, recompute the Current_Value node
5843         for any entity whose value is known from the condition of the first
5844         elsif_part.
5845         (Expand_N_Return_Statement): When returning a mutable record, convert
5846         the return value into its actual subtype in order to help the backend
5847         to return the actual size instead of the maximum. This is another
5848         aftermath of not returning mutable records on the sec-stack anymore.
5849
5850         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
5851         handling of error msg for suspicious reverse range iteration.
5852         (Check_Possible_Current_Value_Condition): Move declaration from body to
5853         spec, to allow this subprogram to be called from exp_ch5.
5854
5855 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5856
5857         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
5858         generate a set of nested array aggregates instead of a single flat
5859         aggregate for multi-dimensional arrays.
5860
5861 2005-11-14  Pascal Obry  <obry@adacore.com>
5862
5863         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
5864         by spawnve is a process handle, no need to convert. Add a parameter
5865         close to control wether the process handle must be closed.
5866         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
5867         a process handle, not need to convert.
5868         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
5869
5870         * g-expect.adb: (Kill): Document the new close parameter.
5871         (Close): Do not release the process handle in the kill there as
5872         waitpid() is using it.
5873         (Send_Signal): Release the process handle.
5874
5875 2005-11-14  Robert Dewar  <dewar@adacore.com>
5876
5877         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
5878         need a high precision float type for the generated code (prevents
5879         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5880         used).
5881
5882         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
5883         need a high precision float type for the generated code (prevents
5884         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5885         used).
5886         (Expand_Width_Attribute): In configurable run-time, the attribute is not
5887         allowed on non-static enumeration subtypes. Force a load error to emit
5888         the correct diagnostic.
5889
5890 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5891             Robert Dewar  <dewar@adacore.com>
5892             Ed Schonberg  <schonberg@adacore.com>
5893
5894         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
5895         subtype to compute the size of the designated object at run-time,
5896         create such a subtype and store it in the Actual_Designated_Subtype
5897         attribute of the N_Free_Statement.
5898         Generate itype for classwide designated object in both cases of
5899         user-specified storage pool: specific and class-wide, not only in the
5900         specific case.
5901         Raise CE when trying to set a not null access type object to null.
5902         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
5903         an explicit loop, because freeze nodes make its position variable.
5904
5905         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
5906         null object.
5907
5908 2005-11-14  Javier Miranda  <miranda@adacore.com>
5909
5910         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
5911         Build_Stream_Procedure): Add the null-excluding attribute to the first
5912         formal.
5913         This has no semantic meaning under Ada95 mode but it is a
5914         requirement under Ada05 mode.
5915
5916         * par-ch3.adb (P_Access_Definition): Addition of warning message if
5917         the null exclusion is used under Ada95 mode
5918         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
5919         (P_Access_Definition): Remove assertion that forbids the use of
5920         the null-exclusion feature in Ada95.
5921
5922 2005-11-14  Robert Dewar  <dewar@adacore.com>
5923
5924         * impunit.adb: Exclude container helper units not intended for use by
5925         users.
5926
5927 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5928
5929         * freeze.adb (Freeze_Entity): For an access formal that is an access
5930         to subprogram, freeze the anonymous subprogram type at the same time,
5931         to prevent later freezing in the wrong scope, such as the enclosing
5932         subprogram body.
5933         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
5934         subprogram whenever available.
5935
5936 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5937
5938         PR ada/23732
5939         * gnatvsn.ads (Library_Version): Bump to 4.1
5940
5941 2005-11-14  Robert Dewar  <dewar@adacore.com>
5942
5943         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
5944         Storage_Offset to avoid wrap around causing invalid results.
5945
5946 2005-11-14  Pascal Obry  <obry@adacore.com>
5947
5948         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
5949         cross-compiler.
5950         (Scan_Bind_Arg): Fail with an error message if -M option is used
5951         on a native compiler.
5952
5953 2005-11-14  Robert Dewar  <dewar@adacore.com>
5954             Vincent Celier  <celier@adacore.com>
5955
5956         * gprep.adb: Implement -C switch to scan comments
5957
5958         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
5959
5960         * scans.ads: Comment updates (including new use of Tok_Comment in
5961         preprocessing)
5962
5963         * opt.ads: Add documentation for flags that are used by gprmake,
5964         currently and in the next version of gprmake.
5965         (Verbosity_Level): New variable
5966         Add Replace_In_Comments switch
5967
5968         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
5969         and -vm.
5970         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
5971
5972 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5973
5974         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
5975         message, friendlier.
5976
5977 2005-11-14  Robert Dewar  <dewar@adacore.com>
5978
5979         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
5980
5981 2005-11-14  Doug Rupp  <rupp@adacore.com>
5982
5983         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
5984
5985 2005-11-14  Robert Dewar  <dewar@adacore.com>
5986
5987         * interfac.ads: Change declarations of IEEE float types so that we no
5988         longer need a separate version of this package for VMS.
5989
5990 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5991
5992         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
5993         internal entity created for the declaration of a child subprogram body
5994         with no spec as coming from source, to generate proper cross-reference
5995         information.
5996
5997 2005-11-14  Vincent Celier  <celier@adacore.com>
5998
5999         * make.adb (Compile_Sources): Change verbose message to minimum
6000         verbosity level High for "is in an Ada library", "is a read-only
6001         library" and "is an internal library",
6002         (Create_Binder_Mapping_File): Path name of ALI file for library project
6003         must include the library directory, not the object directory.
6004         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
6005         for new switches -vl, -vm and -vh.
6006         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
6007         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
6008         (Compile_Sources): Do not attempt to compile if an ALI file is missing
6009         in a project that is externally built.
6010         (Compute_All_Imported_Projects): New procedure
6011         (Gnatmake): Check if importing libraries should be regenerated because
6012         at least an imported library is more recent.
6013         (Initialize): For each project compute the list of the projects it
6014         imports directly or indirectly.
6015         (Add_Library_Search_Dir): New procedure, used in place of
6016         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
6017         put in the search paths.
6018         (Add_Source_Search_Dir): New procedure, used in place of
6019         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
6020         put in the search paths.
6021         (Mark_Directory): Resolve the absolute path the directory before marking
6022         it.
6023
6024         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
6025         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
6026         Switch. Do not handle any exception.
6027         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
6028         so that the switch is recognized as valid.
6029         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
6030
6031 2005-11-14  GNAT Script  <nobody@adacore.com>
6032
6033         * Make-lang.in: Makefile automatically updated
6034
6035 2005-11-14  Pascal Obry  <obry@adacore.com>
6036
6037         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
6038         used.
6039         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
6040         In both cases the last argument was dropped.
6041
6042 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
6043
6044         * namet.h: (Column_Numbe): New type.
6045         (Get_Column_Number): Define to sinput__get_column_number.
6046         (Instantiation): Define to sinput__instantiation.
6047         (Get_Column_Number): Declare.
6048         (Instantiation): Likewise.
6049
6050 2005-11-14  Robert Dewar  <dewar@adacore.com>
6051
6052         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
6053         syntax, which could cause compiler hangs.
6054
6055 2005-11-14  Vincent Celier  <celier@adacore.com>
6056
6057         * prj-ext.adb: Take into account new environment variable
6058         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
6059         are defined.
6060         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
6061         normalize its path name, making it absolute and resolving symbolic
6062         links, and replace the original if resolved path is different.
6063
6064 2005-11-14  Vincent Celier  <celier@adacore.com>
6065
6066         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
6067         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
6068
6069 2005-11-14  Emmanuel Briot  <briot@adacore.com>
6070
6071         * prj-pp.adb (Print): Do not output the with statement if the
6072         associated name is empty, which happens for virtual extending projects.
6073         (Print): Preserve the "extends all" attribute when printing the project.
6074
6075         * prj-tree.ads (String_Value_Of): Add comment about returned value for
6076         a virtual extending project.
6077
6078 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6079
6080         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
6081         rhs of an assignment even if the type is unconstrained, when the
6082         context is non-expanding.
6083         In an inlined body, if the context type is private,
6084         resolve with its full view, which must be a composite type.
6085
6086 2005-11-14  Robert Dewar  <dewar@adacore.com>
6087             Ed Schonberg  <schonberg@adacore.com>
6088
6089         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
6090         Do not give obsolescent warning on with of subprogram (since we
6091         diagnose calls)
6092         (Analyze_With_Clause): Add test for obsolescent package
6093         (Install_Context_Clauses): If the unit is the body of a child unit, do
6094         not install twice the private declarations of the parents, to prevent
6095         circular lists of Use_Clauses in a parent.
6096         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
6097         compiling body of child unit.
6098         Use new class N_Subprogram_Instantiation
6099         (Expand_With_Clause): If this is a private with_clause for a child unit,
6100         appearing in the context of a package declaration, then the implicit
6101         with_clauses generated for parent units are private as well.
6102         (License_Check): Do not generate message if with'ed unit is internal
6103
6104 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6105             Ed Schonberg  <schonberg@adacore.com>
6106             Thomas Quinot  <quinot@adacore.com>
6107
6108         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
6109         names are internal, because they will not have a corresponding partner
6110         in the actual package.
6111         (Analyze_Formal_Package): Move the setting of the formal package spec's
6112         Generic_Parent field so that it occurs prior to analyzing the package,
6113         to allow proper operation of Install_Parent_Private_Declarations.
6114         (Analyze_Package_Instantiation): Set the instantiated package entity's
6115         Package_Instantiation field.
6116         (Get_Package_Instantiation_Node): Move declaration to package spec.
6117         Retrieve the N_Package_Instantiation node when the Package_Instantiation
6118         field is present.
6119         (Check_Generic_Child_Unit): Within an inlined call, the only possible
6120         instantiation is Unchecked_Conversion, for which no parents are needed.
6121         (Inline_Instance_Body): Deinstall and record the use_clauses for all
6122         parent scopes of a scope being removed prior to inlining an instance
6123         body.
6124         (Analyze_Package_Instantiation): Do not perform front-end inlining when
6125         the current context is itself an instance within a non-instance child
6126         unit, to prevent scope stack errors.
6127         (Save_References): If the node is an aggregate that is an actual in a
6128         call, rewrite as a qualified expression to preserve some type
6129         information, to resolve possible ambiguities in the instance.
6130         (Instance_Parent_Unit): New global variable to record the ultimate
6131         parent unit associated with a generic child unit instance (associated
6132         with the existing Parent_Unit_Visible flag).
6133         (type Instance_Env): New component Instance_Parent_Unit for stacking
6134         parents recorded in the global Instance_Parent_Unit.
6135         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
6136         stack.
6137         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
6138         it's not a top-level unit, and only do this if Instance_Parent_Unit is
6139         not already set. Replace test of Is_Child_Unit with test of parent's
6140         scope against package Standard. Add comments and a ??? comment.
6141         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
6142         on a child instance parent to test that the parent equals
6143         Instance_Parent rather than simply checking that the unit is not a
6144         child unit.
6145         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
6146         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
6147         a formal interface are ancestors of the corresponding actual.
6148         (Validate_Formal_Interface_Type): Additional legality checks.
6149         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
6150         interface types with ancestors.
6151         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
6152         to diagnose attempts to use generic within its own declaration.
6153
6154 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6155             Javier Miranda  <miranda@adacore.com>
6156
6157         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
6158         discriminant.
6159         (Build_Private_Derived_Type): The entity of the created full view of the
6160         derived type does not come from source. If after installing the private
6161         declarations of the parent scope the parent is still private, use its
6162         full view to construct the full declaration of the derived type.
6163         (Build_Derived_Record_Type): Relax the condition that controls the
6164         execution of the check that verifies that the partial view and
6165         the full view agree in the set of implemented interfaces. In
6166         addition, this test now only takes into account the progenitors.
6167         (Derive_Interface_Subprograms): No need to derive subprograms
6168         of ancestors that are interfaces.
6169         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
6170         associated code.
6171         Change name Is_Package to Is_Package_Or_Generic_Package
6172         (Complete_Subprograms_Derivation): Handle the case in which the full
6173         view is a transitive derivation of the ancestor of the partial view.
6174         (Process_Full_View): Rename local subprogram Find_Interface_In_
6175         Descendant to Find_Ancestor_Interface to leave the code more clear.
6176         Remove wrong code that avoids the generation of an error message
6177         when the immediate ancestor of the partial view is an interface.
6178         In addition some minor reorganization of the code has been done to
6179         leave it more clear.
6180         (Analyze_Type_Declaration): If type has previous incomplete tagged
6181         partial view, inherit properly its primitive operations.
6182         (Collect_Interfaces): Make public, for analysis of formal
6183         interfaces.
6184         (Analyze_Interface_Declaration): New procedure for use for regular and
6185         formal interface declarations.
6186         (Build_Derived_Record_Type): Add support for private types to the code
6187         that checks if a tagged type implements abstract interfaces.
6188         (Check_Aliased_Component_Type): The test applies in the spec of an
6189         instance as well.
6190         (Access_Type_Declaration): Clean up declaration of malformed type
6191         declared as an access to its own classwide type, to prevent cascaded
6192         crash.
6193         (Collect_Interfaces): For private extensions and for derived task types
6194         and derived protected types, the parent may be an interface that must
6195         be included in the interface list.
6196         (Access_Definition): If the designated type is an interface that may
6197         contain tasks, create Master_Id for it before analyzing the expression
6198         of the declaration, which may be an allocator.
6199         (Record_Type_Declaration): Set properly the interface kind, for use
6200         in allocators, the creation of master id's for task interfaces, etc.
6201
6202 2005-11-14  Javier Miranda  <miranda@adacore.com>
6203             Ed Schonberg  <schonberg@adacore.com>
6204
6205         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
6206         omitted in case of stream attribute subprograms.
6207         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
6208         appear immediately after a subprogram body, when there is no previous
6209         subprogram declaration.
6210         Change name Is_Package to Is_Package_Or_Generic_Package
6211         (Process_Formals): A non null qualifier on a non null named access
6212         type is not an error, and is a warning only if Redundant_Constructs
6213         are flagged.
6214
6215 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6216             Ed Schonberg  <schonberg@adacore.com>
6217
6218         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
6219         nested within Analyze_Package_Specification to install the private
6220         declarations and use clauses within each of the parent units of a
6221         package instance of a generic child package.
6222         (Analyze_Package_Specification): When entering a private part of a
6223         package associated with a generic instance or formal package, the
6224         private declarations of the parent must be installed (by calling new
6225         procedure Install_Parent_Private_Declarations).
6226         Change name Is_Package to Is_Package_Or_Generic_Package
6227         (Preserve_Full_Attributes): For a synchronized type, the corresponding
6228         record is absent in a generic context, which does not indicate a
6229         compiler error.
6230
6231 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6232
6233         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
6234         not try to rewrite a renamed stream attribute, because the operations
6235         on the type may not have been generated.
6236         Handle properly a renaming_as_body generated for a stream operation
6237         whose default is abstract because the object type itself is abstract.
6238         (Find_Type): If the type is incomplete and appears as the prefix of a
6239         'Class reference, it is tagged, and its list of primitive operations
6240         must be initialized properly.
6241         (Chain_Use_Clauses): When chaining the use clauses that appear in the
6242         private declaration of a parent unit, prior to compiling the private
6243         part of a child unit, find on the scope stack the proper parent entity
6244         on which to link the use clause.
6245         (Note_Redundant_Use): Emit a warning when a redundant use clause is
6246         detected.
6247         (Analyze_Object_Renaming): An attribute reference is not a legal object
6248         if it is not a function call.
6249
6250 2005-11-14  Robert Dewar  <dewar@adacore.com>
6251             Ed Schonberg  <schonberg@adacore.com>
6252
6253         * sem_eval.adb: Implement d.f flag
6254         (Subtype_Statically_Match): A generic actual type has unknown
6255         discriminants when the corresponding actual has a similar partial view.
6256         If the routine is called to validate the signature of an inherited
6257         operation in a child instance, the generic actual matches the full view,
6258
6259 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
6260             Ed Schonberg  <schonberg@adacore.com>
6261             Robert Dewar  <dewar@adacore.com>
6262             Thomas Quinot  <quinot@adacore.com>
6263
6264         * sem_res.adb (Resolve_Call): Provide a better error message whenever
6265         a procedure call is used as a select statement trigger and is not an
6266         entry renaming or a primitive of a limited interface.
6267         (Valid_Conversion): If the operand has a single interpretation do not
6268         remove address operations.
6269         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
6270         statement to inhibit warning.
6271         (Resolve_Unary_Op): Do not produce a warning when
6272         processing an expression of the form -(A mod B)
6273         Use Universal_Real instead of Long_Long_Float when we need a high
6274         precision float type for the generated code (prevents gratuitous
6275         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
6276         (Resolve_Concatenation_Arg): Improve error message when argument is an
6277         ambiguous call to a function that returns an array.
6278         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
6279         there is an implicit operator in the given scope if we are within an
6280         instance: legality check has been performed on the generic.
6281         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
6282         after resolving operand, to avoid false warnings on overloaded calls.
6283
6284 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6285             Javier Miranda  <miranda@adacore.com>
6286
6287         PR ada/15604
6288
6289         * sem_type.adb (Covers): In an inlined body, a composite type matches
6290         a private type whose full view is a composite type.
6291         (Interface_Present_In_Ancestor): Protect the frontend against
6292         previously detected errors to ensure that its compilation
6293         with assertions enabled gives the same output that its
6294         compilation without assertions.
6295         (Interface_Present_In_Ancestor): Add support for private types.
6296         Change name In_Actual to In_Generic_Actual (clean up)
6297         (Disambiguate): New predicate In_Actual, to recognize expressions that
6298         appear in the renaming declaration generated for generic actuals, and
6299         which must be resolved in the outer context.
6300
6301 2005-11-14  Robert Dewar  <dewar@adacore.com>
6302             Thomas Quinot  <quinot@adacore.com>
6303             Hristian Kirtchev  <kirtchev@adacore.com>
6304             Ed Schonberg  <schonberg@adacore.com>
6305
6306         * sem_util.ads, sem_util.adb: Change name Is_Package to
6307         Is_Package_Or_Generic_Package.
6308         (Check_Obsolescent): New procedure.
6309         (Set_Is_Public): Remove obsolete junk test.
6310         (Set_Public_Status): Do not set Is_Public on an object whose declaration
6311         occurs within a handled_sequence_of_statemets.
6312         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
6313         for a parameterless procedure.
6314         (Enter_Name): Recognize renaming declarations created for private
6315         component of a protected type within protected operations, so that
6316         the source name of the component can be used in the debugger.
6317
6318 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6319             Robert Dewar  <dewar@adacore.com>
6320
6321         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
6322         of a generic subprogram are not visible outside the body.
6323         (Set_Warning_Switch): New procedure (code to set warning mode moved
6324         here from Switch.C so that it can be shared by pragma processing.
6325         (Check_References): Special case warning for non-modified non-imported
6326         volatile objects.
6327         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
6328         form with a string literal argument
6329
6330 2005-11-14  Javier Miranda  <miranda@adacore.com>
6331
6332         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
6333         anonymous access.
6334         (Write): Addition of "not null" to the anonymous access.
6335         (Read): Addition of "not null" to the anonymous access.
6336         (Write): Addition of "not null" to the anonymous access.
6337
6338         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
6339         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
6340         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
6341         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
6342         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
6343         "not null" to the anonymous access.
6344
6345 2005-11-14  Robert Dewar  <dewar@adacore.com>
6346
6347         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
6348         offset values
6349
6350 2005-11-14  Vincent Celier  <celier@adacore.com>
6351
6352         * switch.adb (Bad_Switch): New procedure
6353         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
6354         message when in error.
6355
6356         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
6357         Too_Many_Output_Files): Remove declarations, no longer used.
6358         (Scan_Nat): New parameter Switch
6359         (Scan_Pos): Ditto
6360         (Bad_Switch): New procedure
6361
6362         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
6363         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
6364         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
6365         to Osint.Fail. Do not handle any exception.
6366
6367 2005-11-14  Vincent Celier  <celier@adacore.com>
6368
6369         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
6370         designates a non existent directory.
6371
6372 2005-11-14  Robert Dewar  <dewar@adacore.com>
6373
6374         * xgnatugn.adb: Replace invalid membership test by 'Valid
6375
6376 2005-11-14  Vincent Celier  <celier@adacore.com>
6377
6378         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
6379         there is no object directory.
6380
6381 2005-11-14  Robert Dewar  <dewar@adacore.com>
6382
6383         * usage.adb: Minor adjustment to output format, use nn instead of nnn
6384         (so that -gnateInnn does not run into next column)
6385
6386 2005-11-14  Ed Falis  <falis@adacore.com>
6387
6388         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
6389         "constrained"
6390
6391 2005-11-14  Cyrille Comar  <comar@adacore.com>
6392
6393         * s-chepoo.ads: Add comments on Dereference.
6394         Remove unnecessary inherited abstract primitives.
6395         Cosmetic cleanup.
6396
6397 2005-11-14  Robert Dewar  <dewar@adacore.com>
6398
6399         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
6400         node parameter, not needed, since it is available as Declaration_Node.
6401
6402 2005-11-14  Geert Bosch  <bosch@adacore.com>
6403
6404         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
6405         grammatically correct.
6406
6407 2005-11-14  Vincent Celier  <celier@adacore.com>
6408
6409         * s-fileio.ads: Correct spelling error in comment
6410
6411 2005-11-14  Cyrille Comar  <comar@adacore.com>
6412             Robert Dewar  <dewar@adacore.com>
6413             Vincent Celier  <celier@adacore.com>
6414             Ben Brosgol  <brosgol@adacore.com>
6415             Jose Ruiz  <ruiz@adacore.com>
6416             Pascal Obry  <obry@adacore.com>
6417
6418         * gnat_ugn.texi: 
6419         Document that -fstack-check is needed for strict compliance with the
6420         Ada 95 Reference Manual.
6421         Correct reference to VAX systems to meet HP guidelines
6422         Add documentation for new gnatmake switches -vl, -vm and -vh
6423         Replace DEC Ada by HP Ada
6424         Replace DIGITAL by HP
6425         Remove empty section on tools in compatibility section
6426         Clarify the Windows convention semantics.
6427         Document the Win32 calling convention.
6428         The Stdcall, Win32 and DLL convention are synonyms.
6429         Add a note in -gnatR description about zero size record components
6430         Note on new >= and <= warnings for -gnatwc
6431         Document that equal sign after -gnatm is optional.
6432         Note that strip is working fine on DLL built with a Library
6433         Project. The restriction apply only to DLL built with gnatdll.
6434         Update section about the way to debug a DLL.
6435         Update information about the DLL convention.
6436         Document -C switch for gnatprep
6437         Document new attribute Library_ALI_Dir
6438         Update elaboration doc to include implicit Elaborate pragmas now
6439         generated for subprogram instantiations.
6440         Document limitation on executable names that include spaces for --GCC,
6441         --GNATBIND, and --GNATLINK switches.
6442         Document that -w causes -gnatws to be added at start of gcc switches
6443
6444         * gnat_rm.texi: Document that -mieee is needed for generating infinite
6445         and NaN values in case of overflow on machines that are not fully
6446         compliant with the IEEE floating-point standard.
6447         Create a section describing the set of compiler options needed for
6448         strict compliance with the Ada 95 Reference Manual.
6449         Add documentation for pragma Obsolescent applied to a package
6450         Clarify potential issues of mixed language programs related to the
6451         I/O buffering enabling in the elaboration of the GNAT runtime.
6452         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
6453         This documentation only patch adds extra documentsion for pragma
6454         Restrictions (No_Elaboration_Code), explaining why it is not possible
6455         to document this restriction in terms of allowed source constructs.
6456         Document string literal form of pragma Warnings
6457         Document new attribute Library_ALI_Dir
6458         Add documentation on stable attributes in project files that was missing
6459
6460         * gnat-style.texi: Indicate that paragraphs within a single comment
6461         should be separated by empty comment lines
6462
6463         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
6464         /05 respectively)
6465
6466         * bindusg.adb: Minor cleanup, put -m before -M for consistency
6467
6468 2005-11-14  Robert Dewar  <dewar@adacore.com>
6469
6470         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
6471         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
6472         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
6473         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
6474         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
6475         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
6476         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
6477         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
6478         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
6479         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
6480         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
6481         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
6482         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
6483         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
6484         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
6485         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
6486         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
6487         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
6488         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
6489         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
6490         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
6491         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
6492         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
6493         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
6494         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
6495         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
6496         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
6497         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
6498         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
6499         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
6500         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
6501         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
6502         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
6503         system-interix.ads, system-solaris-sparc.ads,
6504         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
6505         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
6506         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
6507         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
6508         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
6509         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
6510         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
6511         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
6512         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
6513         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
6514         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
6515         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
6516         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
6517         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
6518         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
6519         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
6520         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
6521         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
6522         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
6523         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
6524         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
6525         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
6526         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6527         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
6528         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
6529         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
6530         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
6531         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
6532         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
6533         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
6534         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
6535         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
6536         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
6537         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
6538         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
6539         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
6540         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
6541         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
6542         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
6543         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
6544         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
6545         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
6546         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
6547         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
6548         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
6549         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
6550         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
6551         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
6552         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
6553         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
6554         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
6555         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
6556         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
6557         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
6558         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
6559         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
6560         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
6561         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
6562         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
6563         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
6564         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
6565         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
6566         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
6567         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
6568         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
6569         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
6570         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
6571         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
6572         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
6573         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
6574         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
6575         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
6576         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
6577         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
6578         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
6579         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
6580         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
6581         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
6582         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
6583         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
6584         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
6585         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
6586         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
6587         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
6588         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
6589         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
6590         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
6591         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
6592         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
6593         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
6594         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
6595         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
6596         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
6597         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
6598         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
6599         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
6600         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
6601         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
6602         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
6603         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
6604         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
6605         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
6606         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
6607         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
6608         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
6609         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
6610         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
6611         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
6612         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
6613         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
6614         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
6615         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
6616         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
6617         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
6618         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
6619         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
6620         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
6621         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
6622         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
6623         a-numaux-darwin.ads, a-numaux-darwin.adb,
6624         a-swuwha.ads, a-stunha.ads: Minor reformatting
6625
6626 2005-11-14  Robert Dewar  <dewar@adacore.com>
6627
6628         PR ada/18434
6629         * osint-m.adb: Add pragma Elaborate_All for Osint
6630
6631 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
6632
6633         PR ada/23995
6634         * trans.c (call_to_gnu): Restore statement lost in translation.
6635
6636 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6637
6638         * init.c: Use the Linux-specific section for the IA-64/Linux target.
6639         (__gnat_adjust_context_for_raise): Add conditional code so that the
6640         IA-64 is also supported.
6641
6642 2005-11-03  James E Wilson  <wilson@specifix.com>
6643
6644         PR ada/23427
6645         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6646         TREE_OVERFLOW check.
6647
6648 2005-09-21  Olivier Hainque  <hainque@adacore.com>
6649
6650         PR ada/22418
6651         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
6652         as we create them to store a size in bits.
6653
6654 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6655
6656         PR ada/21937
6657         PR ada/22328
6658         PR ada/22381
6659         PR ada/22383
6660         PR ada/22419
6661         PR ada/22420
6662         * utils2.c (build_return_expr): New helper function.
6663         * gigi.h (build_return_expr): Declare it.
6664         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
6665         of manually building the RETURN_EXPR tree.
6666         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
6667         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
6668         build_binary_op for the "target pointer" case.  Use build_return_expr
6669         instead of manually building the RETURN_EXPR tree.
6670
6671 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
6672
6673         PR ada/23788
6674         * s-tpinop.ads: Make this unit Preelaborate.
6675
6676 2005-09-16  Andreas Jaeger  <aj@suse.de>
6677
6678         * socket.c: Add string.h for memcpy.
6679
6680 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
6681
6682         * dec-io.ads, dec-io.adb: Removed, no longer used.
6683
6684 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6685
6686         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
6687
6688         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
6689         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
6690         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
6691         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
6692         dependent units are Preelaborate.
6693         (Initialize): Call Interrupt_Managemeent.Initialize and
6694         OS_Primitives.Initialize to ensure proper initialization of this unit.
6695         Remove use of System.Soft_Links
6696         Make this unit Preelaborate.
6697
6698         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
6699         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
6700         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
6701         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
6702         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
6703         s-tratas.ads, s-tasinf.ads: Minor reformatting.
6704         Add pragma Preelaborate, since these packages are suitable for this
6705         categorization.
6706         Update comments.
6707
6708         * s-traent-vms.ads, s-intman-dummy.adb,
6709         s-taprop-dummy.adb: Make this unit Preelaborate.
6710
6711         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
6712         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
6713         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
6714         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
6715         s-intman-solaris.adb, s-intman-irix-athread.adb,
6716         s-intman-irix.adb: Mark this unit Preelaborate.
6717         (Initialize): New procedure.
6718         Update comments.
6719
6720         * s-taspri-linux.ads: Removed.
6721
6722         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
6723         as done by other implementations (e.g. posix).
6724
6725         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
6726         responsible for deferring abort.
6727         Mark this unit Preelaborate.
6728
6729         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
6730         proper initialization of the tasking run-time.
6731
6732         * s-tasdeb.ads: Mark this unit Preelaborate.
6733         (Known_Tasks): Add explicit default value to avoid elaboration code.
6734
6735         * s-inmaop-vms.adb (Elaboration code): Add call to
6736         Interrupt_Management.Initialize since the elaboration code depends on
6737         proper initialization of this package.
6738
6739         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
6740         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
6741         s-osprim-posix.adb: Make this unit Preelaborate.
6742
6743         * a-calend.adb: Add call to OS_Primitives.Initialize
6744
6745         * a-elchha.adb: Update use of Except.Id.Full_Name.
6746         Minor reformatting.
6747         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
6748
6749         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
6750         Move with clauses outside Warnings Off now that dependent units are
6751         Preelaborate.
6752         Use raise xxx with "..."; Ada 2005 form.
6753
6754         * a-taside.ads, a-taside.adb:
6755         Remove some dependencies, to make it easier to make this unit truly
6756         Preelaborate.
6757         Rewrite some code to be conformant with Preelaborate rules.
6758
6759         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
6760         marked Preelaborate in the future.
6761
6762         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
6763         these units Preelaborate.
6764
6765         * s-exctab.adb: Update use of Except.Id.Full_Name.
6766
6767         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
6768         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
6769         Set_Exc_Stack_Addr): Removed, no longer used.
6770         Remove reference to *Machine_State_Addr*, no longer needed.
6771
6772         * s-stalib.ads: Mark this unit as Preelaborate[_05].
6773         (Exception_Data): Full_Name is now a System.Address so that this unit
6774         can be made Preelaborate.
6775         Clean up/simplify code thanks to Full_Name being a System.Address.
6776         Remove obsolete pragma Suppress (All_Checks), no longer needed.
6777
6778         * s-taskin.ads, s-taskin.adb:
6779         Move with clauses outside Warnings Off now that dependent units are
6780         Preelaborate.
6781         Make this unit Preelaborate.
6782         (Initialize): New proceduure, replace elaboration code and makes the
6783         set up of the tasking run-time cleaner.
6784         (Detect_Blocking): Now a function instead of a deferred boolean, to
6785         obey Preelaborate rules.
6786
6787         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
6788         soft links, no longer used.
6789
6790         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
6791         packages are suitable for this categorization.
6792
6793         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
6794         since we compile run-time sources in Ada 2005 mode.
6795         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
6796         avoid having s-taprop*.adb depend on s-soflin and to avoid code
6797         duplication.
6798         Remove reference to *Machine_State_Addr*, no longer needed.
6799
6800 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6801
6802         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
6803         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6804         Remove reference to System.Exceptions.
6805
6806         * s-mastop-x86.adb: Removed, no longer used.
6807
6808         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
6809
6810         * a-excach.adb: Minor reformatting.
6811
6812         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
6813         instead fix new warnings that were hidden by this change.
6814         (AAA, ZZZ): Removed, replaced by...
6815         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
6816         are used instead of constants, to help make Ada.Exception truly
6817         preelaborate.
6818         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
6819         Raise_Storage_Error): File is now a System.Address, to simplify code.
6820         (Elab code): Removed, no longer used.
6821         (Null_Occurrence): Remove Warnings Off and make this construct
6822         preelaborate.
6823         Remove code related to front-end zero cost exception handling, since
6824         it is no longer used.
6825         Remove -gnatL/-gnatZ switches.
6826
6827         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
6828         Update use of Except.Msg.
6829
6830         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
6831         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
6832         to front-end zero cost exception handling, since it is no longer used.
6833         Remove -gnatL/-gnatZ switches.
6834
6835         * lib-writ.ads: Minor reformatting
6836         Remove doc of UX
6837
6838         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
6839
6840         * Make-lang.in: Remove references to s-except.ads
6841
6842         * s-except.ads: Removed, no longer used.
6843
6844         * s-mastop.ads, s-mastop.adb:
6845         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6846         Remove reference to System.Exceptions.
6847
6848         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
6849         switch-b.adb: Remove code related to front-end zero cost exception
6850         handling, since it is no longer used.
6851         Remove -gnatL/-gnatZ switches.
6852
6853 2005-09-01  Robert Dewar  <dewar@adacore.com>
6854             Gary Dismukes  <dismukes@adacore.com>
6855             Javier Miranda  <miranda@adacore.com>
6856
6857         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
6858         type by valid test and generate warning.
6859         (Tagged_Membership): Generate call to the run-time
6860         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
6861         Change formal name Subtype_Mark to Result_Definition in several calls to
6862         Make_Function_Specification.
6863         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
6864         check for proper accessibility of the operand of a class-wide allocator.
6865         The check can be left out if checks are suppressed or if the expression
6866         has a specific tagged type whose level is known to be safe.
6867
6868         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
6869         generates the run-time check associated with null-excluding entities.
6870         (Expand_N_Return_Statement): Add tests to determine if the accessibility
6871         check on the level of the return expression of a class-wide function
6872         can be elided. The check usually isn't needed if the expression has a
6873         specific type (unless it's a conversion or a formal parameter). Also
6874         add a test for whether accessibility checks are suppressed. Augment
6875         the comments to describe the conditions for performing the check.
6876
6877 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
6878             Javier Miranda  <miranda@adacore.com>
6879             Gary Dismukes  <dismukes@adacore.com>
6880             Ed Schonberg  <schonberg@adacore.com>
6881
6882         * a-tags.adb (IW_Membership): Give support to
6883         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
6884         subprogram has been extended to look for the tag in the ancestors tag
6885         table.
6886         Update the structure of the GNAT Dispatch Table to reflect the
6887         additional two tables used in dispatching selects.
6888         Introduce appropriate array types and record components in
6889         Type_Specific_Data to reflect the two tables.
6890         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
6891         the TSD of a tag, indexed by position.
6892         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
6893         operation kind in the TSD of a tag, indexed by position.
6894
6895         * a-tags.ads: Introduce an enumeration type to capture different
6896         primitive operation kinds. Define a constant reflecting the number of
6897         predefined primitive operations.
6898         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
6899         of an entry wrapper.
6900         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
6901         callable entity of a primitive operation.
6902
6903         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
6904         primitive operations used in dispatching selects for limited
6905         interfaces, limited tagged, task and protected types what implement a
6906         limited interface.
6907         (Freeze_Type): Generate the bodies of the primitive operations used in
6908         dispatching selects for limited tagged, task and protected types that
6909         implement a limited interface. Generate statements to populate the two
6910         auxiliary tables used for dispatching in select statements.
6911         (Freeze_Record_Type): Add call to initialize the dispatch table entries
6912         associated with predefined interface primitive operations.
6913         (Build_Dcheck_Function): Change Set_Subtype_Mark to
6914         Set_Result_Definition.
6915         (Build_Variant_Record_Equality): Change Subtype_Mark to
6916         Result_Definition.
6917         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
6918         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
6919         (Build_Assignment): Simplify the code that adds the run-time-check.
6920         (Expand_N_Object_Declaration): Code cleanup.
6921
6922         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
6923         entries when there is a protected type that implements a limited
6924         interface.
6925
6926         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
6927         common routines used in expansion of dispatching selects.
6928         (Add_Private_Declarations): Select the appropriate protection type when
6929         there is a protected type that implements a limited interface.
6930         (Build_Parameter_Block): Generate a wrapped parameter block.
6931         (Build_Protected_Subprogram_Body): Select the appropriate type for
6932         locking entries when there is a protected type that implements a
6933         limited interface.
6934         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
6935         classified as entry wrappers.
6936         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
6937         asynchronous selects.
6938         (Expand_N_Conditional_Entry_Call): Add support for expansion of
6939         dispatching conditional selects.
6940         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
6941         protection when there is a protected type that implements limited
6942         interfaces.
6943         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
6944         timed selects.
6945         (Extract_Dispatching_Call): Extract the entity of the name of a
6946         dispatching call, the object parameter, actual parameters and
6947         corresponding formals.
6948         (Make_Initialize_Protection): Correct logic of protection initialization
6949         when there is a protected type that implements a limited interface.
6950         (Parameter_Block_Pack): Populate a wrapped parameter block with the
6951         values of actual parameters.
6952         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
6953         block and assign them to the original actual parameters.
6954
6955         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
6956         (Build_Protected_Sub_Specification): Change the type and name of the
6957         last formal to account for the increased variety of protection modes.
6958
6959         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
6960         entities. Used to save the value of the Is_Hidden attribute when the
6961         limited-view is installed.
6962         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
6963         the attribute of procedures classified as entry wrappers.
6964         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
6965         entity of a primitive wrapper.
6966         (Write_Entity_Flags): Output the name and value of the
6967         Is_Primitive_Wrapper attribute.
6968         (Write_Field27_Name): Output the name and entity of the field Wrapped_
6969         Entity.
6970         (Underlying_Type): If we have an incomplete entity that comes from
6971         the limited view then we return the Underlying_Type of its non-limited
6972         view if it is already available.
6973         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
6974         including operators.
6975         (Write_Field26_Name): Add entry for Overridden_Operation
6976         (Overridden_Operation): New attribute of functions and procedures.
6977
6978         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
6979         predefined position in the dispatch table for the primitive operations
6980         used in dispatching selects.
6981         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
6982         predefined primitive operations and replace it with
6983         Default_Prim_Op_Count.
6984         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6985         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
6986         the names of the generated primitive operations used in dispatching
6987         selects.
6988         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
6989         case of abstract interface types. They will be inherit by the objects
6990         implementing the interface.
6991         (Make_DT): There is no need to inherit the dispatch table of the
6992         ancestor interface for the elaboration of abstract interface types.
6993         The dispatch table will be inherited by the object implementing the
6994         interface.
6995         (Copy_Secondary_DTs): Add documentation.
6996         (Validate_Position): Improve this static check in case of
6997         aliased subprograms because aliased subprograms must have
6998         the same position.
6999         (Init_Predefined_Interface_Primitives): New subprogram that initializes
7000         the entries associated with predefined primitives of all the secondary
7001         dispatch tables.
7002         (Build_Anonymous_Access_Type): Removed.
7003         (Expand_Interface_Actuals): With the previous cleanup there is no need
7004         to build an anonymous access type. This allows further cleanup in the
7005         code generated by the expander.
7006         (Expand_Interface_Conversion): If the actual is an access type then
7007         build an internal function to handle the displacement. If the actual
7008         is null this function returns null because no displacement is
7009         required; otherwise performs a type conversion that will be
7010         expanded in the code that returns the value of the displaced actual.
7011         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
7012         conversions that have no effect in the generated code because no
7013         displacement is required. Code cleanup; use local variables to
7014         avoid repeated calls to the subprogram directly_designated_type().
7015
7016         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
7017         Classify the primitive operations used in dispatching selects as
7018         predefined.
7019         (Implements_Limited_Interface): Determine whether some type either
7020         directly implements a limited interface or extends a type that
7021         implements a limited interface.
7022         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
7023         (Expand_Subtype_From_Expr): Do not build actual subtype if the
7024         expression is limited.
7025         (Find_Interface_Tag): Add code to handle class-wide types and
7026         entities from the limited-view.
7027
7028         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
7029         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
7030         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
7031         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
7032         Set_Prim_Op_Kind.
7033
7034         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
7035         of procedure name or prefix that appears as a trigger in a triggering
7036         alternative.
7037
7038         * uintp.ads: Introduce constants Uint_11 and Uint_13.
7039
7040 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7041
7042         * s-tataat.adb, a-tasatt.adb:
7043         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
7044
7045         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
7046         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
7047         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
7048         longer used.
7049
7050 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7051             Jose Ruiz  <ruiz@adacore.com>
7052
7053         * s-taprop-vxworks.adb:
7054         Move with clauses outside Warnings Off now that dependent units are
7055         Preelaborate.
7056         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
7057         initialization of this unit.
7058         (Specific): Add new procedures Initialize and Delete so that this
7059         package can be used for VxWorks 5.x and 6.x
7060         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
7061         differences between VxWorks 5.x and 6.x
7062         Minor reformatting.
7063         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
7064         caller.
7065         Use only Preelaborate-compatible constructs.
7066
7067         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
7068         Primitives.Operations.
7069         (Delete, Initialize): New procedures.
7070
7071         * s-osinte-vxworks.adb: Body used to handle differences between
7072         VxWorks 5.x and 6.x
7073         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
7074
7075         * s-osinte-vxworks.ads: Minor reformatting.
7076         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
7077         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
7078         and 6.
7079         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
7080         between Vxworks 5 and 6.
7081         (taskLock, taskUnlock): Removeed, no longer used.
7082
7083         * adaint.c: The wait.h header is not located in the sys directory on
7084         VxWorks when using RTPs.
7085         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
7086         using RTPs.
7087         (__gnat_dup): dup is available on Vxworks when using RTPs.
7088         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
7089
7090         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
7091
7092         * expect.c: The wait.h header is not located in the sys directory on
7093         VxWorks when using RTPs.
7094
7095 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7096
7097         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
7098
7099         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
7100
7101         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7102         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7103         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
7104         g-soccon-freebsd.ads: Add new constants:
7105          IP_MULTICAST_IF
7106          SO_RCVTIMEO/SO_SNDTIMEO
7107          IOV_MAX
7108
7109         * gen-soccon.c:
7110         Move all target-specific file inclusions and macro definitions to
7111         gsocket.h, in order to ensure that any C code in socket.c will see a
7112         set of constants that is consistent with the contents of g-soccon.ads.
7113
7114         * gsocket.h: Code imported from gen-soccon.c:
7115         Move all target-specific file inclusions and macro definitions to
7116         gsocket.h, in order to ensure that any C code in socket.c will see a set
7117         of constants that is consistent with the contents of g-soccon.ads.
7118         This change also makes gen-soccon self-contained (removing dependencies
7119         upon GCC internal headers).
7120
7121         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
7122         iovecs at a time.
7123         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
7124
7125         * socket.c: Minor reformatting.
7126
7127 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7128             Thomas Quinot  <quinot@adacore.com>
7129
7130         * fname-sf.adb, mlib-tgt.ads,
7131         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
7132         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
7133         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
7134         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
7135         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
7136         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
7137         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
7138         makegpr.adb: Remove redundant use_clauses.
7139
7140 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7141
7142         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
7143         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
7144         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
7145         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
7146         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
7147         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
7148         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
7149         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
7150         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7151         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
7152         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
7153         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
7154         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
7155         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
7156         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
7157         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7158         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7159         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
7160         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
7161         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7162         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
7163         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
7164         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
7165         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
7166         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
7167         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
7168         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
7169         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
7170         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
7171         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
7172         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
7173         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
7174         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
7175         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
7176         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
7177         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
7178         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
7179         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
7180         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
7181         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
7182         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
7183         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
7184         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
7185         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
7186         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
7187         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
7188         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
7189         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
7190         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
7191         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
7192         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
7193         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
7194         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
7195         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
7196         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
7197         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
7198         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
7199         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
7200         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
7201         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
7202         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
7203         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
7204         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
7205         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
7206         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
7207         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
7208         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
7209         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
7210         and always use the no parameter form for consistency.
7211
7212         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
7213
7214 2005-09-01  Robert Dewar  <dewar@adacore.com>
7215
7216         * binde.adb: Minor reformatting
7217         (Find_Elab_Order): Output warning if -p used with static elab order
7218
7219 2005-09-01  Robert Dewar  <dewar@adacore.com>
7220
7221         * checks.adb (Check_Needed): New procedure, deals with removing checks
7222         based on analysis of short-circuited forms. Also generates warnings for
7223         improper use of non-short-circuited forms.
7224         Code clean ups.
7225
7226 2005-09-01  Robert Dewar  <dewar@adacore.com>
7227
7228         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
7229         with 'Valid tests.
7230
7231 2005-09-01  Robert Dewar  <dewar@adacore.com>
7232
7233         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
7234         spec.
7235         Implement new insertion char < (conditional warning)
7236         * errutil.adb, erroutc.adb: Implement new insertion char <
7237         (conditional warning).
7238         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
7239         (Error_Msg_Warn): New variable for < insertion char.
7240         * prj-nmsc.adb: Implement new errout insertion char < (conditional
7241         warning).
7242         (Check_For_Source): Change value of Source_Id only after the current
7243         source has been dealt with.
7244
7245 2005-09-01  Robert Dewar  <dewar@adacore.com>
7246             Doug Rupp  <rupp@adacore.com>
7247
7248         * exp_attr.adb: Handle vax fpt for 'Valid attribute
7249         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
7250         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
7251         (Valid_D, Valid_F, Valid_G): New functions
7252
7253 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7254             Hristian Kirtchev  <kirtchev@adacore.com>
7255             Javier Miranda  <miranda@adacore.com>
7256
7257         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
7258         from object notation, the original node is unanalyzed and carries no
7259         semantic information, so that accessiblity checks must be performed on
7260         the type of the actual itself.
7261         (Expand_N_Subprogram_Declaration): Change last actual parameter for
7262         compatibility with Build_Protected_Sub_Specification.
7263         (Check_Overriding_Inherited_Interfaces): Add suport to handle
7264         overloaded primitives.
7265         (Register_Interface_DT_Entry): Use the new name of the formal
7266         the the calls to Expand_Interface_Thunk
7267
7268         * exp_dbug.ads: Augment comments on encoding of protected types to
7269         include the generation of dispatching subprograms when the type
7270         implements at least one interface.
7271
7272         * lib.ads: Extend information in Load_Stack to include whether a given
7273         load comes from a Limited_With_Clause.
7274
7275         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
7276         whether a potential circularity is harmless, because it includes units
7277         loaded through a limited_with clause. Extends previous treatment which
7278         did not handle properly arbitrary combinations of limited and
7279         non-limited clauses.
7280
7281 2005-09-01  Nicolas Setton  <setton@adacore.com>
7282
7283         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
7284         to be encoded as typ___XBLU_lowerbound__upperbound instead of
7285         typ___XB_lowerbound__upperbound.
7286
7287 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7288
7289         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
7290         dummy access formal for RACW/RAS TypeCode TSS.
7291         (Build_TypeCode_Call): Do not generate dummy null access actual for
7292         calls to the TypeCode TSS.
7293
7294 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7295
7296         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
7297         fully qualified name, to distinguish instances with the same local name.
7298
7299         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
7300         fully qualified.
7301
7302 2005-09-01  Robert Dewar  <dewar@adacore.com>
7303
7304         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
7305         packed arrays.
7306
7307 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
7308
7309         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
7310         (Free): New deallocation procedure for filter elements
7311         (Close): Deallocate any existing filter for the concerned connection
7312
7313 2005-09-01  Laurent Pautet  <pautet@adacore.com>
7314
7315         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
7316         position set is provided, we compute one in order to reduce the maximum
7317         length of the keys.  This computation first selects a character
7318         position between 1 and the minimum length of the keys in order to
7319         avoid reducing one of the keys to an empty string.
7320         (Initialize, Compute): When the ratio V to K is too low, the algorithm
7321         does not converge. The initialization procedure now comes with a
7322         maximum number of iterations such that when exceeded, an exception is
7323         raised in Compute. The user can initialize this ratio to another value
7324         and try again
7325         Reformating and updated headers.
7326
7327 2005-09-01  Javier Miranda  <miranda@adacore.com>
7328
7329         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
7330         that given an entity T creates and returns an Itype that duplicates the
7331         contents of T. The returned Itype has the null-exclusion
7332         attribute set to True, and its Etype attribute references T
7333         to keep the association between the two entities.
7334         Update copyright notice
7335
7336         * sem_aggr.adb (Check_Can_Never_Be_Null,
7337         Aggregate_Constraint_Checks, Resolve_Aggregate,
7338         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
7339
7340         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
7341
7342 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
7343             Robert Dewar  <dewar@adacore.com>
7344             Hristian Kirtchev  <kirtchev@adacore.com>
7345
7346         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
7347         Result_Definition.
7348
7349         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
7350         function specs.
7351         Call Set_Result_Definition instead of Set_Subtype_Mark.
7352         (P_Subprogram_Specification): Add parsing of anonymous access result
7353         plus null exclusions. Call Set_Result_Definition instead of
7354         Set_Subtype_Mark.
7355
7356         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7357         (P_Access_Type_Definition): Add parsing for an anonymous access result
7358         subtype, plus parsing for null exclusions. Call Set_Result_Definition
7359         instead of Set_Subtype_Mark.
7360
7361         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7362         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
7363         (Result_Definition): New function for N_Function_Specifications.
7364         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
7365         N_Function_Specification.
7366         (Set_Null_Exclusion_Present): Allow this flag for
7367         N_Function_Specification.
7368         (Set_Result_Definition): New procedure for N_Function_Specifications.
7369         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
7370         and N_Function_Specification.
7371
7372         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
7373         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
7374         Add support for LIMITED NEW for Ada 2005 AI-419
7375         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
7376         syntax for anonymous access results.
7377         Replace Subtype_Mark field by Result_Definition in
7378         N_Function_Specification and N_Access_Definition specs.
7379         Add Null_Exclusion_Present to spec of N_Function_Specification.
7380         (Result_Definition): New function for N_Function_Specification and
7381         N_Access_Function_Definition.
7382         (Set_Result_Definition): New procedure for N_Function_Specification and
7383         N_Access_Function_Definition.
7384
7385         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
7386         Result_Definition for cases of N_Access_Function_Definition and
7387         N_Function_Specification.
7388         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
7389
7390 2005-09-01  Vincent Celier  <celier@adacore.com>
7391
7392         * lib-writ.adb: Update Copyright notice
7393         (Write_With_Lines): On platforms where file names are case-insensitive,
7394         record the file names in lower case.
7395         (Write_ALI): For D lines, on platforms where file names are
7396         case-insensitive, record the file names in lower case.
7397
7398 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7399             Emmanuel Briot  <briot@adacore.com>
7400
7401         * lib-xref.adb (Output_Overridden_Op): Display information on
7402         overridden operation.
7403
7404         * lib-xref.ads: Add documentation on overridden operations.
7405
7406         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
7407         information.
7408
7409         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
7410         overriding entity information.
7411
7412 2005-09-01  Vincent Celier  <celier@adacore.com>
7413
7414         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
7415         including those that are inherited.
7416
7417 2005-09-01  Robert Dewar  <dewar@adacore.com>
7418
7419         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
7420
7421         * par-prag.adb: Implement new pragma Debug_Policy
7422
7423         * sem_prag.adb Implement new pragma Debug_Policy
7424         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
7425         Component_Size attribute specification. Give warning for ignored pragma
7426         Pack.
7427
7428         * snames.h, snames.ads, snames.adb: Introduce entries in
7429         Preset_Names for Name_Disp_Asynchronous_Select,
7430         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
7431         Name_Disp_Timed_Select.
7432         New pragma Debug_Policy
7433
7434         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
7435         explicitly.
7436         Switch -gnata also sets Debug_Pragmas_Enabled
7437
7438         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
7439         handle an explicit -gnata when compiling predefined files.
7440
7441 2005-09-01  Vincent Celier  <celier@adacore.com>
7442
7443         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
7444         directories of projects that have no Ada sources.
7445
7446 2005-09-01  Robert Dewar  <dewar@adacore.com>
7447
7448         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
7449         (makes a difference for wide characters)
7450
7451         * widechar.adb, widechar.ads:
7452         Add Wide_Char_Byte_Count feature to count chars vs bytes
7453
7454 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7455             Ed Schonberg  <schonberg@adacore.com>
7456             Robert Dewar  <dewar@adacore.com>
7457
7458         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
7459         'Address attribute reference with an overloaded prefix, use the
7460         location of the prefix (not the location of the attribute reference) as
7461         the error location.
7462         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
7463         a function renaming thereof, is a valid prefix for 'Size (where it is
7464         intepreted as a function call).
7465         (Statically_Denotes_Entity): New predicate to determine whether the
7466         prefix of an array attribute can be considered static.
7467
7468         PR ada/9087
7469         (Eval_Attr): Fix failure to evaluate Component_Size for
7470         unconstrained arrays (resulted in wrong value in packed case, since
7471         back end cannot handle this case)
7472
7473 2005-09-01  Robert Dewar  <dewar@adacore.com>
7474
7475         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
7476         error msgs for most common cases.
7477         Use new errout insertion char < (conditional warning)
7478
7479 2005-09-01  Javier Miranda  <miranda@adacore.com>
7480             Ed Schonberg  <schonberg@adacore.com>
7481
7482         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
7483         become local to the whole package.
7484         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
7485         the package was already analyzed the new algorithm "replaces" the
7486         real entities by the shadow ones. This is required to ensure that
7487         the order of these entities in the homonym chains does not change;
7488         otherwise we can have undefined references at linking time because
7489         in case of conflicts the external name of the entities will have
7490         a suffix that depends on the order of the entities in the chain.
7491         (Remove_Limited_With_Clause): Complementary code that completes the
7492         new algorithm and replaces the shadow entities by the real ones.
7493         (Install_Limited_Withed_Unit): When unchaining entities before the
7494         installation of the shadow entities, only regular entities of the
7495         public part must be taken into account. This is required to
7496         keep this routine in synch with the work done by Remove_Limited_
7497         With_Clause
7498         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
7499         even if unit is analyzed, because the analysis of the unit is
7500         idempotent in any case, and the limited view of the unit may have to
7501         be installed for proper visibility.
7502         (Expand_Limited_With_Clause): Even if the unit in the implicit
7503         with_clause has been analyzed already, a limited view of the package
7504         must be built for the current context, if it does not exist yet.
7505
7506 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7507             Javier Miranda  <miranda@adacore.com>
7508             Gary Dismukes  <dismukes@adacore.com>
7509
7510         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
7511         defining entity for the instance body, make a new defining identifier
7512         rather than copying the entity of the spec, to prevent accidental
7513         sharing of the entity list.
7514         (Check_Private_View): When exchanging views of private types, build the
7515         list of exchanged views as a stack, to ensure that on exit the exchanges
7516         are undone in the proper order.
7517         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
7518         Restore the compilation environment in case of instantiation_error.
7519         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
7520         for an anonymous access result.
7521         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
7522         (Formal_Entity): Handle properly the case of a formal package that
7523         denotes a generic package renaming.
7524
7525 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7526
7527         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
7528         clause if the array aggregate is surrounded by parentheses.
7529
7530 2005-09-01  Cyrille Comar  <comar@adacore.com>
7531             Gary Dismukes  <dismukes@adacore.com>
7532             Ed Schonberg  <schonberg@adacore.com>
7533             Javier Miranda  <miranda@adacore.com>
7534
7535         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
7536         underlying type
7537         to check if a type is Constrained in cases related to code generation
7538         (rather than semantic checking) since otherwise we do not generate
7539         similar code for mutable private types depending if their
7540         discriminants are visible or not.
7541         (Check_Abstract_Overriding): Do not complain about failure to override
7542         the primitive operations used in dispatching selects since they will
7543         always be overriden at the freeze point of the type.
7544         (Access_Definition): Separate out handling for resetting the scope
7545         of an anonymous access function result type. Retrieve the scope
7546         of the associated function rather than using Current_Scope, which
7547         does not have a consistent value (depends on whether we're in the
7548         middle of analyzing formal parameters). Add ??? comment about
7549         finding a cleaner way to handle the special cases of scope setting.
7550         (Process_Incomplete_Dependents): A protected operation is never a
7551         dispatching operation (only its wrapper may be).
7552         (Build_Derived_Record_Type): In case of tagged private types that
7553         implement interfaces add derivation of predefined primitive
7554         operations.
7555         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
7556         by two parameters that are used in case of derivation from abstract
7557         interface types: No_Predefined_Prims is used to avoid the derivation
7558         of predefined primitives from the interface, and Predefined
7559         Prims_Only is used to complete the derivation predefined primitives
7560         in case of private tagged types implementing interfaces.
7561         Fix typo in comments
7562         (Find_Interface_In_Descendant): Protect the frontend against
7563         wrong code with large circularity chains.
7564         (Is_Private_Overriding): Add support for entities overriding interface
7565         subprograms. The test failed because Entities associated with overriden
7566         interface subprograms are always marked as hidden (and used to build
7567         the secondary dispatch table); in this case the overriden entity is
7568         available through the field abstract_interface_alias (cf. override_
7569         dispatching_operation)
7570         (Access_Definition): Set the scope of the type to Current_Scope for the
7571         case of a function with an anonymous access result type.
7572         (Access_Subprogram_Declaration): Handle creation of the type entity for
7573         an access-to-function type with an anonymous access result.
7574         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
7575         in handling for N_Access_Function_Definition.
7576         (Analyze_Subtype_Declaration): Modify the text of error message.
7577         (Derived_Type_Declaration): Modify the text of error message.
7578         (Process_Subtype): Modify the text of error message plus cleanup
7579         of one redundant error message.
7580         (Analyze_Component_Declaration): Code cleanup.
7581         (Analyze_Object_Declaration): Code cleanup.
7582         (Analyze_Subtype_Declaration): Propagate the null-exclusion
7583         attribute in case of access types. Code cleanup.
7584         (Array_Type_Declaration): Code cleanup.
7585         (Process_Discriminants): Create the new null-excluding itype
7586         if required. Code cleanup.
7587         (Process_Subtype): Create the new null-excluding itype if
7588         required. Code cleanup.
7589         (Build_Derived_Record_Type): Code cleanup to avoid calling
7590         twice the subprogram derive_subprograms in case of private
7591         types that implement interfaces. In this particular case the
7592         subprogram Complete_Subprograms_Derivation already does the
7593         job associated with the second call.
7594
7595         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
7596         conversion to the full view when generating an operation for a
7597         discriminant whose type may currently be private.
7598
7599 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7600             Javier Miranda  <miranda@adacore.com>
7601
7602         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
7603         V (Obj.F), the rewriting does not involve the indexed component, but
7604         only the selected component itself.
7605         Do not apply the transformation if the analyzed node is an actual of a
7606         call to another subprogram.
7607         (Complete_Object_Operation): Retain the entity of the
7608         dispatching operation in the selector of the rewritten node. The
7609         entity will be used in the expansion of dispatching selects.
7610         (Analyze_One_Call): Improve location of the error message associated
7611         with interface.
7612         (Analyze_Selected_Component): No need to resolve prefix when it is a
7613         function call, resolution is done when parent node is resolved, as
7614         usual.
7615         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
7616         when attempting to resolve a call transformed from its object notation.
7617         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
7618         of the argument list for each interpretation of the operation.
7619         (Try_Object_Operation): The designated type of an access parameter may
7620         be an incomplete type obtained through a limited_with clause, in which
7621         case the primitive operations of the type are retrieved from its full
7622         view.
7623         (Analyze_Call): If this is an indirect call, and the return type of the
7624         access_to_subprogram is incomplete, use its full view if available.
7625
7626 2005-09-01  Javier Miranda  <miranda@adacore.com>
7627             Gary Dismukes  <dismukes@adacore.com>
7628
7629         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
7630         access types the null-exclusion and access-to-constant attributes must
7631         also match.
7632         (Analyze_Return_Statement): When the result type is an anonymous access
7633         type, apply a conversion of the return expression to the access type
7634         to ensure that appropriate accessibility checks are performed.
7635         (Analyze_Return_Type): For the case of an anonymous access result type,
7636         generate the Itype and set Is_Local_Anonymous_Access on the type.
7637         Add ??? placeholder for check to disallow returning a limited object
7638         in Ada 2005 unless it's an aggregate or a result of a function call.
7639         Change calls from Subtype_Mark to Result_Definition.
7640         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
7641         Result_Definition in call to Make_Function_Specification.
7642         (Build_Body_To_Inline): Change Set_Subtype_Mark to
7643         Set_Result_Definition.
7644         (Make_Inequality_Operator): Change formal Subtype_Mark to
7645         Result_Definition in call to Make_Function_Specification.
7646         (Process_Formals): Create the new null-excluding itype if required.
7647         (New_Overloaded_Entity): For an entity overriding an interface primitive
7648         check if the entity also covers other abstract subprograms in the same
7649         scope. This is required to handle the general case, that is, overriding
7650         other interface primitives and overriding abstract subprograms inherited
7651         from some abstract ancestor type.
7652         (New_Overloaded_Entity): For an overriding entity that comes from
7653         source, note the operation that it overrides.
7654         (Check_Conformance, Type_Conformant): Addition of one new formal
7655         to skip controlling formals in the analysis. This is used to
7656         handle overloading of abstract interfaces.
7657         (Base_Types_Match): Add missing case for types imported from
7658         limited-with clauses
7659         (New_Overloaded_Entity): Add barrier to protect the use of
7660         the "alias" attribute.
7661
7662 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7663
7664         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
7665         verify that the procedure and the entry are mode conformant.
7666         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
7667         as a different operator, which is often a cut-and-paste error.
7668
7669 2005-09-01  Javier Miranda  <miranda@adacore.com>
7670             Ed Schonberg  <schonberg@adacore.com>
7671
7672         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
7673         used in controlling parameters exclude null because it is necessary to
7674         read the tag to dispatch, and null has no tag.
7675         (Override_Dispatching_Operation): If the previous operation is inherited
7676         from an interface, it becomes hidden  and does not participate in later
7677         name resolution.
7678
7679 2005-09-01  Javier Miranda  <miranda@adacore.com>
7680             Ed Schonberg  <schonberg@adacore.com>
7681             Gary Dismukes  <dismukes@adacore.com>
7682
7683         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
7684         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
7685         the expander will generate the corresponding run-time check to evaluate
7686         the expression.
7687         (Resolve_Call): Check for legal type of procedure name or prefix that
7688         appears as a trigger in a triggering alternative.
7689         (Valid_Conversion): If expression is ambiguous and the context involves
7690         an extension of System, remove System.Address interpretations.
7691         (Resolve_Qualified_Expression): Reject the case of a specific-type
7692         qualification applied to a class-wide argument. Enhance comment
7693         to explain checking of Original_Node.
7694         (Resolve_Type_Conversion): The location of the error message was not
7695         general enough to handle the general case and hence it has been removed.
7696         In addition, this patch improves the text of the message.
7697         (Resolve_Type_Conversion): Add missing support for access to interface
7698         types.
7699         (Resolve_Type_Conversion): If the target is a class-wide interface type,
7700         do not expand if the expression is the actual in a call, because proper
7701         expansion will take place when the call itself is expanded.
7702         (Resolve_Allocator): If the context is an unchecked conversion, the
7703         allocator inherits its storage pool, if any, from the target type of
7704         the conversion.
7705
7706 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7707             Javier Miranda  <miranda@adacore.com>
7708
7709         * sem_type.adb (Add_One_Interp): If a candidate operation is an
7710         inherited interface operation that has an implementation, use the
7711         implementation to avoid spurious ambiguities.
7712         (Interface_Present_In_Ancestor): In case of concurrent types we can't
7713         use the Corresponding_Record_Typ attribute to look for the interface
7714         because it is set by the expander (and hence it is not always
7715         available). For this reason we traverse the list of interfaces
7716         (available in the parent of the concurrent type).
7717         (Interface_Present_In_Ancestor): Handle entities from the limited view
7718
7719 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7720
7721         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
7722         from the list of required components.
7723         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
7724         primitive procedure of a limited interface with a controlling first
7725         parameter.
7726         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
7727         of an entry.
7728         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
7729         capture if it is generated in the second operand of a short-circuit
7730         operation.
7731         Do not capture values for variables with address clauses.
7732         (Is_Object_Reference): Treat a function call as an object reference only
7733         if its type is not Standard_Void_Type.
7734
7735 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7736
7737         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
7738         to a variable that is statically known to be constant.
7739
7740 2005-09-01  Geert Bosch  <bosch@adacore.com>
7741             Robert Dewar  <dewar@adacore.com>
7742
7743         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
7744         (VAXGF_Safe_First): Idem.
7745
7746 2005-09-01  Robert Dewar  <dewar@adacore.com>
7747             Arnaud Charlet  <charlet@adacore.com>
7748
7749         * g-dirope.ads: Minor reformatting
7750         Document that bounds of result of Base_Name match the input index
7751         positions.
7752         Add documentation on environment variable syntax for Expand_Path
7753
7754         * gnat_ugn.texi: Update documentation to include mention of -m switches
7755         Document new treatment of wide characters in max line length
7756         style check.
7757         Remove -gnatL/-gnatZ switches, no longer used.
7758         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
7759         of -gnata switch.
7760
7761         * gnat_rm.texi: Add doc for two argument form of pragma
7762         Float_Representation.
7763         Add documentation for pragma No_Strict_Aliasing
7764         Add note that explicit component clause overrides pragma Pack.
7765         Add documentation of pragma Debug_Policy
7766
7767 2005-09-01  Matthew Heaney  <heaney@adacore.com>
7768
7769         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
7770         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
7771         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
7772         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
7773         draft (Draft 13, August 2005) of Ada Amendment 1.
7774
7775 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7776
7777         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
7778         Note that the platform-specific version of g-soccon.ads for VMS is now
7779         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
7780         really is a package spec).
7781         Replace s-taspri-linux.ads by s-taspri-posix.ads
7782         Remove references to s-mastop-x86.adb
7783
7784         * system-vxworks-xscale.ads: Removed, no longer used.
7785         * s-vxwork-xscale.ads: Removed, no longer used.
7786
7787 2005-09-01  Robert Dewar  <dewar@adacore.com>
7788
7789         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
7790         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
7791         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
7792         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
7793         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
7794         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
7795         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
7796         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
7797         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
7798         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
7799         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
7800         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
7801         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
7802         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
7803         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
7804         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
7805         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
7806         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
7807         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
7808         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
7809         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
7810
7811 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7812
7813         PR ada/23187
7814         * adaint.c
7815         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
7816
7817 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7818             Doug Rupp  <rupp@adacore.com>
7819
7820         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
7821         when needed.
7822         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
7823         this code in the GNAT run-time.
7824
7825         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
7826
7827         PR ada/21053
7828         * init.c (__gnat_error_handler [many]): Mark "msg" as const
7829         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
7830
7831         (__gnat_inside_elab_final_code): Moved here from
7832         Standard_Library and only defined for the compiler.
7833         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
7834         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
7835         using RTPs because directly vectored Interrupt routines are not
7836         supported on this configuration.
7837         (getpid): Do not redefine this function on VxWorks when using RTPs
7838         because this primitive is well supported by the RTP libraries.
7839         (copy_msg): Correct the code that checks for buffer overflow.
7840         Discovered during code reading.
7841
7842 2005-08-29  Olivier Hainque  <hainque@adacore.com>
7843
7844         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
7845         a library level mutable variable with an initializer, tell
7846         build_allocator to ignore the initializer's size. It may not be large
7847         enough for all the values that might be assigned to the variable later
7848         on.
7849
7850 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7851             Eric Botcazou  <ebotcazou@adacore.com>
7852
7853         * trans.c: Protect < in error msg with quote
7854         Replace GCC_ZCX by Back_End_Exceptions.
7855         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
7856         has been sufficiently aligned in the record.
7857
7858 2005-08-15  James E. Wilson  <wilson@specifix.com>
7859
7860         * system-linux-alpha.ads: Change ia64 to alpha.
7861
7862 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
7863
7864         * decl.c, utils.c: Fix comment typos.
7865
7866 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
7867
7868         * decl.c, init.c, initialize.c: Fix comment typos.
7869
7870 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
7871
7872         Make CONSTRUCTOR use VEC to store initializers.
7873         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
7874         CONSTRUCTOR_ELTS.
7875         * trans.c (extract_values): Likewise.
7876         * utils.c (convert, remove_conversions): Likewise.
7877         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
7878         gnat_build_constructor): Likewise.
7879
7880 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7881
7882         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
7883         DECL_SECTION_NAME.
7884         (compare_field_bitpos): Likewise.
7885
7886 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7887
7888         * utils.c (create_var_decl): Only set DECL_COMMON on
7889         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
7890         VAR_OR_FUNCTION_DECL_P.
7891
7892 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
7893
7894         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
7895         removed.
7896
7897 2005-07-07  Pascal Obry  <obry@adacore.com>
7898
7899         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
7900         returned type on Windows.
7901
7902         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
7903         routine.
7904
7905         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
7906         exception in this case.
7907         Simplify the code as "Image (Image'Range)" = "Image".
7908
7909 2005-07-07  Vincent Celier  <celier@adacore.com>
7910
7911         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
7912         the destructor/constructor attributes for <lib>final/<lib>init.
7913
7914         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
7915
7916 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7917
7918         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
7919         type if the parameter is not passed by copy but reference by default.
7920
7921 2005-07-07  Javier Miranda  <miranda@adacore.com>
7922
7923         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
7924         Reimplementation of the support for abstract interface types in order
7925         to leave the code more clear and easy to maintain.
7926
7927         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
7928         abstract interface types in order to leave the code clearer and easier
7929         to maintain.
7930
7931         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
7932         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
7933         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
7934         appropriate entry of the secondary dispatch table.
7935         (Make_DT): Add code to inherit the secondary dispatch tables of
7936         the ancestors.
7937
7938         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
7939         implementing both functionalities by means of a common routine, each
7940         routine has its own code.
7941
7942 2005-07-07  Javier Miranda  <miranda@adacore.com>
7943
7944         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
7945
7946         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
7947         types:
7948         --
7949           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7950         --
7951
7952         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
7953         use of tag incomplete types.
7954
7955         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
7956         give support to tagged incomplete types.
7957
7958         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
7959         expression is a discriminant reference and its type is private, as can
7960         happen within a stream operation for a mutable record, use the full
7961         view of the type to resolve the case alternatives.
7962         (Analyze_Assignment): Check wrong dereference of incomplete types.
7963
7964         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
7965         types.
7966
7967         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
7968         incomplete types.
7969
7970         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
7971         N_Incomplete_Type_Declaration nodes.
7972
7973         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
7974         Tag_Present to give support to tagged incomplete types:
7975         --
7976           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7977         --
7978
7979 2005-07-07  Olivier Hainque  <hainque@adacore.com>
7980
7981         PR ada/22301
7982
7983         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
7984         definitions for the Unwind wrappers in the compiler case.
7985
7986 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
7987             Javier Miranda  <miranda@adacore.com>
7988
7989         * par-load.adb (Load): If a child unit is loaded through a limited_with
7990         clause, each parent must be loaded as a limited unit as well.
7991
7992         * sem_ch10.adb (Previous_Withed_Unit): Better name for
7993         Check_Withed_Unit. Return true if there is a previous with_clause for
7994         this unit, whether limited or not.
7995         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
7996         the current unit.
7997         (Is_Visible_Through_Renamings): New local subprogram of install_limited
7998         _withed_unit that checks if some package installed through normal with
7999         clauses has a renaming declaration of package whose limited-view is
8000         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
8001         of the current Draft document for Ada 2005.
8002         (Analyze_Context): Complete the list of compilation units that
8003         are allowed to contain limited-with clauses. It also contains
8004         checks that were previously done by Install_Limited_Context_Clauses.
8005         This makes the code more clear and easy to maintain.
8006         (Expand_Limited_With_Clause) It is now a local subprogram of
8007         Install_Limited_Context_Clauses, and contains the code that adds
8008         the implicit limited-with clauses for parents of child units.
8009         This functionality was prevously done by Analyze_Context.
8010
8011         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
8012         incomplete type.
8013
8014         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
8015         been erroneously named in a limited-with clause of its own context.
8016         In this case the error has been previously notified by Analyze_Context.
8017
8018 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
8019
8020         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
8021         generic package that contains local declarations with the same name.
8022         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
8023
8024 2005-07-07  Bernard Banner  <banner@adacore.com>
8025
8026         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
8027         ia64 platform only on platforms that you the GCC unwind library
8028         rather than the system unwind library.
8029
8030 2005-07-07  Thomas Quinot  <quinot@adacore.com>
8031
8032         * expect.c: Minor reformatting
8033
8034 2005-07-07  Sergey Rybin  <rybin@adacore.com>
8035
8036         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
8037         --no-separate-is
8038
8039         * gnat_ugn.texi: Add description for new gnatpp option
8040         (--no-separate-is)
8041
8042 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8043
8044         * g-expect-vms.adb, g-expect.ads, g-expect.adb
8045         (Get_Command_Output): New subprogram to launch a process and get its
8046         standard output as a string.
8047
8048 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8049             Olivier Hainque  <hainque@adacore.com>
8050
8051         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
8052         fetch a code-range descriptor associated with the machine state. On
8053         failure set the machine state's PC to 0; on success, pass the
8054         descriptor to exc_virtual_unwind.
8055
8056         * init.c (Tru64 section): New function __gnat_set_code_loc.
8057
8058 2005-07-04  Vincent Celier  <celier@adacore.com>
8059
8060         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
8061         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
8062         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
8063         Remove all auto-initialization code, as this is now done through the
8064         constructor mechanism.
8065
8066         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
8067         __gnat_sals_init_using_constructors): New functions.
8068
8069         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
8070         Linker_Constructor and Linker_Destructor when switch -a is used.
8071
8072         * bindusg.adb: Add line for new switch -a
8073
8074         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
8075         (Gnatbind): When switch -a is used, check if it is allowed
8076
8077         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
8078
8079 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
8080
8081         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
8082         This prevents us from hitting a limitation during the debug info
8083         generation when using stabs.
8084         (Prims_Ptr): Likewise.
8085
8086 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8087             Ed Schonberg  <schonberg@adacore.com>
8088             Javier Miranda  <miranda@adacore.com>
8089
8090         * checks.adb (Null_Exclusion_Static_Checks): In the case of
8091         N_Object_Declaration, only perform the checks if the Object_Definition
8092         is not an Access_Definition.
8093
8094         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
8095         where the parent of an the access definition is an N_Object_Declaration
8096         when determining the Associated_Node_For_Itype and scope of an
8097         anonymous access-to-subprogram type.
8098
8099         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
8100         Corresponding_Spec on the body created for a null procedure. Add ???
8101         comment. Remove New_Copy_Tree call on body argument to
8102         Set_Body_To_Inline.
8103
8104         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
8105         discriminants, use the type of the actual as well, because the
8106         discriminants may be read by the called subprogram.
8107
8108         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
8109         access type we do not need to handle non-limited views.
8110         (Build_Derived_Record_Type): Additional check to check that in case of
8111         private types, interfaces are only allowed in private extensions.
8112
8113 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8114
8115         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
8116         <Pragma_Linker_Destructor>: Likewise.
8117
8118         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
8119         Pragma_Linker_Destructor.
8120
8121         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
8122         ATTR_LINK_DESTRUCTOR.
8123         (static_ctors, static_dtors): New variables.
8124
8125         * misc.c (gnat_expand_body): Output current function as constructor
8126         and destructor if requested.
8127
8128         * par-prag.adb: Add processing for pragma Linker_Constructor and
8129         Linker_Destructor.
8130
8131         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
8132         extracted from Check_Interrupt_Or_Attach_Handler.
8133         (Check_Interrupt_Or_Attach_Handler): Invoke it.
8134         Implement pragma Linker_Constructor and Linker_Destructor with the
8135         help of Find_Unique_Parameterless_Procedure.
8136         Replace Name_Alias with Name_Target for pragma Linker_Alias.
8137
8138         * snames.h, snames.ads, snames.adb:
8139         Add Name_Linker_Constructor and Name_Linker_Destructor.
8140         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
8141         * snames.adb: Remove Name_Alias.
8142
8143         * trans.c: Include cgraph.h.
8144         (build_global_cdtor): New function.
8145         (Compilation_Unit_to_gnu): Build global constructor and destructor if
8146         needed.
8147         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
8148         of objects too.
8149         (addressable_p) <COMPONENT_REF>: Unconditionally test
8150         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
8151
8152         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
8153         variable if it is external.
8154
8155         (static_ctors, static_dtors): New global variables.
8156         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
8157         <ATTR_LINK_DESTRUCTOR>: Likewise.
8158         (end_subprog_body): Chain function as constructor and destructor
8159         if requested.
8160
8161         * exp_util.adb (Force_Evaluation): Unconditionally invoke
8162         Remove_Side_Effects with Variable_Ref set to true.
8163         (Remove_Side_Effects): Handle scalar types first. Use a renaming
8164         for non-scalar types even if Variable_Ref is true and for class-wide
8165         expressions.
8166
8167 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8168
8169         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
8170         to prevent spurious warnings.
8171
8172 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8173
8174         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
8175         Itypes. Itypes are really unexpected there.
8176         (Build_TypeCode_Function): Generalise special processing for Itypes to
8177         handle the case of numeric implicit base types as well as enumerated
8178         ones.
8179
8180 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8181
8182         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
8183         controlled, indicate the expected type of the dereference that is
8184         created for the call to Deep_Finalize, to prevent spurious errors when
8185         the designated type is private and completed with a derivation from
8186         another private type.
8187
8188 2005-07-04  Vincent Celier  <celier@adacore.com>
8189
8190         * make.adb (Change_To_Object_Directory): When unable to change the
8191         current dir to the object directory, output the full path of the
8192         directory.
8193
8194 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8195
8196         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
8197
8198         * indepsw-linux.adb: Replace by...
8199
8200         * indepsw-gnu.adb: ...this new file
8201
8202 2005-07-04  Vincent Celier  <celier@adacore.com>
8203
8204         * mlib-prj.adb (Auto_Initialize): New constant String
8205         (SALs_Use_Constructors): New Boolean function
8206         (Build_Library): Call gnatbind with Auto_Initialize switch when
8207         SALs_Use_Constructors returns True.
8208
8209         * mlib-tgt.ads: Minor reformatting
8210
8211         * mlib-utl.ads: Minor reformatting
8212
8213         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
8214
8215 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8216
8217         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
8218         single protected declarations can have an interface list.
8219         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
8220         with seriously malformed entry declarations, and lead to compilation
8221         abandoned messages.
8222
8223 2005-07-04  Javier Miranda  <miranda@adacore.com>
8224
8225         * par-load.adb: Load the context items in two rounds.
8226
8227 2005-07-04  Robert Dewar  <dewar@adacore.com>
8228
8229         * scng.adb: Do not consider Mod used as an attribute to be a keyword
8230
8231 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8232             Javier Miranda  <miranda@adacore.com>
8233
8234         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
8235         type extension needs a limited view.
8236         Remove previous restriction on private types available through the
8237         limited-view (only tagged private types were previously allowed).
8238         (Install_Withed_Unit): In the code that implements the
8239         legality rule given in AI-377, exclude a child unit with the name
8240         Standard, because it is a homonym of the Standard environment package.
8241
8242 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8243
8244         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
8245         overloaded function call, carry interpretations from the original tree
8246         to the copy.
8247
8248 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8249
8250         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
8251         types check whether some designated type is a limited view, and use
8252         the non-limited view if available.
8253
8254 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8255
8256         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
8257         constraint of full view of a private view T1 if present, when T2 is a
8258         discriminated full view.
8259
8260 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8261
8262         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
8263         actual that is a view conversion of a bit packed array reference.
8264
8265 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8266
8267         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
8268         present before checking whether an interface type covers a synchronized
8269         type.
8270
8271 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8272
8273         * sem_util.adb (Is_Object_Reference): An indexed or selected component
8274         whose prefix is an implicit dereference is an object reference. Removes
8275         spurious errors when compiling with -gnatc.
8276
8277 2005-07-04  Robert Dewar  <dewar@adacore.com>
8278
8279         PR ada/22039
8280
8281         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
8282
8283 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8284
8285         * tracebak.c: Enable tracebacks on ia64 platforms
8286
8287 2005-07-04  Vincent Celier  <celier@adacore.com>
8288
8289         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
8290         the GNAT BIND command, as gnatbind accepts multiples ALI files with
8291         the -L or -n switches.
8292
8293 2005-07-04  Vincent Celier  <celier@adacore.com>
8294
8295         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
8296         correctly computed and the main project data is not modified while
8297         doing so.
8298         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
8299         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
8300         c++linker as this does not work on some platforms.
8301
8302 2005-07-04  Matthew Heaney  <heaney@adacore.com>
8303
8304         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
8305         was changed.
8306         * a-coinve.adb: Perform constraint checks explicitly.
8307
8308 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8309             Thomas Quinot  <quinot@adacore.com>
8310
8311         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
8312         new target gen-soccon.
8313
8314 2005-07-04  Robert Dewar  <dewar@adacore.com>
8315
8316         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
8317
8318 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8319
8320         * g-socket.ads (Check_Selector): Minor rewording of comment.
8321
8322 2005-07-04  Vincent Celier  <celier@adacore.com>
8323
8324         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
8325
8326 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8327
8328         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
8329
8330 2005-07-04  Sergey Rybin  <rybin@adacore.com>
8331
8332         * gnat_ugn.texi: Add description of --eol gnatpp option
8333
8334 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8335             Thomas Quinot  <quinot@adacore.com>
8336
8337         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
8338         if the user wants all calls of a subprogram to be flagged,
8339         independently of whether they are made from within the same unit or
8340         another unit.
8341         Mention restriction for pragma Linker_Alias on some platforms.
8342         Document pragma Linker_Constructor and Linker_Destructor.
8343         Rewrite documentation of Weak_External, Linker_Section and
8344         Linker_Alias pragmas.
8345
8346 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
8347
8348         * s-stausa.ads, s-stausa.adb: New files.
8349
8350 2005-06-30  Kelley Cook
8351
8352         * all files:  Update FSF address in copyright headers.
8353         * gen-soccon.co (main): Output new FSF address in generated files.
8354
8355 2005-06-28  Paul Brook  <paul@codesourcery.com>
8356
8357         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
8358
8359 2005-06-14  Olivier Hainque  <hainque@adacore.com>
8360             Eric Botcazou  <ebotcazou@adacore.com>
8361
8362         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
8363         exc_unwind, now that we are generating proper .debug_frame output for
8364         that target.
8365
8366         * tracebak.c: Remove the mips-irix section, as we are now using the
8367         s-mastop based unwinder again.
8368         Under SPARC/Solaris, take into account the stack bias to compute the
8369         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
8370         ABI.
8371
8372 2005-06-14  Doug Rupp  <rupp@adacore.com>
8373
8374         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
8375
8376         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
8377
8378 2005-06-14  Pascal Obry  <obry@adacore.com>
8379
8380         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
8381         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
8382         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
8383         package name).
8384
8385         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
8386         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
8387         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
8388         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
8389         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
8390         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
8391         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
8392         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
8393         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
8394         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
8395         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
8396         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
8397         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
8398         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
8399         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
8400         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
8401         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
8402         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
8403         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
8404         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
8405         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
8406         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
8407         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
8408         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
8409         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
8410         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
8411         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
8412         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
8413         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
8414         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
8415         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
8416         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
8417         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
8418         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
8419         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
8420         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
8421         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
8422         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
8423         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
8424         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
8425         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
8426         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
8427         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
8428         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
8429         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
8430         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
8431         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
8432         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
8433         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
8434         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
8435         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
8436         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
8437         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
8438         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
8439         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
8440         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
8441         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
8442         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
8443         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
8444         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
8445         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
8446         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
8447         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
8448         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
8449         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
8450         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
8451         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
8452         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
8453         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
8454         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
8455         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
8456         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
8457         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
8458         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
8459         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
8460         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
8461         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8462         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
8463         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
8464         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
8465         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
8466         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
8467         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
8468         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
8469         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
8470         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
8471         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
8472         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
8473         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
8474         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
8475         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
8476         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
8477         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
8478         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
8479         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
8480         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
8481         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
8482         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
8483         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
8484         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
8485         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
8486         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
8487         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
8488         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
8489         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
8490         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
8491         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
8492         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
8493         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
8494         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
8495         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
8496         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
8497         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
8498         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
8499         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
8500         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
8501         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
8502         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
8503         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
8504         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
8505         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
8506         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
8507         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
8508         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
8509         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
8510         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
8511         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
8512         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
8513         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
8514         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
8515         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
8516         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
8517         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
8518
8519 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
8520             Arnaud Charlet  <charlet@adacore.com>
8521
8522         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
8523         longer protected objects. They have been replaced by lower-level
8524         suspension objects made up by a mutex and a condition variable (or
8525         their equivalent given a particular OS) plus some internal data to
8526         reflect the state of the suspension object.
8527         (Initialize, Finalize): Add this initialization procedure for
8528         Suspension_Object, which is a controlled type.
8529         (Finalize): Add the finalization procedure for Suspension_Object,
8530         which is a controlled type.
8531
8532         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
8533         Ada.Synchronous_Task_Control because there is no longer a need for a
8534         VxWorks specific version of this package. Target dependencies
8535         has been moved to System.Task_Primitives.Operations.
8536
8537         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
8538         longer needed.
8539         (InitializeCriticalSection, EnterCriticalSection,
8540         LeaveCriticalSection, DeleteCriticalSection): Replace the type
8541         pCriticalSection by an anonymous access type so that we avoid problems
8542         of accessibility to local objects.
8543
8544         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
8545         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
8546         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
8547         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
8548         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
8549         set the environment task mask here.
8550         (Current_State): Add this function that returns the state of the
8551         suspension object.
8552         (Set_False): Add this procedure that sets the state of the suspension
8553         object to False.
8554         (Set_True): Add this procedure that sets the state of the suspension
8555         object to True, releasing the task that was suspended, if any.
8556         (Suspend_Until_True): Add this procedure that blocks the calling task
8557         until the state of the object is True. Program_Error is raised if
8558         another task is already waiting on that suspension object.
8559         (Initialize): Add this procedure for initializing the suspension
8560         object. It initializes the mutex and the condition variable which are
8561         used for synchronization and queuing, and it sets the internal state
8562         to False.
8563         (Finalize): Add this procedure for finalizing the suspension object,
8564         destroying the mutex and the condition variable.
8565
8566         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
8567         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
8568         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
8569         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
8570         which provides a low-level abstraction (using operating system
8571         primitives) for Ada.Synchronous_Task_Control.
8572         This object is made up by a mutex (for ensuring mutual exclusion), a
8573         condition variable (for queuing threads until the condition is
8574         signaled), a Boolean (State) indicating whether the object is open,
8575         and a Boolean (Waiting) reflecting whether there is a task already
8576         suspended on this object.
8577
8578         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
8579         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
8580         s-intman-vms.ads, s-intman-mingw.adb,
8581         (Initialize_Interrupts): Removed, no longer used.
8582
8583         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
8584         (Setup_Interrupt_Mask): New procedure.
8585
8586         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
8587
8588         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
8589
8590         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
8591         this is no longer done in the body of s-taprop
8592         (Server_Task): Explicitely test for Pending_Action in case
8593         System.Parameters.No_Abort is True.
8594
8595         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
8596         is no longer done in the body of s-taprop
8597
8598 2005-06-14  Robert Dewar  <dewar@adacore.com>
8599
8600         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
8601         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
8602         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
8603         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
8604         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8605         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
8606         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
8607         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
8608         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
8609         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
8610         system-linux-hppa.ads, system-vms_64.ads,
8611         system-vxworks-alpha.ads: Minor comment update for
8612         AI-362 (unit is Pure).
8613
8614         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
8615         Add pragma Pure_05 for AI-362
8616         Make remaining conversion functions obsolescent in Ada 95
8617
8618         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8619         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
8620         Add entries for a-wichun and a-zchuni
8621         Add a-widcha a-zchara for AI-395
8622         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
8623
8624         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8625         Add entries for a-wichun.o and a-zchuni.o
8626         Entries for a-widcha.o and a-zchara.o
8627         Add entry for a-chacon.o
8628
8629         * a-ztenau.adb: Add with of Ada.Characters.Conversions
8630
8631         * a-chacon.ads, a-chacon.adb: New files.
8632
8633         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
8634         categorization violations.
8635
8636         * a-strmap.ads: Add pragma Pure_05 for AI-362
8637         * a-strmap.ads: Add note on implicit categorization for AI-362
8638
8639         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
8640
8641         * par-prag.adb: Dummy entry for pragma Persistent_BSS
8642         Set Ada_Version_Explicit, for implementation of AI-362
8643         Add processing for pragma Pure_05 and Preelaborate_05
8644         Add entry for Assertion_Policy pragma
8645
8646         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
8647         when needed for proper processing of categorization stuff
8648
8649         * sem_cat.adb:
8650         For several cases, make errors in preealborate units warnings,
8651         instead of errors, if GNAT_Mode is set. For AI-362.
8652
8653         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
8654         preelaborate unit is now warning if in GNAT mode
8655
8656         * s-stoele.ads: Document AI-362 for pragma preelaborate
8657
8658 2005-06-14  Doug Rupp  <rupp@adacore.com>
8659
8660         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
8661         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
8662         Default_Exception_Msg_Max_Length: new parameter.
8663
8664         * a-except.ads: (Exception_Msg_Max_Length): Set to
8665         System.Parameters.Default_Exception_Msg_Max_Length
8666         Add pragma Preelaborate_05 for AI-362
8667         Add warnings off to allow categorization violations for AI-362
8668
8669 2005-06-14  Vincent Celier  <celier@adacore.com>
8670
8671         * gnatsym.adb: Adapt to modification of package Symbols: procedure
8672         Process is now in package Processing.
8673
8674         * symbols.ads, symbols.adb:
8675         (Processing): New package, containing procedure Process
8676
8677         * symbols-vms-alpha.adb:
8678         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
8679
8680         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
8681         symbols-processing-vms-ia64.adb: New files.
8682
8683 2005-06-14  Pascal Obry  <obry@adacore.com>
8684
8685         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
8686         implementation. This new version generates the proper DllMain routine
8687         to initialize the SAL. The DllMain is generated in Ada and compiled
8688         before being added as option to the library build command.
8689
8690 2005-06-14  Doug Rupp  <rupp@adacore.com>
8691             Pascal Obry  <obry@adacore.com>
8692
8693         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
8694         call to decc$translate_vms.
8695         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
8696         need to remove those quotes before catenating the filename.
8697         (__gnat_locate_exec_on_path): improvements to the Win32 section:
8698         * avoid allocating the memory twice for better efficiency;
8699         * allocate 32K buffer for environment expansion as suggested by MSDN;
8700         * prepend ".;" to the path so that current directory is searched too.
8701
8702 2005-06-14  Robert Dewar  <dewar@adacore.com>
8703
8704         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
8705         instead of raising CE (AI-241)
8706         Add warnings off to allow categorization violations for AI-362
8707
8708 2005-06-14  Robert Dewar  <dewar@adacore.com>
8709
8710         * ali-util.adb, gnatbind.adb: Remove references to
8711         Force_RM_Elaboration_Order.
8712
8713         * switch-b.adb: Remove recognition of -f switch
8714
8715 2005-06-14  Pascal Obry  <obry@adacore.com>
8716
8717         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
8718         implementation which is slightly more efficient.
8719
8720 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
8721             Javier Miranda  <miranda@adacore.com>
8722             Ed Schonberg  <schonberg@adacore.com>
8723             Hristian Kirtchev  <kirtchev@adacore.com>
8724
8725         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
8726         allocator's designated type is a class-wide type, and compiling for
8727         Ada 2005, emit a run-time check that the accessibility level of the
8728         type given in the allocator's expression is not deeper than the level
8729         of the allocator's access type.
8730
8731         (Tagged_Membership): Modified to gives support to abstract interface
8732         types.
8733
8734         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
8735         Access_Level.
8736         (Descendant_Tag): New predefined function
8737         (Is_Descendant_At_Same_Level): New predefined function
8738         (Get_Access_Level): New private function
8739         (Set_Access_Level): New private procedure
8740         (IW_Membership): New function. Given the tag of an object and the tag
8741         associated with an interface, evaluate if the object implements the
8742         interface.
8743         (Register_Interface_Tag): New procedure used to initialize the table of
8744         interfaces used by the IW_Membership function.
8745         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
8746         of the dispatch table.
8747         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
8748         table of interfaces of the parent.
8749         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
8750         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
8751         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
8752         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
8753         Ada 2005 semantics for the new predefined function.
8754
8755         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
8756         call to Descendant_Tag rather than Internal_Tag.
8757         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
8758         the accessibility level of the attribute's Item parameter is not deeper
8759         than the level of the attribute's prefix type. Tag_Error is raised if
8760         the check fails. The check is only emitted for Ada_05.
8761         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
8762         requested stream attribute, use it.
8763         (Expand_N_Attribute_Reference): If the designated type is an interface
8764         then rewrite the referenced object as a conversion to force the
8765         displacement of the pointer to the secondary dispatch table.
8766         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
8767         is a dereference of an object with a constrained partial view.
8768
8769         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
8770         type is a class-wide type, emit a run-time check that the accessibility
8771         level of the returned object is not deeper than the level of the
8772         function's master (only when compiling for Ada 2005).
8773
8774         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
8775         Action_Nb_Arg): Add entries for new Get_Access_Level and
8776         Set_Access_Level routines in these tables.
8777         (Make_DT): Generate a call to set the accessibility level of the
8778         tagged type in its TSD.
8779         (Make_DT): Code cleanup. The functionality of generating all the
8780         secondary dispatch tables has been moved to freeze_record_type.
8781         (Make_Abstract_Interface_DT): Minor code cleanup.
8782         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
8783         this subprogram implements a new algorithm that provides the
8784         same functionality and it is more clear in case of primitives
8785         associated with abstract interfaces.
8786         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
8787         clean up, the functionality of this subprogram is now provided
8788         by Set_All_DT_Position.
8789         (Write_DT): New subprogram: a debugging procedure designed to be called
8790         within gdb to display the dispatch tables associated with a tagged
8791         type.
8792         (Collect_All_Interfaces): New subprogram that collects the whole list
8793         of interfaces that are directly or indirectly implemented by a tagged
8794         type.
8795         (Default_Prim_Op_Position): New subprogram that returns the fixed
8796         position in the dispatch table of the default primitive operations.
8797         (Expand_Interface_Actuals): New subprogram to generate code that
8798         displaces all the actuals corresponding to class-wide interfaces to
8799         reference the interface tag of the actual object.
8800         (Expand_Interface_Conversion): New subprogram. Reference the base of
8801         the object to give access to the interface tag associated with the
8802         secondary dispatch table.
8803         (Expand_Interface_Thunk): New subprogram that generates the code of the
8804         thunk. This is required for compatibility with the C+ ABI.
8805         (Make_Abstract_Interface_DT): New subprogram that generate the
8806         declarations for the secondary dispatch tables associated with an
8807         abstract interface.
8808         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
8809         attribute for each primitive operation covering interface subprograms
8810         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
8811         These subprograms were upgraded to give support to abstract interfaces
8812
8813         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
8814         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
8815         RE_Set_Access_Level.
8816         (RE_Unit_Table): Add entries for new Ada.Tags operations.
8817         Add support to call the followig new run-time subprograms:
8818         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
8819
8820         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
8821         match its full declaration when both have an access definition with
8822         statically matching designated subtypes.
8823         (Analyze_Component_Declaration): Delete commented out code that was
8824         incorrectly setting the scope of an anonymous access component's type.
8825         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
8826         an access discriminant when the containing type is nonlimited.
8827         (Make_Incomplete_Type_Declaration): Create an incomplete type
8828         declaration for a record type that includes self-referential access
8829         components.
8830         (Check_Anonymous_Access_Types): Before full analysis of a record type
8831         declaration, create anonymous access types for each self-referential
8832         access component.
8833         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
8834         an access component in this context is a Local_Anonymous_Access, for
8835         proper accessibility checks.
8836         (Access_Definition): Set properly the scope of the anonymous access type
8837         created for a stand-alone access object.
8838         (Find_Type_Of_Object): An object declaration may be given with an access
8839         definition.
8840         (Complete_Subprograms_Derivation): New subprogram used to complete
8841         type derivation of private tagged types implementing interfaces.
8842         In this case some interface primitives may have been overriden
8843         with the partial-view and, instead of re-calculating them, they
8844         are included in the list of primitive operations of the full-view.
8845         (Build_Derived_Record_Type): Modified to give support to private
8846         types implemening interfaces.
8847         (Access_Definition): Reject ALL on anonymous access types.
8848         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
8849         type derivation to occur at a deeper accessibility level than the
8850         parent type.
8851         For the case of derivation within a generic body however, disallow the
8852         derivation if the derived type has an ancestor that is a formal type
8853         declared in the formal part of an enclosing generic.
8854         (Analyze_Object_Declaration): For protected objects, remove the check
8855         that they cannot contain interrupt handlers if not declared at library
8856         level.
8857         (Add_Interface_Tag_Components): New subprogram to add the tag components
8858         corresponding to all the abstract interface types implemented by a
8859         record type or a derived record type.
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         (Collect_Interfaces): New subprogram that collects the list of
8865         interfaces that are not already implemented by the ancestors
8866         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
8867         when partial view has no discriminants and full view has defaults.
8868         (Constrain_Access): Reject a constraint on a general access type
8869         if the discriminants of the designated type have defaults.
8870         (Access_Subprogram_Declaration): Associate the Itype node with the inner
8871         full-type declaration or subprogram spec. This is required to handle
8872         nested anonymous declarations.
8873         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8874         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8875         Process_Full_View, Record_Type_Declaration): Modified to give
8876         support to abstract interface types
8877         (Derive_Subprograms): Addition of a new formal to indicate if
8878         we are in the case of an abstact-interface derivation
8879         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
8880         to the specification because it is requied to analyze all the
8881         identifiers found in a list of interfaces
8882
8883         * debug.adb: Complete documentation of flag "-gnatdZ"
8884
8885         * exp_ch3.adb: Implement config version of persistent_bss pragma
8886         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
8887         testing for TSS presence to properly enforce visibility rules.
8888         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
8889         Make_Abstract_Interfaces_DT to generate the secondary tables
8890         associated with abstract interfaces.
8891         (Build_Init_Procedure): Modified to initialize all the tags
8892         corresponding.
8893         (Component_Needs_Simple_Initialization): Similar to other tags,
8894         interface tags do not need initialization.
8895         (Freeze_Record_Type): Modified to give support to abstract interface
8896         types.
8897         (Expand_N_Object_Declaration): Do not generate an initialization for
8898         a scalar temporary marked as internal.
8899
8900         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
8901         in-out parameter that is a component in an initialization procedure,
8902         whose constraint might depend on discriminants, and that may be
8903         misaligned because of packing or representation clauses.
8904         (Is_Legal_Copy): New predicate to determine whether a possibly
8905         misaligned in-out actual can actually be passed by copy/return. This
8906         is an error in case the type is by_reference, and a warning if this is
8907         the consequence of a DEC import pragma on the subprogram.
8908         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
8909         interface types
8910         (Expand_Inlined_Call): Mark temporary generated for the return value as
8911         internal, so that no useless scalar normalization is generated for it.
8912         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
8913         null procedure can always be inlined.
8914         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
8915         procedure, generate an explicit empty body for it.
8916
8917         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
8918         Given a type implementing an interface, returns the corresponding
8919         access_disp_table value.
8920         (Find_Interface_Tag): New subprogram. Given a type implementing an
8921         interface, returns the record component containing the tag of the
8922         interface.
8923         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
8924         previous ones that return the corresponding tag and access_disp_table
8925         entities.
8926         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
8927         is a predefined primitive operation.
8928         (Expand_Subtype_From_Expr): If the expression is a selected component
8929         within an initialization procedure, compute its actual subtype, because
8930         the component may depend on the discriminants of the enclosing record.
8931
8932         * i-cpp.ads, i-cpp.adb:
8933         This package has been left available for compatibility with previous
8934         versions of the frontend. As part of the new layout this is now a
8935         dummy package that uses declarations available at a-tags.ads
8936
8937         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
8938         "constant access" and "aliased [constant] access" when not compiling
8939         with -gnat05.
8940         Suppress Ada 2005 keyword warning if -gnatwY used
8941         (P_Identifier_Declarations): Add support for object declarations with
8942         access definitions.
8943         (Private_Extension_Declaration): Complete the documentation
8944         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
8945         attribute in case of private extension declaration
8946         (P_Type_Declaration): Mark as "abstract" the type declarations
8947         corresponding with protected, synchronized and task interfaces
8948         (P_Declarative_Items): "not" and "overriding" are overriding indicators
8949         for a subprogram or instance declaration.
8950
8951         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
8952         instantiation that is a dispatching operation has controlling access
8953         parameters that are null excluding.
8954         Save and restore Ada_Version_Explicit, for implementation of AI-362
8955         (Validate_Derived_Type_Instance): Add check for abstract interface
8956         types.
8957         (Analyze_Formal_Package): Establish Instantiation source for the copy of
8958         the generic that is created to represent the formal package.
8959         (Analyze_Package_Instantiation): Instantiate body immediately if the
8960         package is a predefined unit that contains inlined subprograms, and
8961         we are compiling for a Configurable_Run_Time.
8962         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
8963         If the program has a null default, generate an empty body for it.
8964
8965         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
8966         error message condition, null procedures are correctly detected now.
8967         (New_Overloaded_Entity): Bypass trivial overriding indicator check
8968         for subprograms in the context of protected types. Instead, the
8969         indicator is examined in Sem_Ch9 while analysing the subprogram
8970         declaration.
8971         (Check_Overriding_Indicator): Check consistency of overriding indicator
8972         on subprogram stubs as well.
8973         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
8974         the library level.
8975         (Analize_Subprogram_Specification): When analyzing a subprogram in which
8976         the type of the first formal is a concurrent type, replace this type
8977         by the corresponding record type.
8978         (Analyze_Subprogram_Body): Undo the previous work.
8979         (Analyze_Procedure_Call): If the call has the form Object.Op, the
8980         analysis of the prefix ends up analyzing the call itself, after which
8981         we are done.
8982         (Has_Interface_Formals): New subprogram subsidiary to analyze
8983         subprogram_specification that returns true if some non
8984         class-wide interface subprogram is found
8985         (New_Overloaded_Entity): Modified to give support to abstract
8986         interface types
8987         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
8988         access to subprograms must be recursive.
8989         (Is_Unchecked_Conversion): Improve the test that recognizes
8990         instantiations of Unchecked_Conversion, and allows them in bodies that
8991         are to be inlined by the front-end. When the body comes from an
8992         instantiation, a reference to Unchecked_Conversion will be an
8993         Expanded_Name, even though the body has not been analyzed yet.
8994         Replace Is_Overriding and Not_Overriding in subprogram_indication with
8995         Must_Override and Must_Not_Override, to better express intent of AI.
8996         (Analyze_Subprogram_Body): If an overriding indicator is given, check
8997         that it is consistent with the overrinding status of the subprogram
8998         at this point.
8999         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
9000         always inlined.
9001         If the subprogram is a null procedure, indicate that it does not need
9002         a completion.
9003
9004         * sem_disp.adb (Check_Controlling_Type): Give support to entities
9005         available through limited-with clauses.
9006         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
9007         allowed as the last primitive of a tagged type if it has no previous
9008         spec.
9009         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
9010         to give support to abstract interface types
9011
9012         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
9013         in the case where the target type is an anonymous access type of an
9014         object or component (that is, when Is_Local_Anonymous_Access is true).
9015         Prevent the special checks for conversions of access discriminants in
9016         the case where the discriminant belongs to a nonlimited type, since
9017         such discriminants have their accessibility level defined in the same
9018         way as a normal component of an anonymous access type.
9019         (Resolve_Allocator): When an allocator's designated type is a class-wide
9020         type, check that the accessibility level of type given in the
9021         allocator's expression or subtype indication is not statically deeper
9022         than the level of the allocator's access type.
9023         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
9024         name in a discriminant constraint of a record component.
9025         (Resolve_Explicit_Dereference): Do not check whether the type is
9026         incomplete when the dereference is a use of an access discriminant in
9027         an initialization procedure.
9028         (Resolve_Type_Conversion): Handle conversions to abstract interface
9029         types.
9030         (Valid_Tagged_Conversion): The conversion of a tagged type to an
9031         abstract interface type is always valid.
9032         (Valid_Conversion): Modified to give support to abstract interface types
9033         (Resolve_Actuals): Enable full error reporting on view conversions
9034         between unrelated by_reference array types.
9035         The rule for view conversions of arrays with aliased components is
9036         weakened in Ada 2005.
9037         Call to obsolescent subprogram is now considered to be a violation of
9038         pragma Restrictions (No_Obsolescent_Features).
9039         (Check_Direct_Boolean_Operator): If the boolean operation has been
9040         constant-folded, there is nothing to check.
9041         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
9042         check on possible violation of restriction No_Direct_Boolean_Operators
9043         until after expansion of operands, to prevent spurious errors when
9044         operation is constant-folded.
9045
9046         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
9047         Has_Compatible_Type): Modified to give support to abstract interface
9048         types.
9049         (Interface_Present_In_Ancestor): New function to theck if some ancestor
9050         of a given type implements a given interface
9051
9052         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
9053         prefix is a parameterless function that returns an access_to_procedure.
9054         (Transform_Object_Operation): Handle properly function calls of the
9055         form Obj.Op (X), which prior to analysis appear as indexed components.
9056         (Analyze_One_Call): Complete the error notification to help new Ada
9057         2005 users.
9058         (Analyze_Allocator): For an allocator without an initial value, where
9059         the designated type has a constrained partial view, a discriminant
9060         constraint is illegal.
9061
9062 2005-06-14  Robert Dewar  <dewar@adacore.com>
9063
9064         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
9065         do with treatment of Set_Col when positioned at end of line character.
9066
9067 2005-06-14  Robert Dewar  <dewar@adacore.com>
9068
9069         * atree.adb: (Elist*): Protect against uninitialized field
9070
9071 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9072
9073         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
9074         for an attribute reference that returns an access type.
9075         (Apply_Discriminant_Check): No need for check if (designated) type has
9076         constrained partial view.
9077
9078         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
9079         both bound checks, rather than a conjunction.
9080         (Insert_Valid_Check): If the expression is an actual that is an indexed
9081         component of a bit-packed array, force expansion of the packed element
9082         reference, because it is specifically inhibited elsewhere.
9083
9084 2005-06-14  Vincent Celier  <celier@adacore.com>
9085
9086         * clean.adb (Clean_Project): Correctly delete executable specified as
9087         absolute path names.
9088
9089         * make.adb (Gnatmake): Allow relative executable path names with
9090         directory information even when project files are used.
9091         (Change_To_Object_Directory): Fail gracefully when unable to change
9092         current working directory to object directory of a project.
9093         (Gnatmake): Remove exception handler that could no longer be exercized
9094         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
9095         may be deallocated by Normalize_Arguments.
9096         (Collect_Arguments): Eliminate empty arguments
9097
9098         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
9099         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
9100         (Check_Project): Return False when Project is No_Project. Return True
9101         when All_Projects is True.
9102         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
9103         All_Projects to True.
9104         Minor reformatting
9105
9106 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9107             Javier Miranda  <miranda@adacore.com>
9108             Thomas Quinot  <quinot@adacore.com>
9109             Robert Dewar  <dewar@adacore.com>
9110             Hristian Kirtchev  <kirtchev@adacore.com>
9111             Gary Dismukes  <dismukes@adacore.com>
9112
9113         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
9114         anonymous access types, to indicate that the accessibility level of
9115         the type is determined by that of the enclosing declaration.
9116         (Has_Persistent_BSS): New flag
9117         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
9118         of this attribute with functions.
9119         (Is_Primitive_Wrapper): Remove the barrier.
9120         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
9121         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
9122         New subprograms.
9123         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
9124         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
9125         New subprograms.
9126         (Is_Pure_Unit_Access_Type): New flag
9127         (Abstract_Interfaces): Complete the assertion to cover all usages.
9128         (Set_Is_Interface): Complete the assertion to cover all usages.
9129         (Is_Primitive_Wrapper): New attribute.
9130         (Is_Obsolescent): Now applies to all entities (though it is only set
9131         for subprograms currently)
9132         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
9133         which solves various problems concerning access subtypes.
9134         (Has_Persistent_BSS): New flag
9135         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
9136         Remove these subprograms because this attribute is currently
9137         not used.
9138         New entity flags:
9139         Has_Specified_Stream_Input (Flag190)
9140         Has_Specified_Stream_Output (Flag191)
9141         Has_Specified_Stream_Read (Flag192)
9142         Has_Specified_Stream_Write (Flag193)
9143         Present in all type and subtype entities. Set for a given view if the
9144         corresponding stream-oriented attribute has been defined by an
9145         attribute definition clause. When such a clause occurs, a TSS is set
9146         on the underlying full view; the flags are used to track visibility of
9147         the attribute definition clause for partial or incomplete views.
9148         (Is_Pure_Unit_Access_Type): New flag
9149         Clarify use of Is_Internal.
9150         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
9151         internally generated to wrap the invocation of tasks and protected
9152         types that implement interfaces.
9153         (Implementation_Base_Type): Documentation correction
9154         (Is_Obsolescent): Now applies to all entities (though it is only set
9155         for subprograms currently)
9156         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
9157         which solves various problems concerning access subtypes.
9158
9159         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
9160         for examined parameters. Identify unequal parameter list lengths as
9161         non-conformant parameters.
9162         (Overriding_Possible): Do not check for "All" qualifier in declaration
9163         of controlling access parameter, following prescription of AI-404.
9164         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
9165         that build the procedure body that wraps an entry invocation
9166         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
9167         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
9168         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
9169         give support to abstract interface types
9170
9171         * freeze.adb (Freeze_Entity): Issue error message if
9172         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
9173         type has no storage pool (Ada 2005) AI-366.
9174         Also modified to give support to abstract interface types
9175         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
9176         Inline_Always pragma.
9177
9178         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
9179         now begin an entry declaration.
9180         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
9181         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
9182         a subprogram declaration preceded by an overriding indicator.
9183         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
9184         declarations or subprogram declarations preceded by reserved words
9185         "not" or "overriding".
9186         (P_Entry_Declaration): Update comment. Parse and check overriding
9187         indicator, set semantic flags of entry declarations.
9188         (P_Task): New error message in case of private applied
9189         to a task type declaration.
9190         (P_Protected): New error message in case of private applied
9191         to a task type declaration.
9192
9193         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
9194         in which the full view of a type implementing an interface is a
9195         concurrent type.
9196         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
9197         Declare_Inherited_Private_Subprograms): If an explicit operation
9198         overrides an operation that is inherited in the private part, mark the
9199         explicit one as overriding, to enable overriding indicator checks.
9200         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
9201         full view to partial view, to simplify handling in back-end.
9202
9203         * sprint.adb: Print interface lists where needed: derived types,
9204         protected types, task types.
9205         output "is null" for null procedures. Part of implementation of
9206
9207         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
9208         relaxation of rules for access types in pure, shared passive partitions.
9209
9210         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
9211         first read discriminants into temporary objects, performing checks on
9212         the read values, then possibly performing discriminant checks on the
9213         actual (if it is constrained), and only finally reading the components
9214         into a constrained temporary object.
9215         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
9216         case of reading discriminants of a mutable record type to recognize
9217         the new form of the code generated by
9218         Build_Mutable_Record_Read_Procedure.
9219
9220         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
9221         of a simple call to Make_TSS_Name.
9222         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
9223         buffer, in order for Is_TSS to work correctly on local TSS names.
9224
9225         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
9226         Is_Local_Anonymous_Access to check legaliy of attributes in the
9227         context of  access components and stand-alone access objects.
9228         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
9229         treated as available for a limited private type if there is an
9230         attribute_definition_clause that applies to its full view, but not in
9231         other cases where the attribute is available for the full view
9232         (specifically, the sole fact that the full view is non-limited does not
9233         make the attribute available for the partial view).
9234         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
9235         non-overloaded intrinsic subprogram.
9236         (Check_Stream_Attribute): Reject an attribute reference for an
9237         unavailable stream attribute even if the prefix is not a limited type
9238         (case of a 'Input attribute reference for an abstract, non-classwide
9239         type)
9240         (Stream_Attribute_Available): New function to determine whether a stream
9241         attribute is available at a place.
9242         (Check_Attribute): Use Stream_Attribute_Available instead of just
9243         testing for TSS presence on the implementation base type.
9244         (Analyze_Attribute): Modified to give support to task interfaces.
9245         (Analyze_Access_Attribute): Add error check for use of an Access (or
9246         Unrestricted_Access) attribute with a subprogram marked as
9247         Inline_Always.
9248         (Analyze_Attribute, case Attribute_Address): Add error check for use of
9249         an Address attribute with a subprogram marked as Inline_Always.
9250         Update Eval_Attribute to handle new value of Width from AI-395
9251
9252         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
9253         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
9254         Factor common code across the stream-oriented attribute circcuits into
9255         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
9256         processing is functionally identical to the previous duplicated one,
9257         except that an expression that denotes an abstract subprogram will now
9258         be rejected, as mandated by AI-195 item 5.
9259
9260         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
9261         Is_Local_Anonymous_Access to apply accessibility checks to access
9262         components and stand-alone access objects.
9263         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
9264         elsewhere.
9265         (Is_Potentially_Persistent_Type): New function
9266         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
9267         a heap-object whose type has a constrained partial view, the object is
9268         unconstrained and the component may depend on a discriminant, making its
9269         renaming illegal.
9270
9271         * sinfo.ads, sinfo.adb
9272         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
9273         (Must_Override): Flag applicable to N_Entry_Declaration.
9274         Indicate that interface_list can appear in single task and single
9275         protected declarations.
9276         Replace Is_Overriding and Not_Overriding with Must_Override and
9277         Must_Not_Override, to better express intent of AI.
9278         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
9279         of an overriding indicator in a subprogram or instance.
9280         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
9281         Add the overriding indicator [[not] overriding] construct to the
9282         following grammar productions:
9283          ENTRY_DECLARATION
9284          GENERIC_INSTANTIATION
9285          SUBPROGRAM_SPECIFICATION
9286
9287         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
9288         can start with an overriding indicator.
9289
9290         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
9291         flags accordingly on subrogram specifications or instances.
9292
9293         * sem_ch8.adb:
9294         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
9295         overriding_indicator, if present, is consistent with status of spec.
9296         Improve error message for null-excluding checks on controlling access
9297         parameters.
9298         (Check_In_Previous_With_Clause): Protect the frontend against
9299         previously reported critical errors in the context clauses.
9300         Save and restore Ada_Version_Explicit, for implementation of AI-362
9301         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
9302         operation verify that controlling formals of the renamed entity that
9303         are access parameters are explicitly non-null.
9304         (Find_Expanded_Name): Improve error message when prefix is an illegal
9305         reference to a private child unit.
9306
9307         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
9308         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
9309         Rewrite to correspond to new wide character names in AI-395
9310
9311         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
9312         default procedures.
9313
9314 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9315             Robert Dewar  <dewar@adacore.com>
9316
9317         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
9318         code, not on the bodies of predefined operations, to cut down on
9319         spurious noise.
9320
9321 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9322
9323         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
9324         be expanded in place. The size computation does not require a
9325         subtraction, which would raise an exception on a compiler built with
9326         assertions when the upper bound is Integer'first.
9327         (Flatten): For an array of composite components, take into account the
9328         size of the components to determine whether it is safe to expand the
9329         array into a purely positional representation.
9330
9331 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9332
9333         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
9334         denoting a formal parameter into account.
9335
9336 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9337
9338         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
9339         the entry_call alternative of a conditional entry call, wrap the
9340         conditional entry call itself.
9341
9342 2005-06-14  Nicolas Setton  <setton@adacore.com>
9343             Ed Schonberg  <schonberg@adacore.com>
9344
9345         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
9346         the "simple_choice" member in a variant record, in accordance with the
9347         description in the package spec: the information output for a constant
9348         should be "S number", not "SS number".
9349         (Get_Encoded_Name): Return at once if not generating code. Avoids name
9350         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
9351
9352 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9353
9354         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
9355         RACW without any primitives, do not generate the if statement for
9356         dispatching by name in the PolyORB/DSA case, as it would be malformed
9357         (it would have an Elsif_Parts list that is not No_List, but with a
9358         length of 0).
9359
9360 2005-06-14  Robert Dewar  <dewar@adacore.com>
9361
9362         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
9363
9364 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
9365
9366         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
9367         can determine whether pragma Suppress_Exception_Locations is in effect.
9368
9369         * utils2.c (build_call_raise): Do not pass the file name to the
9370         exception handler if pragma Suppress_Exception_Locations is in effect.
9371         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
9372
9373 2005-06-14  Emmanuel Briot  <briot@adacore.com>
9374
9375         * g-debpoo.adb (Deallocate, Dereference): Improve output.
9376
9377 2005-06-14  Nicolas Roche  <roche@adacore.com>
9378
9379         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
9380         to ""
9381         (Next_Level): Fix minor bug in handling of ../dir case
9382         (Read): Add dir separator to Directory name so that "" is understood as
9383          "/"
9384
9385 2005-06-14  Pascal Obry  <obry@adacore.com>
9386
9387         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
9388         releasing the items.
9389
9390 2005-06-14  Vincent Celier  <celier@adacore.com>
9391             Cyrille Comar  <comar@adacore.com>
9392
9393         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
9394         with output file descriptor and with output file name.
9395         (Dup, Dup2): Now global procedures as they are used by two subprograms
9396         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
9397
9398 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9399
9400         PR ada/6717
9401
9402         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
9403         broadcast address.
9404         (Create_Selector): Bind listening socket used to create the signalling
9405         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
9406         Set listen backlog to 1 to ensure that we detect socket theft by a
9407         failure of our own connect(2) call.
9408         (Check_Selector): Improve documentation of the selector mechanism.
9409         (Broadcast_Inet_Addr): New constant.
9410
9411 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9412
9413         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
9414         type which turns out to be an incomplete and incorrect fix.
9415         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
9416         of the type is declared in a record (for determination of insertion
9417         type).
9418         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
9419         a private type and ensure that the primary entity is used for the type
9420         of the newly created function's V formal by taking the Etype of the
9421         view.
9422
9423 2005-06-14  Javier Miranda  <miranda@adacore.com>
9424             Jose Ruiz  <ruiz@adacore.com>
9425             Robert Dewar  <dewar@adacore.com>
9426             Ed Schonberg  <schonberg@adacore.com>
9427
9428         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
9429         that indicates if we are parsing a compilation unit found in a
9430         limited-with clause.
9431         It is use to avoid the circularity check.
9432
9433         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
9434         we are parsing a compilation unit found in a limited-with clause. This
9435         is use to avoid the circularity check.
9436
9437         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
9438         unit as a consequence of parsing a limited-with clause. This is used
9439         to avoid the circularity check.
9440
9441         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
9442         (Analyze_Context): Limited-with clauses are now allowed
9443         in more compilation units.
9444         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
9445         againts previously reported critical errors in context clauses
9446         (Install_Limited_Withed_Unit): Code cleanup plus static detection
9447         of two further errors: renamed subprograms and renamed packages
9448         are not allowed in limited with clauses.
9449         (Install_Siblings): Do not install private_with_clauses on the package
9450         declaration for a non-private child unit.
9451         (Re_Install_Parents): When a parent of the subunit is reinstalled,
9452         reset visibility of child units properly.
9453         (Install_Withed_Unit): When a child unit appears in a with_clause of its
9454         parent, it is immediately visible.
9455
9456 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9457             Emmanuel Briot  <briot@adacore.com>
9458
9459         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
9460         declared within an inlined body as referenced, to prevent spurious
9461         warnings.
9462         (Output_One_Ref): If an entity renames an array component, indicate in
9463         the ALI file that this aliases (renames) the array. Capture as well
9464         function renamings that rename predefined operations.
9465         Add information about generic parent for package and subprogram
9466         instances.
9467         (Get_Type_Reference): For a subtype that is the renaming of an actual in
9468         an instantiation, use the first_subtype to ensure that we don't generate
9469         cross-reference information for internal types.
9470         For objects and parameters of a generic private type, retain the '*'
9471         indicator to distinguish such an entity from its type.
9472
9473         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
9474         to store information about instantiated entities.
9475
9476         * ali.adb (Scan_ALI): Add support for parsing the reference to the
9477         generic parent
9478
9479         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
9480         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
9481         information.
9482
9483 2005-06-10  Doug Rupp  <rupp@adacore.com>
9484             Arnaud Charlet  <charlet@adacore.com>
9485             Olivier Hainque  <hainque@adacore.com>
9486             Jose Ruiz  <ruiz@adacore.com>
9487
9488         * Make-lang.in: Add initialize.o when needed.
9489         Remove obsolete references to RT_FLAGS.
9490         Add missing dependencies for sdefault.o
9491
9492         * initialize.c: New file.
9493
9494         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
9495         [VMS] cond_signal_table: Fix problem in declaration.
9496         [VMS] __gnat_error_handler: rewrite.
9497         Move all __gnat_initialize() routines to initialize.c
9498         Specialize the former "hpux" section to "hppa hpux", as this is what the
9499         section really is here for and we now have other hpux ports that need
9500         different contents.
9501         (__gnat_adjust_context_for_raise) i386-linux: First version of this
9502         function for this target. Adjust PC by one in the machine context. This
9503         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
9504         it is more reliable to do that in the signal handler itself.
9505         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
9506         flags, so that the handler is passed the context structure to adjust
9507         prior to the raise.
9508         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
9509         SA_SIGINFO sigaction should look like. Call
9510         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
9511         Machine_State_Operations stuff.
9512         Add conditional code so that the x86_64 is also supported.
9513
9514 2005-06-14  Pascal Obry  <obry@adacore.com>
9515
9516         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
9517         the library name.
9518
9519 2005-06-14  Robert Dewar  <dewar@adacore.com>
9520
9521         * opt.ads, opt.adb: New flags for persistent_bss mode
9522         Add Ada_Version_Explicit, for implementation of AI-362
9523         Add Assertions_Enabled_Config and associated handling
9524         Needed since setting can be changed with Assertion_Policy pragma
9525         Add new flag Warn_On_Ada_2005_Compatibility
9526
9527         * switch-c.adb: Recognize -gnatwy/Y
9528         Set Ada_Version_Explicit, for implementation of AI-362
9529         The -gnatg switch now includes -gnatyu
9530
9531         * usage.adb: Add -gnatwy/Y
9532         Remove wrong asterisk on -gnatwX line
9533         Add line for -gnatyu switch
9534
9535 2005-06-14  Vincent Celier  <celier@adacore.com>
9536
9537         * osint.adb (Add_Default_Search_Dirs): Put source and object
9538         directories of project files before directories coming from
9539         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
9540
9541 2005-06-14  Robert Dewar  <dewar@adacore.com>
9542
9543         PR ada/15613
9544
9545         * par-ch2.adb (Scan_Pragma_Argument): New procedure
9546         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
9547
9548 2005-06-14  Vincent Celier  <celier@adacore.com>
9549
9550         * prep.adb (Preprocess): Ignore error when scanning the first token of
9551         a line.
9552
9553 2005-06-14  Vincent Celier  <celier@adacore.com>
9554
9555         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
9556         (Check_Stand_Alone_Library): If the specified reference symbol file does
9557         not exist, only issue a warning when the symbol policy is not
9558         Controlled. And, when symbol policy is Compliant, set the symbol
9559         policy to Autonomous.
9560
9561 2005-06-14  Vincent Celier  <celier@adacore.com>
9562
9563         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
9564         when the project file in a with clause is not the last one, that is the
9565         project file name is followed by a comma.
9566         * prj-pp.adb: (First_With_In_List): New Boolean global variable
9567         (Print): Issue list of project files separated by commas in with clauses
9568         according to the values returned by Is_Not_Last_In_List.
9569         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
9570         (Set_Is_Not_Last_In_List): New procedure
9571
9572 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9573
9574         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
9575
9576 2005-06-14  Robert Dewar  <dewar@adacore.com>
9577
9578         * scng.adb: Add call to new Check_EOF routine
9579         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
9580         Add some comments regarding wide character handling
9581
9582         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
9583
9584         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
9585
9586         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
9587         characters are now considered graphic characters and hence yield false
9588         in this call.
9589
9590         * nmake.adt: Modify header so that xnmake does not generate output
9591         files with multiple blank lines.
9592
9593         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9594         not have an extra blank line
9595
9596 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9597
9598         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
9599         expression when the component type is an anonymous access type to
9600         ensure that appropriate accessibility checks are done.
9601
9602         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
9603         expression of an assignment when the target object is of an anonymous
9604         access type. This ensures that required accessibility checks are done.
9605         (One_Bound): Move the check for type Universal_Integer to
9606         Process_Bounds.
9607         (Process_Bounds): Check whether the type of the preanalyzed range is
9608         Universal_Integer, and in that case set Typ to Integer_Type prior
9609         to setting the type of the original range and the calls to One_Bound.
9610
9611 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9612
9613         * sem_case.adb (Expand_Others_Choice): Improve warning.
9614
9615 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9616
9617         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
9618         constraint of full view if present, when other type is discriminated.
9619         (Eval_Relational_Op): Recognize tests of pointer values against Null,
9620         when the pointer is known to be non-null, and emit appropriate warning.
9621
9622 2005-06-14  Robert Dewar  <dewar@adacore.com>
9623             Ed Schonberg  <schonberg@adacore.com>
9624
9625         PR ada/10671
9626
9627         * sem_prag.adb: Implement pragma Persistent_BSS
9628         Remove obsolete pragma Persistent_Data, Persistent_Object
9629         Set Ada_Version_Explicit, for implementation of AI-362
9630         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
9631         Add processing for pragma Pure_05 and Preelaborate_05
9632         Add processing for Assertion_Policy pragma
9633         Add pragma identifiers for Assert
9634         (Analyze_Pragma, case Assert): Check number of arguments
9635         (Process_Inline): Additional guard against an illegal program, where the
9636         argument of the pragma is undefined, and warnings on redundant
9637         constructs are enabled.
9638         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
9639         Ada_05 to this pragma, specifying that the pragma is only active in
9640         Ada_05 mode.
9641         (Check_Arg_Order): New procedure
9642         Add appropriate calls to this procedure throughout
9643         Also throughout, check entity name before doing any other checks
9644
9645         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
9646         Remove obsolete pragma Persistent_Data, Persistent_Object
9647         Add entries for pragma Pure_05 and Preelaborate_05
9648         Add entries for Assertion_Policy pragma and associated names
9649         Add some names for pragma argument processing
9650
9651         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
9652
9653 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9654
9655         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
9656         appears within a negation (either from source or as a rewriting of
9657         inequality) adjust text of warning accordingly.
9658
9659 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9660
9661         * s-strxdr.adb: Follow AI95-00132
9662
9663 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9664
9665         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
9666
9667 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9668             Jose Ruiz  <ruiz@adacore.com>
9669
9670         * s-tposen.adb, s-tpobop.adb
9671         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
9672         the exception id.
9673         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
9674         there is no violation of the Max_Entry_Queue_Length restriction (if it
9675         has been set); Program_Error is raised otherwise.
9676         (Requeue_Call): Before requeuing the task on the target entry queue we
9677         check that there is no violation of the Max_Entry_Queue_Length
9678         restriction (if it has been set); Program_Error is raised otherwise.
9679
9680 2005-06-14  Robert Dewar  <dewar@adacore.com>
9681
9682         * styleg.adb: Fix several remaining problems in -gnatyu switch
9683         Blank line count not reset at start
9684         Scanning outside source buffer in some cases
9685         Confusing message for blanks at end of file
9686         Non-empty blank lines not recognized
9687
9688         * nmake.adt: Modify header so that xnmake does not generate output
9689         files with multiple blank lines.
9690
9691         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9692         not have an extra blank line
9693
9694 2005-06-14  Sergey Rybin  <rybin@adacore.com>
9695
9696         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
9697
9698 2005-06-14  Doug Rupp  <rupp@adacore.com>
9699             Vincent Celier  <celier@adacore.com>
9700
9701         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
9702         Update copyright.
9703
9704         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9705         Remove "Library" command.
9706         Change keyword for style check -gnatyd from NOCRLF to
9707         DOS_LINE_ENDINGS.
9708         Remove useless second style check keyword NONE
9709         Remove help documentation for inexistent style check keyword
9710         RM_COLUMN_LAYOUT.
9711         Add help documentation for style check keywords DOS_LINE_ENDINGS,
9712         UNNECESSARY_BLANK_LINES and XTRA_PARENS
9713         Add UNNECESSARY_BLANK_LINES for -gnatyu
9714         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
9715
9716         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9717
9718 2005-06-14  Vincent Celier  <celier@adacore.com>
9719
9720         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
9721         gprmake was invoked with -d.
9722         (Compile_Sources): If -d was used, output the "completed ..." message
9723         for each compilation.
9724         (Scan_Arg): Recognize new switch -d
9725         When -c and at least one main is specified, set
9726         Unique_Compile to True to guarantee that no other sources will be
9727         compiled.
9728
9729 2005-06-14  Matthew Heaney  <heaney@adacore.com>
9730
9731         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
9732         * a-swuwha.ads, a-swuwha.adb: New files
9733
9734         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
9735         * a-szuzha.ads, a-szuzha.adb: New files.
9736
9737         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9738         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
9739         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
9740         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
9741         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
9742         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
9743         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
9744         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
9745         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
9746         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
9747         Ada 2005 RM.
9748
9749 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9750             Olivier Hainque  <hainque@adacore.com>
9751             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9752             Pascal Obry  <obry@adacore.com>
9753
9754         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
9755
9756         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
9757         making a temporary around a procedure call because of non-addressable
9758         actual parameter.
9759         (process_freeze_entity): If entity is a private type, capture size
9760         information that may have been computed for the full view.
9761         (tree_transform, case N_Allocator): If have initializing expression,
9762         check type for Has_Constrained_Partial_View and pass that to
9763         build_allocator.
9764         (tree_transform, case N_Return_Statement): Pass extra arg to
9765         build_allocator.
9766
9767         * decl.c (annotate_value): Remove early return if -gnatR is not
9768         specified.
9769         (gnat_to_gnu_field): Don't make a packable type for a component clause
9770         if the position is byte aligned, the field is aliased, and the clause
9771         size isn't a multiple of the packable alignment. It serves no useful
9772         purpose packing-wise and would be rejected later on.
9773         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
9774
9775         PR ada/20515
9776         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
9777         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
9778         instead.
9779         (create_concat_name): Idem.
9780
9781 2005-06-10  Robert Dewar  <dewar@adacore.com>
9782             Eric Botcazou  <ebotcazou@adacore.com>
9783             Ben Brosgol  <brosgol@adacore.com>
9784             Cyrille Comar  <comar@adacore.com>
9785             Sergey Rybin  <rybin@adacore.com>
9786             Pascal Obry  <obry@adacore.com>
9787
9788         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
9789         Document second argument (Ada_05) of pragma Obsolescent
9790         Add note that call to subprogram marked with pragma Obsolescent
9791         is now considered to be a violation of program Restrictions
9792         (No_Obsolescent_Features).
9793         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
9794         that only machine-dependent attributes are supported.
9795
9796         * gnat_ugn.texi:
9797         Commented out menu lines and empty section for gnatclean examples
9798         Document -gnatwy/Y
9799         Fix some over long lines
9800         Clarify and enhance documentation of ADA_PROJECT_PATH.
9801         Rework section 2.11.2(3) about linking with a non-GNU compiler.
9802         Mention new switch -fcallgraph-info.
9803         Mention new switch -fstack-usage.
9804         For gnatpp, replace '-notab' with '-N' and add this option to Index
9805         Corrected VMS example.
9806         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
9807         Minor reformatting
9808         Add documentation for -gnatyu switch (unnecessary blank lines)
9809         Document new switch -U for GNAT PRETTY and GNAT METRIC
9810         Add note about Stdcall being handled as C convention on non Windows OS.
9811         Remove some junk typo in description of gnatbind -S switch
9812         Remove reference to Extensions_Allowed pragma
9813         Document the new order of the directories to be searched (source and
9814         object directories of project files before directories in ADA_*_PATH
9815         environment variables.
9816
9817         * g-trasym.ads: Document that IRIX is supported
9818
9819 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
9820
9821         * Makefile.in: Add initialize.o when needed.
9822         Adapt to new VMS package body Symbols and subunits
9823         No specialized version of a-sytaco is needed for VxWorks.
9824
9825         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
9826         * a-zchara.ads, a-widcha.ads: New files.
9827
9828         * system-hpux-ia64.ads: New file.
9829
9830         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
9831         is imported from the VxWorks kernel.
9832
9833 2005-06-14  Robert Dewar  <dewar@adacore.com>
9834
9835         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
9836         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
9837         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
9838         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
9839         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
9840         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
9841         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
9842         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
9843         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
9844         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
9845         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
9846         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
9847
9848 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9849
9850         * xeinfo.adb: Fix typo in comment
9851
9852 2005-06-14  Javier Miranda  <miranda@adacore.com>
9853
9854         * repinfo.ads: Fix typo in comment
9855
9856 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9857
9858         * s-finimp.adb (Parent_Tag): Delete this imported function (function
9859         Parent_Tag is now in the visible part of Ada.Tags).
9860         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
9861         using imported function.
9862
9863 2005-06-14  Bernard Banner  <banner@adacore.com>
9864
9865         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
9866         also apply for handling support for VxSim 653.
9867
9868 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9869
9870         * xsnames.adb: Add automatic generation of snames.h.
9871
9872 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9873
9874         * gen-soccon.c: Add IP_MULTICAST_IF constant
9875         Minor reformatting and adjustments to prevent warnings.
9876
9877 2005-06-14  Pascal Obry  <obry@adacore.com>
9878
9879         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
9880
9881 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
9882
9883         * trans.c (gnat_gimplify_expr): Call
9884         recompute_tree_invarant_for_addr_expr when we change
9885         the operand of the ADDR_EXPR.
9886
9887 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9888
9889         * misc.c: Don't include errors.h.
9890
9891 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9892
9893         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
9894
9895 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
9896
9897         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
9898         comment typos.
9899         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
9900
9901 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
9902
9903         PR ada/20270
9904         * Makefile.in: Make TGT_LIB behave correctly.
9905
9906 2005-04-23  DJ Delorie  <dj@redhat.com>
9907
9908         * misc.c: Adjust warning() callers.
9909
9910 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
9911
9912         PR ada/18847
9913         * a-nudira.adb (Value): Check for valid string.
9914         * a-nuflra.adb (Value): Likewise.
9915
9916 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
9917
9918         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
9919
9920 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
9921
9922         * adaint.c, init.c, tracebak.c: Fix comment typos.
9923         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
9924
9925 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
9926             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9927
9928         * Makefile.in: Add make ifeq define for hppa linux tasking support.
9929         * system-hpux.ads: Define Signed_Zeros to be True.
9930         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
9931
9932 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
9933
9934         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
9935         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
9936         typos.
9937
9938 2005-03-30  Tom Tromey  <tromey@redhat.com>
9939
9940         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
9941
9942 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9943
9944         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
9945
9946 2005-03-29  Robert Dewar  <dewar@adacore.com>
9947
9948         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
9949         fixed-point expression has value that is not a multiple of the Small
9950         value.
9951
9952         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
9953
9954         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
9955         nanoseconds.
9956
9957         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
9958
9959 2005-03-29  Vincent Celier  <celier@adacore.com>
9960
9961         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
9962         (Build_Dynamic_Library.Version_String): Return the empty string when
9963         Lib_Version is empty or when the symbol policy is not Autonomous.
9964
9965         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
9966         a symbol is not in the reference symbol file, increase the Major ID
9967         and set the Minor ID to 0.
9968         Use gsmatch=lequal instead of gsmatch=equal
9969
9970 2005-03-29  Doug Rupp  <rupp@adacore.com>
9971
9972         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
9973         name and translate.
9974
9975 2005-03-29  Javier Miranda  <miranda@adacore.com>
9976
9977         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
9978         (Inherit_DT): The first formal has been redefined as a Tag.
9979         This allows us the removal of the subprogram Get_TSD.
9980         (TSD): Replace the call to Get_TSD by the actual code.
9981
9982         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
9983         (Make_DT): Upgrade the call to Inherit_TSD according to the
9984         new interface: the first formal is now a Tag.
9985
9986         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
9987         redefined as a Tag.
9988         This change allows us to remove the subprogram Get_TSD.
9989         (CPP_Get_TSD): Subprogram removed.
9990         (TSD): Replace the call to CPP_Get_TSD by the actual code.
9991
9992         * rtsfind.ads: Remove support to call the run-time
9993         subprogram Get_TSD
9994
9995 2005-03-29  Robert Dewar  <dewar@adacore.com>
9996
9997         * errutil.adb, errout.adb:
9998         Minor comment updates on Line_Terminator references
9999
10000         * par-ch10.adb: Add ??? comment about line terminator
10001
10002         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
10003         (check dos line terminator).
10004         (Check_Line_Max_Length): New procedure, split off from the existing
10005         Check_Line_Terminator routine. Separating this out allows -gnatyf to
10006         be properly recognized.
10007
10008         * styleg.adb: Add ??? comment for line terminator reference
10009
10010         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
10011         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
10012
10013         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
10014         (check dos line terminator).
10015         (Check_Line_Max_Length): New procedure, split off from the existing
10016         Check_Line_Terminator routine. Separating this out allows -gnatyf to
10017         be properly recognized.
10018
10019         * stylesw.ads, stylesw.adb:
10020         Add handling for new -gnatyd switch (check dos line terminator)
10021
10022         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
10023         Recognize -gnatwb/-gnatwB switches
10024         Include Warn_On_Bad_Fixed_Value for -gnatg
10025
10026         * usage.adb:
10027         Add line for new -gnatyd switch (check dos line terminator)
10028
10029         * usage.adb: Add lines for -gnatwb/-gnatwB
10030
10031         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
10032
10033         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
10034
10035         * gnat_ugn.texi: Fix overlong lines
10036         Document new -gnatyd switch
10037         Document new -gnatwb/-gnatwB switches
10038
10039 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10040
10041         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
10042         order to retrieve the component list of the type, before examining
10043         individual components.
10044
10045         * sem_type.adb (Covers): Types are compatible if one is the base type
10046         of the other, even though their base types might differ when private
10047         views are involved.
10048
10049 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10050
10051         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
10052         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
10053         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
10054         analyzed if expansion is disabled (which could otherwise cause spurious
10055         error messages if expansion has been disabled due to previous
10056         (unrelated) errors).
10057
10058         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
10059         is disabled, the entity denoted by the argument is the access type
10060         itself, not an underlying record type, so there is no need to go back
10061         to the Corresponding_Remote_Type.
10062
10063 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
10064             Robert Dewar  <dewar@adacore.com>
10065
10066         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
10067         expand a call to an instance of
10068         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
10069         Constructor actual of the instance. A class-wide membership
10070         check is also generated, to ensure that the tag passed to the instance
10071         denotes a type in the class.
10072         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
10073         of Name_Generic_Dispatching_Constructor.
10074
10075         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
10076         05 unit for AI-260-02).
10077
10078         * a-tgdico.ads: New file.
10079
10080         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
10081         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
10082
10083         * snames.ads, snames.adb (Preset_Names): Add entry for
10084         Generic_Dispatching_Constructor.
10085
10086         PR ada/20300
10087
10088         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
10089         character type cases.
10090         (Analyze_Subprogram_Renaming): Add special handling for
10091         the case of renaming of stream attributes when the renaming denotes a
10092         generic formal subprogram association for an abstract formal subprogram.
10093         Check that the attribute is a primitive stream attribute (and not
10094         a class-wide stream attribute) and then rewrite the attribute name
10095         as the name of the appropriate compiler-generated stream primitive.
10096
10097 2005-03-29  Robert Dewar  <dewar@adacore.com>
10098
10099         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
10100         recursive calls.
10101         (Is_Possibly_Unaligned_Object): Correct typo that
10102         resulted in inaccurate result for unaligned scalars within records.
10103
10104 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10105
10106         * freeze.adb (Freeze_Record_Type): If the type of the component is an
10107         itype whose parent is controlled and not yet frozen, do not create a
10108         freeze node for the itype if expansion is disabled.
10109
10110 2005-03-29  Vincent Celier  <celier@adacore.com>
10111
10112         * make.adb (Gnatmake): Don't fail if the main project file is declared
10113         as having no Ada sources. Do not display message "no sources to
10114         compile" in quiet output.
10115
10116 2005-03-29  Doug Rupp  <rupp@adacore.com>
10117
10118         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
10119         extra tools.
10120
10121 2005-03-29  Robert Dewar  <dewar@adacore.com>
10122
10123         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
10124         child.
10125
10126 2005-03-29  Robert Dewar  <dewar@adacore.com>
10127
10128         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
10129         missing TYPE Improve the error message generated when compiling a
10130         limited interface in Ada83 or Ada95 mode.
10131
10132 2005-03-29  Robert Dewar  <dewar@adacore.com>
10133
10134         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
10135         rather than proceed ahead using a junk attribute name.
10136
10137 2005-03-29  Vincent Celier  <celier@adacore.com>
10138
10139         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
10140
10141         * prj-part.adb (Parse_Single_Project): Set the location of a project
10142         on its defining identifier, rather than on the reserved word "project".
10143
10144         * prj-proc.adb (Expression): Adapt to the fact that default of external
10145         references may be string expressions, not always literal strings.
10146         (Recursive_Process): Set Display_Name equal to Name
10147         when Location is No_Location, that is when there is no actual file.
10148         Get the Display_Name of the project from the source, when it is not a
10149         virtual project.
10150         (Process): Use the Display_Name in error messages
10151
10152         * prj-strt.adb (External_Reference): Allow default to be string
10153         expressions, not only literal strings.
10154
10155 2005-03-29  Vincent Celier  <celier@adacore.com>
10156
10157         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
10158         file and the reference symbol file to be the same file.
10159
10160 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10161
10162         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
10163         forbid conversion of a local access-to-subprogram type to a remote one.
10164
10165         * sem_util.adb (Wrong_Type): For a record type that is the expanded
10166         equivalent type for a remote access-to-subprogram type, go back to the
10167         original RAS entity when displaying an error message, so the casing is
10168         the original source casing.
10169
10170 2005-03-29  Robert Dewar  <dewar@adacore.com>
10171
10172         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
10173         on param update.
10174
10175 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10176
10177         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
10178         subtype if code is being pre-analyzed, to prevent un-expanded
10179         references to protected formals, among others.
10180         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
10181         interpretation that can be a call, include the result of the call as a
10182         possible interpretation of the dereference.
10183
10184         * sem_ch5.adb (Process_Bounds): Determine type of range by
10185         pre-analyzing a copy of the original range, and then analyze the range
10186         with the expected type.
10187
10188         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
10189         with an overloaded prefix where not all interpretations yield an
10190         access to subprogram, do not rewrite node as a call.
10191         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
10192         the node as a call once the context identifies the interpretation of
10193         the prefix whose call yields the context type.
10194         (Valid_Conversion): For the case of a conversion between
10195         local access-to-subprogram types, check subtype conformance using
10196         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
10197         detailed error message.
10198
10199 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10200
10201         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
10202         indicator, indicate that the formal can never be null.
10203         (Process_Formals): If a formal has a non_null indicator, insert the
10204         resulting subtype immediately before the enclosing subprogram decl,
10205         and not at the beginning of the corresponding declarative part, to
10206         prevent access before elaboration (Ada2005).
10207
10208 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10209
10210         PR ada/19956
10211         * utils.c (finish_record_type): Use variable_size when setting sizes.
10212
10213 2005-03-29  Robert Dewar  <dewar@adacore.com>
10214
10215         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
10216         guarantee Unix style line terminators for the output files, even when
10217         running on windows.
10218
10219 2005-03-29  Robert Dewar  <dewar@adacore.com>
10220
10221         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
10222         buffer if an exception is raised.
10223
10224 2005-03-29  Ed Falis  <falis@adacore.com>
10225
10226         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
10227         VxWorks 653 1.4
10228
10229 2005-03-29  Robert Dewar  <dewar@adacore.com>
10230
10231         * sem_util.ads: Minor reformatting
10232         * gnat_rm.texi: Minor editing.
10233
10234 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
10235
10236         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
10237         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
10238
10239 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10240
10241         * adaint.c (__gnat_portable_spawn): Adjust cast.
10242
10243 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
10244
10245         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
10246
10247 2005-03-17  Pascal Obry  <obry@adacore.com>
10248
10249         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
10250         used.
10251
10252         * expect.c (__gnat_waitpid): Moved here from adaint.c.
10253         Reimplement under Win32 using Win32 API.
10254
10255         (__gnat_kill) [Win32]: Properly close the process handle before leaving
10256         this routine.
10257
10258 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
10259
10260         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
10261         (DECL_RENAMED_OBJECT): New accessor macro.
10262         (SET_DECL_RENAMED_OBJECT): New setter macro.
10263
10264         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
10265         object in all cases.  Attach the renamed object to the VAR_DECL.
10266         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
10267         field is not prescribed.
10268
10269         * misc.c (gnat_handle_option): Handle -gnatO separately.
10270         (gnat_print_decl) <VAR_DECL>: New case.
10271         Print the DECL_RENAMED_OBJECT node.
10272
10273         * lang.opt:  Declare separate -gnatO option.
10274
10275         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
10276         pointer, replace it with the renamed object.
10277         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
10278         pointer type if the source is not a fat pointer type whose underlying
10279         array has the same non-zero alias set as that of the destination array.
10280
10281 2005-03-17  Javier Miranda  <miranda@adacore.com>
10282
10283         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
10284         (Get_Inheritance_Depth): Removed.
10285         (Set_Inheritance_Depth): Removed.
10286
10287         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
10288         subprogram Get_Expanded_Name because it is not referenced by the
10289         frontend.
10290
10291         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
10292         (CPP_Get_Inheritance_Depth): Removed.
10293         (CPP_Set_Inheritance_Depth): Removed.
10294
10295         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
10296
10297 2005-03-17  Robert Dewar  <dewar@adacore.com>
10298
10299         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
10300         3, since we now expect GCC 3 to do all the work.
10301
10302 2005-03-17  Javier Miranda  <miranda@adacore.com>
10303
10304         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
10305         of one barrier to avoid wrong usage of this attribute.
10306
10307         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
10308         First_Private_Entity.
10309
10310         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
10311         the subprogram against wrong usage.
10312         Adapt the code to traverse the entities in the
10313         scope of a record_type because in addition to its usage regarding
10314         packages, this subprogram is also called by Expand_N_Freeze_Entity
10315         to install the visible declarations of the enclosing scope of a
10316         record_type_with_private to establish the proper visibility before
10317         freezing the entity and related subprograms.
10318
10319 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10320
10321         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
10322         entry formals.
10323
10324 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10325
10326         * exp_ch3.adb (Check_Attr): New subprogram.
10327         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
10328         into a new Check_Attr subprogram, in order to provide a more
10329         explanatory error message (including the name of the missing attribute).
10330         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
10331         subprogram determines whether a default implementation exists for a
10332         given stream attribute.
10333         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
10334         Determine whether to generate a default implementation for each stream
10335         attribute separately, as this depends on the specific attribute.
10336
10337         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
10338         limited extension where a stream attribute is missing for a limited
10339         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
10340         generate a bogus reference to the missing attribute to prevent
10341         cascaded errors. Instead, generate a null statement.
10342
10343         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
10344         available for a limited type if it has been specified for an ancestor
10345         of the type.
10346
10347 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10348
10349         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
10350         entity is an operator.
10351
10352 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10353
10354         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10355         spec, to make this predicate available to other units.
10356
10357         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
10358         reimplementing it.
10359
10360         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
10361         when no distribution runtime library is available.
10362
10363         * sem_res.adb, sem_dist.adb: Disable expansion of remote
10364         access-to-subprogram types when no distribution runtime library is
10365         available.
10366         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
10367         predicate available to other units.
10368
10369         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10370         spec, to make this predicate available to other units.
10371
10372 2005-03-17  Vincent Celier  <celier@adacore.com>
10373
10374         * make.adb (Insert_Project_Sources): Make sure the Q is always
10375         initialized.
10376
10377         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
10378         the default for the tree, not the global default naming.
10379
10380         * prj-proc.adb (Recursive_Process): No need to put the default naming
10381         in the project data, it's already there.
10382
10383 2005-03-17  Doug Rupp  <rupp@adacore.com>
10384
10385         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
10386
10387         * 5xcrtl.ads: Renamed to...
10388         * s-crtl-vms64.ads: ...this new file
10389
10390 2005-03-17  Robert Dewar  <dewar@adacore.com>
10391
10392         PR ada/19519
10393
10394         * namet.adb (Copy_One_Character): Set proper wide character encoding
10395         for upper half character if we have upper half encoding.
10396
10397 2005-03-17  Robert Dewar  <dewar@adacore.com>
10398
10399         * par.adb (Par): Improved msg for attempt to recompile predefined unit
10400
10401 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10402
10403         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
10404         tagged limited type, the TSS is a newly built renaming declaration:
10405         insert it using Set_TSS, not Copy_TSS.
10406
10407 2005-03-17  Javier Miranda  <miranda@adacore.com>
10408
10409         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
10410         Try_Object_Operation): Analyze the object that is accessible
10411         through the prefix of the subprogram call before we apply
10412         the transformation of the object-operation notation.
10413
10414 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
10415
10416         * s-taprob.adb (Initialize_Protection): Initialize the protected
10417         object's owner to Null_Task.
10418         (Lock): If pragma Detect_Blocking is in effect and the caller of this
10419         procedure is already the protected object's owner then Program_Error
10420         is raised. In addition the protected object's owner is updated.
10421         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
10422         of this procedure is already the protected object's owner then
10423         Program_Error is raised.
10424         In addition the protected object's owner is updated.
10425         (Unlock): Remove the ownership of the protected object.
10426
10427         * s-taprob.ads (Protection): Add the field Owner, used to store the
10428         protected object's owner.
10429         This component is needed for detecting one type of potentially blocking
10430         operations (external calls on a protected subprogram with the same
10431         target object as that of the protected action). Document the rest of
10432         the components.
10433
10434         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
10435         Initialize the protected object's owner to Null_Task.
10436         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
10437         caller of this procedure is already the protected object's owner then
10438         Program_Error is raised.
10439         Do not raise Program_Error when this procedure is called from a
10440         protected action.
10441         (Unlock_Entries): Remove the ownership of the protected object.
10442         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
10443         of this procedure is already the protected object's owner then
10444         Program_Error is raised.
10445         Do not raise Program_Error when this procedure is called from
10446         a protected action.
10447
10448         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
10449         used to store the protected object's owner.
10450
10451         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
10452         effect and this procedure (a potentially blocking operation) is called
10453         from whithin a protected action, Program_Error is raised.
10454         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
10455         and this procedure (a potentially blocking operation) is called from
10456         whithin a protected action, Program_Error is raised.
10457
10458 2005-03-17  Vincent Celier  <celier@adacore.com>
10459             Nicolas Setton  <setton@adacore.com>
10460
10461         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
10462         switch, not supported by the linker on Darwin. Add '_' before
10463         <library>init, as this character is added unconditionally by the
10464         compiler.
10465         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
10466         correct one ".dylib". This fixes detection of the archive files when
10467         building library projects.
10468
10469 2005-03-17  Vincent Celier  <celier@adacore.com>
10470
10471         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
10472         -gnat83, -gnat95 and -gnat05.
10473
10474 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
10475
10476         * gnat_ugn.texi: Document gnatmem restriction
10477
10478 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10479
10480         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
10481         cleanup
10482
10483 2005-03-17  Robert Dewar  <dewar@adacore.com>
10484
10485         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
10486         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
10487         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
10488
10489         * casing.adb: Comment improvements
10490
10491 2005-03-17  Pascal Obry  <obry@adacore.com>
10492
10493         * g-expect.adb: Minor reformatting.
10494
10495 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
10496
10497         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
10498         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
10499         to dependencies.
10500
10501 2005-03-15  Vincent Celier  <celier@adacore.com>
10502
10503         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
10504         Add new parameter In_Tree to specify the project tree: needed
10505         by the project manager. Adapt to changes in project manager
10506         using new parameter In_Tree.
10507
10508 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
10509
10510         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
10511         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
10512         ada/bldtools to avoid make -jN failures.
10513
10514 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10515
10516         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
10517         to NULL_TREE on entry.
10518
10519 2005-03-15  Robert Dewar  <dewar@adacore.com>
10520
10521         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
10522         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
10523         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
10524         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
10525         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10526         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
10527         system-interix.ads, system-solaris-sparc.ads,
10528         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
10529         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
10530         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
10531         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
10532         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
10533         Compiler_System_Version to be False.
10534
10535         * opt.ads: Add new flag Opt.Address_Is_Private
10536
10537         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
10538         Add new parameter Compiler_System_Version to avoid checking for
10539         completeness of parameters when compiler is compiling itself.
10540         Allows old versions of GNAT to be compiled with new compiler.
10541
10542 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10543
10544         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
10545         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
10546         calling thread.
10547         (Stack_Base_Available): New flag.
10548         (Get_Page_Size): New overloaded functions imported from C.
10549         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
10550         PROT_ON, PROT_OFF): New constants.
10551         (mprotect): New function imported from C.
10552         (pthread_teb_t): New record type.
10553
10554         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
10555         (Create_Task): Account for the Yellow Zone and the guard page.
10556
10557 2005-03-15  Vincent Celier  <celier@adacore.com>
10558
10559         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10560         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10561         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
10562         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
10563         Library_File_Name_For): Add new parameter In_Tree
10564         to specify the project tree: needed by the project manager.
10565         Adapt to changes in project manager using new parameter In_Tree.
10566         Remove local imports, use functions in System.CRTL.
10567
10568         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
10569         to use the project manager.
10570
10571         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
10572         In_Tree to designate the project tree. Adapt to changes in the project
10573         manager, using In_Tree.
10574
10575         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
10576         Copy_Interface_Sources): Add new parameter In_Tree to specify the
10577         project tree: needed by the project manager.
10578         (Build_Library): Check that Arg'Length >= 6 before checking if it
10579         contains "--RTS=...".
10580
10581         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
10582         Library_File_Name_For): Add new parameter In_Tree to specify the
10583         project tree: needed by the project manager.
10584
10585         * prj.ads, prj.adb: Major modifications to allow several project trees
10586         in memory at the same time.
10587         Change tables to dynamic tables and hash tables to dynamic hash
10588         tables. Move tables and hash tables from Prj.Com (in the visible part)
10589         and Prj.Env (in the private part). Move some constants from the visible
10590         part to the private part. Make other constants deferred.
10591         (Project_Empty): Make it a variable, not a function
10592         (Empty_Project): Add parameter Tree. Returns the data with the default
10593         naming data of the project tree Tree.
10594         (Initialize): After updating Std_Naming_Data, copy its value to the
10595         component Naming of Project Empty.
10596         (Register_Default_Naming_Scheme): Use and update the default naming
10597         component of the project tree, instead of the global variable
10598         Std_Naming_Data.
10599         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
10600         Tree is not defaulted, return the default naming data of the Tree.
10601         (Initial_Buffer_Size): Constant moved from private part
10602         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
10603         variables initialized in procedure Initialize.
10604         (Add_To_Buffer): Add two in out parameters to replace global variables
10605         Buffer and Buffer_Last.
10606         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
10607         functions.
10608         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
10609         hash tables.
10610         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10611         for the project tree.
10612         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
10613         constant at the beginning of the package spec, so that they cane be used
10614         in subprograms before their full declarations.
10615         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
10616         (Empty_Project): Add parameter of type Project_Node_Ref
10617         (Private_Project_Tree_Data): Add component Default_Naming of type
10618         Naming_Data.
10619         (Buffer, Buffer_Last): remove global variables
10620         (Add_To_Buffer): Add two in out parameters to replace global variables
10621         Buffer and Buffer_Last.
10622         (Current_Packages_To_Check): Remove global variable
10623         (Empty_Name): Move to private part
10624         (No-Symbols): Make it a constant
10625         (Private_Project_Tree_Data): New type for the private part of the
10626         project tree data.
10627         (Project_Tree_Data): New type for the data of a project tree
10628         (Project_Tree_Ref): New type to designate a project tree
10629         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10630         for the project tree.
10631
10632         * prj-attr.ads: Add with Table; needed, as package Prj no longer
10633         imports package Table.
10634
10635         * prj-com.adb: Remove empty, no longer needed body
10636
10637         * prj-com.ads: Move most of the content of this package to package Prj.
10638
10639         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
10640         designate the project node tree and Packages_To_Check to replace
10641         global variable Current_Packages_To_Check.
10642         Add new parameters In_Tree and Packages_To_Check to local subprograms,
10643         when needed. Adapt to changes in project manager with project node tree
10644         In_Tree.
10645
10646         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
10647         project tree to most subprograms. Move tables and hash tables to
10648         private part of package Prj.
10649         Adapt to changes in project manager using project tree In_Tree.
10650
10651         * prj-makr.adb (Tree): New constant to designate the project node tree
10652         Adapt to change in project manager using project node tree Tree
10653
10654         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
10655         display the Library_Src_Dir and the Library_Dir.
10656         Add new parameter In_Tree to designate the project node tree to most
10657         subprograms. Adapt to changes in the project manager, using project tree
10658         In_Tree.
10659         (Check_Naming_Scheme): Do not alter the casing on platforms where
10660         the casing of file names is not significant.
10661         (Check): Add new parameter In_Tree to designate the
10662
10663         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
10664         designate the project tree.
10665         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
10666
10667         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
10668         to replace those that were in the private part of package Prj.
10669         Add new parameter In__Tree to designate the project node tree to most
10670         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10671         (Post_Parse_Context_Clause): When specifying the project node of a with
10672         clause, indicate that it is a limited with only if there is "limited"
10673         in the with clause, not necessarily when In_Limited is True.
10674         (Parse): Add new parameter In_Tree to designate the project node tree
10675
10676         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
10677         designate the project node tree. Adapt to change in Prj.Tree with
10678         project node tree In_Tree.
10679
10680         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
10681         tree In_Tree in the call to function Empty_Process to give its initial
10682         value to the project data Processed_Data.
10683         Add new parameters In_Tree to designate the project tree and
10684         From_Project_Node_Tree to designate the project node tree to several
10685         subprograms. Adapt to change in project manager with project tree
10686         In_Tree and project node tree From_Project_Node_Tree.
10687
10688         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
10689         to replace those that were in the private part of package Prj.
10690         Add new parameter In_Tree to designate the project node tree to most
10691         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10692
10693         * prj-tree.ads, prj-tree.adb: Add new parameter of type
10694         Project_Node_Tree_Ref to most subprograms.
10695         Use this new parameter to store project nodes in the designated project
10696         node tree.
10697         (Project_Node_Tree_Ref): New type to designate a project node tree
10698         (Tree_Private_Part): Change table to dynamic table and hash tables to
10699         dynamic hash tables.
10700
10701         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
10702         the project tree to most subprograms. Adapt to changes in project
10703         manager using project tree In_Tree.
10704
10705         * makegpr.adb (Project_Tree): New constant needed to use project
10706         manager.
10707
10708 2005-03-15  Olivier Hainque  <hainque@adacore.com>
10709
10710         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
10711         for sigactions with SA_SIGINFO set. Call
10712         __gnat_adjust_context_for_raise before raising, to perform the
10713         potentially required adjustments to the machine context for the GCC
10714         unwinder.
10715
10716         * raise.h (__gnat_adjust_context_for_raise): New prototype.
10717
10718         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
10719         Adjust PC by one in the provided machine context.
10720         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
10721         so that the handler is passed the context structure to adjust prior to
10722         the raise.
10723         (__gnat_error_handler) HPUX: Adjust the signature to match what an
10724         SA_SIGINFO sigaction should look like. Call
10725         __gnat_adjust_context_for_raise before actually raising.
10726         (__gnat_adjust_context_for_raise): Default noop to help PC
10727         adjustments before raise from signal handlers.
10728         (__gnat_error_handler): Indirectly call a predicate function to
10729         determine if a condition should be resignaled or not.
10730         (__gnat_set_resignal_predicate): User interface to modify the predicate.
10731         (__gnat_default_resignal_p): Default GNAT predicate.
10732
10733 2005-03-15  Doug Rupp  <rupp@adacore.com>
10734
10735         * adaint.c: Prefix #include of VMS system header files with vms/
10736         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
10737         Do not define a dummy function "convert_addresses" under Darwin,
10738         not needed.
10739
10740         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
10741         with vms/
10742
10743 2005-03-15  Nicolas Setton  <setton@adacore.com>
10744
10745         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
10746         PPC/AIX.
10747
10748 2005-03-15  Robert Dewar  <dewar@adacore.com>
10749
10750         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
10751         AI-386.
10752
10753         * a-retide.ads: Minor comment changes
10754
10755 2005-03-15  Robert Dewar  <dewar@adacore.com>
10756
10757         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
10758         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
10759         Realloc_For_Chunk to private part of package.
10760         New subprograms for AI-301
10761
10762         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
10763         Get_Line procedure.
10764         Avoid unnecessary use of Get/Set_Wide_String
10765
10766 2005-03-15  Robert Dewar  <dewar@adacore.com>
10767
10768         PR ada/13470
10769
10770         * a-stunau.ads, a-stunau.adb:
10771         Change interface to allow efficient (and correct) implementation
10772         The previous changes to allow extra space in unbounded strings had
10773         left this interface a bit broken.
10774
10775         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
10776
10777         * g-spipat.ads, g-spipat.adb: New interface for Get_String
10778         Minor reformatting (function specs)
10779
10780         * g-spitbo.adb: New interface for Get_String
10781
10782         * g-spitbo.ads: Minor reformatting
10783
10784         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
10785
10786         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
10787
10788 2005-03-15  Javier Miranda  <miranda@adacore.com>
10789             Robert Dewar  <dewar@adacore.com>
10790             Thomas Quinot  <quinot@adacore.com>
10791             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10792
10793         * atree.ads, atree.adb: Add support for Elist24 field
10794
10795         * atree.h: Fix wrong definition of Field27
10796         Add support for Elist16 field
10797         Add support for Elist24 field
10798
10799         * einfo.ads, einfo.adb (Abstract_Interfaces,
10800         Set_Abstract_Interfaces): New subprograms.
10801         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
10802         subprograms.
10803         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
10804         entities rather than a single node.
10805         (Is_Interface, Set_Is_Interface): New subprogram
10806         (First_Tag_Component): New syntesized attribute
10807         (Next_Tag_Component): New synthesized attribute
10808         (Write_Entity_Flags): Upgraded to write Is_Interface
10809         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
10810         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
10811         (Task_Body_Procedure): New subprogram to read this attribute.
10812         (Set_Task_Body_Procedure): New subprogram to set this attribute.
10813         (Has_Controlled_Component): Now applies to all entities.
10814         This is only a documentation change, since it always worked to apply
10815         this to other than composite types (yielding false), but now this is
10816         official.
10817         Update documentation on Must_Be_Byte_Aligned for new spec
10818
10819         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
10820         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
10821         uses of the Access_Disp_Table attribute to reference the first dispatch
10822         table associated with a tagged type. As
10823         part of the implementation of abstract interface types,
10824         Access_Disp_Table has been redefined to contain a list of dispatch
10825         tables (rather than a single dispatch table).
10826         Similarly, upgrade all the references to Tag_Component by the
10827         new attribute First_Tag_Component.
10828         (Find_Inherited_TSS): Moved to exp_tss.
10829         Clean up test in Expand_N_Object_Declaration for cases
10830         where we need to do a separate assignment of the initial value.
10831         (Expand_N_Object_Declaration): If the expression in the
10832         declaration of a tagged type is an aggregate, no need to generate an
10833         additional tag assignment.
10834         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
10835         is to be deleted.
10836         Bit packed array ops are only called if operands are known to be
10837         aligned.
10838         (Component_Equality): When returning an N_Raise_Program_Error statement,
10839         ensure that its Etype is set to Empty to avoid confusing GIGI (which
10840         expects that only expressions have a bona fide type).
10841         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
10842         determine the amount of data to be copied.
10843
10844         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
10845         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
10846             INTERFACE_TYPE_DEFINITION ::=
10847               [limited | task | protected | synchronized] interface
10848                 [AND interface_list]
10849
10850         * par-ch3.adb (P_Type_Declaration): Modified to give support to
10851         interfaces.
10852         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
10853         interfaces.
10854         (P_Interface_Type_Definition): New subprogram that parses the new
10855         syntax rule of Ada 2005 interfaces
10856         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
10857         messages by the correct RENAMES (quotes removed).
10858
10859         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
10860         attribute First_Tag_Component.
10861
10862         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
10863         (Interface_List, Set_Interface_List): New subprograms.
10864         (Interface_Present, Set_Interface_Present): New subprograms.
10865         (Limited_Present, Set_Limited_Present): Available also in derived
10866         type definition nodes.
10867         (Protected_Present, Set_Protected_Present): Available also in
10868         record type definition and
10869         derived type definition nodes.
10870         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
10871         (Task_Present, Set_Task_Present): New subprogram.
10872         (Task_Body_Procedure): Removed.
10873         (Set_Task_Body_Procedure): Removed.
10874         These subprogram have been removed because the attribute
10875         Task_Body_Procedure has been moved to the corresponding task type
10876         or task subtype entity to leave a field free to store the list
10877         of interfaces implemented by a task (for AI-345)
10878         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
10879         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
10880         expression flag Do_Range_Check
10881         (Exception_Junk): Change to Flag7 to accomodate above change
10882         (Box_Present, Default_Name, Specification, Set_Box_Present,
10883         Set_Default_Name, Set_Specification): Expand the expression
10884         "X in N_Formal_Subprogram_Declaration" into the corresponding
10885         two comparisons. Required to use the csinfo tool.
10886
10887         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
10888         "with string" given.
10889
10890         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
10891         expression given.
10892
10893         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
10894         in 2005 mode
10895
10896         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
10897         attribute Task_Body_Procedure rather than the old semantic field that
10898         was available in the task_type_declaration node.
10899
10900         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
10901         interface type definitions.
10902         (P_Formal_Derived_Type_Definition): Modified to handle the list of
10903         interfaces.
10904
10905         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
10906         task type declaration.
10907         (P_Protected): Modified to handle the list of interfaces in a
10908         protected type declaration.
10909
10910 2005-03-15  Doug Rupp  <rupp@adacore.com>
10911             Vincent Celier  <celier@adacore.com>
10912
10913         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
10914         (Gen_Output_File_C): Likewise.
10915         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
10916
10917 2005-03-15  Thomas Quinot  <quinot@adacore.com>
10918
10919         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
10920         is an N_Raise_Constraint_Error node, create a new copy of it without
10921         going through a call to Duplicate_Subexpr.
10922
10923 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10924             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10925             Nicolas Setton  <setton@adacore.com>
10926             Ed Schonberg  <schonberg@adacore.com>
10927
10928         PR ada/19900
10929         PR ada/19408
10930         PR ada/19140
10931         PR ada/20255
10932
10933         * decl.c (gnat_to_gnu_field): Reject aliased components with a
10934         representation clause that prescribes a size not equal to the rounded
10935         size of their types.
10936         (gnat_to_gnu_entity, case E_Component): Always look at
10937         Original_Record_Component if Present and not the entity.
10938         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
10939         of tagged extension types by not making field for components that are
10940         inside the parent.
10941         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
10942         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
10943         expression to the type of the object when the object is constant.
10944         Reverse defer_debug_incomplete_list before traversing it, so that trees
10945         are processed in the order at which they were added to the list. This
10946         order is important when using the stabs debug format.
10947         If we are deferring the output of debug information, also defer this
10948         output for a function return type.
10949         When adding fields to a record, prevent emitting debug information
10950         for incomplete records, emit the information only when the record is
10951         complete.
10952         (components_to_record): New parameter defer_debug.
10953         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
10954         (gnat_to_gnu_field_decl): New function.
10955         (substitution_list, annotate_rep): Call it.
10956         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
10957         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
10958         No longer update discriminants to not be a COMPONENT_REF.
10959         (copy_alias_set): Strip padding from input type; also handle
10960         unconstrained arrays properly.
10961
10962         * gigi.h (write_record_type_debug_info): New function.
10963         Convert to use ANSI-style prototypes. Remove unused
10964         declarations for emit_stack_check, elab_all_gnat and
10965         set_second_error_entity.
10966         (gnat_to_gnu_field_decl): New decl.
10967
10968         * utils.c (write_record_type_debug_info): New function.
10969         (finish_record_type): Delegate generation of debug information to
10970         write_record_type_debug_info.
10971         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
10972         (update_pointer_to): Fix pasto.
10973         (convert) <UNION_TYPE>: Accept slight type variations when
10974         converting to an unchecked union type.
10975
10976         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
10977         replace the N_Freeze_Entity with a null statement.
10978
10979         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
10980         within a constrained subcomponent of an enclosing record, place the
10981         freeze nodes in the scope stack entry for the enclosing record.
10982         (Undelay_Type): New Subprogram.
10983         (Set_Small_Size): Pass T, the type to modify; all callers changed.
10984         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
10985         within records; allow them to have freeze nodes if their base types
10986         aren't frozen yet.
10987
10988         * exp_util.adb (Remove_Side_Effects): Properly test for
10989         Expansion_Delayed and handle case when it's inside an
10990         N_Qualified_Expression.
10991
10992         * sem_ch3.adb (Derived_Type_Declaration): New predicate
10993         Comes_From_Generic, to recognize accurately that the parent type in a
10994         derived type declaration can be traced back to a formal type, because
10995         it is one or is derived from one, or because its completion is derived
10996         from one.
10997         (Constrain_Component_Type): If component comes from source and has no
10998         explicit constraint, no need to constrain in in a subtype of the
10999         enclosing record.
11000         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
11001         Minor change to propagate Is_Ada_2005 flag
11002
11003         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
11004         Expansion_Delayed is False.
11005         (assoc_to_constructor): Ignore fields that have a
11006         Corresponding_Discriminant.
11007         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
11008         function returns "by target", dereference the target pointer using the
11009         type of the actual return value.
11010         <all>: Be prepared for a null gnu_result.
11011         (processed_inline_subprograms): Check flag_really_no_inline
11012         instead of flag_no_inline.
11013         (set_second_error_entity): Remove unused function.
11014         (gnat_to_gnu, case N_Selected_Component): Call
11015         gnat_to_gnu_field_decl.
11016         (assoc_to_constructor): Likewise.
11017
11018 2005-03-15  Robert Dewar  <dewar@adacore.com>
11019             Ed Schonberg  <schonberg@adacore.com>
11020             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11021
11022         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
11023         Must_Be_Byte_Aligned for cases where we do not need to use a
11024         System.Pack_nn unit.
11025
11026         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
11027         as procedures.
11028         Needed now that we do some processing for IN parameters as well. This
11029         may well fix some unrelated errors.
11030         (Expand_Call): Handle case of unaligned objects (in particular those
11031         that come from packed arrays).
11032         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
11033         renamed entity is an inherited operation, re-expand the call using the
11034         original operation, which is the one to call.
11035         Detect attempt to inline parameterless recursive subprogram.
11036         (Represented_As_Scalar): Fix to work properly with private types
11037         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
11038         accurate estimate. Yields True in far fewer cases than before,
11039         improving the quality of code that depends on this test.
11040
11041         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
11042         over both visible and private declarations to remove them from tree,
11043         and mark subprograms declared in package as eliminated, to prevent
11044         spurious use in subsequent compilation of generic units in the context.
11045
11046         * exp_util.ads: Minor cleanup in variable names
11047
11048         * sem_eval.ads, sem_eval.adb: Minor reformatting
11049         (Compile_Time_Known_Bounds): New function
11050
11051 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11052
11053         * exp_ch7.adb (Convert_View): Use base types of underlying types when
11054         determining whether an unchecked conversion is needed for the argument
11055         of an initialization call.
11056
11057 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11058
11059         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
11060         that appears in the instantiation rather than the internal subtype
11061         generated in the wrapper package, to avoid anomalies in gigi when the
11062         target is derived from a private type whose full view is an access type.
11063
11064 2005-03-15  Robert Dewar  <dewar@adacore.com>
11065
11066         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
11067         not needed.
11068         Add documentation to replace the use of this flag
11069         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
11070         the x86_64.
11071
11072 2005-03-15  Thomas Quinot  <quinot@adacore.com>
11073
11074         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
11075         here from exp_attr so it can be shared between exp_attr and exp_dist.
11076         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
11077         all TSS names, not a subset thereof, and the previous name introduced
11078         an unnecessarily confusion that a distinction might exist between
11079         "OK" TSS names and some "not OK" TSS names.
11080
11081 2005-03-15  Doug Rupp  <rupp@adacore.com>
11082
11083         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
11084         Command_Name.
11085
11086 2005-03-15  Pascal Obry  <obry@adacore.com>
11087             Eric Botcazou  <ebotcazou@adacore.com>
11088
11089         PR ada/20226
11090         PR ada/20344
11091
11092         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
11093         when IN_RTS. This is to work around a bootstrap path problem.
11094
11095         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
11096         table and pass it to __gnat_install_SEH_handler().
11097         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
11098
11099         * lang.opt: Fix specification of -fRTS=.
11100
11101 2005-03-15  Doug Rupp  <rupp@adacore.com>
11102             Bernard Banner  <banner@adacore.com>
11103             Vincent Celier  <celier@adacore.com>
11104             Arnaud Charlet  <charlet@adacore.com>
11105
11106         PR ada/6852
11107         This change works fine when gnatlib is built from the gcc directory,
11108         but does not work when using the libada Makefile, since GCC_FOR_TARGET
11109         is not passed to ada/Makefile.in, so more work is needed by a
11110         Makefile/configure expert.
11111
11112         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
11113         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
11114         Setup gnatlink switch -M for x86_64 linux, as it is already setup
11115         for Linux x86.
11116         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
11117         Run ranlib on libgccprefix.a
11118         Define PREFIX_OBJS for Darwin, to build libgccprefix.
11119         (ADA_INCLUDE_SRCS): Split Ada packages.
11120
11121 2005-03-15  Robert Dewar  <dewar@adacore.com>
11122
11123         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
11124
11125         * impunit.adb: Add GNAT.UTF_32
11126
11127         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
11128
11129         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
11130         now uses GNAT.UTF_32).
11131
11132         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
11133         capabilities for categorizing characters using Unicode categories
11134
11135 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11136
11137         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
11138         instantiation that has been rewritten as a package body, retrieve spec
11139         to generate proper name for implicit_with_clause.
11140         (Install_Parents): Recognize a parent that is an instantiation but has
11141         been rewritten as a package declaration during analysis.
11142
11143 2005-03-15  Javier Miranda  <miranda@adacore.com>
11144             Ed Schonberg  <schonberg@adacore.com>
11145
11146         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
11147         parameter reported some error we immediately return. This improves the
11148         behaviour of the frontend in case of errors.
11149         (Install_Parent, Remove_Parent): Introduce new flag
11150         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
11151         ancestor of a generic child unit, when the child is being instantiated.
11152         (Inline_Instance_Body): If we are compiling the private
11153         part or the body of a child unit, restore the proper visibility of the
11154         parents after compiling the instance body.
11155
11156 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11157             Javier Miranda  <miranda@adacore.com>
11158
11159         PR ada/15608
11160         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
11161         of a private type, in which case it is underlying_type that denotes
11162         the proper task. Also modified to use the new entity attribute
11163         that is directly available in the task type and task subtype entities
11164         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
11165         arrays when other dimensions than the first are constrained by
11166         discriminants of an enclosing record.
11167         (Insert_Explicit_Dereference): If the prefix is an indexed component or
11168         a combination of indexed and selected components, find ultimate entity
11169         and generate the appropriate reference for it, to suppress spurious
11170         warnings.
11171         (Note_Possible_Modification): If an entity name has no entity, return.
11172         (Is_Variable): A function call never denotes a variable.
11173         (Requires_Transient_Scope): For record types, recurse only on
11174         components, not on internal subtypes that may have been generated for
11175         constrained components.
11176
11177 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11178
11179         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
11180         Eliminated as candidates for resolution. Both efficient, and avoids
11181         anomalies with operators declared in deleted code.
11182         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
11183         expansion is disabled (as when compiling a generic) to prevent spurious
11184         warnings on prefixes of selected components.
11185
11186 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11187
11188         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
11189         attached to a list before checking whether it appears in the private
11190         declarations of the current package.
11191         (Make_Inequality_Operator): Insert declaration in proper declarative
11192         list rather than just setting the Parent field, so that
11193         Is_Private_Declaration can handle it properly.
11194
11195 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11196
11197         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
11198         a renaming a body, check that the renamed subprogram in not intrinsic.
11199         (Find_Direct_Name): If several use_visible entities hide
11200         each other, and the context is a predefined file compiled through
11201         rtsfind, keep only the entity that comes from a predefined file.
11202
11203 2005-03-15  Geert Bosch  <bosch@adacore.com>
11204
11205         * s-fatgen.adb (Valid): Extend special exceptions to account for long
11206         long float padding to also cover AMD64 and IA64.
11207
11208 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
11209
11210         * s-imgwch.adb: Add with and use of Interfaces.
11211         (Img_Wide_Character): Change type of Val to Unsigned_16.
11212         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
11213
11214 2005-03-15  Matthew Gingell  <gingell@adacore.com>
11215
11216         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
11217
11218 2005-03-15  Robert Dewar  <dewar@adacore.com>
11219
11220         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
11221
11222         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
11223
11224         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
11225
11226 2005-03-15  Robert Dewar  <dewar@adacore.com>
11227
11228         * s-bitops.adb, s-bitops.ads,
11229         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
11230         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
11231         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
11232         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
11233         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
11234         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
11235         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
11236         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
11237         reformatting.
11238
11239 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11240
11241         * utils2.c (build_binary_op): Fix typo.
11242
11243 2005-03-15  Doug Rupp  <rupp@adacore.com>
11244
11245         * s-crtl.ads (popen,pclose): New imports.
11246
11247 2005-03-15  Cyrille Comar  <comar@adacore.com>
11248
11249         * comperr.adb (Compiler_Abort): remove references to obsolete
11250         procedures in the bug boxes for various GNAT builds.
11251
11252 2005-03-15  Vincent Celier  <celier@adacore.com>
11253
11254         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
11255
11256 2005-03-15  Geert Bosch  <bosch@adacore.com>
11257             Arnaud Charlet  <charlet@adacore.com>
11258             Robert Dewar  <dewar@adacore.com>
11259             Cyrille Comar  <comar@adacore.com>
11260             Sergey Rybin  <rybin@adacore.com>
11261
11262         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
11263         too specific and long-winded to be appropriate for the GNAT User's
11264         Guide.
11265         Warn about use of GCC switches not documented in the GNAT User's Guide,
11266         as these may cause generated code to not conform to Ada semantics.
11267         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
11268         Add documentation for -gnat95 and -gnat05 switches
11269         Remove paragraph documenting obsolete way to refer to third party
11270         libraries.
11271         Add a few references to Ada_05 that were missing.
11272         Update documentation on -gnatZ/-gnatL.
11273         Document limitation when using -m64 under Solaris.
11274         Change the "Name Casing" subsection of the pretty-printer section
11275         according to the changes in the dictionary processing.
11276
11277         * gnat_rm.texi: Document the Ada_05 pragma.
11278         Section on record representation clauses describes the new more
11279         relaxed rules about placement of large packed bit array components.
11280         Add documentation of GNAT.UTF_32
11281
11282 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
11283
11284         * misc.c (gnat_post_options): Turn off structural
11285         aliasing for now.
11286
11287 2005-03-08  Laurent Guerby <laurent@guerby.net>
11288
11289         * system-linux-sparc.ads: Fix typo in previous commit.
11290
11291 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
11292             Laurent Guerby <laurent@guerby.net>
11293
11294         PR ada/20035
11295         * system-linux-sparc.ads: New.
11296         * Makefile.in: Add sparc linux entry.
11297
11298 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
11299
11300         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
11301         parameters as unused.
11302
11303 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
11304         Partial merge from libada-gnattools-branch:
11305
11306         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11307         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
11308         into code in gnattools/Makefile.in.  Remove direct dependencies on
11309         stamp-tools by tools clauses.
11310         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11311         * config-lang.in: Add gnattools to $lang_dirs.
11312
11313 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
11314
11315         PR ada/19942
11316         * utils.c (gnat_type_for_mode): Return null instead of ICE because
11317         we asked for an unknown mode.
11318
11319 2005-02-12  Richard Henderson  <rth@redhat.com>
11320
11321         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
11322         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
11323
11324 2005-02-10  Andreas Jaeger  <aj@suse.de>
11325
11326         * init.c (__gnat_initialize): Mark parameter as unused.
11327
11328 2005-02-09  Doug Rupp  <rupp@adacore.com>
11329
11330         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
11331         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
11332
11333 2005-02-09  Doug Rupp  <rupp@adacore.com>
11334
11335         * gnatchop.adb (dup, dup2),
11336         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
11337
11338         * gnatlbr.adb (mkdir),
11339         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
11340
11341         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
11342
11343 2005-02-09  Doug Rupp  <rupp@adacore.com>
11344
11345         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
11346
11347 2005-02-09  Robert Dewar  <dewar@adacore.com>
11348             Thomas Quinot  <quinot@adacore.com>
11349             Javier Miranda  <miranda@adacore.com>
11350             Pascal Obry  <obry@adacore.com>
11351             Ed Schonberg  <schonberg@adacore.com>
11352             Doug Rupp  <rupp@adacore.com>
11353             Gary Dismukes  <dismukes@adacore.com>
11354             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11355
11356         * g-zstspl.ads: New file.
11357
11358         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
11359
11360         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
11361         Ada 95 mode
11362         Add definition of Wide_Wide_Space for AI-285
11363
11364         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
11365         interface (to support Ada 95 and Ada 2005 units).
11366         Add Unbounded_IO files
11367         Add entries for Wide_Wide packages for AI-285
11368         Add list of containers packages to Ada 2005 unit list
11369
11370         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
11371         support new Unbounded_IO package cleanly.
11372
11373         * g-utf_32.ads, g-utf_32.adb: New files.
11374
11375         * Makefile.rtl: Add entry for g-utf_32
11376         Add new files for Unbounded_IO
11377         Adjust make file for new AI-285 wide wide packages
11378         Add AI-302 containers to the run time.
11379
11380         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
11381         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
11382         subprograms for AI-301.
11383
11384         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
11385
11386         * a-stunau.ads: Minor comment correction
11387
11388         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
11389         etc.
11390         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
11391         (Check_RPC): Update to match changes in expanded code.
11392         Clean up unused entity.
11393
11394         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
11395         was not taken into account.
11396         This includes proper initialization with Normalize_Scalars.
11397         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
11398         normalize scalars cases (particularly the latter) to do a better job
11399         of finding invalid representations.
11400
11401         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
11402
11403         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
11404         used
11405
11406         * exp_dist.adb: Add support for wide wide character type
11407         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
11408         private part, generate stub bodies at the end of the private part,
11409         not the visible part.
11410         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
11411         PolyORB support.
11412         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
11413         generic wrapper to execute final processing after completing the
11414         expansion of the RPC receiver for an RACW.
11415
11416         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
11417         packages and attributes.
11418         (Preset_Names): Addition of the new reserved words of Ada 2005,
11419         that is interface, overriding and synchronized.
11420         (Get_Pragma_Id): Give support to the use of the new reserved word
11421         "interface" as a pragma name.
11422         (Is_Pragma_Name): Give support to the use of the new reserved word
11423         "interface" as a pragma name.
11424         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
11425         attribute implementation.
11426
11427         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
11428         checks to entities that are output parameters of Asm operations.
11429         Handle the Stream_Size attribute.
11430         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
11431
11432         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
11433
11434         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
11435         for second parameter being 0.0.
11436         Add support for wide wide character type.
11437         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
11438
11439         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
11440         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
11441         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
11442         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
11443         for wide wide character cases.
11444
11445         * cstand.adb: Create entities for Wide_Wide_Character and
11446         Wide_Wide_String.
11447
11448         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
11449         accordance with AI-258.
11450         Add new declarations for 16/32 bit C character types (Part of AI285)
11451
11452         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
11453         (Obsolescent_Warning): New field
11454         (Rep_Clause): New local subprogram used to share code. Returns the rep
11455         clause for which the name is given in parameter.
11456         (Has_Stream_Size_Clause): New routine.
11457         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
11458         (Address_Clause): Implementation is now using Rep_Clause.
11459         (Alignment_Clause): Idem.
11460         (Size_Clause): Idem.
11461
11462         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
11463         entity in non-Ada 2005 mode and generate warning.
11464
11465         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
11466         (Prag): Code cleanup. Remove old gnat pragma "overriding"
11467
11468         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
11469         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
11470         on the named unit if the pragma is not in the current compilation unit,
11471         so that elaboration calls in the current unit can set up an elaboration
11472         dependency on the named unit, as needed.
11473         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
11474         subprogram as well as for subprograms declared within a package.
11475         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
11476         pragma overriding.
11477
11478         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
11479         to z) to avoid some instances of duplication for Wide_Wide packages.
11480
11481         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
11482         characters.
11483
11484         * scn.adb: Char_Literal_Value field is now a Uint
11485
11486         * scng.adb: Significant rewrite to handle new Ada 2005 features
11487         allowing wide and wide wide characters in program text, e.g. for
11488         identifiers, as described in AI-285.
11489         (Set_Reserved): New procedure, makes setting up keywords cleaner.
11490         (Initialize_Scanner): Register the new reserved words of Ada 2005.
11491         (Scan): Give support to the new reserved words.
11492
11493         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
11494         warning notifying that interface, overriding, and synchronized are
11495         new reserved words.
11496         (P_Pragma): Allow the use of the new reserved word "interface" as
11497         a pragma name.
11498
11499         * gnatls.adb, gnatbind.adb,
11500         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
11501         identifiers named "interface" to "SAL_Interface".
11502
11503         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
11504         (Structured Exception handling).
11505         (Gen_Main_C): Idem.
11506
11507         * bindgen.adb:
11508         (Gen_Main_Ada): Set the default exit code if specified.
11509         (Gen_Main_C): Likewise.
11510         Part of *DC20-006.
11511         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
11512         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
11513
11514         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
11515         new -Xnnn switch.
11516
11517         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
11518         has a collision with the new Ada 2005 "interface" reserved word.
11519
11520         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
11521         generate a warning notifying that interface, overriding, and
11522         synchronized are new reserved words.
11523
11524         * scans.ads (Token_Type): Addition of the tokens corresponding to the
11525         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
11526         and Tok_Synchronized.
11527
11528         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
11529         "dispatching" rather than "primitive" operations, since dispatching
11530         calls are now allowed to abstract formal subprograms (which are not
11531         primitive).
11532         Char_Literal_Value field is now a Uint
11533         (Resolve_Slice): If the prefix is an access to an unconstrained array,
11534         compute the actual subtype of the designated object to impose the proper
11535         index constraints.
11536         (Resolve_Selected_Component): Do not insert an access check if the
11537         prefix is an access type: such a node is expanded into an explicit
11538         dereference, on which the access check is performed anyway. Removes
11539         expensive duplicate checks.
11540         (Resolve_Call): Use new flag Is_Obsolescent and field
11541         Obsolescent_Warning so that pragma Obsolescent works on library
11542         subprograms.
11543         Add support for wide wide character type
11544         (Resolve_Allocator): Replace the error message on wrong null-exclusion
11545         value by a warning message.
11546         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
11547         as fixed-point, and one of the operands is non-static and universal, it
11548         can only be an illegal exponentiation operation, in which case there is
11549         no real value to retrieve.
11550
11551         * exp_strm.adb: Add support for wide wide character type
11552         (Build_Elementary_Input_Call): Compute the size of the stream element by
11553         querying the rep chain to find the Stream_Attribute attribute value.
11554         (Build_Elementary_Write_Call): Ditto.
11555
11556         * sem_aggr.adb: Char_Literal_Value field is now a Uint
11557         Add support for wide wide character type
11558         Replace the error messages on wrong null-exclusion value by warnings
11559         as described in Ada 2005.
11560         (Resolve_Extension_Aggregate): Document the fact that the error
11561         message on class-wide expressions in extensions aggregates.
11562
11563         * sem_case.adb: Add support for wide wide character type
11564
11565         * sem_ch13.adb: Add support for wide wide character type
11566         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
11567
11568         * sem_ch3.adb: Add support for wide wide character type
11569         (Process_Subtype): If constraint is illegal for the type, set Ekind of
11570         now-useless Itype, to prevent cascaded errors on a compiler built
11571         without -gnatp.
11572
11573         * sem_ch8.adb: Add with and use of Sem_Disp.
11574         (Analyze_Subprogram_Renaming): Replace unclean uses of
11575         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
11576         of Corresponding_Spec to Empty).
11577         (Attribute_Renaming): Replace use of Corresponding_Spec with
11578         Corresponding_ Formal_Spec and simplify condition.
11579         (Use_One_Package): Check that scope of homonym of identifier is defined,
11580         before checking whether it is a wrapper package.
11581         Add support for wide wide character type
11582
11583         * sem_eval.adb: Add support for wide wide character type.
11584         (Eval_Arithmetic_Op): Check for compile time known signed integer
11585         overflow in the non-static case.
11586         (Subtypes_Statically_Match): A formal scalar type and its base type do
11587         not statically match.
11588
11589         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
11590         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
11591         subtype).
11592         (Unit_Declaration_Node): Ditto.
11593         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
11594         has a packed array type, the prefix has been rewritten into a type
11595         conversion. Determine variable-ness from the converted expression.
11596         Handle wide wide character cases.
11597
11598         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
11599
11600         * stringt.ads, stringt.adb: Handle full UTF-32 range.
11601         Remove ["0A"] from comment, since it can look like a line terminator.
11602         Currently we don't permit this, but this is under discussion by the
11603         ARG, and it is easy enough to use a different example.
11604
11605         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
11606         handling UTF-32 encoding for wide wide character.
11607         Implement new brackets coding ["hhhhhhhh"]
11608         Add UTF-8 encodings for full UTF-32 range
11609
11610         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
11611
11612         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
11613         bit range Add full UTF-32 support.
11614         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
11615         notify that constraint error will be raised at run-time
11616         because a null value is assigned to a null-excluding object.
11617         Remove some obsolete declarations and make Char_Code
11618         unsigned.
11619
11620         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
11621         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
11622         Rcheck subprograms.
11623
11624         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
11625         wrong null-exclusion value by a warning message.
11626         (Enable_Range_Check): Do range check if the prefix is an
11627         explicit dereference whose designated object is an unconstrained array.
11628         Current algorithm for removing duplicate checks is over-eager in this
11629         case.
11630
11631         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
11632         null-exclusion value by a warning message
11633
11634         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
11635         completely. Add support for Uint2 field
11636
11637         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
11638         exp_prag.adb: Char_Literal_Value field is now a Uint.
11639
11640         * exp_util.adb (Insert_Actions): Replace
11641         N_Formal_Subprogram_Declaration by
11642         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
11643         Char_Literal_Value field is now a Uint.
11644
11645         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
11646         defined for subprogram renaming declarations. When set, the field
11647         indicates the defining entity of a corresponding formal subprogram
11648         when the renaming corresponds to a formal subprogram association in an
11649         instantiation.
11650         (Set_Corresponding_Formal_Spec): New procedure to return
11651         Corresponding_Formal_Spec field.
11652         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
11653         (which is now a subtype).
11654         Char_Literal_Value field is now a Uint
11655
11656         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
11657         pointer to the base of the dispatch table.
11658         Minor changes to comments.
11659         (Controlling_Type): New function for determining the tagged type
11660         associated with a tagged primitive subprogram.
11661         (Expand_Dispatching_Call): Add support for a controlling actual that is
11662         directly a value of type Ada.Tag rather than a tagged object.
11663
11664         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
11665         describing the new layout.
11666         (Dispatch_Table): The expander computes the actual array size, allocates
11667         the Dispatch_Table record accordingly, and generates code that displaces
11668         the base of the record after the Typeinfo_Ptr component. The access to
11669         these components is done by means of local functions.
11670         (Offset_To_Top): New function.
11671         (Typeinfo_Ptr): New function.
11672         (Get_TSD): Modified to access the new position of the TSD.
11673         (Set_TSD): Modified to save the TSD in its new position.
11674
11675         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
11676         case of formal abstract subprograms. Add check and message for -gnat05.
11677         Update comments.
11678
11679         * sem_ch12.adb: Add with and use for Sem_Disp.
11680         (Analyze_Associations): Minor change from "=" to "in" for use of
11681         N_Formal_Subtype_Declaration (which is now a subtype).
11682         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
11683         N_Formal_Subtype_Declaration (which is now a subtype).
11684         (Analyze_Formal_Subprogram): Add handling for
11685         N_Formal_Abstract_Subprogram, marking the formal as abstract and
11686         dispatching, setting the controlling status of the formal parameters
11687         and result, and issuing an error if there is no controlling type for
11688         the formal subprogram.
11689         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
11690         which is an unclean use of that field, we set the new field
11691         Corresponding_Formal_Spec to make the formal subprogram available to
11692         processing in Analyze_Subprogram_Declaration.
11693         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
11694         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
11695         Constrained, so that it is is does not statically match its anonymous
11696         base type.
11697
11698         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
11699         abstract formal subprograms in error check for functions returning
11700         abstract types. Set scope of new designator for
11701         a parameterless subprogram, so that it is available when checking the
11702         body for nested subprograms, before full analysis of said body.
11703         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
11704         subprogram only if inner one comes from source.
11705         (Analyze_Function_Call): If the call is given in object notation, the
11706         analysis of the name rewrites the node and analyzes it with the proper
11707         argument list. After analyzing the name, if the call has been rewritten
11708         and the result type is set, no further analysis is needed.
11709         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
11710         mark in function specification, in a context where the formals are
11711         visible and hide outer homographs.
11712
11713         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
11714         as the tagged type for the cases of abstract formal subprograms and
11715         renamings of those.  Clean up spec comments.
11716         (Check_Dispatching_Context): Add error message to indicate "abstract
11717         procedure", covering the case of a call to a formal abstract procedure
11718         that has statically tagged operands.
11719         (Check_Dispatching_Call): Check for the case of an actual given by
11720         a tag-indeterminate function call whose type is an ancestor of the
11721         containing call's associated tagged type. This situation can occur
11722         for inherited primitives with function defaults. In this case we
11723         use the tagged type's tag directly as the controlling argument for
11724         the calls.
11725         (Expand_Call): Name change on call to Expand_Dispatch_Call.
11726
11727         * sprint.adb (Sprint_Node_Actual): Split
11728         N_Formal_Subprogram_Declaration into two alternatives for the new
11729         cases N_Formal_Abstract_Subprogram_Declaration and
11730         N_Formal_Concrete_Subprogram_Declaration.
11731         Char_Literal_Value field is now a Uint.
11732
11733         * trans.c: Get rid of junk Uint2 reference.
11734         Char_Literal_Value field is now a Uint.
11735         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
11736         (gigi): Correct third arg to gimplify_body.
11737
11738         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
11739         (TYPE_LANG_FLAG_0): Check for record or union.
11740
11741         * treepr.adb: Char_Literal_Value field is now a Uint
11742
11743         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
11744         UI_From_CC.
11745
11746         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
11747         Add full UTF-32 support
11748         Char_Code is now 32 bits
11749
11750         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
11751         wide character UTF_32 line terminators.
11752         Initialize Main_Source_File to avoid error when no main
11753         source is loaded.
11754
11755         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
11756         (Main_Source_File) when no main source has been loaded, to avoid
11757         potential crash.
11758
11759 2005-02-09  Robert Dewar  <dewar@adacore.com>
11760
11761         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
11762         Fix name of Set routine
11763
11764         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
11765         fixed packages.
11766
11767         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
11768         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
11769         fixed packages
11770
11771         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
11772         forms of Get_Line subprograms for AI-301.
11773
11774         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
11775         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
11776         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
11777         a-stwima.ads: Minor reformatting.
11778
11779 2005-02-09  Doug Rupp  <rupp@adacore.com>
11780             Thomas Quinot  <quinot@adacore.com>
11781
11782         * adaint.c, adaint.h
11783         [VMS] (to_ptr32): New function.
11784         (MAYBE_TO_PTR32): New macro.
11785         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
11786         for pointer size.
11787         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
11788         [VMS] (#define fork()): Remove since unneccessary.
11789         (__gnat_set_close_on_exec): New routine to support
11790         GNAT.OS_Lib.Set_Close_On_Exec.
11791
11792         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
11793         the parent side as close-on-exec so that they are not inherited by the
11794         child.
11795
11796         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
11797         set or clear the FD_CLOEXEC flag on a file descriptor.
11798
11799 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
11800             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11801
11802         Fix for c330001 - PR ada/19386
11803
11804         * decl.c:
11805         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
11806         on the field if Pragma Component_Alignment (Storage_Unit).
11807         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
11808         side-effects as if it were a constant; also make SAVE_EXPR to protect
11809         side-effects.
11810         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
11811         UNION_TYPE.
11812         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
11813         (components_to_record): Test it.
11814         Fix improper usage of REFERENCE_CLASS_P.
11815
11816         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
11817         RECORD_TYPE.
11818
11819         * utils2.c: Minor reformatting.
11820
11821         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
11822         handle other cases like RECORD_TYPE.
11823
11824         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
11825
11826 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11827
11828         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
11829         component of an array of arrays in an assignment context, and the
11830         aggregate has component associations that require sliding on
11831         assignment, force reanalysis of the aggregate to generate a temporary
11832         before the assignment.
11833         (Must_Slide): Make global to the package, for use in Gen_Assign.
11834
11835 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11836
11837         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
11838         unchecked union with no inferable discriminants, return a
11839         Raise_Program_Error node, rather than inserting it at the point the
11840         type is frozen.
11841         (Expand_Record_Equality, Component_Equality): Handle properly the case
11842         where some subcomponent is an unchecked union whose generated equality
11843         code raises program error.
11844
11845 2005-02-09  Doug Rupp  <rupp@adacore.com>
11846
11847         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
11848         [VMS] (#define exit hack): Remove.
11849
11850 2005-02-09  Pascal Obry  <obry@adacore.com>
11851             Arnaud Charlet <charlet@adacore.com>
11852
11853         * init.c (__gnat_initialize): Add a new parameter eh which contains the
11854         address of the exception registration. The Win32 version of this
11855         routine calls __gnat_install_SEH_handler() to initialize the SEH
11856         (Structured Exception Handling) handler.
11857         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
11858         SEH (Structured Exception Handling) now.
11859         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
11860         (__gnat_initialize for ppc-vxworks): Adjust comments and the
11861         preprocessor condition protecting the call to the extra eh setup
11862         subprogram, which is only available for the ppc target.
11863         (__gnat_clear_exception_count): replaced reference to
11864         variable taskIdCurrent by call to taskIdSelf(), cleaner.
11865
11866         * seh_init.c: New file.
11867
11868         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
11869         (GNATBIND_OBJS): Idem.
11870
11871         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
11872         routine takes a new parameter (a pointer to the exception registration
11873         for the SEH (Structured Exception Handling) support.
11874
11875         * raise.h: (__gnat_install_SEH_handler): New prototype.
11876         Update copyright notice.
11877
11878         * s-tassta.adb (Task_Wrapper): Declare the exception registration
11879         record and initialize it by calling __gnat_install_SEH_handler.
11880
11881 2005-02-09  Vincent Celier  <celier@adacore.com>
11882
11883         * make.adb (Gnatmake): Do not fail when the main project has no object
11884         directory.
11885
11886 2005-02-09  Doug Rupp  <rupp@adacore.com>
11887
11888         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
11889         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
11890         [VMS]: Add translations for g-enblsp.adb.
11891
11892         * s-asthan-vms.adb: Removed.
11893         * s-asthan-vms-alpha.adb: Added.
11894
11895 2005-02-09  Pascal Obry  <obry@adacore.com>
11896
11897         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
11898         (LIBGNAT_OBJS): Add seh_init.o.
11899
11900 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11901
11902         PR ada/16592
11903
11904         * Makefile.in: Link all gnat tools with -static-libgcc, since
11905         -shared-libgcc is now used by default on some systems (e.g. linux with
11906         recent binutils).
11907         Remove references to Makefile.prolog/generic, no longer used.
11908
11909 2005-02-09  Vincent Celier  <celier@adacore.com>
11910
11911         * prj-makr.adb (Process_Directory): Put file name in canonical case
11912         before matching against the patterns.
11913         If gnatname has been invoked as <prefix>-gnatname
11914         then invoke the compiler as <prefix>-gcc, not just "gcc".
11915
11916 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11917
11918         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
11919         with expansion disabled. The actual subtype is needed among other
11920         places when the selected component appears in the context of a loop
11921         bound, and denotes a packed array.
11922         (Operator_Check): Always use the first subtype in the
11923         error message, to avoid the appearance of internal base types.
11924         (Transform_Object_Operation): Copy each actual in full
11925         to the parameter associations of the constructed call, rather than
11926         using the shallow copy mechanism of New_Copy_List. This ensures that
11927         the chaining of named associations is done properly.
11928         (Complete_Object_Operation): Rewrite node, rather than
11929         replacing it, so that we can trace back to the original selected
11930         component.
11931
11932         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
11933         and calls that use object notation, if the called function is not
11934         declared  in a withed unit, place the elaboration constraint on the
11935         unit in the context that makes the function accessible.
11936         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
11937         imposes an elaboration constraint between two packages.
11938
11939 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11940
11941         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
11942         views of a private type after handling its private dependents, to
11943         maintain proper stack discipline between entry and exit from the
11944         package.
11945
11946 2005-02-09  Cyrille Comar  <comar@adacore.com>
11947
11948         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
11949         Minor reformatting.
11950
11951 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11952
11953         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
11954         fields for foreign threads.
11955
11956 2005-02-09  Doug Rupp  <rupp@adacore.com>
11957
11958         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
11959         recursion warnings when compiled with -gnatdm.
11960
11961 2005-02-09  Robert Dewar  <dewar@adacore.com>
11962
11963         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
11964         Slight fix to documentation of -gnaty with no parameters
11965
11966         * xr_tabls.ads: Add ??? comment for missing overall comment
11967
11968         * xsinfo.adb: Make default file name be sinfo.h, since this is what
11969         we now use by default.
11970
11971         * xsnames.adb: Adjust end of file test to look for five space followed
11972         by '#' instead of six spaces. The format of xsnames.adb was modified
11973         in the last update.
11974
11975         * a-numeri.ads: Add reference to AI-388 for greek letter pi
11976         identifier.
11977
11978         * clean.adb: Minor reformatting.
11979
11980         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
11981         gnatname.adb: Minor reformatting
11982         Add 2005 to copyright output when utility is run
11983
11984         * csets.adb: Eliminate obsolete comment
11985
11986         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
11987         Update comments.
11988
11989         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
11990
11991 2005-02-09  Sergey Rybin  <rybin@adacore.com>
11992
11993         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
11994         the difference between compact and incompact layout and add the record
11995         representation clause to the example illustrating different layouts.
11996         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
11997         component clauses").
11998
11999 2005-02-09  Florian Villoing  <villoing@adacore.com>
12000
12001         * gnat_ugn.texi: Fix typos.
12002         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
12003         @file.
12004         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
12005         in the generated documentation.
12006
12007 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12008
12009         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
12010         longer supported.
12011         Update linker wrapper when linking with non GNU C++.
12012
12013 2005-02-09  Pascal Obry  <obry@adacore.com>
12014
12015         * gnat_ugn.texi:
12016         Document the procedure to debug the DllMain routine on Windows.
12017         Add note about -funwind-tables and mixed Ada and C/C++ programming in
12018         ZCX mode.
12019         Document new BIND qualifer /RETURN_CODES=VMS.
12020
12021 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
12022
12023         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
12024         Edited gnatmetric chapter
12025
12026 2005-02-09  Robert Dewar  <dewar@adacore.com>
12027
12028         * gnat_rm.texi:
12029         Changes to document new wide wide character support
12030         For AI-285
12031         Update documentation on Normalize_Scalars and Initialize_Scalars
12032
12033 2005-02-09  Pascal Obry  <obry@adacore.com>
12034
12035         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
12036
12037 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
12038
12039         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
12040         from the VxWorks kernel) that is needed for getting the active
12041         priority of the different tasks.
12042
12043         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
12044         Use a pragma Elaborate_Body in the spec file instead.
12045         Noticed by code reading.
12046
12047 2005-02-09  Thomas Quinot  <quinot@adacore.com>
12048
12049         * exp_util.ads: Minor correction in comment.
12050
12051 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12052
12053         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
12054         since this procedure is now too complex to be worth inlining.
12055
12056 2005-02-09  Richard Henderson  <rth@redhat.com>
12057
12058         * utils.c (gnat_define_builtin): Remove.
12059         (gnat_install_builtins): Use build_common_builtin_nodes.
12060
12061 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12062
12063         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
12064         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
12065         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
12066         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
12067         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
12068         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
12069         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
12070         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
12071         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
12072         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12073         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
12074         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
12075         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
12076         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
12077         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
12078         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
12079         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
12080         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
12081         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
12082         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
12083         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
12084         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
12085         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
12086         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
12087         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
12088         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
12089         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
12090         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
12091         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
12092         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
12093         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
12094         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
12095         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
12096         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
12097         library.
12098
12099 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12100
12101         * Makefile.in: Fix a-intnam.ads from previous commit,
12102         add 2005 to copyright.
12103         * a-intman-rtems.ads: Renamed to...
12104         * a-intnam-rtems.ads:
12105
12106 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12107
12108         * Makefile.in: Rename GNAT RTEMS specific files.
12109         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
12110         5rosinte.ads, 5rparame.adb: Replaced by files below.
12111         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
12112         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
12113
12114 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
12115             Laurent GUERBY <laurent@guerby.net>
12116
12117         PR ada/19488
12118         * 5rosinte.ads: Add No_Key constant.
12119         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
12120         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
12121
12122 2005-01-26  Laurent GUERBY <laurent@guerby.net>
12123
12124         PR ada/19414
12125         * i-cobol.adb (Valid_Numeric): Handle zero length case.
12126
12127 2005-01-20  Richard Henderson  <rth@redhat.com>
12128
12129         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
12130         a-intnam-linux.ads and system-linux-alpha.ads.
12131         * a-intnam-linux-alpha.ads: Remove file.
12132         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
12133         * system-linux-alpha.ads: New file.
12134
12135 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
12136
12137         PR ada/13470
12138         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
12139         set to the new string.
12140
12141 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12142
12143         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
12144         to True.
12145
12146 2005-01-18  Richard Henderson  <rth@redhat.com>
12147
12148         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
12149         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
12150         for alpha-linux.
12151         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
12152
12153 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
12154
12155         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
12156         (GCC_ZCX_Support): Likewise.
12157
12158 2005-01-11  Bastian Blank  <waldi@debian.org>
12159
12160         * system-linux-s390.ads: Define Preallocated_Stacks.
12161         * system-linux-s390x.ads: Likewise.
12162
12163 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
12164
12165         * gnat_ugn.texi: Fix texi errors with null variables.
12166
12167 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12168
12169         * gen-soccon.c: New utility program to generate g-soccon.ads
12170         automatically.
12171
12172         * socket.c, gsocket.h: Split inclusion of system header files into a
12173         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
12174
12175         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
12176         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12177         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
12178         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
12179         should not be edited by hand anymore, but should be regenerated using
12180         gen-soccon.
12181
12182 2005-01-03  Robert Dewar  <dewar@adacore.com>
12183             Ed Schonberg  <schonberg@adacore.com>
12184             Vincent Celier  <celier@adacore.com>
12185
12186         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
12187         on/off, since this is an obsolescent feature, for which we now generate
12188         a warning.
12189
12190         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
12191         warning mode is set and obsolescent usage of this attribute occurs.
12192         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
12193         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
12194         predates, and partly motivates, the adoption of the AI.
12195         Implement new Ada 2005 attribute Mod
12196
12197         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
12198         attribute Mod.
12199
12200         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
12201
12202         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
12203         pragma restrictions.
12204         New entry for Ada 2005 attribute Mod.
12205
12206         * par-prag.adb:
12207         Add recognition of new pragma Restrictions No_Dependence
12208         Recognize restriction No_Obsolescent_Features at parse time
12209
12210         * bcheck.adb: Add circuitry for checking for consistency of
12211         No_Dependence restrictions.
12212
12213         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
12214         restrictions.
12215
12216         * restrict.ads, restrict.adb: Add subprograms to deal with
12217         No_Dependence restrictions.
12218
12219         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
12220         restrictions.
12221
12222         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
12223         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
12224
12225         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
12226         dummy parameter to scng instantiation.
12227         Needed for new restriction No_Obsolescent_Features
12228
12229         * scn.adb: (Obsolescent_Check): New procedure
12230         Needed for new restriction No_Obsolescent_Features
12231
12232         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
12233         specified by AI-285, needed for implementation of AI-388 (adding greek
12234         pi to Ada.Numerics).
12235         Add new generic formal to scng, needed for new restriction
12236         No_Obsolescent_Features.
12237
12238         * s-rident.ads: Add new restriction No_Obsolescent_Features.
12239
12240         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
12241         restrictions lines.
12242         (Scan_ALI): When finding an unexpected character on an R line, raise
12243         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
12244         Ignore_Errors is True, default restrictions are set and scanning of the
12245         ALI file continues with the next line. Also, when Bad_R_Line is raised
12246         and Ignore_Errors is True, skip to the end of le line.
12247
12248         * sem_ch10.adb: Check that explicit with's do not violate
12249         No_Dependence restrictions.
12250         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
12251         illegal context clauses containing child units of instance.
12252
12253         * sem_prag.adb: Processing and checking for new No_Dependence
12254         restrictions.
12255         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
12256         analyze and check the External argument.
12257
12258         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
12259
12260 2005-01-03  Robert Dewar  <dewar@adacore.com>
12261
12262         * atree.adb: Add a fifth component to entities
12263         This allows us to add 32 flags and four new fields
12264
12265         * atree.ads: Add a fifth component to entities
12266         This allows us to add 32 flags and four new fields
12267
12268         * einfo.ads, einfo.adb: Document new fields and new flags now available
12269         Add routines for printing new fields
12270
12271         * treepr.adb: Call routines to print out additional fields if present
12272
12273 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12274
12275         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
12276         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
12277
12278         * Makefile.in: Add support to build shared Ada libraries on solaris x86
12279         Remove gpr2make, replaced by gprmake.
12280         Remove references to gnatmem and libaddr2line.
12281         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
12282         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
12283         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
12284         a-numaux-darwin.ads and a-numaux-darwin.adb
12285         Enable mlib-tgt-lynxos.adb on lynxos.
12286
12287         * Make-lang.in: Remove rules for gpr2make.
12288         When generating sdefault.adb, do not call Relocate_Path
12289         on S3 for function Target_Name, as it is not a path.
12290         Remove references to gnatmem and libaddr2line.
12291
12292         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
12293         files.
12294
12295 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
12296
12297         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
12298         address is incompatible with its base type alignment constraints when
12299         this can be decided statically.
12300
12301 2005-01-03  Olivier Hainque  <hainque@adacore.com>
12302
12303         * decl.c (compatible_signatures_p): New function. The intended purpose
12304         is to check if two function signatures for a call-site and a callee are
12305         compatible enough for the call to be valid. The underlying purpose is
12306         to check if a call to a mapped builtin is using the right interface.
12307         The current code actually does not check antyhing - this a placeholder
12308         for future refinements.
12309         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
12310         builtin calls for convention Intrinsic.
12311
12312         * gigi.h (builtin_decl_for): Declare (new function).
12313
12314         * utils.c (gnat_install_builtins): Install the target specific builtins.
12315         (builtin_decl_for): New function, provide a dummy body for now.
12316
12317 2005-01-03  Geert Bosch  <bosch@adacore.com>
12318
12319         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
12320         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
12321         (Pred): Implement in terms of Succ.
12322
12323         * trans.c (convert_with_check): Reimplement conversion of float to
12324         integer.
12325
12326 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12327             Vincent Celier  <celier@adacore.com>
12328
12329         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
12330         bounds can be negative, and must be declared Int, not Nat.
12331
12332         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
12333         array is checked after using the index in the array.
12334
12335         * makegpr.adb (Add_Switches): Check if there is a package for the
12336         processor. If there is no package, do not look for switches.
12337
12338 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12339
12340         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
12341         generation of predefined stream operations (specs and bodies) should
12342         proceed. Under various restrictions these subprograms must not be
12343         generated.
12344
12345 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12346
12347         * exp_dist.adb:
12348         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
12349         amount of PCS-specific code in RACW stubs generation.
12350         (Copy_Specification): Set Etype on copied formal parameter entities, as
12351         this information is needed for PolyORB stubs generation.
12352         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
12353         variable Dynamic_Async.
12354         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
12355         (Build_RPC_Receiver_Specification): Make generic again, as recent
12356         changes have allowed RPC receivers to have the same profile for both
12357         variants of the PCS.
12358         Reorganise RPC receiver generation to reduce differences between the
12359         structure of GARLIC and PolyORB RPC receivers.
12360         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
12361         PCS-specific.
12362         Simplify elaboration code for RCI packages.
12363
12364         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
12365         generation to reduce differences between the structure of GARLIC and
12366         PolyORB RPC receivers.
12367
12368         * s-stratt.adb: Fix typo in comment.
12369
12370 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12371
12372         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
12373         copied from Make_Init_Call).
12374
12375         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
12376         reads and assignments on a temporary variable declared with appropriate
12377         discriminants.
12378
12379 2005-01-03  Robert Dewar  <dewar@adacore.com>
12380
12381         * i-c.adb (To_C): Raise CE if string is null and Append_Null
12382
12383 2005-01-03  Robert Dewar  <dewar@adacore.com>
12384
12385         * i-cstrin.adb (Update): Do not append a null in form called with a
12386         String. This avoids unintended behavior.
12387
12388 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12389
12390         PR ada/17527
12391         * init.c: Fix warnings on Free BSD section.
12392
12393 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12394
12395         PR ada/16949
12396         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
12397         xsinfo.adb).
12398
12399 2005-01-03  Vincent Celier  <celier@adacore.com>
12400
12401         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
12402         libraries when Unique_Compile is True (-u switch).
12403         (Gnatmake): ditto.
12404
12405 2005-01-03  Robert Dewar  <dewar@adacore.com>
12406
12407         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
12408         upper case letter or underscore after W, as allowed by spec.
12409
12410 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12411
12412         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
12413         darwin port by using proper type definitions from header files.
12414         Use SIGTERM instead of SIGABRT for SIGADAABORT.
12415
12416 2005-01-03  Robert Dewar  <dewar@adacore.com>
12417
12418         * par.adb: Enhance error message handling for configuration file
12419         pragmas.
12420
12421 2005-01-03  Robert Dewar  <dewar@adacore.com>
12422
12423         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
12424         removed during the previous update (test properly for case of dividing
12425         largest negative number by -1, which generates overflow).
12426
12427 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12428             Sergey Rybin  <rybin@adacore.com>
12429
12430         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
12431         to use as the defining identifier for a formal package.
12432         (Remove_Parent): If the instance takes place within (an instance of)
12433         a sibling, preserve private declarations of common parent.
12434
12435 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12436
12437         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
12438         to determine whether one of the operands is a fixed-point type for
12439         which a user-defined multiplication or division operation might be
12440         defined.
12441
12442         * sem_res.adb (Valid_Conversion): The legality rules for conversions
12443         of access types are symmetric in Ada 2005: either designated type can
12444         be unconstrained.
12445
12446 2005-01-03  Vincent Celier  <celier@adacore.com>
12447
12448         * s-fileio.adb (Temp_File_Record): Change length of string component
12449         Name from L_tmpnam + 1 to max_path_len + 1.
12450
12451 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12452
12453         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
12454         Self_Id.Deferral_Level = 0.
12455         (Do_Pending_Action): Move this function to the spec.
12456
12457         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
12458         Do_Pending_Action explicitely when needed, in case we're using
12459         No_Abort restrictions.
12460
12461         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
12462         deferral level since it will not get changed by the generated code.
12463         Keeping a default value of 1 would prevent some operations (e.g.
12464         select or delay) to proceed successfully.
12465
12466 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
12467             Robert Dewar  <dewar@adacore.com>
12468             Cyrille Comar  <comar@adacore.com>
12469
12470         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
12471         porting guide chapter (vms version).
12472         Revised doc title (removed "for native platforms") and subtitle.
12473         Add discussion on warning flag for obsolescent features. First we
12474         note that it applies to obsolete GNAT features, which was previously
12475         omitted. Second we contrast the behavior with that of the new
12476         Ada 2005 AI-368 restriction No_Obsolescent_Features.
12477         Preliminary rewriting of GNAT & libraries chapter in order to take
12478         into account default project locations & new project manager
12479         capabilities.
12480
12481 2005-01-03  Robert Dewar  <dewar@adacore.com>
12482
12483         * cstand.adb (Create_Operators): Clean up format and documentation of
12484         unary and binary operator result tables. No change in code, just
12485         reformatting and addition of comments.
12486
12487         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
12488         sem_ch2.adb: Minor reformatting
12489
12490         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
12491         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
12492         comments for Tree_Read and Tree_Write.
12493
12494 2005-01-03  Pascal Obry  <obry@adacore.com>
12495
12496         * exp_attr.ads: Minor reformatting.
12497
12498 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
12499
12500         * comperr.adb (Compiler_Abort): Add specialized message for GAP
12501         versions.
12502
12503 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12504
12505         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
12506         whether the ancestor type is private, as may be the case with nested
12507         instantiations.
12508
12509 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
12510
12511         PR ada/19128
12512         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
12513
12514 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12515
12516         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
12517         * utils2.c (build_unary_op): Likewise.
12518
12519 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12520
12521         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
12522
12523 2004-12-19  Richard Henderson  <rth@redhat.com>
12524
12525         * trans.c (gigi): Update gimplify_body call.
12526
12527 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
12528
12529         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
12530
12531 2004-12-07  Ed Falis  <falis@adacore.com>
12532
12533         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
12534         current task being suspended.
12535
12536         * init.c (__gnat_clear_exception): added to reset VxWorks exception
12537         count.
12538         (__gnat_map_signal): removed test for current task being suspended.
12539
12540 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12541
12542         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
12543         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
12544         targets (such as AAMP).
12545
12546 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12547
12548         * atree.adb (Visit_Itype): Create a new name for the generated itype,
12549         because the back-end may otherwise treat it as a redefinition of the
12550         old symbol.
12551
12552 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
12553
12554         * back_end.adb (Scan_Back_End_Switches): Accept --param.
12555
12556         * lang-specs.h: Accept --param.
12557
12558 2004-12-07  Vincent Celier  <celier@adacore.com>
12559
12560         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
12561         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
12562         Current_Body_Suffix => Ada_Body_Suffix).
12563         Take into account Externally_Built attribute.
12564
12565         * clean.adb (In_Extension_Chain): Always return False when one of the
12566         parameter is No_Project.
12567         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
12568         Ada_Language_Index).
12569         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
12570         Process_Languages for procedure Parse).
12571
12572         * gnatcmd.adb (Carg_Switches): New table.
12573         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
12574         Adapt to name changes in package Prj (Current_Spec_Suffix =>
12575         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
12576
12577         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
12578         Header_Num and function Hash are now declared in package Prj,
12579         not Prj.Com.
12580
12581         * prj.adb (Suffix_Of): New function.
12582         (Set (Suffix)): New procedure.
12583         (Hash): One function moved from Prj.Com
12584         (Is_Present, Language_Processing_Data_Of): New functions
12585         (Set): Two new procedures
12586         (Add_Language_Name, Display_Language_Name): New procedures
12587
12588         * prj.ads: (Suffix_Of): New function
12589         (Set (Suffix)): New procedure
12590         Add several types and tables for multi-language support.
12591         (Header_Num): Type moved from Prj.Com
12592         (Hash): Two functions moved from Prj.Com
12593         (Is_Present, Language_Processing_Data_Of): New functions
12594         (Set): Two new procedures
12595         (Add_Language_Name, Display_Language_Name): New procedures
12596         (Naming): Component name changes:
12597         Current_Spec_Suffix => Ada_Spec_Suffix,
12598         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
12599         Impl_Suffixes, Supp_Suffixes.
12600         (Project_Data): New components: Externally_Built, Supp_Languages,
12601         First_Language_Processing, Supp_Language_Processing, Default_Linker,
12602         Default_Linker_Path.
12603
12604         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
12605         new package Language_Processing with its attributes (Compiler_Driver,
12606         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
12607         Binder_Driver, Default_Linker).
12608
12609         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
12610         (Header_Num): Type moved to package Prj
12611
12612         * prj-env.adb: Adapt to name changes in package Prj
12613         (Current_Spec_Suffix => Ada_Spec_Suffix,
12614         Current_Body_Suffix => Ada_Body_Suffix).
12615
12616         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
12617         default to the project path, except the "-" is one of the directories
12618         in env var ADA_PROJECT_PATH.
12619         (Current_Project_Path): Global variable, replacing Project_Path
12620         that was in the body of Prj.Part.
12621         (Project_Path): New function
12622         (Set_Project_Path): New procedure
12623         Initialize Current_Project_Path during elaboration of the package
12624         Remove dependency on Prj.Com, no longer needed
12625
12626         * prj-ext.ads (Project_Path): New function
12627         (Set_Project_Path): New procedure
12628
12629         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
12630         suffix is defined for language <lang>.
12631         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
12632         accessing directly the components of Naming.
12633         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
12634         Reorganise of this package.
12635         Break procedure Check in several procedures.
12636
12637         * prj-nmsc.ads: Replace all procedures (Ada_Check,
12638         Other_Languages_Check and Language_Independent_Check) with a single
12639         procedure Check.
12640
12641         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
12642         Process_Languages, no longer needed.
12643
12644         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
12645         Current_Project_Path.
12646         Remove elaboration code, moved to the body of Prj.Ext
12647         Use new function Prj.Ext.Project_Path instead of old variable
12648         Project_Path.
12649         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
12650         When comparing with project paths on the stack, first put the resolved
12651         path in canonical case.
12652         (Parse_Single_Project): Set the path name of the project file in the
12653         tree to the normalized path.
12654
12655         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
12656         parameter Process_Languages, no longer needed.
12657         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
12658         Other_Languages_Check.
12659
12660         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
12661         to store the resolved canonical path of the project file.
12662         Remove dependency to Prj.Com, no longer needed
12663
12664         * prj-util.adb: Adapt to name changes in package Prj
12665         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
12666         Ada_Body_Suffix).
12667
12668         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
12669         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
12670         Externally_Built, Include_Option, Language_Processing.
12671
12672         * makegpr.adb: Numerous changes due to changes in packages
12673         Prj and Prj.Nmsc.
12674
12675         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
12676         default to the project path, except whe "-" is one of the directories
12677         in env var ADA_PROJECT_PATH.
12678         (Gnatls): In verbose mode, add the new section "Project Search Path:"
12679
12680 2004-12-07  Robert Dewar  <dewar@adacore.com>
12681
12682         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
12683
12684         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
12685         set -gnatR3m mode.
12686
12687         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
12688         flag. No longer needed now that we handle this in gnat1drv.adb.
12689
12690         * repinfo.ads: Minor reformatting
12691
12692 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12693             Olivier Hainque  <hainque@adacore.com>
12694             Eric Botcazou  <ebotcazou@adacore.com>
12695
12696         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
12697         TYPE_SIZE_UNIT of result type if SIZE is not specified.
12698         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
12699         of a bitfield, which we know is useless and causes trouble because of
12700         alignment implications.
12701
12702         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
12703         BSS sections.
12704         (process_attributes): Clear DECL_COMMON again when a section attribute
12705         is present.
12706         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
12707         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
12708         (create_field_decl): Special case ADDRESSABLE negative to mean
12709         "no bitfield creation", to be used by make_aligning_type. Don't
12710         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
12711         fields claimed addressable still have to be bitfields. Use
12712         value_factor_p instead of a raw binop construction to check for the
12713         position's alignment.
12714
12715 2004-12-07  Geert Bosch  <bosch@adacore.com>
12716
12717         * eval_fat.adb: Revert previous change.
12718
12719 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12720             Ed Schonberg  <schonberg@adacore.com>
12721
12722         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
12723         with an implicit dereference as its prefix, use
12724         Insert_Explicit_Dereference instead of merely rewriting the prefix into
12725         an explicit dereference. This ensures that a reference to the original
12726         prefix is generated, if appropriate.
12727
12728         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
12729         dereference is rewritten to an explicit one, generate a reference to
12730         the entity denoted by its prefix using the original prefix node, so
12731         the dereference can be properly recorded as a read of the denoted
12732         access value, if appropriate.
12733
12734         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
12735         emitting 'assigned but never read' warning on a variable on the basis
12736         that it has an access type.
12737         (Check_References): Emit unreferenced warning when the scope is a
12738         subprogram body.
12739
12740 2004-12-07  Robert Dewar  <dewar@adacore.com>
12741             Ed Schonberg  <schonberg@adacore.com>
12742
12743         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
12744         intrinsic
12745
12746         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
12747         leaving call unchanged.
12748         This deals with the case where the pragma Import specified
12749         an external name, to be handled by the back end.
12750
12751         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
12752         subprogram which is Imported with convention Intrinsic if an
12753         External_Name argument is specified.
12754         (Process_Import_Or_Interface): Properly diagnose link name argument.
12755         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
12756         with Sem_Ch6.Cannot_Inline.
12757         (Process_Inline): Provide separate warning for inapplicable inline
12758         pragma.
12759         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
12760         treatment is uniform on different targets.
12761
12762 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12763
12764         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
12765         construct is rewritten, preserve end label to permit source navigation.
12766
12767 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12768
12769         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
12770         Specific_Build_Stub_Target): New subprograms.
12771         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
12772         the PCS implementation used, using the above PCS-customized subprograms.
12773         Minor reformatting.
12774         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
12775         for generation of DSA code targeted to the PolyORB PCS.
12776         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
12777         implementation of the partition communication subsystem in ancillary
12778         subprograms.
12779         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
12780         PolyORB_Support.Build_Stub_Type): New subrograms containing the
12781         PCS-specific part of Add_Stub_Type.
12782         (Insert_Partition_Check): Use runtime library function to perform
12783         E.4(19) check.
12784
12785         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
12786         (RE_Same_Partition): New entity, from s-parint.
12787
12788         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
12789
12790 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12791
12792         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
12793         Output the copyright message on a separate line from the version
12794         message.
12795
12796 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
12797
12798         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
12799         compile-time warning.
12800
12801 2004-12-07  Robert Dewar  <dewar@adacore.com>
12802
12803         * g-regpat.adb: (Match): Change a misuse of or to or else
12804
12805 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12806
12807         * lib-xref.adb:
12808         (Generate_Reference): Handle properly a reference to an entry formal,
12809          when an accept statement has a pragma Unreferenced for it.
12810
12811         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
12812         and the Has_Pragma_Unreferenced flag for each formal before analyzing
12813         the body, to ensure that warnings are properly emitted for each accept
12814         statement of a given task entry.
12815
12816 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
12817
12818         * Makefile.in: Add support for foreign threads on VMS.
12819
12820 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12821
12822         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
12823         Remove.
12824         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
12825
12826         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
12827
12828         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
12829         exception.
12830         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
12831
12832 2004-12-07  Robert Dewar  <dewar@adacore.com>
12833
12834         * nlists.adb (Prepend_Debug): Remove parameters and nest within
12835         Prepend.
12836         (Remove_Next_Debug): Same fix
12837
12838         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
12839         maintain back pointers now, though we did not used to, and comments
12840         were out of date).
12841         (Prepend): Remove pragma Inline.
12842         (Remove_Next): Same cleanup
12843
12844 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12845
12846         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
12847         used to record an implicit dereference as a read operation on its
12848         prefix when operating under -gnatc. Necessary to avoid spurious
12849         'variable assigned but never read' warnings in that mode.
12850         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
12851         is a non-overloaded implicit dereference, call the above subprogram to
12852         ensure proper recording of references.
12853
12854 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12855
12856         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
12857         to be resolved later as part of Analyze_Iteration_Scheme's call to
12858         Make_Index.
12859
12860 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12861
12862         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
12863         prefix is not a scalar type, place error message on prefix, not on
12864         type entity.
12865
12866 2004-12-07  Bernard Banner  <banner@adacore.com>
12867
12868         * vxaddr2line.adb: Add support for x86 vxworks
12869
12870 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12871
12872         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
12873         documentation of the behaviour of these functions when passed an IP
12874         address that has no record in the system hosts database and no reverse
12875         record in the DNS.
12876
12877         * cstand.adb, a-tags.ads: Fix typos in comment.
12878
12879 2004-12-07  Robert Dewar  <dewar@adacore.com>
12880
12881         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
12882         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
12883         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
12884         s-poosiz.ads: Minor reformatting
12885
12886         * make.adb: Minor reformatting
12887         Add some ??? comments asking for more comments
12888
12889         * s-poosiz.adb: Minor reformatting
12890         Add comments on alignment requirement
12891
12892         * sinfo.ads: Remove obsolete comment and fix typo.
12893
12894 2004-12-07  Vincent Celier  <celier@adacore.com>
12895             Sergey Rybin  <rybin@adacore.com>
12896
12897         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
12898         Files" with the new tool and package names.
12899         Reformatting to suppress most of the warnings for line too long
12900         Document the new section "Project Search Path:" in the output of
12901         gnatls -v.
12902         Add gnatmetric section
12903
12904 2004-12-07  Vincent Celier  <celier@adacore.com>
12905
12906         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
12907         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
12908         and -eit to -ept. Added qualifier
12909         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
12910
12911 2004-11-27  Andreas Schwab  <schwab@suse.de>
12912
12913         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
12914
12915 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12916
12917         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
12918         internal implementation unit GNAT.Sockets.Thin,
12919         as their usage for sockets is non-portable (using the read and write
12920         functions from the system runtime library is fine on UNIX but won't
12921         work under Windows).
12922
12923         * mingw32.h: Update copyright notice.
12924
12925 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12926
12927         * ada-tree.h: Minor reformatting of previous change to avoid lines
12928         longer than 79 characters.
12929
12930 2004-11-25  Olivier Hainque  <hainque@adacore.com>
12931
12932         * tb-gcc.c: GCC infrastructure based implementation of
12933         __gnat_backtrace.
12934
12935 2004-11-24  Steven Bosscher  <stevenb@suse.de>
12936
12937         * misc.c (gnat_post_options): Don't clear
12938         flag_inline_functions.
12939
12940 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
12941
12942         PR ada/17986
12943         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
12944         tree.
12945
12946 2004-11-21  Andreas Jaeger  <aj@suse.de>
12947
12948         * stylesw.adb: Change Style_Check_Subprogram_Order to
12949         Style_Check_Order_Subprograms.
12950
12951 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
12952
12953         * adaint.h, adaint.c
12954         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
12955         to avoid warnings.
12956         Add also a cast to kill another warning.
12957         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
12958         parameter with the priority class of the parent process instead of
12959         always using the NORMAL_PRIORITY_CLASS.
12960         (__gnat_dup): New function.
12961         (__gnat_dup2): New function.
12962         (__gnat_is_symbolic_link): Enable the effective body of this
12963         function when __APPLE__ is defined.
12964
12965         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
12966         Update comments.
12967
12968 2004-11-18  Olivier Hainque  <hainque@adacore.com>
12969
12970         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
12971         address of which may be used to represent "others" and "all others"
12972         choices in exception tables, instead of the current harcoded
12973         (void *)0 and (void *)1.
12974         (Setup_Exception): Do nothing in the GNAT SJLJ case.
12975
12976         * gigi.h (others_decl, all_others_decl): New decls representing the
12977         new Others_Value and All_Others_Value objects.
12978         (struct attrib): Rename "arg" component as "args", since GCC expects a
12979         list of arguments in there.
12980
12981         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
12982         corresponding objects exported by a-exexpr, instead of hardcoded dummy
12983         addresses.
12984
12985         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
12986         others_decl and all_others_decl instead of hardcoded dummy addresses
12987         to represent "others" and "all others" choices, which is cleaner and
12988         more flexible with respect to the possible eh pointer encoding policies.
12989
12990         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
12991         (process_attributes): Account for the naming change of the "args"
12992         attribute list entry component.
12993
12994         * decl.c (build_attr_list): Rename into prepend_attributes to allow
12995         cumulating attributes for different entities into a single list.
12996         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
12997         attributes for the current entity and propagate first subtype
12998         attributes to other subtypes.
12999         <E_Procedure>: Attribute arguments are attr->args and not
13000         attr->arg any more.
13001         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
13002         argument provided, as this is what GCC expects. Use NULL_TREE instead
13003         of 0 for trees.
13004
13005 2004-11-18  Robert Dewar  <dewar@adacore.com>
13006
13007         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
13008         Minor reformatting througout (including new function specs)
13009         Add ??? comments asking for clarification.
13010
13011 2004-11-18  Thomas Quinot  <quinot@adacore.com>
13012
13013         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
13014         incomplete duplicate implementation of this subprogram from butil.
13015
13016 2004-11-18  Thomas Quinot  <quinot@adacore.com>
13017
13018         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
13019         procedures factors the common processing for building an RPC receiver
13020         for an RCI package or an RACW type.
13021         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
13022         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
13023         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
13024         in use.
13025         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
13026         Add_RACW_Features.
13027         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
13028         Add_RAST_Features.
13029         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
13030         distribution subprogram identifiers that are either subprogram numbers
13031         or strings.
13032         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
13033         string distribution identifiers assigned to a given subprogram.
13034         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
13035         (Add_RAS_Dereference_TSS): Add comments.
13036         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
13037         is not referenced yet because it will be used by the PolyORB DSA
13038         implementation.
13039         (Insert_Partition_Check): Remove fossile code.
13040         (First_RCI_Subprogram_Id): Document this constant.
13041         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
13042         RAS_Access TSS.
13043         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
13044         replaced with calls to Get_Library_Unit_Name_String. Previously there
13045         were several instances of the same code in different locations in the
13046         compiler; this checkin completes the replacement of all of these
13047         instances with calls to a common subprogram.
13048         Minor reformatting.
13049
13050         * sem_dist.adb: Remove comment noting that RPC receiver generation
13051         should be disabled for RACWs that implement RASs.
13052         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
13053
13054         * sem_util.ads, sem_util.adb (Has_Stream): New function
13055         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
13056         qualified name of a library unit into the name buffer.
13057         (Note_Possible_Modification): Generate a reference only
13058         if the context comes from source.
13059
13060         * snames.ads (PCS_Names): New subtype corresponding to names of
13061         supported implementations of the Partition Communication Subsystem
13062         (PCS) (i.e. the runtime library support modules for the distributed
13063         systems annex).
13064
13065 2004-11-18  Robert Dewar  <dewar@adacore.com>
13066             Ed Schonberg  <schonberg@adacore.com>
13067
13068         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
13069         (Has_Rep_Pragma): New function
13070         (Has_Attribute_Definition_Clause): New function
13071         (Record_Rep_Pragma): Moved here from sem_ch13.adb
13072         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
13073
13074         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
13075
13076         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
13077         (Expand_Pragma_Psect_Object): New procedure
13078         These procedures contain the revised and cleaned up processing for
13079         these two pragmas. This processing was formerly in Sem_Prag, but
13080         is more appropriately moved here. The cleanup involves making sure
13081         that the pragmas are properly attached to the tree, and that no
13082         nodes are improperly shared.
13083
13084         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
13085         pragmas to Exp_Prag, which is more appropriate.
13086         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
13087         check for duplicates Remove use of Is_Psected flag, no longer needed.
13088         Use new Make_String_Literal function with string.
13089
13090         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
13091         that are functions return universal values, that have to be converted
13092         to the context type.
13093         Use new Make_String_Literal function with string.
13094         (Get_Stream_Convert_Pragma): New function, replaces the use of
13095         Get_Rep_Pragma, which had to be kludged to work in this case.
13096
13097         * freeze.adb: Use new Has_Rep_Pragma function
13098
13099         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
13100         function with string.
13101         Use new Has_Rep_Pragma function.
13102
13103         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
13104         string argument.
13105
13106 2004-11-18  Robert Dewar  <dewar@adacore.com>
13107
13108         * errout.ads, errout.adb: (First_Sloc): New function
13109
13110         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
13111         check (-gnatyx) instead of being included as a redundant construct
13112         warning.
13113
13114         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
13115         Style_Check_Order_Subprograms.
13116
13117         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
13118         stylesw.adb: Add Style_Check_Xtra_Parens
13119
13120         * usage.adb: Add line for -gnatyx (check extra parens)
13121
13122         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
13123
13124 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13125             Robert Dewar  <dewar@adacore.com>
13126
13127         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
13128         discriminant of a constrained subtype, analyze the copy of the
13129         corresponding constraint, because in some cases it may be only
13130         partially analyzed.
13131         Removes long-lived ??? comments.
13132
13133         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
13134         handled controlled or secondary-stack expressions within the
13135         iteration_scheme of a loop.
13136
13137         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
13138         bounds that may contain functions calls, to prevent memory leaks when
13139         the bound contains a call to a function that uses the secondary stack.
13140         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
13141         generate temporaries for loop bounds that might contain function calls
13142         that require secondary stack and/or finalization actions.
13143
13144         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
13145         selected component and the selector is overloadable (not just a
13146         function) treat as function call, Analyze_Call will disambiguate if
13147         necessary.
13148         (Analyze_Selected_Component): Do not generate an actual subtype for the
13149         selected component if expansion is disabled. The actual subtype is only
13150         needed for constraint checks.
13151         (Analyze_Allocator): If restriction No_Streams is set, then do
13152         not permit objects to be declared of a stream type, or of a
13153         composite type containing a stream.
13154
13155         * restrict.ads: Remove the a-stream entry from Unit_Array, since
13156         No_Streams no longer prohibits with'ing this package.
13157
13158         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
13159         discriminants, but the parent base has unknown discriminants, there is
13160         no discriminant constraint to inherit. Such a discrepancy can arise
13161         when the actual for a formal type with unknown discriminants is a
13162         similar private type whose full view has discriminants.
13163         (Analyze_Object_Declaration): If restriction No_Streams is set, then
13164         do not permit objects to be declared of a stream type, or of a
13165         composite type containing a stream.
13166
13167 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13168
13169         * exp_dbug.ads: Update documentation to reflect simpler encoding for
13170         protected operations.
13171
13172         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
13173         generated name, it complicates decoding in gdb and hinders debugging
13174         of protected operations.
13175         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
13176         flag for the protected entry barrier function.
13177         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
13178         flag for the protected entry function.
13179
13180 2004-11-18  Nicolas Setton  <setton@adacore.com>
13181
13182         * expect.c: Define __unix__ when __APPLE__ is defined.
13183
13184         * Makefile.in: Inform the value of the variable GMEM_LIB in the
13185         Darwin-specific section.
13186
13187         * lang-specs.h: Change the placement of the %1 marker.
13188         Works around the fact that gcc adds -fPIC by default under Darwin.
13189
13190 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13191
13192         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
13193         type of the object with the packed array type, set the Analyzed flag
13194         on the object if it is an entity or simple indexed component, to avoid
13195         spurious type errors.
13196
13197 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
13198
13199         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
13200         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
13201         separate line from the version message.
13202
13203 2004-11-18  Ed Falis  <falis@adacore.com>
13204
13205         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
13206         vthreads.
13207         (init_float): Eliminate initialization of floating point status for
13208         AE653. The instructions have no effect for vThreads.
13209
13210 2004-11-18  Vincent Celier  <celier@adacore.com>
13211
13212         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
13213         gnatbind is invoked with -shared.
13214
13215 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
13216
13217         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
13218         for Detect_Blocking which is redundant with the check done within the
13219         procedure Protected_Single_Entry_Call.
13220         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
13221         Detect_Blocking which is redundant with the check done within the
13222         procedure Protected_Single_Entry_Call.
13223
13224 2004-11-18  Vincent Celier  <celier@adacore.com>
13225
13226         * makegpr.adb (Compile): Put the compiling switches (in package
13227         Compiler and on the command line) immediately after "-c", instead of
13228         at the end of the command line invocation of the compiler, when
13229         compiling a non-Ada file.
13230         (Build_Global_Archive): When there is no need to rebuild the archive,
13231         set Global_Archive_Exists, so that the archive is passed to the linker
13232         if one is needed.
13233
13234 2004-11-18  Robert Dewar  <dewar@adacore.com>
13235             Sergey Rybin  <rybin@adacore.com>
13236
13237         * gnat_ugn.texi:
13238         Remove extra paren check from list of checks for redundant constructs
13239         Add documentation of new -gnatyx style check (check extra parens)
13240         Remove paragraph about gnatelim debug options.
13241
13242         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
13243         objects rather than forbidding dependencies on the package Ada.Streams.
13244
13245         * sinfo.ads: Add ??? note that we should document pragmas passed to
13246         back end.
13247
13248         * g-expect.ads: Fix a few typos in the comments.
13249
13250 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
13251
13252         * misc.c (gnat_handle_option): Use %< and %> for quoting in
13253         warning message.
13254
13255 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13256
13257         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
13258
13259 2004-11-07  Andreas Schwab  <schwab@suse.de>
13260
13261         * Makefile.in (install-gnatlib): Remove spurious hyphen.
13262
13263 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
13264
13265         PR ada/18228
13266         * Makefile.in (darwin): Set soext to .dylib.
13267
13268 2004-10-26  Vincent Celier  <celier@gnat.com>
13269             Thomas Quinot   <quinot@act-europe.fr>
13270
13271         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
13272         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
13273         there is no use of GNAT.Sockets.Constants.
13274         Remove remaining pragma Import for C_Write
13275         Remove C_Read and C_Write from internal implementation unit
13276         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
13277         the read and write functions from the system runtime library is fine
13278         on UNIX but won't work under Windows).
13279
13280         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
13281         (Check_Selector): Use C_Recv instead of C_Read.
13282         Selectors are the GNAT.Sockets abstraction to perform a select()
13283         call on a set of descriptors. To allow abortion of an ongoing
13284         select operation, some data is written to a dedicated socket that
13285         is always monitored.
13286         Under Windows, the write and read library functions cannot operate
13287         on sockets, so we need to use send and recv instead, which is portable
13288         across all supported platforms.
13289
13290         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
13291         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
13292         (using the read and write functions from the system runtime library is
13293         fine on UNIX but won't work under Windows).
13294
13295 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
13296
13297         * mlib-tgt-darwin.adb: New file.
13298
13299         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13300         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13301         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
13302         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
13303         subprogram body.
13304
13305         * Makefile.in: Add support for building shared libraries under Darwin.
13306         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
13307         the low level EH init subprogram to be called from __gnat_initialize.
13308
13309         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
13310         indicates which options to pass to the archive indexer.
13311
13312         * mlib-utl.adb: Add support for calling ranlib with additional
13313         options. This is needed for instance under Mac OS X.
13314         (Ranlib_Options): New global variable, used to store the potential
13315         options to pass to ranlib.
13316         (Ar): Use Ranlib_Options when spawning ranlib.
13317         (Initialize): Set the value of ranlib option.
13318
13319 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13320
13321         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
13322         instead of 8K, to reflect the real potential needs for stack-checking
13323         in the ZCX case.
13324
13325 2004-10-26  Pascal Obry  <obry@gnat.com>
13326
13327         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
13328
13329         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
13330         Windows only the initial thread stack size can be set so it is good to
13331         start we a low stack size.
13332         The OS will adjust the size as needed.
13333
13334 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13335             Nicolas Setton  <setton@act-europe.fr>
13336
13337         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
13338         "__unix__" instead of "unix".
13339         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
13340         sections were just mistakenly ignored. The former is
13341         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
13342         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
13343         of hpux. This prevents an unwanted definition of the symbol
13344         convert_addresses in adaint.o.
13345
13346 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13347
13348         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
13349         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
13350
13351 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13352
13353         * a-filico.ads, a-filico.adb: fix incorrect header.
13354
13355 2004-10-26  Javier Miranda  <miranda@gnat.com>
13356
13357         * a-ststio.ads: Fix typo in identifier
13358
13359 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13360
13361         * sem_ch4.adb: Minor reformatting.
13362
13363 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13364
13365         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
13366         enabled, check the result of unary and binary operations when the
13367         expression is the right-hand side of an assignment.
13368
13369 2004-10-26  Vincent Celier  <celier@gnat.com>
13370
13371         * clean.adb (Delete): Do not output warnings when in quiet output and
13372         not in verbose mode.
13373         (Force_Deletions): New Boolean flag, defaulted to False
13374         (Delete): Only delete a file if it is writable, and when
13375         Force_Deletions is True.
13376         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
13377         (Usage): Line for new switch -f
13378         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
13379         own.
13380
13381 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13382
13383         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
13384         JM type only if its size matches that of the wrapper.  When a size is
13385         prescribed and the field is not aliased, remove the wrapper of a JM
13386         type only if the size is not greater than that of the packed array.
13387         (gnat_to_gnu_entity): Change the extension of packed array wrappers
13388         from LJM to JM.
13389
13390 2004-10-26  Geert Bosch  <bosch@gnat.com>
13391
13392         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
13393         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
13394         (Pred): Implement in terms of Succ.
13395
13396 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13397
13398         * exp_aggr.adb (Safe_Component): An aggregate component that is an
13399         unchecked conversion is safe for in-place use if the expression of the
13400         conversion is safe.
13401         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
13402         be expandable in place even if the aggregate does not come from source.
13403         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
13404         designated object of an allocator in place, rather than building it
13405         first on the stack. The previous scheme forces a full copy of the array,
13406         and may be altogether unsusable if the size of the array is too large
13407         for stack allocation.
13408
13409 2004-10-26  Robert Dewar  <dewar@gnat.com>
13410
13411         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
13412         compares if the component is atomic.
13413
13414         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
13415         array assignment if the component type is atomic.
13416
13417 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13418             Eric Botcazou  <ebotcazou@act-europe.fr>
13419
13420         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
13421         is aliased and is a by_reference type, do not pass by copy.
13422         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
13423         detect whether the call is in the right side of an assignment or
13424         the expression of an object declaration.  Recurse on component
13425         association within aggregates.
13426         Call it in the condition that determines whether the temporary is
13427         necessary for correct stack-checking.
13428
13429 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13430
13431         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
13432         RACW_Type, used in the PolyORB version.
13433         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
13434         version and the GARLIC version.
13435
13436         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
13437         Rename RCI_Info to RCI_Locator for better consistency between the
13438         GARLIC and PolyORB versions of the distributed systems annex.
13439         (DSA_Implementation_Name): This enumeration lists the possible
13440         implementations of the Partition Communication Subsystem for the
13441         Distributed Systems Annex (DSA). The three available implementations
13442         are the dummy stub implementation (No_DSA), and two versions based on
13443         two different distribution runtime libraries: GARLIC and PolyORB. Both
13444         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
13445         technology.
13446         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
13447         that organization.
13448
13449         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
13450         between the GARLIC and PolyORB versions of the distributed systems
13451         annex.
13452         Remove RE_Unbounded_Reclaim_Pool since it is unused.
13453
13454 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13455
13456         * gnat1drv.adb: Suppress calling the back end when
13457         Frontend_Layout_On_Target is true.
13458
13459 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13460
13461         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
13462         Set_Read_Only): New subprograms.
13463         These new routines allow the user to set or unset the Owner execute
13464         and Owner write permission flags on a file.
13465
13466         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
13467         GNAT.OS_Lib.Set_Executable instead of rolling our own.
13468
13469 2004-10-26  Matthew Gingell  <gingell@gnat.com>
13470
13471         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
13472
13473 2004-10-26  Pascal Obry  <obry@gnat.com>
13474
13475         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
13476         memory before the faulting page we properly test the process read
13477         access for this address using appropriate Win32 routine.
13478         (HPUX sections): guard with "__hpux__" instead of "hpux".
13479
13480 2004-10-26  Robert Dewar  <dewar@gnat.com>
13481
13482         * lib-xref.adb (Generate_Reference): Don't complain about reference to
13483         entry parameter if pragma Unreferenced set, since we do not properly
13484         handle the case of multiple parameters.
13485
13486 2004-10-26  Vincent Celier  <celier@gnat.com>
13487
13488         * prj-env.adb: (Contains_ALI_Files): New Boolean function
13489         (Ada_Objects_Path.Add): For a library project, add to the object path
13490         the library directory only if there is no object directory or if the
13491         library directory contains ALI files.
13492         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13493
13494 2004-10-26  Vincent Celier  <celier@gnat.com>
13495
13496         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
13497         extension of library projects.
13498
13499         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
13500         path defaults to ".:<prefix>/lib/gnat".
13501         (Parse): For an extending all project, allow direct import of a project
13502         that is virtually extended.
13503
13504         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
13505         the specified name is directly imported, return its ID. Otherwise, if
13506         an extension of this project is imported, return the ID of the
13507         extension.
13508
13509 2004-10-26  Robert Dewar  <dewar@gnat.com>
13510
13511         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
13512         (Sub3): New procedure, used by Scaled_Divide
13513         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
13514         correct more than one instance of failure to propagate carries
13515         correctly.
13516         (Double_Divide): Handle overflow case of largest negative number
13517         divided by minus one.
13518
13519         * s-arit64.ads (Double_Divide): Document that overflow can occur in
13520         the case of a quotient value out of range.
13521         Fix comments.
13522
13523 2004-10-26  Robert Dewar  <dewar@gnat.com>
13524
13525         * s-bitops.adb (Bit_Eq): Remove redundant check.
13526
13527         * s-bitops.ads: Minor comment updates
13528         Change some occurrences of Address to System.Address
13529
13530         * s-carsi8.ads: Fix minor cut-and-paste error in comments
13531
13532 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13533
13534         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
13535         accessibility check to prefix that is a protected operation.
13536
13537 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13538
13539         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
13540         empty, post message on stub.
13541
13542 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13543             Javier Miranda  <miranda@gnat.com>
13544
13545         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
13546         current instance appears within a unit that is directly in the context
13547         of the main unit.
13548         Used to determine whether the body of the instance should be analyzed
13549         immediately after its spec, to make its subprogram bodies available
13550         for front-end inlining.
13551         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
13552         constraint is not allowed on the component type (AARM 12.5.3(3))
13553
13554 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13555
13556         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
13557         'Storage_Pool): enhance, document & limit detection of non-sharable
13558         internal pools.
13559
13560         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
13561
13562         * s-pooglo.ads: Add more documentation now that this pool is properly
13563         documented.
13564
13565 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13566
13567         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
13568         or protected type with discriminants, do not constrain the
13569         corresponding record type if the subtype declaration has no
13570         discriminant constraints. This can be the case in source code, or in
13571         the subtype declaration created to rename an actual type within an
13572         instantiation.
13573
13574 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13575
13576         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
13577         different kind of stub (possibly wrong name for file), do not check
13578         for conformance.
13579         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
13580         includes call to some function that returns an unconstrained type, do
13581         not inline.
13582
13583 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13584
13585         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
13586         appear in the code for the main unit. Dependencies among units in the
13587         context of the main unit are established when those other units are
13588         compiled. Otherwise spurious elaboration constraints can generate
13589         incorrect elaboration circularities.
13590
13591 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13592             Ed Schonberg   <schonberg@gnat.com>
13593
13594         * sem_util.adb (Is_Aliased_View): Defend against the case where this
13595         subprogram is called with a parameter that is not an object name. This
13596         situation arises for some cases of illegal code, which is diagnosed
13597         later, and in this case it is wrong to call Is_Aliased, as that might
13598         cause a compiler crash.
13599         (Explain_Limited_Type): Refine previous fix to include
13600         inherited components of derived types, to provide complete information.
13601
13602         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
13603         is the prival for a protected object.
13604         It is necessary to mark this entity as a variable, in addition to
13605         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
13606         modified to avoid checking the Aliased flag on entities that are not
13607         objects. (Checking that flag for non-objects is erroneous and could
13608         lead to a compiler crash).
13609
13610 2004-10-26  Robert Dewar  <dewar@gnat.com>
13611
13612         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
13613         X_Frac = 0.5, then we know that the number X must be positive.
13614         (Succ): Remove the same redundant test, and also fix the primary test
13615         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
13616         Minor reformatting
13617         (Decompose): Add fuller comments to spec
13618
13619 2004-10-26  Pascal Obry  <obry@gnat.com>
13620
13621         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
13622         validity (process must have read access). Set to 0 in all other cases.
13623         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
13624         violation on Win32.
13625         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
13626         segmentation violation.
13627
13628 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13629
13630         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
13631         whose type is a constructed subtype of an aliased object with an
13632         unconstrained nominal subtype, convert the actual to the constructed
13633         subtype before taking its address.
13634
13635 2004-10-26  Vincent Celier  <celier@gnat.com>
13636
13637         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
13638         (Is_Path_Name_Case_Sensitive): New function
13639
13640         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
13641         (Base_Name, Simple_Name, Current_Directory, Compose,
13642         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
13643         the result.
13644
13645 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
13646             Vasiliy Fofanov  <fofanov@act-europe.fr>
13647             Vincent Celier   <celier@gnat.com>
13648
13649         * gnat_ugn.texi: Generalize "finding memory problems" section into a
13650         "memory management issues" section and document some of the useful
13651         memory pools provided as part of the GNAT library.
13652         Remove "virtual" from declaration of A::method2 in
13653         the simple example of Ada/C++ mixed system.
13654         Library Projects may be virtually extended: their virtual extensions
13655         are not Library Projects.
13656         Added section on extending project hierarchies.
13657
13658 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13659
13660         * adaint.c (__gnat_get_libraries_from_registry): Cast value
13661         to LPBYTE.
13662         (__gnat_portable_spawn): Remove const.
13663
13664         * mingw32.h (MAXPATHLEN): Check for previous definition.
13665
13666 2004-10-17  Matthias Klose  <doko@debian.org>
13667
13668         * gnatvsn.ads: Set gnat library version to 4.0.
13669
13670 2004-10-05  Vincent Celier  <celier@gnat.com>
13671
13672         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
13673
13674 2004-10-04  Laurent GUERBY <laurent@guerby.net>
13675
13676         PR ada/15156
13677         * Makefile.in: Define and use RANLIB_FLAGS.
13678
13679 2004-10-04  Pascal Obry  <obry@gnat.com>
13680
13681         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
13682         other x86 platforms).
13683
13684 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13685
13686         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
13687         in general and triggers stack alignment adjustment for thread entry
13688         points on targets where this is necessary.
13689
13690 2004-10-04  Bernard Banner  <banner@gnat.com>
13691
13692         PR ada/13897
13693
13694         * Makefile.in: Add section for powerpc linux
13695         Add variant i-vxwork-x86.ads
13696
13697         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
13698
13699 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13700
13701         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
13702         table registration calls when need be. Ensures no reference to the crt
13703         ctors symbol are issued in the SJLJ case, which avoids possible
13704         undefined symbol errors in the case of modules to be statically linked
13705         with the kernel.
13706
13707 2004-10-04  Javier Miranda  <miranda@gnat.com>
13708
13709         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
13710         in-line the code corresponding to subprogram Analyze_Actuals. In
13711         addition, analyze the actuals only in case of subprogram call.
13712
13713 2004-10-04  Ed Falis  <falis@gnat.com>
13714
13715         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
13716
13717 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
13718
13719         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
13720         in the documentation.
13721
13722 2004-10-04  Robert Dewar  <dewar@gnat.com>
13723
13724         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
13725         IF and CASE.
13726         (Analyze_Block_Statement): Add circuitry to detect following dead code
13727         (Check_Unreachable_Code): Handle case of block exit
13728
13729 2004-10-04  Robert Dewar  <dewar@gnat.com>
13730
13731         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
13732         (XMatchD): Avoid warning for Logic_Error call
13733
13734 2004-10-04  Robert Dewar  <dewar@gnat.com>
13735
13736         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
13737         consider expressions buried within a procedure actual to be an actual.
13738         This caused some blowups with uses of packed slices within a procedure
13739         actual.
13740
13741 2004-10-04  Robert Dewar  <dewar@gnat.com>
13742
13743         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
13744         longer need to be initialized to zero.
13745         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
13746         initialized to zero.
13747
13748         * checks.adb (Expr_Known_Valid): Packed arrays are now always
13749         considered valid, even if the representation is modular. That's correct
13750         now that we no longer initialize packed modular arrays to zero.
13751
13752         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
13753         suffixes. These are now documented as the only cases in which the
13754         debugger ignores outer records.
13755         Previously, the spec allowed arbitrary suffixes for this purpose.
13756         Change name of LJM to JM for packed array pad records
13757         Create separate section on packed array handling, and add a whole new
13758         set of comments to this section describing the situation with packed
13759         modular types and justification requirements depending on endianness.
13760
13761 2004-10-04  Robert Dewar  <dewar@gnat.com>
13762
13763         * a-except.adb: Add a comment for last change
13764
13765         * einfo.ads: Minor spelling correction in comment
13766
13767         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
13768
13769         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
13770         messages.
13771
13772         * sem_util.ads: Minor comment update
13773
13774 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13775
13776         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
13777         Inline_Always when in Configurable_Run_Time mode.
13778
13779         * sem_prag.adb (Process_Convention): If entity is an inherited
13780         subprogram, apply convention to parent subprogram if in same scope.
13781         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
13782         when in Configurable_Run_Time mode.
13783
13784 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13785
13786         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
13787         class_wide type after component list has been inherited.
13788
13789 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13790
13791         * sem_ch12.adb (Check_Generic_Actuals): New predicate
13792         Denotes_Previous_Actual, to handle properly the case of a private
13793         actual that is also the component type of a subsequent array actual.
13794         The visibility status of the first actual is not affected when the
13795         second is installed.
13796         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
13797         make fully recursive the treatment of formals of packages declared
13798         with a box.
13799         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
13800         the above on exit from an instantiation.
13801         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
13802         current instantiation which is now complete.
13803         (Analyze_Package_Instantiation): No instantiated body is needed if the
13804         main unit is generic. Efficient, and avoid anomalies when a instance
13805         appears in a package accessed through rtsfind.
13806
13807 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13808
13809         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
13810         do not generate a declaration for a temporary if the call is part of a
13811         library-level instantiation.
13812
13813 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13814
13815         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
13816         searching for a limited component to flag.
13817
13818         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
13819         expansion of Input, to account for the fact that the implicit call
13820         generated by the attribute reference must freeze the user-defined
13821         stream subprogram. This is only relevant to 'Input, because it can
13822         appear in an object declaration, prior to the body of the subprogram.
13823
13824         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
13825         expansion can proceed and further errors uncovered.
13826         (Minor clean up): Fix cases of using | instead of \ for continuation
13827         messages.
13828
13829 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13830
13831         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
13832
13833         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
13834         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
13835         Use gcc_assert and gcc_unreachable.
13836
13837         * decl.c (gnat_to_gnu_entity, case object): Check and process a
13838         specified alignment before validating size.
13839         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
13840         stripped-down declaration for the type of the inner field when making
13841         a JM type.
13842
13843         * utils.c (finish_record_type): Do not compute the size in units
13844         incrementally. Instead compute it once for the rep clause case.
13845         Use gcc_assert and gcc_unreachable.
13846
13847 2004-10-04  Vincent Celier  <celier@gnat.com>
13848
13849         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
13850         in file name.
13851         (Is_Valid_Path_Name): Take '/' as a directory separator.
13852
13853 2004-10-04  Vincent Celier  <celier@gnat.com>
13854
13855         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
13856         (Extended_Project) only if Extended_Project is defined, to avoid
13857         assertion error.
13858         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
13859         resolved path.
13860         (Parse_Single_Project): Ditto.
13861
13862         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
13863         Add_To_Project_Path for virtual projects.
13864
13865 2004-10-04  Vincent Celier  <celier@gnat.com>
13866
13867         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13868         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13869         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
13870         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
13871         parameter Options_2.
13872
13873         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
13874         Build_Dynamic_Library with an empty Options_2.
13875
13876         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
13877         default anymore.
13878
13879         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
13880         directory separator, if any.
13881         (Gprmake): Do not allow mains on the command line for library projects.
13882         Do not attempt to link when the project is a library project.
13883         (Library_Opts): New table to store Library_Options.
13884         (Build_Library): If Library_Options is specified, pass these options
13885         when building a shared library.
13886
13887 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13888
13889         * s-tposen.adb (Service_Entry): The object must be always unlocked at
13890         the end of this procedure now that the unlock operation was inserted
13891         by the expander.
13892
13893 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13894
13895         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
13896         corresponding to the Preallocated_Stacks flags in System.
13897         (Get_Target_Parameters): Including the processing for
13898         Preallocated_Stacks.
13899
13900         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
13901         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
13902         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
13903         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
13904         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
13905         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
13906         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
13907         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
13908         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
13909         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
13910         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
13911         used to signal whether the compiler creates the required stacks and
13912         descriptors for the different tasks (when True) or it is done by the
13913         underlying operating system at run time (when False).
13914         It is initially set to False in all targets.
13915
13916         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
13917         if it is supported by the target.
13918         (Make_Task_Create_Call): Pass the stack address if it has been
13919         previously created. Otherwise pass a Null_Address.
13920
13921         * snames.adb: Add _stack.
13922
13923         * snames.ads: Add Name_uStack. Required to allow the expander to
13924         statically allocated task stacks.
13925
13926         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
13927         Stack_Address argument.
13928         Check that its value is equal to Null_Address because this target does
13929         not support the static stack allocation.
13930
13931 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13932
13933         * usage.adb: Change "pragma inline" to "pragma Inline" in information
13934         and error messages
13935
13936 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13937
13938         * exp_dist.adb: Split declaration of asynchronous flag out of
13939         Add_RACW_Read_Attribute.
13940         Minor reformatting for better alignment with PolyORB version.
13941         Store the entity for the asynchronous flag of an RACW, rather than the
13942         expression, in the asynchronous flags table. This will allow this flag
13943         to be used in other subprograms beside Add_RACW_Read_Attribute.
13944
13945 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13946
13947         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
13948         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
13949         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
13950         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
13951         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
13952         sockets constant MSG_NOSIGNAL (Linux-specific).
13953         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
13954         all Send operations.
13955         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
13956         from trigerring SIGPIPE.
13957         Rename components to avoid clash with Ada 2005 possible reserved
13958         word 'interface'.
13959         (Check_Selector): When the select system call returns with an error
13960         condition, propagate Socket_Error to the caller.
13961
13962 2004-10-01  Jan Hubicka  <jh@suse.cz>
13963
13964         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
13965
13966 2004-09-23  Robert Dewar  <dewar@gnat.com>
13967
13968         PR ada/17540
13969
13970         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
13971         instead do this at freeze time (we won't do it if there is an address
13972         clause).
13973         Change "pragma inline" to "pragma Inline" in information and error
13974         messages.
13975         Minor reformatting.
13976
13977         * freeze.adb (Check_Address_Clause): Remove previous change, not the
13978         right way of doing things after all.
13979         (Freeze_Entity): For object, set Is_Public for imported entities
13980         unless there is an address clause present.
13981
13982 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
13983
13984         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
13985         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
13986         ensures proper handling of types with rep clauses, which might have
13987         their TYPE_SIZE set already.
13988
13989 2004-09-21  Robert Dewar  <dewar@gnat.com>
13990
13991         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
13992         packed array types in both little- and big-endian cases. This change
13993         ensures that we no longer count on the unused bits being initialized
13994         for such types (and in particular ensures that equality testing will
13995         only read the relevant bits).
13996         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
13997         These changes mean that we no longer need to initialize small packed
13998         arrays.
13999         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
14000         optimization to an LJM field as to its parent field.
14001
14002         * ada-tree.h, trans.c, utils.c, utils2.c:
14003         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
14004
14005 2004-09-20  Jan Hubicka  <jh@suse.cz>
14006
14007         * utils.c (gnat_finalize): Remove.
14008         (end_subprog_body): Directly call cgraph_finalize_function;
14009         do not lower the nested functions.
14010
14011 2004-09-20  Robert Dewar  <dewar@gnat.com>
14012
14013         PR ada/17540
14014
14015         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
14016         if an address clause is present, since that means that the Import
14017         should be ignored.
14018
14019 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
14020
14021         * 5tsystem.ads: Removed, no longer used.
14022
14023 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
14024             Zack Weinberg  <zack@codesourcery.com>
14025
14026         * ada-tree.def: Use tree_code_class enumeration constants
14027         instead of code letters.
14028         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
14029         Update for new tree-class enumeration constants.
14030
14031 2004-09-17  Vincent Celier  <celier@gnat.com>
14032
14033         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
14034         capabilities of the general project manager.
14035
14036 2004-09-09  Vincent Celier  <celier@gnat.com>
14037
14038         * a-direct.ads: Add pragma Ada_05
14039         (Directory_Entry_Type): Give default value to component Kind to avoid
14040         not initialized warnings.
14041
14042         * a-direct.adb (Current_Directory): Remove directory separator at the
14043         end.
14044         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
14045         an existing directory.
14046         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
14047         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
14048         Convert the result to File_Size.
14049
14050         * prj.ads: (Project_Error): New exception
14051
14052         * prj-attr.adb: Except in procedure Initialize, Fail comes from
14053         Prj.Com, not from Osint.
14054         (Attrs, Package_Attributes): Tables moved to private part of spec
14055         (Add_Attribute, Add_Unknown_Package): Moved to new child package
14056         Prj.Attr.PM.
14057         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
14058         Prj.Project_Error after call to Fail.
14059         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
14060         Fail. Check that package name is not already in use.
14061
14062         * prj-attr.ads: Comment updates to indicate that all subprograms may be
14063         used by tools, not only by the project manager, and to indicate that
14064         exception Prj.Prj_Error may be raised in case of problem.
14065         (Add_Unknown_Package, Add_Attribute): Moved to new child package
14066         Prj.Attr.PM.
14067         (Attrs, Package_Attributes): Table instantiations moved from the body to
14068         the private part to be accessible from Prj.Attr.PM body.
14069
14070         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
14071         from new package Prj.Attr.PM.
14072         (Parse_Attribute_Declaration): Call Add_Attribute from new package
14073         Prj.Attr.PM.
14074
14075         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
14076
14077         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
14078         instead of Elaboration_Checks).
14079
14080         * a-calend.adb: Minor reformatting
14081
14082 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14083
14084         * gigi.h (maybe_pad_type): New declaration.
14085         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
14086
14087         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
14088
14089         * cuintp.c: Convert to use buildN.
14090
14091         * decl.c (maybe_pad_type): No longer static.
14092         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
14093         target pointer.
14094         Convert to use buildN.
14095
14096         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
14097         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
14098         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
14099         RHS.
14100         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
14101         (gnat_gimplify_expr, case ADDR_EXPR): New case.
14102         Convert to use buildN.
14103
14104         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
14105         TREE_READONLY for const.
14106         Convert to use buildN.
14107
14108         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
14109         (create_var_decl): Refine when TREE_STATIC is set.
14110         Convert to use buildN.
14111
14112 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
14113
14114         * gnat_ugn.texi: Delete text relating to checking of ali and object
14115         consistency.
14116
14117         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
14118         routines.
14119
14120 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
14121
14122         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
14123         pragmas recognized by GNAT.
14124
14125         * gnat_rm.texi: Document pragma Detect_Blocking.
14126
14127         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
14128         raise Program_Error if called from a protected operation.
14129
14130         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
14131         the protected action nesting level.
14132         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
14133         protected action nesting level.
14134         (Unlock): When pragma Detect_Blocking is active decrease the protected
14135         action nesting level.
14136
14137         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
14138         Protected_Action_Nesting.
14139
14140         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
14141         Common_ATCB record. It contains the dynamic level of protected action
14142         nesting for each task. It is needed for checking whether potentially
14143         blocking operations are called from protected operations.
14144         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
14145         Detect_Blocking is active or not in the partition.
14146
14147         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
14148         raise Program_Error if called from a protected operation.
14149         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
14150         Program_Error if called from a protected operation.
14151         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
14152         Program_Error if called from a protected operation.
14153
14154         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
14155         raise Program_Error if called from a protected operation.
14156
14157         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
14158         raise Program_Error if called from a protected operation, and increase
14159         the protected action nesting level.
14160         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
14161         Program_Error if called from a protected operation, and increase the
14162         protected action nesting level.
14163         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
14164         protected action nesting level.
14165
14166         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
14167         raise Program_Error if called from a protected operation, and increase
14168         the protected action nesting level.
14169         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
14170         Program_Error if called from a protected operation, and increase the
14171         protected action nesting level.
14172         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
14173         raise Program_Error if called from a protected operation.
14174         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
14175         active, raise Program_Error if called from a protected operation.
14176         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
14177         protected action nesting level.
14178
14179         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
14180         insertion of the statement raising Program_Error. The run time
14181         contains the required machinery for handling that.
14182
14183         * sem_util.ads: Change comment associated to procedure
14184         Check_Potentially_Blocking_Operation.
14185         This procedure does not insert a call for raising the exception because
14186         that is currently done by the run time.
14187
14188         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
14189
14190         * init.c: Add the global variable __gl_detect_blocking that indicates
14191         whether pragma Detect_Blocking is active (1) or not (0). Needed for
14192         making the pragma available at run time.
14193         (__gnat_set_globals): Pass and update the detect_blocking parameter.
14194
14195         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
14196         pragma Detect_Blocking is active.
14197
14198         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
14199
14200         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
14201         DB is found in the ali file. Any unit compiled with pragma
14202         Detect_Blocking active forces its effect in the whole partition.
14203
14204         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
14205         Detect_Blocking is active and delay is called from a protected
14206         operation.
14207
14208         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
14209         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
14210         Detect_Blocking is active (0 otherwise).
14211         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
14212         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
14213         otherwise).
14214
14215 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
14216
14217         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
14218         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
14219         package.
14220
14221         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
14222         (Register_Receiving_Stub): Add Subp_Info formal parameter.
14223         Update API in placeholder implemetation of s-parint to reflect changes
14224         in distribution runtime library.
14225
14226         * sem_ch3.adb (Expand_Derived_Record): Rename to
14227         Expand_Record_Extension.
14228
14229         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
14230         primitive operations of potentially distributed object types that have
14231         non-controlling anonymous access formals.
14232
14233         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
14234         subprogram.
14235         New implementation of expansion for remote access-to-subprogram types,
14236         based on the RACW infrastructure.
14237         This version of sem_dist is compatible with PolyORB/DSA as well as
14238         GLADE.
14239
14240         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
14241         Asynchrronous that applies to a remote access-to-subprogram type, mark
14242         the underlying RACW type as asynchronous.
14243
14244         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
14245          __gnat_using_gnu_linker to 1.
14246
14247         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
14248         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
14249         GNAT.Perfect_Hash_Generators, and remove the empty
14250         GNAT.Perfect_Hash package.
14251
14252         * atree.adb: Minor reformatting
14253
14254         * exp_ch3.adb (Expand_Derived_Record): Rename to
14255         Expand_Record_Extension.
14256         (Build_Record_Init_Proc.Build_Assignment): The default expression in
14257         a component declaration must remain attached at that point in the
14258         tree so New_Copy_Tree copies it if the enclosing record type is derived.
14259         It is therefore necessary to take a copy of the expression when building
14260         the corresponding assignment statement in the init proc.
14261         As a side effect, in the case of a derived record type, we now see the
14262         original expression, without any rewriting that could have occurred
14263         during expansion of the ancestor type's init proc, and we do not need
14264         to go back to Original_Node.
14265
14266         * exp_ch3.ads (Expand_Derived_Record): Rename to
14267         Expand_Record_Extension.
14268
14269         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
14270         Returns the RACW type used to implement a remote access-to-subprogram
14271         type.
14272         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
14273         New subprograms. Used to create a proxy tagged object for a remote
14274         subprogram. The proxy object is used as the designated object
14275         for RAS values on the same partition (unless All_Calls_Remote applies).
14276         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
14277         System.Partition_Interface.Get_Unique_Remote_Pointer.
14278         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
14279         Renamed from Add_RAS_*_Attribute.
14280         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
14281         subprograms.
14282         New implementation of expansion for remote access-to-subprogram types,
14283         based on the RACW infrastructure.
14284
14285         * exp_dist.ads (Copy_Specification): Update comment to note that this
14286         function can copy the specification from either a subprogram
14287         specification or an access-to-subprogram type definition.
14288
14289 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
14290
14291         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
14292         in an instance, between an explicit subprogram an one inherited from a
14293         type derived from an actual.
14294
14295         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
14296         add a polling call if the subprogram is to be inlined by the back-end,
14297         to avoid repeated calls with multiple inlinings.
14298
14299         * checks.adb (Apply_Alignment_Check): If the expression in the address
14300         clause is a call whose name is not a static entity (e.g. a dispatching
14301         call), treat as dynamic.
14302
14303 2004-09-09  Robert Dewar  <dewar@gnat.com>
14304
14305         * g-trasym.ads: Minor reformatting
14306
14307         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
14308         packed arrays, since unused bits are expected to be zero for a
14309         comparison.
14310
14311 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
14312
14313         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
14314         comment.
14315
14316 2004-09-09  Pascal Obry  <obry@gnat.com>
14317
14318         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
14319         enable map file generation. Add the right option to generate the map
14320         file if Map_File is set to True.
14321
14322         * gnatdll.adb (Gen_Map_File): New variable.
14323         (Syntax): Add info about new -m (Map_File) option.
14324         (Parse_Command_Line): Add support for -m option.
14325         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
14326         Minor reformatting.
14327
14328 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
14329
14330         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
14331         new gnatdist implementation.
14332         Define a subpackage isolating the output routines specific to this
14333         verbose mode.
14334
14335 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
14336
14337         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
14338
14339         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
14340
14341 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
14342
14343         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
14344         internal unit.
14345
14346         * opt.ads: Add Ada_Version_Runtime constant used to decide which
14347         version of the language is used to compile the run time.
14348
14349 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
14350
14351         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
14352         of variable length temporaries for function return now that the
14353         back-end and gigi support it.
14354
14355 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14356
14357         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
14358
14359         * trans.c (struct stmt_group): Delete field GLOBAL.
14360         (gnat_init_stmt_group): Do not initialize it.
14361         (call_to_gnu): Use save_expr, not protect_multiple_eval.
14362         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
14363         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
14364         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
14365         (start_stmt_group): Likewise.
14366         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
14367
14368         * utils2.c (ggc.h): Include.
14369         (build_call_raise): Call build_int_cst, not build_int_2.
14370
14371         * utils.c (gnat_init_decl_processing): Fix arg to
14372         build_common_tree_nodes.
14373         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
14374         (gnat_define_builtin): Set built_in_decls.
14375         (init_gigi_decls): Call build_int_cst, not build_int_2.
14376
14377         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
14378         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
14379         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
14380         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
14381         SET_TYPE_MODULE): Use them.
14382         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
14383         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
14384         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
14385         SET_TYPE_ADA_SIZE): Likewise.
14386         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
14387         (DECL_CONST_CORRESPONDING_VAR,
14388         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
14389         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
14390         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
14391         (TYPE_RM_SIZE_NUM): New macro.
14392         (TYPE_RM_SIZE): Modified to use above.
14393
14394         * cuintp.c: (build_cst_from_int): New function.
14395         (UI_To_gnu): Use it.
14396
14397         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
14398         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
14399         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
14400         MIN_EXPR for the size, copy it into new.
14401
14402 2004-09-01  Robert Dewar  <dewar@gnat.com>
14403
14404         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
14405         packed indexed component where array is an IN OUT formal. This
14406         generated garbage code previously.
14407
14408         * gnat_ugn.texi: Document -fverbose-asm
14409
14410         * gnat-style.texi: Minor updates (note that boolean constants and
14411         variables are joined with AND/OR rather than short circuit forms).
14412
14413 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
14414
14415         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
14416         it is an upward conversion of an untagged type with no representation
14417         change.
14418
14419 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
14420
14421         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
14422         System.Partition_Interface.
14423
14424         * checks.adb (Apply_Access_Checks): Do not generate checks when
14425         expander is not active (but check for unset reference to prefix of
14426         dereference).
14427
14428         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
14429         pragma Debug as an if statement with a constant condition, for
14430         consistent treatment of entity references contained within the
14431         enclosed procedure call.
14432
14433 2004-09-01  Vincent Celier  <celier@gnat.com>
14434
14435         * bindgen.adb: (Set_EA_Last): New procedure
14436         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
14437         Set_EA_Last.
14438         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
14439         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
14440         linked without errors.
14441         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
14442         ST and EA.
14443         (Gen_Exception_Table_C): Correct same bugs
14444
14445         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
14446
14447         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
14448         on Windows, make sure that the drive letter is in upper case.
14449
14450         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
14451         Windows, when the drive letter is added and Case_Sensitive is True, the
14452         drive letter is forced to upper case.
14453
14454         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
14455         to Options_2 for the call to MLib.Utl.Gcc.
14456
14457         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
14458         directory separator when defining BASE_DIR.
14459
14460 2004-09-01  Pascal Obry  <obry@gnat.com>
14461
14462         * gprcmd.adb (Extend): Do not output trailing directory separator. This
14463         is not needed and it confuses Windows GNU/make which does not report
14464         directory terminated by a slash as a directory.
14465         (gprcmd): Idem for "pwd" internal command.
14466
14467         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
14468         target names rewrite to fix regressions with recent version of
14469         GNU/make. Starting with GNU/make 3.80 the pipe character was not
14470         handled properly anymore.
14471
14472 2004-09-01  Andreas Schwab  <schwab@suse.de>
14473
14474         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
14475         * raise.c [!IN_RTS]: Undef abort.
14476
14477 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14478
14479         * utils2.c (build_allocator): Use ssize_int.
14480
14481         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
14482
14483 2004-08-27  Andreas Schwab  <schwab@suse.de>
14484
14485         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
14486
14487 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14488             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14489
14490         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
14491
14492 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14493
14494         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
14495         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14496         * utils.c (init_gigi_decls): Likewise.
14497         * utils2.c (build_call_raise, build_allocator): Likewise.
14498
14499 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14500
14501         * utils.c (gnat_init_decl_processing): Adjust
14502         build_common_tree_nodes call.
14503
14504 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
14505
14506         * utils2.c (build_allocator): Use build_int_cst for negative
14507         size types.
14508
14509 2004-08-18  Richard Henderson  <rth@redhat.com>
14510
14511         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
14512
14513 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
14514
14515         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
14516         call.s
14517         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
14518         (gnat_to_gnu): Likewise.
14519
14520 2004-08-16  Pascal Obry  <obry@gnat.com>
14521
14522         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
14523         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
14524         option and not mdll anymore. Update comment.
14525
14526 2004-08-16  Pascal Obry  <obry@gnat.com>
14527
14528         * bld.adb (Put_Include_Project): Properly handle directory separators
14529         on Windows.
14530
14531 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
14532
14533         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
14534         decreasing the number of allocated junk nodes while searching for the
14535         appropriate subprogram.
14536
14537 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
14538
14539         * cuintp.c (UI_To_gnu): Use build_int_cst..
14540         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14541         * utils.c (init_gigi_decls): Likewise.
14542         * utils2.c (build_call_raise): Likewise.
14543
14544 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
14545
14546         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
14547         for a global aliased object with a variable size and an unconstrained
14548         nominal subtype, pretend there is no initializer if the one we have is
14549         incomplete, and avoid referencing an inexistant component in there. The
14550         part we have will be rebuilt anyway and the reference may confuse
14551         further operations.
14552
14553 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
14554
14555         * einfo.ads: Minor reformatting
14556
14557         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
14558         restrictions in the ALI if we only want to warn about violations.
14559
14560 2004-08-13  Vincent Celier  <celier@gnat.com>
14561
14562         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
14563         when creating a new Unit_Record in table Units.
14564
14565         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
14566         that are violated, if any.
14567
14568         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
14569         add directory separator if path already ends with a directory separator.
14570
14571 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14572
14573         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
14574         unit, this is an attempt to inline a construct that is not available in
14575         the current restricted mode, so abort rather than trying to continue.
14576
14577         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
14578         discriminants that rename those of the parent, recover names of
14579         original discriminants for the constraint on the full view of the
14580         parent.
14581         (Complete_Private_Subtype): Do not create a subtype declaration if the
14582         subtype is an itype.
14583
14584         * gnat_rm.texi: Added section on implementation of discriminated
14585         records with default values for discriminants.
14586
14587 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14588
14589         PR ada/15601
14590         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
14591         the second operand is overloaded.
14592
14593 2004-08-10  Richard Henderson  <rth@redhat.com>
14594
14595         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
14596         add __builtin_alloca.
14597
14598 2004-08-10  Richard Henderson  <rth@redhat.com>
14599
14600         * config-lang.in (boot_language): Yes.
14601
14602 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
14603
14604         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
14605         from complaining on potential uninitialized reference.
14606         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
14607         new specification and test explicitly for non-zero return value.
14608
14609         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
14610         returning C.int, to avoid using a derived boolean type.
14611
14612         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
14613         Duplicate_Subexpr_No_Checks in preference to direct use of
14614         Remove_Side_Effects and New_Copy_Tree.
14615         Clear Comes_From_Source on prefix of 'Size attribute reference.
14616
14617         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
14618         g-socthi-vxworks.adb: Change calls to
14619         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
14620         and test explicitly for non-zero return value.
14621
14622         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
14623         (Is_Socket_In_Set): Declare imported function as returning C.int, to
14624         avoid using a derived boolean type.
14625
14626 2004-08-09  Albert Lee  <lee@gnat.com>
14627
14628         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
14629
14630 2004-08-09  Pascal Obry  <obry@gnat.com>
14631
14632         * gnat_ugn.texi: Document new way to build DLLs on Windows using
14633         GCC's -shared option.
14634
14635         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
14636         Options_2 parameter (options put after object files).
14637
14638 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
14639
14640         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
14641         ignore overflows on low and high bounds of an index to also account for
14642         differences in signedness between sizetype and gnu_index_subtype.
14643         These are as legitimate as the ones caused by a lower TYPE_PRECISION
14644         on sizetype.
14645
14646 2004-08-09  Robert Dewar  <dewar@gnat.com>
14647
14648         * s-solita.ads, s-solita.adb: Minor reformatting
14649
14650         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
14651         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
14652         obsolescent section
14653         Add note that No_Implicit_Conditionals does not suppress
14654         run time constraint checks.
14655
14656         * vms_conv.ads: Minor reformatting
14657
14658         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
14659         and necessary for following change).
14660         (Mark): Return new format Mark_Id containing sec stack address
14661         (Release): Use sec stack address from Mark_Id avoiding Self call
14662
14663         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
14664         pointer (cleanup and necessary for following change).
14665         Define Mark_Id as record containing address of secondary stack, that way
14666         Release does not need to find the stack again, decreasing the number of
14667         calls to Self and improving efficiency.
14668
14669         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
14670
14671         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
14672         case variable into the individual case branches when possible.
14673
14674         * sem_ch11.adb: Minor reformatting
14675
14676         * prj.ads: Correct spelling of suffixs
14677
14678         * prj-nmsc.adb: Minor reformatting
14679         Correct spelling suffixs throughout (also in identifiers)
14680
14681         * freeze.adb: Minor spelling correction
14682
14683         * exp_ch2.adb: Cleanups to handling of Current_Value
14684         (no functional effect).
14685
14686         * bld.adb: Correct spelling of suffixs
14687
14688         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
14689
14690 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14691
14692         PR ada/15408
14693
14694         * sem_ch7.adb (Install_Private_Declarations): In the body of the
14695         package or of a child, private entities are both immediately_visible
14696         and not hidden.
14697
14698 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14699
14700         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
14701         there are no range checks on the value of the literal.
14702
14703         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
14704         wrapped is the triggering alternative of an asynchronous select, action
14705         statements mustbe inserted before the select itself.
14706
14707         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
14708         case where the prefix is a protected function call.
14709         (Resolve_Attribute, case 'Access): The attribute reference on a
14710         subprogram is legal in a generic body if the subprogram is declared
14711         elsewhere.
14712
14713 2004-08-09  Vincent Celier  <celier@gnat.com>
14714
14715         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
14716         languages, otherwise building the library may fail with unresolved
14717         symbols.
14718         (Compile_Sources): Do not build libraries if -c switch is used
14719
14720         * gnatlink.adb (Process_Args): New switches -M and -Mmap
14721         (Write_Usage): If map file creation is supported, output new switches
14722         -M and -Mmap.
14723         (Gnatlink): When -M is specified, add the necessary switch(es) to the
14724         gcc call, when supported.
14725
14726         * Makefile.in: Added indepsw.o to the object list for gnatlink
14727         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
14728
14729         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
14730         indepsw.adb, indepsw.ads: New files.
14731
14732 2004-08-09  Bernard Banner  <banner@gnat.com>
14733
14734         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
14735
14736         * Makefile.in: add section for vxworks x86
14737
14738 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
14739
14740         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
14741         per-object constrained components where the discriminant is of an
14742         Access type.
14743         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
14744         the parent initialization procedure for derived Unchecked_Unions.
14745         Instead, derived Unchecked_Unions build their own initialization
14746         procedure.
14747         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
14748         Check the body of the subprogram for details.
14749         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
14750         functions for derived Unchecked_Union types by introducing a condition.
14751         Allow the creation of TSS equality functions for Unchecked_Unions.
14752         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
14753         Add formal parameter Discr to function signature. Discr is used to
14754         control the generated case statement for Unchecked_Union types.
14755         (Make_Eq_If): Rename formal parameter Node to E in function signature.
14756
14757         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
14758         Unchecked_Unions.
14759         Check the body of the subprogram for details.
14760         (Expand_Composite_Equality): Augment composite type equality to include
14761         correct handling of Unchecked_Union components.
14762         (Expand_N_In): Add condition to detect illegal membership tests when the
14763         subtype mark is a constrained Unchecked_Union and the expression lacks
14764         inferable discriminants, and build a Raise_Program_Error node.
14765         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
14766         to detect types that contain components of unconstrained Unchecked_Union
14767         subtype. Add condition to detect equality between types that have an
14768         unconstrained Unchecked_Union component, and build a Raise_Program_Error
14769         node. Add condition to detect equality between Unchecked_Union types
14770         that lack inferable discriminants, and build a Raise_Program_Error node.
14771         Otherwise build a TSS equality function call.
14772         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
14773         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
14774         with the operand lacking inferable discriminants, and build a Raise_
14775         Program_Error node.
14776         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
14777         composite equality.
14778         (Has_Inferable_Discriminants): Implement new predicate for objects and
14779         expressions of Unchecked_Union type. Check the body of subprogram for
14780         details.
14781         (Has_Unconstrained_UU_Components): Add function
14782         Component_Is_Unconstrained_UU. It is used to detect whether a single
14783         component is of an unconstrained Unchecked_Union subtype. Add function
14784         Variant_Is_Unconstrained_UU. It is used to detect whether a single
14785         component inside a variant is of an unconstrained Unchecked_Union type.
14786
14787         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
14788         inferred discriminant values. Add condition to generate a case
14789         statement with an inferred discriminant as the switch.
14790         (Make_Component_List_Assign): Introduce a Boolean flag that determines
14791         the behaviour of the subprogram in the presence of an Unchecked_Union.
14792         Add condition to trigger the usage of the inferred discriminant value
14793         as the generated case statement switch.
14794         (Make_Field_Assign): Introduce a Boolean flag that determines the
14795         behaviour of the subprogram in the presence of an Unchecked_Union. Add
14796         condition to trigger the usage of the inferred discriminant value as
14797         the right-hand side of the generated assignment.
14798
14799         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
14800         parameter generation when dealing with Unchecked_Unions.
14801
14802         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
14803         checks for Unchecked_Unions.
14804
14805         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
14806
14807         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
14808         Raise_Program_Error nodes for the execution of Read and Write
14809         attributes of Unchecked_Union types and the execution of Input and
14810         Output attributes of Unchecked_Union types that lack default
14811         discriminant values.
14812
14813         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
14814         Unchecked_Union. Add procedure Check_Component. It is used to inspect
14815         per-object constrained components of Unchecked_Unions for being
14816         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
14817         check individual components withing a variant.
14818
14819         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
14820         comparison of Unchecked_Unions.
14821         (Resolve_Equality_OP): Remove guard that prevents equality between
14822         Unchecked_Unions.
14823
14824         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
14825         of component subtypes for Unchecked_Union components.
14826         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
14827         since it is the actual subtype.
14828
14829         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
14830         pass of Unchecked_Union subtypes as generic actuals to formal types
14831         that lack known_discriminant_parts or that are derived Unchecked_Union
14832         types, and do nothing. In any other case, produce an error message.
14833
14834         * sem_ch3.adb (Analyze_Component_Declaration): Add function
14835         Contains_POC. It determines whether a constraint uses the discriminant
14836         of an enclosing record type.
14837         Add condition to detect per-object constrained component and set the
14838         appropriate flag.
14839         (Derived_Type_Declaration): Remove guard that prevents derivation from
14840         Unchecked_Union types.
14841         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
14842         Union subtypes.
14843
14844         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
14845         references to Unchecked_Union discriminants.
14846
14847         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
14848         formal generation when dealing with Unchecked_Unions.
14849         (Set_Actual_Subtypes): Add condition to prevent generation of actual
14850         subtypes for Unchecked_Unions.
14851
14852         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
14853         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
14854         completions of discriminated partial views by Unchecked_Unions and
14855         produce an error message.
14856
14857 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14858
14859         * trans.c (struct stmt_group): New field, GLOBAL.
14860         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
14861         (struct elab_info): New struct.
14862         (elab_info_list, gnu_elab_proc_stack): New variables.
14863         (Compilation_Unit_to_gnu): New procedure.
14864         (gigi): Call it and also handle elaboration procs we've saved.
14865         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
14866         global field from parent.
14867         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
14868         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
14869         (start_stmt_group): Initialize global field from parent.
14870         (add_decl_expr): Set to global for current statement group.
14871         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
14872         post.
14873
14874         * utils.c (global_bindings_p): True when no current_function_decl; no
14875         longer check current_binding_level.
14876
14877 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
14878
14879         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
14880         choice.
14881
14882         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
14883
14884 2004-08-06  Andreas Schwab  <schwab@suse.de>
14885
14886         * utils.c (gnat_define_builtin): Remove second parameter of
14887         make_decl_rtl.
14888         (begin_subprog_body): Likewise.
14889
14890 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
14891
14892         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
14893         optimization, not supported by the tree-ssa back-end.
14894
14895 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
14896
14897         * s-mastop-irix.adb: Update comments.
14898
14899         * a-except.adb (Exception_Information): Raise Constraint_Error if
14900         exception Id is Null_Id.
14901         This is required behavior, which is more reliably and clearly checked
14902         at the top level interface level.
14903
14904 2004-07-26  Javier Miranda  <miranda@gnat.com>
14905
14906         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
14907         call if a component has no default_expression and the box is used.
14908
14909         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
14910         default_expression and you use box, it behaves as if you had declared a
14911         stand-alone object.
14912         (Resolve_Record_Aggregate): If a component has no default_expression and
14913         you use box, it behaves as if you had declared a stand-alone object.
14914
14915         * sem_ch10.adb (Install_Siblings): Do not make visible the private
14916         entities of private-with siblings.
14917
14918 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14919
14920         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
14921         for a component of an itype, set the parent pointer for analysis,
14922         there is no list in which to insert it.
14923
14924         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
14925         bona-fide renamings, not for inherited operations.
14926
14927         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
14928         actual for a formal that is an access parameter, create local
14929         finalization list even if the expression is not an aggregate.
14930
14931 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14932
14933         PR ada/16213
14934         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
14935         Diagnose properly illegal subprogram renamings that are library units.
14936
14937 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14938
14939         PR ada/15588
14940         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
14941         conversion rewritten as an unchecked conversion, check that original
14942         expression is a variable.
14943
14944         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
14945         unchecked_conversion, create new node rather than rewriting in place,
14946         to preserve original construct.
14947
14948 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14949
14950         * gigi.h (gnat_expand_body): Deleted.
14951
14952         * Make-lang.in: (trans.o): Depends on function.h.
14953
14954         * misc.c: (gnat_expand_body): Moved to here.
14955
14956         * trans.c (gnat_expand_body_1): Deleted.
14957         (gnat_expand_body): Moved from here.
14958         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
14959         (add_stmt): Check for marked visited with global_bindings_p.
14960         (gnat_gimplify_expr, case COMPONENT_REF): New case.
14961         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
14962
14963         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
14964         VIEW_CONVERT_EXPR if not operation type.
14965
14966         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
14967         fat pointer.
14968
14969         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
14970         changes: reformatting of negation operators, removing unneeded
14971         inequality comparison with zero, converting equality comparisons with
14972         zero to negations, changing int/0/1 to bool/false/true, replace calls
14973         to gigi_abort with abort, and various other similar changes.
14974
14975 2004-07-26  Vincent Celier  <celier@gnat.com>
14976
14977         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
14978         "setup".
14979
14980         * make.adb (Gnatmake): Fail when a library is not present and there is
14981         no object directory.
14982
14983         * mlib-prj.adb (Check_Library): No need to check if the library needs
14984         to be rebuilt if there is no object directory, hence no object files
14985         to build the library.
14986
14987         * opt.ads (Setup_Projects): New Boolean flag.
14988
14989         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
14990         Location.
14991         Create directory when Kind /= "" and in "gnat setup". Report error if
14992         directory cannot be created.
14993         (Ada_Check): Create library interface copy dir if it does not exist
14994         and we are in "gnat setup".
14995         (Find_Sources): No error if in "gnat setup" and no Ada sources were
14996         found.
14997         (Language_Independent_Check): Create object directory, exec directory
14998         and/or library directory if they do not exist and we are in
14999         "gnat setup".
15000
15001         * vms_conv.ads: (Command_Type): New command Setup.
15002
15003         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
15004
15005         * vms_data.ads: Add qualifiers/switches for new built-in command
15006         "setup".
15007
15008 2004-07-25  Richard Henderson  <rth@redhat.com>
15009
15010         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
15011         DECL_IGNORED_P on RESULT_DECL.
15012
15013 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
15014
15015         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
15016         allocation and potentially overflowing update with
15017         Tailored_Exception_Information. Use the sec-stack free procedural
15018         interface to output Exception_Information instead.
15019
15020         * a-except.adb (To_Stderr): New subprogram for character, and string
15021         version moved from a-exextr to be visible from other separate units.
15022         (Tailored_Exception_Information): Remove the procedural version,
15023         previously used by the default Last_Chance_Handler and not any more.
15024         Adjust various comments.
15025
15026         * a-exexda.adb: Generalize the exception information procedural
15027         interface, to minimize the use of secondary stack and the need for
15028         local buffers when the info is to be output to stderr:
15029         (Address_Image): Removed.
15030         (Append_Info_Character): New subprogram, checking for overflows and
15031         outputing to stderr if buffer to fill is of length 0.
15032         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
15033         (Append_Info_Address, Append_Info_Exception_Name,
15034         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
15035         Append_Info_Basic_Exception_Traceback,
15036         Append_Info_Exception_Information): New subprograms.
15037         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
15038         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
15039         Exception_Info_Maxlength, Exception_Name_Length,
15040         Exception_Message_Length): New subprograms.
15041         (Exception_Information): Use Append_Info_Exception_Information.
15042         (Tailored_Exception_Information): Use
15043         Append_Info_Basic_Exception_Information.
15044         Export services for the default Last_Chance_Handler.
15045
15046         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
15047         other separate units.
15048
15049 2004-07-20  Vincent Celier  <celier@gnat.com>
15050
15051         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
15052
15053 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15054
15055         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
15056         emit itype references for the designated types of component types that
15057         are declared outside of the full record declaration, and that may
15058         denote a partial view of that record type.
15059
15060 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15061
15062         PR ada/15607
15063         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
15064         which is the designated type in an access component declaration, to the
15065         list of incomplete dependents of the parent type, to avoid elaboration
15066         issues with out-of-scope subtypes.
15067         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
15068         full view of the parent.
15069
15070 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15071
15072         PR ada/15610
15073         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
15074         entities that are hidden, such as references to generic actuals
15075         outside an instance.
15076
15077 2004-07-20  Javier Miranda  <miranda@gnat.com>
15078
15079         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
15080         support to the new notation.
15081         (Analyze_Selected_Component): Add call to Try_Object_Operation.
15082
15083 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
15084
15085         * s-taprob.adb: Adding the elaboration code required for initializing
15086         the tasking soft links that are common to the full and the restricted
15087         run times.
15088
15089         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
15090         restricted run time has been moved to the package
15091         System.Soft_Links.Tasking.
15092
15093         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
15094         restricted run time has been moved to the package
15095         System.Soft_Links.Tasking.
15096
15097         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
15098
15099         * s-solita.ads, s-solita.adb: New files.
15100
15101 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15102
15103         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
15104         Case_Statement_to_gnu): Split off from gnat_to_gnu.
15105         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
15106         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
15107         Exception_Handler_to_gnu_zcx): Likewise.
15108
15109 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15110
15111         * gigi.h (builtin_function): Declare.
15112
15113 2004-07-15  Robert Dewar  <dewar@gnat.com>
15114
15115         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
15116         reformatting
15117
15118         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
15119         access values as an example of a warning.
15120
15121         * gnat_rm.texi: Document new attribute Has_Access_Values
15122
15123         * gnat-style.texi: Document that box comments belong on nested
15124         subprograms
15125
15126         * sem_util.ads (Has_Access_Values): Improved documentation
15127
15128         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
15129
15130         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
15131         (Process_Interface_Name): Call to this new procedure
15132         (Set_Extended_Import_Export_External_Name): Call to this new procedure
15133
15134         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
15135
15136         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
15137
15138         * einfo.ads: Minor comment typo fixed
15139
15140 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
15141
15142         * snames.adb: Add _atcb.
15143
15144         * snames.ads: Add Name_uATCB.
15145
15146         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
15147         (in the expanded code) when using the restricted run time.
15148
15149         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
15150         a in parameter in order to allow ATCBs to be preallocated (in the
15151         expanded code).
15152
15153         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
15154         order to allow ATCBs to be preallocated. In case of error, the ATCB is
15155         deallocated in System.Tasking.Stages.
15156
15157         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
15158         order to allow ATCBs to be preallocated.
15159
15160         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
15161         here. It was previously done in Initialize_ATCB.
15162
15163         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
15164
15165         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
15166         Restricted run time.
15167
15168         * exp_ch3.adb: When using the Restricted run time, pass the
15169         preallocated Ada_Task_Control_Block when creating a task.
15170
15171 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
15172
15173         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
15174         function call that is itself an actual in an enclosing call, diagnose
15175         problem here rather than assuming that resolution will catch it.
15176
15177         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
15178         the local copy of a generic unit for a formal package, and the generic
15179         is a child unit, install private part of ancestors before compiling
15180         private part of spec.
15181
15182         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
15183         use scope entities rather than tree structures, to handle properly
15184         parent units that are instances rewritten as bodies for inlining
15185         purposes.
15186
15187         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
15188         Remove_Parents): Handle properly a parent unit that is an
15189         instantiation, when the unit has been rewritten as a body for inlining
15190         purposes.
15191
15192         * par.adb (Goto_List): Global variable to collect goto statements in a
15193         given unit, for use in detecting natural loops.
15194
15195         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
15196         use in detecting natural loops.
15197
15198         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
15199         backwards goto's, and rewrite as a infinite loop, to improve locality
15200         of temporaries.
15201
15202         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
15203         subcomponent that includes an indexed reference, to prevent the
15204         generation of copies that would miscompile the desired assignment
15205         statement.
15206         (Build_Task_Image_Decls): Add a numeric suffix to
15207         generated name for string variable, to avoid spurious conflicts with
15208         the name of the type of a single protected object.
15209
15210         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
15211         loop with an explicit exit statement, to avoid generating an
15212         out-of-range value with 'Succ leading to spurious constraint_errors
15213         when compiling with -gnatVo.
15214
15215 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
15216
15217         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
15218         might not be analyzed yet, even if its Etype is already set (case of an
15219         unchecked conversion built using Unchecked_Convert_To, for example).
15220         If the prefix has already been analyzed, this will be a nop anyway.
15221
15222         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
15223         controller type, or an assignment of a record type with controlled
15224         components, copy only user data, and leave the finalization chain
15225         pointers untouched.
15226
15227 2004-07-15  Vincent Celier  <celier@gnat.com>
15228
15229         * make.adb (Collect_Arguments): Improve error message when attempting
15230         to compile a source not part of any project, when -x is not used.
15231
15232         * prj.ads: (Defined_Variable_Kind): New subtype
15233
15234         * prj-attr.adb (Register_New_Package): Two new procedures to register
15235         a package with or without its attributes.
15236         (Register_New_Attribute): Mew procedure to register a new attribute in a
15237         package.
15238         New attribute oriented subprograms: Attribute_Node_Id_Of,
15239         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15240         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15241         Next_Attribute.
15242         New package oriented subprograms: Package_Node_Id_Of,
15243         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15244
15245         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
15246         type.
15247         (Package_Node_Id): Now a private, self initialized type
15248         (Register_New_Package): New procedure to register a package with its
15249         attributes.
15250         New attribute oriented subprograms: Attribute_Node_Id_Of,
15251         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15252         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15253         Next_Attribute.
15254         New package oriented subprograms: Package_Node_Id_Of,
15255         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15256
15257         * prj-dect.adb (Parse_Attribute_Declaration,
15258         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
15259
15260         * prj-makr.adb (Make): Parse existing project file before creating
15261         other files. Fail if there was an error during parsing.
15262
15263         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
15264         new spec of Prj.Attr.
15265
15266         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
15267         to new spec of Prj.Attr.
15268
15269 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15270
15271         * utils2.c: Fix typo in comment.
15272
15273 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15274
15275         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
15276         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
15277
15278 2004-07-14  Andreas Schwab  <schwab@suse.de>
15279
15280         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
15281
15282 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15283
15284         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
15285         object type.
15286         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
15287         TYPE_STUB_DECL.
15288
15289         * misc.c (gnat_types_compatible_p): New function.
15290         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
15291         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
15292
15293         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
15294         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
15295         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
15296         (mark_visited): Don't mark dummy type.
15297         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
15298         parameter, we must remove any LJM building from GNU_NAME.
15299         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
15300         (pos_to_constructor): Use int_const_binop.
15301         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
15302         PARM_DECL.
15303
15304         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
15305         (gnat_pushlevel): Set TREE_USE on BLOCK node.
15306         (gnat_install_builtins): Add __builtin_memset.
15307
15308 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
15309
15310         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
15311         for a renaming, stabilize the initialization expression if we are at a
15312         local level.  At the local level, uses of the renaming may be performed
15313         by a direct dereference of the initializing expression, and we don't
15314         want possible variables there to be evaluated for every use.
15315
15316         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
15317         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
15318         them on the way.  Account for the fact that we may introduce side
15319         effects in the process.
15320
15321 2004-07-13  Richard Henderson  <rth@redhat.com>
15322
15323         * misc.c (default_pass_by_ref): Use pass_by_reference.
15324
15325 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15326
15327         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
15328         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
15329
15330 2004-07-08  Richard Henderson  <rth@redhat.com>
15331
15332         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
15333         commentary.
15334
15335 2004-07-06  Vincent Celier  <celier@gnat.com>
15336
15337         * vms_conv.ads: Minor reformatting.
15338         Alphabetical order for enumerated values of type Command_Type, to have
15339         the command in alphabetical order for the usage.
15340
15341         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
15342         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
15343
15344         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
15345
15346         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
15347         (Add_Archive_Path): Only add the global archive if there is one.
15348         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
15349         or not any object file to put in the global archive, and don't build
15350         a global archive if there is none.
15351         (X_Switches): New table
15352         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
15353         in the X_Switches table, if any.
15354         (Initialize): Make sure the X_Switches table is empty
15355         (Scan_Arg): Record -X switches in table X_Switches
15356
15357         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
15358
15359         * make.adb: Minor comment fix
15360
15361         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
15362         invoked with directory information, add the directory in front of the
15363         path.
15364
15365         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
15366         invoked with directory information, add the directory in front of the
15367         path.
15368
15369         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
15370         when Keep_Temporary_Files is False.
15371         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
15372         directory information, add the directory in front of the path.
15373         When not on VMS, handle new switch -dn before the command to set
15374         Keep_Temporary_Files to True.
15375         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
15376         everywhere.
15377
15378         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
15379         invoked with directory information, add the directory in front of the
15380         path.
15381
15382 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
15383
15384         * snames.ads, snames.adb (Name_Stub): New name for the distributed
15385         systems annex.
15386
15387         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
15388         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
15389
15390         * g-socket.adb (To_Timeval): Fix incorrect conversion of
15391         Selector_Duration to Timeval for the case of 0.0.
15392
15393         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
15394         documentation from Evolve_And_Then.
15395
15396 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
15397
15398         * s-taprop-tru64.adb, s-taprop-os2.adb,
15399         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
15400
15401 2004-07-06  Robert Dewar  <dewar@gnat.com>
15402
15403         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
15404         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
15405         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
15406         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
15407         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
15408         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
15409         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
15410         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
15411         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
15412         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
15413         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
15414         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
15415         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
15416         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
15417         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
15418         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
15419         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
15420         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
15421         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
15422         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
15423         vms_data.ads: Minor reformatting,
15424         Fix bad box comment format.
15425
15426         * gnat_rm.texi: Fix minor grammatical error
15427
15428         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
15429
15430         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
15431         more cases of discriminated records to be recognized as not needing a
15432         secondary stack.
15433         (Has_Access_Values): New function.
15434
15435         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
15436
15437         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
15438         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
15439         with LRM terminology).
15440         Change terminology in comments primitive type => elementary type.
15441
15442 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15443
15444         PR ada/15602
15445         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
15446         parameters do not impose any requirements on the presence of a body.
15447
15448 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15449
15450         PR ada/15593
15451         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
15452         compilation unit and is in an open scope at the point of instantiation,
15453         assume that a body may be present later.
15454
15455 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15456
15457         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
15458         Improve error message when specified size is not supported.
15459
15460         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
15461         is never a primitive operation.
15462
15463 2004-07-05  Andreas Schwab  <schwab@suse.de>
15464
15465         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
15466         RECORD_OR_UNION_CHECK.
15467         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
15468
15469 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
15470
15471         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
15472         dependency on xgnatugn, instead build it via a submake.
15473         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
15474
15475 2004-07-04  Richard Henderson  <rth@redhat.com>
15476
15477         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
15478
15479 2004-07-01  Richard Henderson  <rth@redhat.com>
15480
15481         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
15482         * utils.c (max_size): Likewise.
15483
15484 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15485
15486         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
15487         and rest_of_type_compilation; add arg to create_*_decl.
15488         (annotate_decl_with_node): Deleted.
15489         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
15490         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
15491         (get_current_block_context, gnat_pushdecl): New declarations.
15492         (gnat_init_stmt_group): Likewise.
15493         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
15494         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
15495         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
15496         (gnat_init): Call gnat_init_stmt_group.
15497         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
15498         (gnu_pending_elaboration_list): Deleted.
15499         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
15500         (gigi): Rearrange initialization calls and move some to last above.
15501         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
15502         Delete calls to add_decl_expr; add arg to create_*_decl.
15503         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
15504         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
15505         begin_subprog_body and call it.
15506         Don't push and pop ggc context.
15507         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
15508         (add_stmt): Remove handling of DECL_EXPR from here.
15509         If not in function, mark visited.
15510         (add_decl_expr): Put global at top level.
15511         Check for cases of DECL_INITIAL we have to handle here.
15512         (process_type): Add extra arg to create_type_decl.
15513         (build_unit_elab): Rework to just gimplify.
15514         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
15515         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
15516         (get_pending_elaborations, pending_elaborations_p): Likewise.
15517         (push_pending_elaborations, pop_pending_elaborations): Likewise.
15518         (get_elaboration_location, insert_elaboration_list): Likewise.
15519         (gnat_binding_level): Renamed from ada_binding_level.
15520         (init_gnat_to_gnu): Don't clear pending_elaborations.
15521         (global_bindings_p): Treat as global if no current_binding_level.
15522         (set_current_block_context): New function.
15523         (gnat_pushdecl): Renamed from pushdecl; major rework.
15524         All callers changed.
15525         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
15526         (finish_record_type): Call call pushdecl for stub decl.
15527         (function_nesting_depth): Deleted.
15528         (begin_subprog_body): Delete obsolete code.
15529         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
15530
15531 2004-06-28  Robert Dewar  <dewar@gnat.com>
15532
15533         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15534         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15535         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
15536         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
15537         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
15538
15539         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
15540         deal with problem of inefficient slices on machines with strict
15541         alignment, when the slice is a component of a composite.
15542
15543         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
15544         machines, we need the check there as well.
15545
15546 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15547
15548         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
15549         determine safe copying direction for overlapping slice assignments
15550         when component is controlled.
15551
15552         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
15553         formal derived type in the actual for a formal package are visible in
15554         the enclosing instance.
15555
15556 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15557
15558         PR ada/15600
15559         * sem_util.adb (Trace_Components): Diagnose properly an illegal
15560         circularity involving a private type whose completion includes a
15561         self-referential component.
15562         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
15563         renaming or an instantiation from an implicit derived operation.
15564
15565 2004-06-28  Pascal Obry  <obry@gnat.com>
15566
15567         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
15568         DLL.
15569         (Library_File_Name_For): Idem.
15570
15571 2004-06-28  Matthew Gingell  <gingell@gnat.com>
15572
15573         * g-traceb.ads: Add explanatory note on the format of addresses
15574         expected by addr2line.
15575
15576 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
15577
15578         * Makefile.in: Force debugging information on s-tasdeb.adb,
15579         a-except.adb and s-assert.adb needed by the debugger.
15580
15581 2004-06-28  Vincent Celier  <celier@gnat.com>
15582
15583         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
15584         Need_To_Build_Lib.
15585         (Gnatmake): Ditto.
15586
15587         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
15588
15589         * prj.adb: Minor reformatting
15590         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
15591
15592         * prj.ads: Comment updates
15593         Minor reformatting
15594         (Project_Data): Change Flag1 to Need_To_Build_Lib.
15595         Remove Flag2: not used.
15596
15597         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
15598         declaration.
15599
15600         * gnat_ugn.texi: Put a "null;" declaration in one project file example
15601
15602         * gnat_rm.texi: Document Empty declarations "null;".
15603
15604         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
15605         front of the linker options.
15606         (Link_Foreign): Put the global archives and the libraries in front of
15607         the linker options.
15608
15609 2004-06-28  Javier Miranda  <miranda@gnat.com>
15610
15611         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
15612         (RTU_Loaded): Code cleanup
15613         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
15614         withed predefined units.
15615
15616         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
15617         explicitly withed predefined units.
15618         Fix typo in comment
15619
15620         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
15621         explicitly withed predefined units.
15622
15623 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15624
15625         * ada-tree.def (DECL_STMT): Deleted.
15626         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
15627         (DECL_STMT_VAR): Deleted.
15628         * decl.c: add_decl_stmt now add_decl_expr.
15629         * gigi.h: Likewise.
15630         * trans.c: Likewise.
15631         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
15632         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
15633         (add_stmt): Only handle padded type here.
15634         (add_stmt_with_node): Allow gnat_node to not be present.
15635         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
15636         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
15637         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
15638         make a SAVE_EXPR for the entire fat pointer.
15639         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
15640         (create_index_type): Make a DECL_EXPR.
15641         (end_subprog_body): Don't call allocate_struct_function here but
15642         do clear cfun.
15643
15644 2004-06-25  Pascal Obry  <obry@gnat.com>
15645
15646         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
15647         Relocatable from Build_Dynamic_Library call.
15648
15649         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
15650         Relocatable are now synonym.
15651
15652         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
15653
15654         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
15655         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
15656         call.
15657
15658         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
15659         Lib_Address and Relocatable.
15660         (Default_DLL_Address): Removed.
15661
15662         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15663         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15664         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
15665         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
15666         (Default_DLL_Address): Removed.
15667
15668         * mlib-tgt-mingw.adb: Ditto.
15669         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
15670
15671         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
15672         the initial thread stack size.
15673
15674         * a-strmap.ads: Move package L to private part as it is not used in
15675         the spec. Found while reading code.
15676
15677 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
15678
15679         * tracebak.c: Introduce support for a GCC infrastructure based
15680         implementation of __gnat_backtrace.
15681
15682         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
15683         any more. Use accessors instead. This eases maintenance and relaxes
15684         some alignment constraints.
15685         (_GNAT_Exception structure): Remove the Ada specific fields
15686         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
15687         a-exexpr.adb.
15688         (is_handled_by, __gnat_eh_personality): Replace component references to
15689         exception structure by use of the new accessors.
15690
15691         * init.c (__gnat_initialize): Adjust comments to match the just
15692         reverted meaning of the -static link-time option.
15693
15694         * adaint.c (convert_addresses): Arrange not to define a stub for
15695         mips-irix any more, as we now want to rely on a real version from a
15696         recent libaddr2line.
15697
15698         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
15699         the personality routine can use them and not have to rely on a C
15700         counterpart of the record anymore. This simplifies maintenance and
15701         relaxes the constraint of having Standard'Maximum_Alignment match
15702         BIGGEST_ALIGNMENT.
15703         Update comments, and add a section on the common header alignment issue.
15704
15705 2004-06-25  Geert Bosch  <bosch@gnat.com>
15706
15707         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
15708         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
15709
15710 2004-06-25  Robert Dewar  <dewar@gnat.com>
15711
15712         * gnat_rm.texi: Fix section on component clauses to indicate that the
15713         restriction on byte boundary placement still applies for bit packed
15714         arrays.
15715         Add comment on stack usage from Initialize_Scalars
15716
15717         * gnat_ugn.texi: Add documentation for -gnatyLnnn
15718
15719         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
15720         limiting nesting level.
15721
15722         * usage.adb: Add line for -gnatyLnnn switch
15723
15724         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
15725         sem_ch13.adb, exp_aggr.adb: Minor reformatting
15726
15727         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
15728         type as well as on the subtype. This corrects a problem in freeze in
15729         setting alignments of atomic types.
15730
15731         * sem_eval.ads: Minor comment typo fixed
15732
15733         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
15734         level.  Minor reformatting.
15735
15736         * fname.adb (Is_Predefined_File_Name): Require a letter after the
15737         minus sign. This means that file names like a--b.adb will not be
15738         considered predefined.
15739
15740         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
15741         record Test new flag and give diagnostic for bad component clause.
15742         (Freeze_Entity): Set alignment of array from component alignment in
15743         cases where this is safe to do.
15744
15745         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
15746         arrays.
15747
15748         * cstand.adb: (Create_Standard): Set alignment of String to 1
15749
15750         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
15751
15752         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
15753         code in the common constrained array cases.
15754
15755         * a-storio.adb: Change implementation to avoid possible alignment
15756         problems on machines requiring strict alignment (data should be moved
15757         as type Buffer, not type Elmt).
15758
15759         * checks.adb (Apply_Array_Size_Check): Improve these checks by
15760         killing the overflow checks which we really do not need (64-bits is
15761         enough).
15762
15763 2004-06-25  Vincent Celier  <celier@gnat.com>
15764
15765         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
15766         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
15767         inconditionally for the main project.
15768         (Recursive_Add_Archives.Add_Archive_Path): New procedure
15769         (Link_Executables.Check_Time_Stamps): New procedure
15770         (Link_Executables.Link_Foreign): New procedure
15771         Changes made to reduce nesting level of this package
15772         (Check): New procedure
15773         (Add_Switches): When not in quiet output, check that a switch is not
15774         the concatenation of several valid switches. If it is, issue a warning.
15775         (Build_Global_Archive): If the global archive is rebuilt, linking need
15776         to be done.
15777         (Compile_Sources): Rebuilding a library archive does not imply
15778         rebuilding the global archive.
15779         (Build_Global_Archive): New procedure
15780         (Build_Library): New name for Build_Archive, now only for library
15781         project
15782         (Check_Archive_Builder): New procedure
15783         (Create_Global_Archive_Dependency_File): New procedure
15784         (Gprmake): Call Build_Global_Archive before linking
15785         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
15786         throughout.
15787         (Scan_Arg): Display the Copyright notice when -v is used
15788
15789         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
15790         for gnatls.
15791
15792         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
15793         COMPILE.
15794         Add new GNAT LIST qualifier /FILES=
15795         Added qualifier /DIRECTORY= to GNAT METRIC
15796         Added qualifier /FILES= to GNAT METRIC
15797         Added qualifier /FILES to GNAT PRETTY
15798
15799         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
15800         to take into account both versions of the switch.
15801
15802         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
15803         always be the last switch to the gcc driver. Disable switch storing so
15804         that switches automatically added by the gcc driver are not put in the
15805         ALI file.
15806
15807         * prj.adb (Project_Empty): Take into account changes in components of
15808         Project_Data.
15809
15810         * prj.ads (Languages_Processed): New enumaration value All_Languages.
15811
15812         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
15813         used. Split Boolean component Ada_Sources_Present in two Boolean
15814         components Ada_Sources_Present and Other_Sources_Present.
15815         Minor reformatting
15816
15817         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
15818         instead of Sources_Present.
15819         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15820
15821         * prj-nmsc.adb: Minor reformatting
15822         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
15823         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
15824         Check_Ada_Naming_Scheme.
15825         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
15826         throughout.
15827
15828         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
15829         In_Limited.
15830         Make sure that all cycles where there is at least one "limited with"
15831         are detected.
15832         (Parse_Single_Project): New Boolean parameter In_Limited
15833
15834         * prj-proc.adb (Recursive_Check): When Process_Languages is
15835         All_Languages, call first Prj.Nmsc.Ada_Check, then
15836         Prj.Nmsc.Other_Languages_Check.
15837
15838         * prj-proc.adb (Process): Use Ada_Sources_Present or
15839         Other_Sources_Present (instead of Sources_Present) depending on
15840         Process_Languages.
15841
15842         * lang-specs.h: Keep -g and -m switches in the same order, and as the
15843         last switches.
15844
15845         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
15846         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
15847         False.
15848         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
15849         False.
15850
15851         * lib.ads (Disable_Switch_Storing): New procedure.
15852
15853         * make.adb: Modifications to reduce nesting level of this package.
15854         (Check_Standard_Library): New procedure
15855         (Gnatmake.Check_Mains): New procedure
15856         (Gnatmake.Create_Binder_Mapping_File): New procedure
15857         (Compile_Sources.Compile): Add switch -gnatez as the last option
15858         (Display): Never display -gnatez
15859
15860         * Makefile.generic:
15861         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
15862
15863         * gnatcmd.adb (Check_Project): New function
15864         (Process_Link): New procedure to reduce nesting depth
15865         (Check_Files): New procedure to reduce the nesting depth.
15866         For GNAT METRIC, include the inherited sources in extending projects.
15867         (GNATCmd): When GNAT LS is invoked with a project file and no files,
15868         add the list of files from the sources of the project file. If this list
15869         is too long, put it in a temp text files and use switch -files=
15870         (Delete_Temp_Config_Files): Delete the temp text file that contains
15871         a list of source for gnatpp or gnatmetric, if one has been created.
15872         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
15873         in the project file is too large, create a temporary text file that
15874         list them and pass it to the tool with "-files=<temp text file>".
15875         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
15876
15877         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
15878         generated file is in not in Ada.
15879
15880         * gnatls.adb: Remove all parameters And_Save that are no longer used.
15881         (Scan_Ls_Arg): Add processing for -files=
15882         (Usage): Add line for -files=
15883
15884         * g-os_lib.adb (On_Windows): New global constant Boolean flag
15885         (Normalize_Pathname): When on Windows and the path starts with a
15886         directory separator, make sure that the resulting path will start with
15887         a drive letter.
15888
15889         * clean.adb (Clean_Archive): New procedure
15890         (Clean_Project): When there is non-Ada code, delete the global archive,
15891         the archive dependency files, the object files and their dependency
15892         files, if they exist.
15893         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
15894
15895 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
15896
15897         * sinfo.ads: Fix typo in comment.
15898
15899         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
15900         the TSS for remote access-to-subprogram types, since these TSS are
15901         always present once the type has been analyzed.
15902         (RAS_E_Dereference): Same.
15903
15904         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
15905         reference raises Bad_Attribute, mark the reference as analyzed so the
15906         node (and any children resulting from rewrites that could have occurred
15907         during the analysis that ultimately failed) is not analyzed again.
15908
15909         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
15910
15911         * exp_dist.adb: Minor comment fix.
15912
15913         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
15914         type is an anonymous access type, no unchecked deallocation of the
15915         allocated object can occur. If the object is controlled, attach it with
15916         a count of 1. This allows attachment to the Global_Final_List, if
15917         no other relevant list is available.
15918         (Get_Allocator_Final_List): For an anonymous access type that is
15919         the type of a discriminant or record component, the corresponding
15920         finalisation list is the one of the scope of the type.
15921
15922 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15923
15924         * sem_ch3.adb (Replace_Type): When computing the signature of an
15925         inherited subprogram, use the first subtype if the derived type
15926         declaration has no constraint.
15927
15928         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
15929         before applying previous optimization. Minor code cleanup.
15930
15931         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
15932         placed at the beginning of an unpacked record without explicit
15933         alignment, a slice of it will be aligned and does not need a copy when
15934         used as an actual.
15935
15936 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15937
15938         PR ada/15591
15939         PR ada/15592
15940         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
15941         reference is written with expressions mimicking parameters.
15942
15943 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
15944
15945         PR ada/15589
15946         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
15947         STEP 2a. The constraints of a full type declaration of a derived record
15948         type are checked for conformance with those declared in the
15949         corresponding private extension declaration. The message
15950         "not conformant with previous declaration" is emitted if an error is
15951         detected.
15952
15953 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
15954
15955         * g-traceb.ads: Document the need for -E binder switch in the spec.
15956
15957         * g-trasym.ads: Document the need for -E binder switch in the spec.
15958
15959 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
15960
15961         * sem_prag.adb: Add handling of pragma Detect_Blocking.
15962
15963         * snames.h, snames.ads, snames.adb: Add entry for pragma
15964         Detect_Blocking.
15965
15966         * s-rident.ads: Change reference to pragma Detect_Blocking.
15967
15968         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
15969         system.ads.
15970
15971         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
15972         to indicate whether pragma Detect_Blocking is active.
15973
15974         * par-prag.adb: Add entry for pragma Detect_Blocking.
15975
15976         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
15977         of not handling WITH.
15978         Note that this replaces the previous update which was incorrect.
15979
15980 2004-06-25  Javier Miranda  <miranda@gnat.com>
15981
15982         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
15983         use-clauses to have a clean environment.
15984
15985         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
15986         the installation of the use-clauses to stablish a clean environment in
15987         case of compilation of a separate unit; otherwise the call to
15988         use_one_package is protected by the barrier Applicable_Use.
15989
15990         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
15991         the installation of the use-clauses to stablish a clean environment in
15992         case of compilation of a separate unit.
15993         (End_Use_Clauses): Minor comment cleanup.
15994
15995 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
15996
15997         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
15998
15999 2004-06-23  Richard Henderson  <rth@redhat.com>
16000
16001         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
16002
16003 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16004
16005         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
16006         now bool instead of int.
16007         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
16008         * trans.c (gnu_switch_label_stack): New function.
16009         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
16010         elaboration of renamed entity returns.
16011         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
16012         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
16013         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
16014         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
16015         DECL_SIZE_UNIT and simplify variable-sized case.
16016         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
16017         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
16018         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
16019         (build_unit_elab): Disable for now.
16020         * utils.c (mark_visited): New function.
16021         (pushdecl): Walk tree to call it for global decl.
16022         (update_pointer_to): Update all variants of pointer and ref types.
16023         Add arg to COMPONENT_REF.
16024         (convert): Likewise.
16025         Move check for converting between variants lower down.
16026         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
16027         (build_allocator): Don't force type of MODIFY_EXPR.
16028         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
16029         put_var_into_stack.
16030
16031 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16032
16033         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
16034         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
16035         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
16036         subprograms.
16037         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
16038         all callers changed.
16039         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
16040         the way that EXIT_STMT finds the loop label.
16041         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
16042         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
16043         (add_stmt): Use annotate_with_locus insted of setting directly.
16044         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
16045         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
16046         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
16047         (build_vms_descriptor): Add extra args to ARRAY_REF.
16048         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
16049         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
16050         New cases.
16051         (build_binary_op): Don't make explicit CONVERT_EXPR.
16052         Add extra rgs to ARRAY_REF.
16053
16054 2004-06-14  Pascal Obry  <obry@gnat.com>
16055
16056         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
16057         Windows.  Fix minor typo.
16058
16059         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
16060         which is now supported on Windows. With this implementation using the
16061         Library Project feature is no different on Windows than on UNIX.
16062
16063 2004-06-14  Vincent Celier  <celier@gnat.com>
16064
16065         * makegpr.adb (Compile_Sources): Nothing to do when there are no
16066         non-Ada sources.
16067
16068         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
16069
16070         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
16071         found, show the project name and the path of the previously parsed
16072         project file.
16073
16074 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
16075
16076         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
16077         array, avoid copying the actual before the call.
16078
16079 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
16080
16081         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
16082         Instead, allocate memory on worst-case alignment assumptions, and then
16083         return an aligned address within the allocated zone.
16084
16085 2004-06-14  Robert Dewar  <dewar@gnat.com>
16086
16087         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
16088         elab entities in predefined units in No_Run_Time_Mode.
16089         (Gen_Adainit_C): Same fix
16090         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
16091         units in No_Run_Time_Mode
16092         (Gen_Elab_Calls_C): Same fix
16093
16094         * symbols-vms-alpha.adb: Minor reformatting
16095
16096         * g-debpoo.ads: Minor reformatting
16097
16098         * lib.adb (In_Same_Extended_Unit): Version working on node id's
16099
16100         * lib.ads (In_Same_Extended_Unit): Version working on node id's
16101
16102         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
16103         working on nodes.
16104
16105         * make.adb: Minor reformatting
16106
16107         * par-ch12.adb: Minor reformatting
16108
16109         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
16110
16111         * prj-strt.adb: Minor reformatting
16112
16113         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
16114         be more general.
16115
16116         * sem_attr.adb: Minor reformatting
16117
16118         * sem_ch7.adb: Minor reformatting
16119
16120         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
16121         for type in the same unit as the object declaration.
16122
16123         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
16124         static string expressions and not just string literals.
16125         Minor reformatting
16126         (Set_Warning): Reset restriction warning flag for restriction pragma
16127         Implement pragma Profile_Warnings
16128         Implement pragma Profile (Restricted)
16129         Give obolescent messages for old restrictions and pragmas
16130
16131         * snames.h, snames.ads, snames.adb: Add new entry for pragma
16132         Profile_Warnings.
16133
16134         * s-rident.ads: Add declarations for restrictions required by profile
16135         Restricted and profile Ravenscar.
16136
16137         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
16138
16139         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
16140         configuration pragmas.
16141
16142 2004-06-11  Vincent Celier  <celier@gnat.com>
16143
16144         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
16145         gnatsym, when symbol policy is Restricted.
16146
16147         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
16148         gnatsym, when symbol policy is Restricted.
16149
16150         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
16151         read the symbol file.
16152         (Finalize): Fail in symbol policy Restricted if a symbol in the original
16153         symbol file is not in the object files. Do not create a new symbol file
16154         when symbol policy is Restricted.
16155
16156         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
16157         in Scng.
16158
16159         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
16160         Restricted.
16161         (Usage): Line for new switch -R
16162
16163         * make.adb (Initialize): When the platform is not VMS, add the
16164         directory where gnatmake is invoked in the front of the path, if
16165         gnatmake is invoked with directory information.  Change the Scan_Args
16166         while loop to a for loop.
16167         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
16168         if Depth is equal or greater than the proposed depth, there is nothing
16169         to do.
16170         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
16171         instead of 0.
16172
16173         * prj.ads: Add new symbol policy Restricted.
16174
16175         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
16176         with the new parameters Check_All_Labels and Case_Location.
16177
16178         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
16179         (Library_Symbol_File needs to be defined).
16180
16181         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
16182         and Case_Location If Check_All_Labels is True, check that all values of
16183         the string type are used, and output warning(s) if they are not.
16184
16185         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
16186         and Case_Location.
16187
16188         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
16189
16190         * gnat_ugn.texi: Update documentation about the library directory in
16191         Library Projects.
16192
16193         * makegpr.adb (Display_Command): In verbose mode, also display the
16194         value of the CPATH env var, when the compiler is gcc.
16195         (Initialize): Change the Scan_Args while loop to a for loop
16196         (Compile_Individual_Sources): Change directory to object directory
16197         before compilations.
16198
16199         * symbols.ads: New symbol policy Restricted.
16200
16201 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
16202
16203         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
16204         is now taken care of internally in the Exception_Propagation package
16205         and does not require clients assistance any more.
16206
16207         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
16208         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
16209         functions. Helpers to maintain a predicate required in the handling of
16210         occurrence transfer between tasks.
16211         This is now handled internally and does not require clients assistance
16212         for the setup/propagate separation anymore.
16213         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
16214         allocation strategy, handle the Setup_And_Not_Propagated predicate and
16215         document.
16216
16217         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
16218         raise_after_setup, now that everything is handled internally within the
16219         setup/propagation engine.
16220
16221 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16222
16223         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
16224         Add additional conditions for the case of an actual being a simple
16225         name or literal. Improve inlining by preventing the generation
16226         of temporaries with a short lifetime (one use).
16227
16228 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16229
16230         PR ada/15587
16231
16232         * einfo.ads: Minor comment updates for Has_Completion and
16233         E_Constant list of flags.
16234
16235         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
16236         and constant redeclarations now set the Has_Completion flag of their
16237         defining identifiers.
16238
16239         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
16240         Inspect_Deferred_Constant_Completion.
16241         Used to detect private deferred constants that have not been completed
16242         either by a constant redeclaration or pragma Import. Emits error message
16243         "constant declaration requires initialization expression".
16244
16245         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
16246         completes a deferred constant.
16247
16248 2004-06-11  Geert Bosch  <bosch@gnat.com>
16249
16250         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
16251
16252         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
16253         calculating exponent for scaling denormal numbers.
16254         (Leading_Part): Properly raise Constraint_Error for zero or negative
16255         Adjustment.
16256         (Remainder): Properly raise Constraint_Error for zero divisor.
16257
16258 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
16259
16260         * sem_util.adb: Minor reformatting.
16261
16262         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
16263         dereference when accessing the entry parameter record.
16264         (Check_Array_Type): Always check for possible implicit dereference.
16265         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16266         Abort if a pointer is still present (denoting that an implicit
16267         dereference was left in the tree by the front-end).
16268
16269         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
16270         dereference when accessing the entry parameter record.
16271         (Check_Array_Type): Always check for possible implicit dereference.
16272         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16273         Abort if a pointer is still present (denoting that an implicit
16274         dereference was left in the tree by the front-end).
16275
16276 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
16277
16278         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
16279         message, like the compiler itself does. Easier to parse the output.
16280
16281         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
16282
16283         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
16284         be base names, and not includes directories.
16285
16286 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16287
16288         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
16289         so that dependencies are properly taken into account by make.
16290
16291 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16292
16293         PR ada/15622
16294         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
16295         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
16296
16297 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
16298
16299         * Makefile.in (install-gnatlib): install target-specific run-time files.
16300
16301         * Make-lang.in: Remove obsolete targets.
16302
16303 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16304
16305         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
16306         specification, to catch misuses of program unit names.
16307
16308         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
16309         superfluous conversions in an instance.
16310
16311 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16312
16313         PR ada/15403
16314
16315         * sem_ch12.adb (Save_References): If operator node has been folded to
16316         enumeration literal, associated_node must be discarded.
16317
16318 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
16319
16320         * s-stchop-vxworks.adb: Add required pragma Convention to
16321         Task_Descriptor because it is updated by a C function.
16322
16323 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
16324
16325         PR ada/15568
16326
16327         * Makefile.in: Remove target specific SO_OPT on IRIX
16328
16329 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16330
16331         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
16332         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
16333         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
16334         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
16335         (STMT_STMT, USE_STMT): New statement codes.
16336         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
16337         * ada-tree.h: Reflect above changes.
16338         (struct tree_loop_id): Deleted.
16339         (union lang_tree_node, struct lang_decl, struct lang_type):
16340         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
16341         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
16342         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
16343         (IS_ADA_STMT): New macro.
16344         * decl.c (annotate_decl_with_node): New function.
16345         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
16346         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
16347         Call add_stmt_with_node to do needed assignments.
16348         Add call to update setjmp buffer directly, not via EXPR_STMT.
16349         (maybe_variable): Argment GNAT_NODE deleted.
16350         * gigi.h (maybe_variable): Likewise.
16351         (make_transform, add_stmt_with_node, set_block_for_group): New.
16352         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
16353         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
16354         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
16355         (set_lineno, set_lineno_from_sloc): Likewise.
16356         (record_code_position, insert_code_for): Likewise.
16357         (gnat_poplevel): Now returns void.
16358         (end_subprog_body): Now takes argument.
16359         * misc.c (cgraph.h, tree-inline.h): New includes.
16360         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
16361         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
16362         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
16363         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
16364         (gnat_parse_file): Don't set immediate_size_expand.
16365         Call cgraph functions.
16366         (gnat_expand_expr): Remove most cases.
16367         (record_code_position, insert_code_for): Remove from here.
16368         * trans.c (toplev.h, tree-gimple.h): Now included.
16369         (discard_file_names): Deleted.
16370         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
16371         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
16372         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
16373         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
16374         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
16375         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
16376         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
16377         (set_block_for_group, add_stmt_list): Likewise.
16378         (start_stmt_group): Renamed from start_block_stmt.
16379         (end_stmt_group): Likewise, from end_block_stmt.
16380         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
16381         (gigi): Don't set discard_file_names or call set_lineno.
16382         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
16383         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
16384         Numerous changes throughout to reflect new names and complete
16385         function-at-a-time implementation.
16386         (gnat_expand_stmt): Delete or comment out all cases.
16387         (process_inlined_subprograms): Use add_stmt.
16388         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
16389         call set_lineno; also remove unneeded block handling.
16390         (process_type): Remove unneeded block handling.
16391         (build_unit_elab): Remove calls to deleted functions.
16392         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
16393         (tree-dump.h): Likewise.
16394         (struct ada_binding_level): Add field jmpbuf_decl.
16395         (gnat_define_builtin, gnat_install_builtins): New.
16396         (gnat_gimplify_function, gnat_finalize): Likewise.
16397         (gnat_poplevel): No longer return BLOCK, set it instead.
16398         Remove code dealing with nested functions.
16399         (gnat_init_decl_processing): Also set size_type_node.
16400         Call gnat_install_builtins.
16401         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
16402         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
16403         Remove special-case for "main".
16404         (end_subprog_body): Add arg and rework for tree-ssa.
16405         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
16406         Add case for BOOLEAN_TYPE.
16407         * utils2.c (rtl.h): Now include.
16408         (build_call_raise): Test Debug_Flag_NN directly.
16409         (build_call_alloc_dealloc): Don't use local stack allocation for now.
16410         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
16411         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
16412
16413 2004-06-07  Robert Dewar  <dewar@gnat.com>
16414
16415         * a-direct.ads, einfo.ads: Minor comment updates
16416
16417         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
16418         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16419         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
16420         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
16421         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
16422
16423         * s-interr-sigaction.adb: Remove unreferenced variable
16424         (Attached_Interrupts).  Minor reformatting.
16425         Avoid use of variable I (replace by J).
16426
16427         * par-ch10.adb: Fix text of one error message
16428
16429         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
16430         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
16431         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
16432         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
16433         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
16434         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
16435         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
16436         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
16437         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
16438         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
16439         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
16440         2005 support.
16441
16442 2004-06-07  Doug Rupp  <rupp@gnat.com>
16443
16444         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
16445
16446         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
16447
16448         * mlib-tgt-vms-ia64.adb: New file.
16449
16450         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
16451         Add mlib-tgt-vms-ia64.adb
16452         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
16453         Move to alpha specific ifeq section.
16454         Add VMS specific versions of symbols.adb
16455         Renaming of 5q vms files.
16456
16457         * 5qsystem.ads renamed to system-vms_64.ads.
16458
16459 2004-06-07  Vincent Celier  <celier@gnat.com>
16460
16461         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
16462         explain that when a time of day corresponding to the non existing hour
16463         on the day switching to DST is specified, Split may return a different
16464         value for Seconds.
16465
16466         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
16467         to GNAT PRETTY.
16468
16469         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
16470         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
16471
16472         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
16473         to False.
16474         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
16475         the linking options.
16476         (Build_Library.Check_Libs): On VMS, if there is a dependency on
16477         g-trasym.ads, set Gtrasymobj_Needed to True.
16478
16479         * prj-attr.adb: Add new package Metrics for gnatmetric
16480
16481         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
16482         canonical case to take into account files with upper case characters on
16483         Windows.
16484         (Ada_Check): Load the reference symbol file name in the name buffer to
16485         check it, not the symbol file name.
16486
16487         * snames.ads, snames.adb: Add standard name Metrics (name of project
16488         file package for gnatmetric).
16489
16490         * vms_conv.ads: Add Metric to Comment_Type
16491
16492         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
16493
16494         * vms_data.ads: Add qualifiers for GNAT METRIC
16495
16496         * makegpr.adb (Link_Executables): Take into account the switches
16497         specified in package Linker of the main project.
16498
16499 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
16500
16501         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
16502         the index of the last element is Units.Last, not Units.Table'Last
16503         (which is usually not a valid index within the actually allocated
16504         storage for the table).
16505
16506         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
16507         determines whether to generate a call to a checked storage pool
16508         Dereference action.
16509         Generate such a call only for a dereference that either comes from
16510         source, or is the result of rewriting a dereference that comes from
16511         source.
16512
16513 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
16514
16515         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
16516
16517 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
16518
16519         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
16520         file level, elaborate the stride for inner dimensions in alignment
16521         units, not bytes.
16522
16523         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
16524         in a comment.
16525
16526 2004-06-07  Javier Miranda  <miranda@gnat.com>
16527
16528         * exp_ch6.adb: Correct wrong modification in previous patch
16529
16530 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
16531
16532         * g-trasym.ads: Corrected comment to properly reflect level of support
16533         on VMS.
16534
16535 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
16536
16537         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
16538         includes case of a variable referenced on the left hand side of an
16539         assignment, therefore remove redundant code. Variables and prefixes of
16540         indexed or selected components are now marked as referenced on left
16541         hand side. Warnings are now properly emitted when variables or prefixes
16542         are assigned but not read.
16543
16544         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
16545         left hand side referenced variables. Private access types do not
16546         produce the warning "variable ... is assigned but never read".
16547         Add also additional checks to left hand side referenced variables.
16548         Aliased, renamed objects and access types do not produce the warning
16549         "variable ... is assigned but never read" since other entities may read
16550         the memory location.
16551
16552 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
16553
16554         * Makefile.in: In the powerpc/vxworks-specific section, restore
16555         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
16556         by mistake).
16557
16558 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
16559
16560         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
16561         predefined operators.
16562         Removes spurious type errors from g-trasym-vms.adb.
16563
16564         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
16565         distinct from the operator appearing in the source, call appropriate
16566         routine to insert conversions when needed, and complete resolution of
16567         node.
16568         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
16569         interpretations for rewritten right operand.
16570         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
16571         the other operand is overloaded and the context is a type conversion.
16572
16573 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16574
16575         * ada-tree.def (BLOCK_STMT): Now has two operands.
16576         (BREAK_STMT): New.
16577
16578         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
16579
16580         * gigi.h: (gnat_poplevel): Now returns a tree.
16581
16582         * trans.c (end_block_stmt): Add arg; all callers changed.
16583         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
16584         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
16585         (add_stmt): Set TREE_TYPE.
16586         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
16587         (gnat_expand_stmt, case BREAK_STMT): New case.
16588
16589         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
16590
16591 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
16592
16593         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
16594         procedure Set_Stack_Size that is not needed.
16595
16596 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
16597
16598         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
16599         used for gnatpp input file and for the files upon which it depends
16600
16601 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
16602
16603         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
16604
16605 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
16606
16607         * gnatvsn.ads: Bump version numbers appropriately.
16608         Add new build type.
16609
16610 2004-06-07  Pascal Obry  <obry@gnat.com>
16611
16612         * gnat_ugn.texi: Improve comments about imported names and link names
16613         on Windows. Add a note about the requirement to use -k gnatdll's option
16614         when working with a DLL which has stripped stdcall symbols (no @nn
16615         suffix).
16616
16617 2004-05-27  Vincent Celier  <celier@gnat.com>
16618
16619         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
16620         COMMENTS_LAYOUT=UNTOUCHED
16621
16622         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
16623         symbols-vms-alpha.adb
16624
16625 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
16626
16627         * sem.ads: Clarify documentation on checks suppression.
16628
16629         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
16630
16631 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
16632
16633         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
16634         the case of multiple derivations.
16635         (Is_Object_Reference): For a selected component, verify that the prefix
16636         is itself an object and not a value.
16637
16638         * sem_ch12.adb (Same_Instantiated_Constant): New name for
16639         Same_Instantiated_Entity.
16640         (Same_Instantiated_Variable): Subsidiary to
16641         Check_Formal_Package_Instance, to recognize actuals for in-out generic
16642         formals that are obtained from a previous formal package.
16643         (Instantiate_Subprogram_Body): Emit proper error when
16644         generating code and the proper body of a stub is missing.
16645
16646         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
16647         has a universal interpretation, do the disambiguation here.
16648
16649         * exp_ch4.adb (Expand_N_Type_Conversion,
16650         Expand_N_Unchecked_Type_Conversion): Special handling when target type
16651         is Address, to avoid typing anomalies when Address is a visible integer
16652         type.
16653
16654         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
16655         to determine whether a subprogram should not be marked Pure, even when
16656         declared in a pure package.
16657
16658 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
16659
16660         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
16661
16662         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
16663         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
16664         Update the documentation about the Ravenscar profile, following the
16665         definition found in AI-249.
16666
16667         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
16668         setting the Profile (Ravenscar). This must be done in addition to
16669         setting the required restrictions.
16670
16671         * rtsfind.ads: Add the set of operations defined in package
16672         Ada.Interrupts.
16673
16674         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
16675         restriction.
16676
16677 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
16678
16679         lang-specs.h: Always require -c or -S and always redirect to /dev/null
16680         if -gnatc or -gnats is passed.
16681
16682 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
16683
16684         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
16685         a significant reference. Warnings are now properly emitted when a
16686         discriminated type is not referenced.
16687
16688         * lib-xref.adb (Generate_Reference): A deferred constant completion,
16689         record representation clause or record type discriminant does not
16690         produce a reference to its corresponding entity. Warnings are now
16691         properly emitted when deferred constants and record types are not
16692         referenced.
16693
16694 2004-05-27  Geert Bosch  <bosch@gnat.com>
16695
16696         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
16697         Fixes ACATS Annex G tests.
16698
16699 2004-05-27  Robert Dewar  <dewar@gnat.com>
16700
16701         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
16702         handling WITH
16703
16704 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
16705
16706         * s-interr.adb (Server_Task): Take into account case of early return
16707         from sigwait under e.g. linux.
16708
16709 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
16710
16711         * gnat_ugn.texi: Add description for the new gnatpp options:
16712          -rnb - replace the original source without creating its backup copy
16713          -c0 - do not format comments
16714
16715 2004-05-24  Geert Bosch  <bosch@gnat.com>
16716
16717         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
16718         with 192 bits of precision, sufficient to reduce a double-extended
16719         arguments X with a maximum relative error of T'Machine_Epsilon, for X
16720         in -2.0**32 .. 2.0**32.
16721         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
16722         reduction by the processor, which only uses a 68-bit approximation of
16723         Pi.
16724         (Tan): Always reduce arguments and compute function either using
16725         the processor's fptan instruction, or by dividing sin and cos as needed.
16726
16727 2004-05-24  Doug Rupp  <rupp@gnat.com>
16728
16729         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
16730         gcc error on 32/64 bit VMS.
16731
16732 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
16733
16734         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
16735         since this is what we get for stack overflows although not documented
16736         as such.
16737         Document the issues which may require adjustments to our signal
16738         handlers.
16739
16740 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
16741
16742         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
16743         enclosing dynamic scope if the instantiation is within a generic unit.
16744
16745 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16746
16747         * exp_dbug.ads: Fix typo.
16748
16749         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
16750         Rename it to its proper name: system-linux-ia64.ads
16751         (stamp-gnatlib1): Remove extra target specific run time files when
16752         setting up the rts directory.
16753
16754 2004-05-24  Javier Miranda  <miranda@gnat.com>
16755
16756         * einfo.ads, einfo.adb (Limited_Views): Removed.
16757         (Limited_View): New attribute that replaces the previous one. It is
16758         now a bona fide package with the limited-view list through the
16759         first_entity and first_private attributes.
16760
16761         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
16762         limited-private-with clause.
16763         (Install_Limited_Withed_Unit): Install the private declarations of a
16764         limited-private-withed package. Update the installation of the shadow
16765         entities according to the new structure (see Build_Limited_Views)
16766         (Build_Limited_Views): Replace the previous implementation of the
16767         limited view by a package entity that references the first shadow
16768         entity plus the first shadow private entity (required for limited-
16769         private-with clause)
16770         (New_Internal_Shadow_Entity): Code cleanup.
16771         (Remove_Limited_With_Clause): Update the implementation to undo the
16772         new work carried out by Build_Limited_Views.
16773         (Build_Chain): Complete documentation.
16774         Replace Ada0Y by Ada 0Y in comments
16775         Minor reformating
16776
16777         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
16778         types the level of accessibility depends on the enclosing type
16779         declaration.
16780
16781         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
16782         entities. Complete documentation of previous change.
16783
16784 2004-05-24  Robert Dewar  <dewar@gnat.com>
16785
16786         * namet.adb: Minor reformatting
16787         Avoid use of name I (replace by J)
16788         Minor code restructuring
16789
16790         * sem_ch6.adb: Minor reformatting
16791
16792         * lib-writ.adb: Do not set restriction as active if this is a
16793         Restriction_Warning case.
16794
16795         * sem_prag.adb: Reset restriction warning flag if real pragma
16796         restriction encountered.
16797
16798         * s-htable.adb: Minor reformatting
16799         Change rotate count to 3 in Hash (improves hash for small strings)
16800
16801         * 5qsystem.ads: Add comments for type Address (no literals allowed).
16802
16803         * gnat_ugn.texi: Add new section of documentation "Code Generation
16804         Control", which describes the use of -m switches.
16805
16806 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
16807
16808         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
16809         through the DECL_INITIAL for renamed variables.
16810
16811 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16812
16813         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
16814
16815 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
16816
16817         * exp_dbug.ads: Correct comments concerning handling of overloading,
16818         since we no longer use $ anymore.
16819
16820 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
16821
16822         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
16823         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
16824         with illegal subunits.
16825
16826 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
16827
16828         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
16829         body with front-end inlining enabled, check whether an inline pragma
16830         appears immediately after the body and applies to it.
16831
16832         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
16833         enabled and the pragma appears after the body of the subprogram.
16834
16835 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16836
16837         Part of function-at-a-time conversion
16838
16839         * misc.c (adjust_decl_rtl): Deleted.
16840         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16841         Define.
16842
16843         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
16844         (add_decl_stmt, add_stmt, block_has_vars): New functions.
16845         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
16846
16847         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
16848         when making a decl.
16849         (gnat_to_gnu_entity): Likewise.
16850         Use add_stmt to update setjmp buffer.
16851         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
16852         flush_addressof.
16853         No longer call adjust_decl_rtl.
16854         (DECL_INIT_BY_ASSIGN_P): New macro.
16855         (DECL_STMT_VAR): Likewise.
16856
16857         * trans.c (gigi): Call start_block_stmt to make the outermost
16858         BLOCK_STMT.
16859         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
16860         Call start_block_stmt and end_block_stmt temporarily.
16861         Use gnat_expand_stmt instead of expand_expr_stmt.
16862         (add_decl_stmt): New function.
16863         (tree_transform): Call it.
16864         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
16865         (end_block_stmt): Set type and NULL_STMT.
16866         (gnat_expand_stmt): Make recursize call instead of calling
16867         expand_expr_stmt.
16868         (gnat_expand_stmt, case DECL_STMT): New case.
16869         (set_lineno_from_sloc): Do nothing if global.
16870         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
16871         (start_block_stmt, add_stmt, end_block_stmt): New functions.
16872         (build_block_stmt): Call them.
16873         (gnat_to_code): Don't expand NULL_STMT.
16874         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
16875         args.
16876         (tree_transform): Likewise.
16877         (tree_transform, case N_Null_Statement): Return NULL_STMT.
16878         (gnat_expand_stmt, case NULL_STMT): New case.
16879         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
16880         IF_STMT_TRUE.
16881
16882         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
16883         TREE_ADDRESSABLE.
16884
16885         * utils.c (create_var_decl): Do not call expand_decl or
16886         expand_decl_init.
16887         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
16888         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
16889         here.
16890         (struct e_stack): Add chain_next to GTY.
16891         (struct binding_level): Deleted.
16892         (struct ada_binding_level): New struct.
16893         (free_block_chain): New.
16894         (global_binding_level, clear_binding_level): Deleted.
16895         (global_bindings_p): Rework to see if no chain.
16896         (kept_level_p, set_block): Deleted.
16897         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
16898         new data structure and work directly on BLOCK node.
16899         (gnat_poplevel): Similarly.
16900         (get_decls): Look at BLOCK_VARS.
16901         (insert_block): Work directly on BLOCK node.
16902         (block_has_var): New function.
16903         (pushdecl): Rework for new binding structures.
16904         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
16905         poplevel.
16906         (build_subprog_body): Likewise.
16907         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
16908
16909         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
16910
16911         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
16912         (DECL_STMT_VAR): Likewise.
16913
16914 2004-05-17  Robert Dewar  <dewar@gnat.com>
16915
16916         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
16917         procedure
16918
16919         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
16920         of restriction synonyums by using
16921         Restrict.Process_Restriction_Synonyms.
16922
16923         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
16924
16925         * s-restri.ads (Tasking_Allowed): Correct missing comment
16926
16927         * s-rident.ads: Add entries for restriction synonyms
16928
16929         * ali.adb: Fix some problems with badly formatted ALI files that can
16930         result in infinite loops.
16931
16932         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
16933         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
16934         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16935         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
16936         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
16937         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
16938         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
16939         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
16940         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
16941         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
16942         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
16943         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
16944         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
16945         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
16946         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
16947         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
16948         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
16949         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16950         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
16951         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
16952         to Task_Id (minor cleanup).
16953
16954 2004-05-17  Vincent Celier  <celier@gnat.com>
16955
16956         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
16957         directory separator.
16958
16959         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
16960         project being extended, if Languages is not declared in extending
16961         project.
16962
16963 2004-05-17  Javier Miranda  <miranda@gnat.com>
16964
16965         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
16966         limited view of a visible sibling.
16967
16968 2004-05-14  Robert Dewar  <dewar@gnat.com>
16969
16970         * gnat_ugn.texi: Minor change to -gnatS documentation
16971
16972         * sprint.adb: Remove some instances of Assert (False) and for this
16973         purpose replace them by output of a ??? string.
16974
16975         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
16976         Assert (False).
16977
16978         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
16979         flag processing. This was suppressing required dependencies in
16980         No_Run_Time mode and is not needed since the binder does not generate
16981         references for things in libgnat anyway.
16982
16983         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
16984         warning.
16985
16986 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
16987
16988         * gnat_ugn.texi: Document AIX-specific issue with initialization of
16989         resolver library.
16990
16991         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
16992         action for the case of an actual parameter in an init proc call.
16993
16994 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
16995
16996         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
16997         subtype, check visible entities in base type.
16998
16999         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
17000         actions if the object is a renaming.
17001
17002         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
17003         Check_Formal_Package_Instance, to determine more precisely when the
17004         formal and the actual denote the same entity.
17005
17006 2004-05-14  Javier Miranda  <miranda@gnat.com>
17007
17008         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
17009
17010         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
17011         corresponding to a private_with must be removed from visibility; it
17012         will be made visible later, just before we analyze the private part of
17013         the package.
17014         (Check_Private_Child_Unit): Allow private_with clauses in public
17015         siblings.
17016         (Install_Siblings): Make visible the private entities of private-withed
17017         siblings.
17018         (Install_Withed_Unit): Do not install the private withed unit if we
17019         are compiling a package declaration and the Private_With_OK flag was
17020         not set by the caller. These declarations will be installed later,
17021         just before we analyze the private part of the package.
17022
17023         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
17024         during the evaluation of the expression that initializes the object,
17025         decorate it with the expected type to avoid cascade errors.
17026         Code cleanup.
17027
17028         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
17029         subprogram we have to install the private_with clauses after its
17030         specification has been analyzed (as documented in AI-262.TXT).
17031
17032         * sem_ch8.adb (Has_Private_With): New function. Determines if the
17033         current compilation unit has a private with on a given entity.
17034         (Find_Direct_Name): Detect the Beaujolais problem described in
17035         AI-262.TXT
17036
17037         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
17038         provides the functionality of the function Is_Ancestor that was
17039         previously available in sem_ch10. It has been renamed to avoid
17040         overloading.
17041
17042         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
17043
17044 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17045
17046         * utils.c (build_vms_descriptor): Use SImode pointers.
17047
17048 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
17049
17050         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
17051
17052 2004-05-14  GNAT Script  <nobody@gnat.com>
17053
17054         * Make-lang.in: Makefile automatically updated
17055
17056 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
17057
17058         Renaming of target specific files for clarity
17059
17060         * Makefile.in: Rename GNAT target specific files.
17061
17062         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
17063         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
17064         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
17065         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
17066         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
17067         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
17068         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
17069         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
17070         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
17071         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
17072         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
17073         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
17074         51osinte.adb, 51osinte.ads, 51system.ads,
17075         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
17076         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
17077         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
17078         56tpopsp.adb, 57system.ads, 58system.ads,
17079         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
17080         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
17081         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
17082         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
17083         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
17084         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
17085         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
17086         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
17087         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
17088         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
17089         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
17090         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
17091         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
17092         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
17093         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
17094         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
17095         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
17096         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
17097         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
17098         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
17099         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
17100         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
17101         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
17102         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
17103         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
17104         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
17105         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
17106         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
17107         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
17108         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
17109         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
17110         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
17111         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
17112         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
17113         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
17114         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
17115         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
17116         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
17117         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
17118         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
17119
17120         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
17121         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
17122         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
17123         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
17124         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
17125         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
17126         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
17127         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
17128         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
17129         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
17130         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
17131         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
17132         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
17133         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
17134         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
17135         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
17136         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
17137         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
17138         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
17139         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
17140         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
17141         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
17142         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
17143         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
17144         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
17145         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
17146         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
17147         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
17148         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
17149         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
17150         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
17151         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
17152         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
17153         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
17154         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
17155         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
17156         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
17157         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
17158         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
17159         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
17160         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
17161         s-osinte-vms.ads, s-osinte-vxworks.adb,
17162         s-osinte-vxworks.ads, s-osprim-mingw.adb,
17163         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
17164         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
17165         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
17166         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
17167         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
17168         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
17169         s-stchop-vxworks.adb, s-taprop-dummy.adb,
17170         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
17171         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
17172         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
17173         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
17174         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
17175         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
17176         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
17177         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
17178         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
17179         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
17180         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
17181         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
17182         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
17183         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
17184         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
17185         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
17186         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
17187         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
17188         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
17189         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
17190         system-irix-o32.ads, system-linux-x86_64.ads,
17191         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
17192         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
17193         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
17194         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
17195         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
17196         system-vxworks-mips.ads, system-vxworks-ppc.ads,
17197         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
17198         above.
17199
17200 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
17201
17202         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
17203
17204 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
17205
17206         Merge from tree-ssa-20020619-branch.
17207
17208         * config-lang.in (boot_language, build_by_default): Set
17209         to no.
17210         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
17211         (max_size): Add static chain op for call_expr.
17212
17213 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
17214
17215         PR target/15331
17216         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
17217
17218 2004-05-11  Roger Sayle  <roger@eyesopen.com>
17219
17220         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
17221         COND_EXPR.
17222
17223 2004-05-10  Doug Rupp  <rupp@gnat.com>
17224
17225         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
17226         system.aux_dec.
17227
17228         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
17229
17230         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
17231
17232         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
17233         Fixes undefined symbols in IA64 gnatlib.
17234
17235         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
17236
17237         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
17238         Short_Address). This will be moved to system.auxdec.
17239
17240 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
17241
17242         * sem_util.adb: Replace test for presence of a node that is always
17243         present with a call to Discard_Node.
17244
17245         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
17246         Analyze on the library unit node after generation of distribution stub
17247         constructs.  The call was a no-op because Unit_Node has already been
17248         Analyzed, and the tree fragments for the distribution stubs are
17249         analyzed as they are inserted in Exp_Dist.
17250         Update comment regarding to distribution stubs to reflect that we
17251         do not generate stub in separate files anymore.
17252
17253         * einfo.ads: Clarify the fact that a tagged private type has the
17254         E_Record_Type_With_Private Ekind.
17255
17256         * erroutc.adb: Minor reformatting
17257
17258         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
17259         values if line length is increased using -gnatyM (noticed during code
17260         reading).
17261
17262         * eval_fat.adb: Minor reformatting
17263         Put spaces around exponentiation operator
17264
17265 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17266
17267         PR ada/15005
17268         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
17269         has been rewritten as an explicit dereference, retrieve type of
17270         original node to check for possibly unconstrained record type.
17271
17272 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17273
17274         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
17275         overriding, use the operation of the parent unconditionally.
17276
17277         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
17278         operation when either operand is a literal, to avoid further
17279         ambiguities.
17280
17281         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
17282         overridden by a previous explicit declaration, mark the previous entity
17283         as overriding.
17284
17285         * sem_disp.adb (Check_Dispatching_Operation): New predicate
17286         Is_Visibly_Controlled, to determine whether a declaration of a
17287         primitive control operation for a derived type overrides an inherited
17288         one. Add warning if the explicit declaration does not override.
17289
17290 2004-05-10  Vincent Celier  <celier@gnat.com>
17291
17292         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
17293         some cases when the sources are no longer present.
17294
17295         * make.adb (Collect_Arguments): Fail if an external source, not part
17296         of any project need to be compiled, when switch -x has not been
17297         specified.
17298
17299         * makeusg.adb: Document new switch -x
17300
17301         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
17302         defaulted to False.
17303
17304         * switch-m.adb (Scan_Make_Switches): New switch -x
17305
17306         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
17307         gnatmake switch -x.
17308
17309         * gnat_ugn.texi: Document new gnatmake switch -x
17310
17311 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
17312
17313         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
17314
17315         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
17316         (process_attributes): Likewise.
17317
17318 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
17319
17320         * s-inmaop.ads: Fix spelling mistake in one of the comments.
17321
17322 2004-05-10  Robert Dewar  <dewar@gnat.com>
17323
17324         * gnat_ugn.texi: Document that for config pragma files, the maximum
17325         line length is always 32767.
17326
17327         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
17328         literals is now allowed.
17329
17330         * gnat-style.texi: Remove statement about splitting long lines before
17331         an operator rather than after, since we do not follow this rule at all.
17332         Clarify rule (really lack of rule) for spaces around exponentiation
17333
17334         * sem_elim.adb: Allow concatenation of string literals as well as a
17335         single string literal for pragma arguments.
17336
17337         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
17338
17339         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
17340         written for append case.
17341
17342         * frontend.adb: Changes to avoid checking max line length in config
17343         pragma files.
17344
17345         * g-os_lib.ads: Minor reformatting
17346
17347         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
17348         wrong in any case. Instead use standard value. Noticed during code
17349         reading.
17350
17351         * opt.ads (Max_Line_Length): New field, used to implement removal of
17352         limitation on length of lines when scanning config pragma files.
17353
17354         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
17355         makeutl.ads, makeutl.adb: Minor reformatting
17356
17357         * scn.adb: Do not check line length while scanning config pragma files
17358         Do not check line length while scanning out license information
17359
17360         * scng.adb: Changes to avoid line length checks while parsing config
17361         pragma files.
17362
17363 2004-05-10  GNAT Script  <nobody@gnat.com>
17364
17365         * Make-lang.in: Makefile automatically updated
17366
17367 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
17368
17369         * osint.adb (Find_Program_Name): Fix handling of VMS version
17370         number.
17371
17372 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
17373
17374         * g-os_lib.ads (Invalid_Time): New constant
17375
17376         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
17377         return OS_Time instead of time_t to match what is imported by Ada.
17378         Now return -1 if the file doesn't exist, instead of a random value
17379
17380 2004-05-05  Robert Dewar  <dewar@gnat.com>
17381
17382         * usage.adb: Add line for -gnatR?s switch
17383
17384         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
17385
17386         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
17387         and for Match (Data_First, Data_last)
17388
17389         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
17390         written when we are dealing with multi-unit files.
17391
17392 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
17393
17394         * Makefile.in: Remove unused targets and variables.
17395
17396 2004-05-05  Vincent Celier  <celier@gnat.com>
17397
17398         * switch-m.adb: New gnatmake switch -eI
17399
17400         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
17401         of new gnatmake switch -eInnn.
17402
17403         * makegpr.adb: Take into account new parameters Index and Src_Index in
17404         Prj.Util.
17405
17406         * clean.adb: Implement support for multi-unit sources, including new
17407         switch -i.
17408
17409         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
17410         Src_Index.
17411
17412         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
17413         (Extract_From_Q): New out parameter Index
17414         (Mark, Is_Marked): Subprograms moved to Makeutl
17415         (Switches_Of): New parameter Source_Index
17416         (Add_Switch): New parameter Index
17417         (Check): New parameter Source_Index
17418         (Collect_Arguments): New parameter Source_Index
17419         (Collect_Arguments_And_Compile): New parameter Source_Index
17420         (Compile): New parameter Source_Index
17421         Put subprograms in alphabetical order
17422         Add support for multi-source sources, including in project files.
17423
17424         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
17425         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
17426         Make.
17427
17428         * makeusg.adb: New gnatmake switch -eInnn
17429
17430         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
17431         Prj.Util.Value_Of.
17432
17433         * opt.ads (Main_Index): New variable, defaulted to 0.
17434
17435         * osint.ads, osinte.adb (Add_File): New parameter Index
17436         (Current_Source_Index): New function
17437
17438         * prj.adb: Take into account new components Index and Src_Index
17439
17440         * prj.ads (String_Element): New component Index
17441         (Variable_Value): New component Index
17442         (Array_Element): New component Src_Index
17443
17444         * prj-attr.adb: Indicate that optional index may be specified for
17445         attributes Main, Executable, Spec, Body and some of Switches.
17446
17447         * prj-attr.ads (Attribute_Kind): New values for optional indexes
17448         (Attribute_Record): New component Optional_Index
17449
17450         * prj-com.ads (File_Name_Data): New component Index
17451
17452         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
17453
17454         * prj-env.adb (Put): Output optional index
17455
17456         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
17457         attributes Spec and Body.
17458
17459         * prj-nmsc.adb: Process optional indexes
17460
17461         * prj-pp.adb: Ouput "at" for optional indexes
17462
17463         * prj-proc.adb: Take into account optional indexes
17464
17465         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
17466         Optional_Index. For string literal,
17467         process optional index when Optional_Index is True.
17468         (Parse_Expresion): New Boolean parameter Optional_Index
17469
17470         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
17471         (Set_Source_Index_Of): New procedure
17472
17473         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
17474         index.
17475
17476         * prj-util.ads (Executable_Of): New parameter Index
17477         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
17478         New parameter Src_Index, defaulted to 0.
17479
17480 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17481
17482         PR ada/15257
17483         * sem_ch3.adb (Access_Definition): If this is an access parameter
17484         whose designated type is imported through a limited_with clause, do
17485         not add the enclosing subprogram to the list of private dependents of
17486         the type.
17487
17488 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17489
17490         PR ada/15258
17491         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
17492         a limited_with clause, and the other is its non-limited view.
17493
17494 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
17495
17496         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
17497
17498         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
17499         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
17500         Stand.Boolean_Literals to produce references to entities
17501         Standard_False and Standard_True from compile-time computed boolean
17502         values.
17503
17504         * stand.ads (Boolean_Literals): New variable, provides the entity
17505         values for False and True, for use by the expander.
17506
17507 2004-05-05  Doug Rupp  <rupp@gnat.com>
17508
17509         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
17510         5vinmaop.adb: Unchecked convert Short_Address vice Address
17511
17512         * adaint.c, raise.c: Caste CRTL function return value
17513         to avoid gcc error on 32/64 bit IVMS.
17514
17515         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
17516         target = IA64/VMS.
17517
17518         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
17519
17520         * 5qsystem.ads (Address): Declare as Long_Integer
17521         (Short_Address): Declare as 32 bit subtype of Address
17522         Declare  abstract address operations to avoid gratuitous ambiguities.
17523
17524 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
17525
17526         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
17527         instead of the old Boolean_Entry_Barriers.
17528         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
17529
17530 2004-05-05  GNAT Script  <nobody@gnat.com>
17531
17532         * Make-lang.in: Makefile automatically updated
17533
17534 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17535
17536         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
17537
17538 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
17539
17540         PR ada/15152
17541
17542         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
17543         alone. Replacing object references by literals is inappropriate in a
17544         so low level context.
17545
17546 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17547
17548         * a-exexpr.adb: Add comments
17549
17550 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
17551
17552         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
17553         declare the Ancestor_Tags array in Type_Specific_Data with a small size
17554         without risking a bounds check error when accessing one of its
17555         components.
17556         (Type_Specific_Data): Define Ancestor_Tags as a small array.
17557         This prevents us from hitting a limitation during the debug info
17558         generation when using stabs.
17559
17560         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
17561         small array.
17562         This prevents us from hitting a limitation during the debug info
17563         generation when using stabs.
17564
17565 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
17566
17567         lang-specs.h: Remove -gnatz* from specs.
17568
17569 2004-05-03  Vincent Celier  <celier@gnat.com>
17570
17571         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
17572
17573         * Make-lang.in, Makefile.in: Add gprmake
17574
17575 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
17576
17577         * sem_aggr.adb: Fix typo in comment.
17578
17579 2004-05-03  Robert Dewar  <dewar@gnat.com>
17580
17581         * make.adb: Minor reformatting
17582
17583         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
17584
17585         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
17586         so that it works when address is not a private type.
17587
17588         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
17589         properly with rewritten unchecked conversions. This prevents
17590         order-of-elaboration issues that can otherwise arise.
17591         (Minimum_Size): Don't check size of access types under VMS
17592
17593         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
17594         interpretations of integer literals as type System.Address.
17595
17596         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
17597         (Is_Descendent_Of): New function
17598
17599 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
17600
17601         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17602         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
17603         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
17604
17605         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
17606         of the old Max_Entry_Queue_Depth.
17607
17608         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17609         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
17610         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
17611
17612         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
17613         New entry for proper handling of Max_Entry_Queue_Depth.
17614         New entry for proper handling of No_Dynamic_Interrupts.
17615
17616         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
17617         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17618         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
17619         the GNAT specific restriction Max_Entry_Queue_Depth.
17620         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
17621         the GNAT specific restriction No_Dynamic_Interrupts.
17622
17623         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
17624         instead of the old Boolean_Entry_Barriers.
17625         Use the new restriction No_Dynamic_Attachment instead of the old
17626         No_Dynamic_Interrupts.
17627
17628         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
17629         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17630
17631         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
17632         of the old Max_Entry_Queue_Depth.
17633
17634 2004-05-03  GNAT Script  <nobody@gnat.com>
17635
17636         * Make-lang.in: Makefile automatically updated
17637
17638 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
17639
17640         * checks.adb (Enable_Range_Check): If the prefix of an index component
17641         is an access to an unconstrained array, perform check unconditionally.
17642
17643 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17644
17645         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
17646         Component_Clause.
17647
17648 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
17649
17650         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
17651         alternate stack setting. There was no support for the tasking cases
17652         and the changes eventually caused a number of side-effect failures in
17653         the non-tasking case too.
17654
17655 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
17656
17657         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
17658         -gnats is passed.
17659
17660 2004-04-29  Vincent Celier  <celier@gnat.com>
17661
17662         * make.adb (Gnatmake): Increase max size of argument array for
17663         gnatbind for the potential addition of -F.
17664         If there are Stand-Alone Library projects, invoke gnatbind with -F to
17665         be sure that elaboration flags will be checked.
17666
17667         * switch-c.adb: Correct call to Scan_Pos for -gnateI
17668
17669 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
17670
17671         * sem_warn.adb (Check_References): Move '<access-variable> may be
17672         null' warning out of under Warn_On_No_Value_Assigned.
17673
17674 2004-04-29  Ed Falis  <falis@gnat.com>
17675
17676         * gnat_ugn.texi: Fixed texi error
17677
17678 2004-04-29  Robert Dewar  <dewar@gnat.com>
17679
17680         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
17681         abstract operations if they come from predefined files.
17682
17683         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
17684         Dynamic, not RM).
17685
17686         * s-addope.adb: Correct obvious error in mod function
17687
17688 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
17689
17690         * Makefile.in: Add target pairs for powerpc darwin*
17691         tasking support.
17692
17693         * a-intnam-darwin.ads, s-osinte-darwin.adb,
17694         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
17695
17696 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17697
17698         * Makefile.in: Add target macro definitions for s390*-linux*.
17699         * system-linux-s390.ads: New file.
17700         * system-linux-s390x.ads: New file.
17701
17702 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
17703
17704         * gnat_ugn.texi: Correct argument to @setfilename.
17705
17706 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17707
17708         * a-exexpr.adb (Unwind_Word): New data type.
17709         (Unwind_Exception): Use it as type of Private1 and Private2.
17710
17711         * raise.c (db_action_for): Fix debug printf.
17712
17713 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
17714
17715         * a-wtmoio.ads: Formal type must be a modular type, not a signed
17716         integer type.
17717
17718 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17719
17720         * decl.c (gnat_to_gnu_entity, case object): Call
17721         __builtin_update_setjmp_buf.
17722
17723         * gigi.h (update_setjmp_buf): Deleted.
17724         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
17725
17726         * misc.c: (update_setjmp_buf): Deleted.
17727
17728         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
17729         around block of RTL.
17730
17731         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
17732
17733 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
17734
17735         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
17736         subprogram for which no pragma All_Calls_Remote applies, store the
17737         address of the real subprogram in the underlying record type, so local
17738         dereferences do not go through the PCS.
17739
17740 2004-04-26  Robert Dewar  <dewar@gnat.com>
17741
17742         * i-c.ads: Add some type qualifications to avoid ambiguities when
17743         compiling with s-auxdec.ads and a non-private address type.
17744
17745 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
17746
17747         * Makefile.rtl: Fix error in previous check-in:
17748         Add s-addope.o to non tasking object list (rather than tasking object
17749         list).
17750
17751 2004-04-26  Javier Miranda  <miranda@gnat.com>
17752
17753         * sem_aggr.adb: Fix typo in comments
17754         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
17755         Required to check the null-exclusion attribute.
17756
17757         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
17758         case of anonymous access types in record and array components. For a
17759         component definition the level is the same of the enclosing composite
17760         type.
17761
17762         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
17763         that are anonymous access types the level of accessibility depends on
17764         the enclosing type declaration. In order to have this information, set
17765         the scope of the anonymous access type to the enclosing record type
17766         declaration.
17767         (Array_Type_Declaration): In case of components that are anonymous
17768         access types the level of accessibility depends on the enclosing type
17769         declaration. In order to have this information, set the scope of the
17770         anonymous access type to the enclosing array type declaration.
17771
17772         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
17773         access type.
17774
17775         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
17776         renaming of anonymous access-to-constant types allowed if and only if
17777         the renamed object is access-to-constant.
17778
17779         * sem_util.adb (Type_Access_Level): In case of anonymous access types
17780         that are component_definition or discriminants of a nonlimited type,
17781         the level is the same as that of the enclosing component type.
17782
17783 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
17784
17785         * sem_elim.adb: Some minor code reorganization from code reading. Fix
17786         misprint in the function name (File_Name_Match).
17787
17788 2004-04-23  Laurent GUERBY <laurent@guerby.net>
17789
17790         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
17791         install.
17792
17793 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17794
17795         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
17796
17797 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
17798
17799         * adaint.c (__gnat_try_lock): No longer requires that the parent
17800         directory be writable, the directory itself is enough.
17801         (gnat_is_absolute_path): Change profile, so that the call from
17802         GNAT.OS_Lib can be made more efficient.
17803
17804         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
17805         from GNAT.OS_Lib can be made more efficient.
17806
17807         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
17808         one copy of the file name. Found by code reading.
17809
17810 2004-04-23  Vincent Celier  <celier@gnat.com>
17811
17812         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
17813         Correct documentation on gnatmake switches transmitted to the compiler
17814
17815         * ali.ads: Minor comment fix
17816
17817 2004-04-23  Javier Miranda  <miranda@gnat.com>
17818
17819         * sem_ch6.adb: (Confirming Types): Code cleanup
17820
17821         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
17822         subprogram types: E_Anonymous_Access_Subprogram_Type and
17823         E_Anonymous_Access_Protected_Subprogram_Type.
17824
17825 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
17826
17827         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17828         whether a pragma All_Calls_Remote applies to the subprogram on which
17829         'Access is taken.
17830         No functional change is introduced by this revision; the new parameter
17831         will be used to allow calls to local RCI subprograms to be optimized
17832         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17833         as is already done in the PolyORB implementation of the DSA.
17834
17835         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17836         whether a pragma All_Calls_Remote applies to the subprogram on which
17837         'Access is taken.
17838         No functional change is introduced by this revision; the new parameter
17839         will be used to allow calls to local RCI subprograms to be optimized
17840         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17841         as is already done in the PolyORB implementation of the DSA.
17842
17843 2004-04-23  Robert Dewar  <dewar@gnat.com>
17844
17845         * Makefile.rtl: Add entry for s-addope.o in run time library list
17846         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
17847         * s-addope.ads, s-addope.adb: New files.
17848
17849         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
17850         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
17851         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
17852         System.Address to be non-private and signed.
17853
17854         * sem_elim.adb: Minor reformatting (fairly extensive)
17855         Some minor code reorganization from code reading
17856         Add a couple of ??? comments
17857
17858 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17859
17860         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
17861         (tree_transform, case N_If_Statement): Remove non-determinism.
17862
17863         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
17864
17865 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
17866
17867         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
17868         Eliminate' section.
17869
17870         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
17871         no longer used as a parameter name for Eliminate pragma).
17872
17873 2004-04-22  Laurent GUERBY <laurent@guerby.net>
17874
17875         PR optimization/14984
17876         PR optimization/14985
17877         * trans.c (gigi): Fix non determinism leading to bootstrap
17878         comparison failures.
17879
17880 2004-04-21  Pascal Obry  <obry@gnat.com>
17881
17882         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
17883         passed to spawnvp() to properly handle program pathname with spaces on
17884         Win32.
17885
17886 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
17887
17888         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
17889         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
17890         unlocked in case of exceptions.
17891
17892 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17893
17894         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
17895         This function does not exist anymore.
17896
17897 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17898
17899         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
17900
17901         * link.c: Move variables to the __gnat name space.
17902
17903         * Makefile.in: list link.o explicitly when needed.
17904
17905         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
17906
17907 2004-04-21  Javier Miranda  <miranda@gnat.com>
17908
17909         * einfo.adb (Original_Access_Type): New subprogram
17910         (Set_Original_Access_Type): New subprogram
17911         (Write_Field21_Name): Write the name of the new field
17912
17913         * einfo.ads (Original_Access_Type): New field present in access to
17914         subprogram types.
17915         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
17916         E_Anonymous_Access_Protected_Subprogram_Type.
17917
17918         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
17919         subprogram types.
17920
17921         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
17922         to anonymous access to subprogram types.
17923
17924         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
17925         to subprogram types.
17926
17927         * sem_ch3.adb (Access_Definition): Complete decoration of entities
17928         corresponding to anonymous access to subprogram types.
17929         (Analyze_Component_Declaration): Add new actual to the call to
17930         subprogram replace_anonymous_access_to_protected_subprogram.
17931         (Array_Type_Declaration): Add new actual to the call to subprogram
17932         replace_anonymous_access_to_protected_subprogram.
17933         (Process_Discriminants): Add new actual to the call to subprogram
17934         replace_anonymous_access_to_protected_subprogram.
17935         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
17936
17937         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
17938         formal.
17939
17940         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
17941         access to subprogram types.
17942
17943         * sem_util.adb (Has_Declarations): Addition of package_specification
17944         nodes.
17945
17946 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
17947
17948         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
17949         inlined flags to renamed entity only if in current unit.
17950
17951 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17952
17953         * s-parint.ads: Add DSA implementation marker.
17954
17955         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
17956         value of System.Partition_Interface.DSA_Implementation to determine
17957         what version of the distributed systems annex is available (no
17958         implementation, GLADE, or PolyORB).
17959
17960 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17961
17962         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
17963
17964 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17965
17966         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
17967         with new type if alias sets differ.
17968         Fixes ACATS c41103b.
17969
17970 2004-04-21  Vincent Celier  <celier@gnat.com>
17971
17972         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
17973         Add array Lang_Args for the language specific compiling argument
17974         switches.
17975
17976         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
17977
17978 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
17979
17980         * gnat_rm.texi: Update the descripton of the Eliminate pragma
17981         according to the recent changes in the format of the parameters of the
17982         pragma (replacing Homonym_Number with Source_Location).
17983
17984 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
17985
17986         * 5isystem.ads: Removed, unused.
17987
17988         * gnat_rm.texi: Redo 1.13 change.
17989
17990 2004-04-19  Robert Dewar  <dewar@gnat.com>
17991
17992         * s-stoele.ads: Clean up definition of Storage_Offset (the new
17993         definition is cleaner, avoids the kludge of explicit Standard operator
17994         references, and also is consistent with a visible System.Address with
17995         no visible operations.
17996
17997         * s-geveop.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
18000         are made abstract).
18001
18002         * sem_eval.adb: Minor reformatting
18003
18004         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
18005         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
18006         reformatting (new function spec format).
18007
18008         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
18009         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
18010         s-caun64.adb: Add declarations to avoid assumption of visible
18011         operations on type System.Address (since these might not be available
18012         if Address is a non-private type for which the operations are made
18013         abstract).
18014
18015         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
18016
18017         * exp_intr.adb: Minor comment update
18018
18019         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
18020
18021         * 5omastop.adb: Add declarations to avoid assumption of visible
18022         operations on type System.Address (since these might not be available
18023         if Address is a non-private type for which the operations
18024         are made abstract).
18025
18026 2004-04-19  Vincent Celier  <celier@gnat.com>
18027
18028         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
18029
18030         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
18031         defaulted to Ada.
18032
18033         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
18034         defaulted to Ada.
18035         Call Check with Process_Languages.
18036         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
18037         with Process_Languages.
18038         (Recursive_Check): New Boolean parameter Process_Languages. Call
18039         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
18040         Process_Languages.
18041
18042         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
18043
18044         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
18045         parameter Ada_Main, defaulted to True.
18046         Check for Ada specific characteristics only when Ada_Main is True.
18047
18048         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
18049
18050         * prj.adb: (Project_Empty): Add new Project_Data components.
18051
18052         * prj.ads: New types and tables for non Ada languages.
18053         (Project_Data): New components Languages, Impl_Suffixes,
18054         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
18055         Include_Path, Include_Data_Set.
18056
18057         * prj-env.ads, prj-env.adb: Minor reformatting
18058
18059         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
18060         Put subprograms in alphabetical order
18061
18062         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
18063         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
18064         Opt.Follow_Links.
18065
18066         * mlib-prj.adb: Back out modification in last version, as they are
18067         incorrect.
18068         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
18069
18070         * make.adb: (Mains): Moved to package Makeutl
18071         (Linker_Opts): Moved to package Makeutl
18072         (Is_External_Assignment): Moved to package Makeutl
18073         (Test_If_Relative_Path): Moved to package Makeutl
18074         (Gnatmake): Move sorting of linker options to function
18075         Makeutl.Linker_Options_Switches.
18076
18077         * makeutl.ads, makeutl.adb: New files.
18078
18079         * Makefile.in: Add makeutl.o to the object files for gnatmake
18080
18081         * makeusg.adb: Add line for new switch -eL.
18082
18083         * gnatls.adb (Image): New function.
18084         (Output_Unit): If in verbose mode, output the list of restrictions
18085         specified by pragmas Restrictions.
18086
18087         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
18088         Text_IO.
18089
18090         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
18091         needed, to put it in the range 1970 (included) - 2026 (excluded).
18092         (Time_Of): Do not shift Unix_Min_Year (1970).
18093         Shift the date by multiple of 56 years, if needed, to put it in the
18094         range 1970 (included) - 2026 (excluded).
18095
18096         * adaint.h, adaint.c (__gnat_set_executable): New function.
18097
18098 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18099
18100         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
18101         and pop GC context.
18102         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
18103         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
18104         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
18105         (tree_transform, case N_Code_Statement): Likewise.
18106         (gnat_expand_stmt, case LABEL_STMT): Don't look at
18107         LABEL_STMT_FIRST_IN_EH.
18108         (gnat_expand_stmt, case ASM_STMT): New case.
18109
18110         * utils2.c (build_unary_op): Properly set TREE_READONLY of
18111         UNCONSTRAINED_ARRAY_REF.
18112
18113         * utils.c (poplevel): Temporarily push/pop GC context around inline
18114         function expansion.
18115
18116         * decl.c (maybe_variable): Properly set TREE_READONLY of
18117         UNCONSTRAINED_ARRAY_REF.
18118         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
18119
18120         * ada-tree.def: (ASM_STMT): New.
18121
18122         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
18123         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
18124         ASM_STMT_INPUT): New.
18125         (ASM_STMT_CLOBBER): Likewise.
18126
18127 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
18128
18129         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
18130         general rcheck mechanism to raise Program_Error for E.4(18), instead
18131         of a custom raiser in System.Partition_Interface.
18132         Part of general cleanup work before PolyORB integration.
18133
18134         * snames.ads, snames.adb: Add new runtime library entities and names
18135         for PolyORB DSA.
18136
18137         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18138         exp_dist.
18139         (Build_Subprogram_Id): New subprogram provided by exp_dist
18140         Code reorganisation in preparation for PolyORB integration.
18141
18142         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18143         exp_dist.
18144         (Build_Subprogram_Id): New subprogram provided by exp_dist
18145
18146         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
18147         actual parameter types for call to dereference of an
18148         access-to-subprogram type.
18149
18150         * rtsfind.ads: Add new runtime library entities and names for PolyORB
18151         DSA.
18152
18153         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
18154         instead, which has the same behaviour here since we never pass it a
18155         NULL pointer.
18156
18157         * link.c (run_path_option, Solaris case): Use -Wl, as for other
18158         platforms.
18159
18160         * Makefile.in: adjust object file lists for gnatlink and gnatmake
18161         to account for new dependency upon Interfaces.C.Strings + link.o
18162         For x86 FreeBSD, use 86numaux.
18163
18164         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
18165         from Mlib.Tgt to Mlib.
18166
18167         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
18168         target-independent.
18169
18170         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
18171         target-specific versions of this subprogram, now implemented as a
18172         target-independent function in Mlib.
18173
18174         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
18175         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
18176         (Linker_Library_Path_Option): Remove target-specific versions of this
18177         subprogram, now implemented as a target-independent function in Mlib.
18178
18179         * atree.adb: (Allocate_Initialize_Node): New subprogram.
18180         Factors out node table slots allocation.
18181         (Fix_Parents): New subprogram.
18182         Encapsulate the pattern of fixing up parent pointers for syntactic
18183         children of a rewritten node.
18184         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
18185         (Rewrite): Use New_Copy when creating saved copy of original node.
18186         (Replace): Use Copy_Node to copy nodes.
18187
18188 2004-04-19  Javier Miranda  <miranda@gnat.com>
18189
18190         * sprint.adb (Sprint_Node_Actual): Give support to the new
18191         Access_To_Subprogram node available in Access_Definition nodes. In
18192         addition, give support to the AI-231 node fields: null-exclusion,
18193         all-present, constant-present.
18194
18195         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
18196
18197         * sinfo.ads, sinfo.adb:
18198         New field Access_To_Subprogram_Definition in Access_Definition nodes
18199
18200         * sem_ch6.adb (Process_Formals): Move here the code that creates and
18201         decorates internal subtype declaration corresponding to the
18202         null-excluding formal. This code was previously in Set_Actual_Subtypes.
18203         In addition, carry out some code cleanup on this code. In case of
18204         access to protected subprogram call
18205         Replace_Anonymous_Access_To_Protected_Subprogram.
18206         (Set_Actual_Subtypes): Code cleanup.
18207
18208         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
18209         Find_Type in case of anonymous access renamings. Add warning in case of
18210         null-excluding attribute used in anonymous access renaming.
18211
18212         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
18213         subprogram
18214
18215         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
18216         subprogram.
18217         (Access_Definition): In case of anonymous access to subprograms call
18218         the corresponding semantic routine to decorate the node.
18219         (Access_Subprogram_Declaration): Addition of some comments indicating
18220         some code that probably should be added here. Detected by comparison
18221         with the access_definition subprogram.
18222         (Analyze_Component_Declaration): In case of access to protected
18223         subprogram call Replace_Anonymous_Access_To_Protected.
18224         (Array_Type_Declaration): In case of access to protected subprogram call
18225         Replace_Anonymous_Access_To_Protected_Subprogram.
18226         (Process_Discriminants): In case of access to protected subprogram call
18227         Replace_Anonymous_Access_To_Protected_Subprogram.
18228
18229         * par.adb (P_Access_Definition): New formal that indicates if the
18230         null-exclusion part was present.
18231         (P_Access_Type_Definition): New formal that indicates if the caller has
18232         already parsed the null-excluding part.
18233
18234         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
18235         (P_Identifier_Declarations): Code cleanup and give support to renamings
18236         of anonymous access to subprogram types.
18237         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
18238         (P_Array_Type_Definition): Give support to AI-254.
18239         (P_Component_Items): Give support to AI-254.
18240         (P_Access_Definition): New formal that indicates if the header was
18241         already parsed by the caller.
18242         (P_Access_Type_Definition): New formal that indicates if the caller has
18243         already parsed the null-excluding part.
18244
18245         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
18246         call to P_Access_Definition.
18247
18248 2004-04-19  Geert Bosch  <bosch@gnat.com>
18249
18250         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
18251         the delicate semantics of floating-point to integer conversion.
18252         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
18253
18254         * eval_fat.adb (Machine_Mantissa): Moved to spec.
18255         (Machine_Radix): New function.
18256
18257         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
18258         conversion checks.
18259         (Machine_Radix): New function also for use in conversion checks.
18260
18261 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
18262
18263         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
18264
18265         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
18266         to decorate the access-to-protected subprogram and the equivalent type.
18267
18268         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
18269         to anonymous access to subprogram types.
18270
18271         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
18272         constant-folding, for legality checks in contexts that require an RM
18273         static expression.
18274
18275         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
18276         temporary but stack checking is not enabled, increment serial number
18277         to so that symbol generation is consistent with and without stack
18278         checking.
18279
18280         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
18281         independent on whether stack checking is enabled, caller must check
18282         the corresponding flag.
18283
18284         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
18285         range checks.
18286         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
18287         parent if it has discriminants.
18288         (Build_Derived_Private_Type): Constructed full view does
18289         not come from source.
18290         (Process_Discriminants): Default discriminants on a tagged type are
18291         legal if this is the internal completion of a private untagged
18292         derivation.
18293
18294         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
18295         no constraint checks, because it corresponds to an existing object.
18296
18297         * sem_prag.adb (Process_Convention): Pragma applies
18298         only to subprograms in the same declarative part, i.e. the same unit,
18299         not the same scope.
18300
18301         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
18302         ignore type mismatch on a numeric conversion if expression comes from
18303         expansion.
18304
18305 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
18306
18307         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
18308         Homonym_Number parameter, add processing for Source_Location parameter
18309         corresponding.
18310         (Check_Eliminated): Remove the check for homonym numbers, add the check
18311         for source location traces.
18312
18313         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
18314         with Arg_Source_Location corresponding to the changes in the format of
18315         the pragma.
18316
18317         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
18318         Eliminate pragma corresponding to the changes in the format of the
18319         pragma: Homonym_Number is replaced with Source_Location, two ways of
18320         distinguishing homonyms are mutially-exclusive.
18321
18322 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
18323
18324         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
18325
18326         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
18327         No_Dollar_In_Label, no longer necessary, as it is always True.
18328         (Strip_Suffixes): Likewise.
18329
18330 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
18331
18332         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
18333         modulus for compatibility with size clause on targets with 16-bit
18334         Integer.
18335
18336         * layout.adb (Discrimify): In the case of private types, set Vtyp to
18337         full type to fix type mismatches on calls to size functions for
18338         discriminant-dependent array components.
18339
18340 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
18341
18342         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
18343         lib.
18344
18345 2004-04-19  Pascal Obry  <obry@gnat.com>
18346
18347         * mdll-utl.adb (Locate): New version is idempotent.
18348
18349 2004-04-17  Laurent Guerby <laurent@guerby.net>
18350
18351         PR ada/14988 (partial)
18352         * impunit.adb: Fix typo.
18353
18354 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
18355
18356         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
18357         and install-rts-cert targets.  Remove all gnatlib and gnattools
18358         targets and all other rts-* targets (moved to libada).  Remove (now)
18359         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
18360         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
18361
18362 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18363
18364         * trans.c (tree_transform): Shortcut returning error_mark_node for
18365         statements in annotate_only_mode.
18366         (tree_transform, case N_Label, case N_Return_Statement,
18367         N_Goto_Statement): Make statement tree instead of generating code.
18368         (tree_transform, case N_Assignment_Statement): No longer check
18369         type_annotate_only.
18370         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
18371         RETURN_STMT): New.
18372         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
18373         New fcns.
18374         (gnat_to_gnu): Collect any RTL generated and deal with it.
18375         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
18376         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
18377         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
18378
18379         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
18380
18381         * ada-tree.def (EXPR_STMT): Fix typo in name.
18382         (BLOCK_STMT, IF_STMT): New nodes.
18383
18384         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
18385         LABEL_STMT_FIRST_IN_EH): New macros.
18386         (RETURN_STMT_EXPR): Likewise.
18387
18388         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
18389         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
18390
18391 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18392
18393         * atree.ads: Correct documentation on extended nodes.
18394
18395         * link.c: Set run_path_option for FreeBSD.
18396
18397 2004-04-08  Vincent Celier  <celier@gnat.com>
18398
18399         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
18400         one of the ALI file, do not link with DEC lib.
18401
18402         * par.adb Remove the last two characters ("%s" or "%b") when checking
18403         if a language defined unit may be recompiled.
18404
18405 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
18406
18407         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
18408         removal of abstract operation leaves no possible interpretation for
18409         expression.
18410
18411         * sem_eval.adb (Eval_Qualified_Expression): Use
18412         Set_Raises_Constraint_Error on node when needed, so that it does not
18413         get optimized away by subsequent optimizations.
18414
18415         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
18416         operands even when they are not wrapped in a type conversion.
18417
18418 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
18419
18420         * sem_prag.adb (Set_Exported): Warn about making static as result of
18421         export only when the export is coming from source. This may be not
18422         be true e.g. on VMS where we expand export pragmas for exception codes
18423         together with imported or exported exceptions, and we don't want the
18424         user to be warned about something he didn't write.
18425
18426 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18427
18428         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
18429         duplication between normal entities and those declared as renamings.
18430         No functional change.
18431
18432         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
18433         inline functions returning an unconstrained result.
18434
18435 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
18436
18437         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
18438         conform to what other front-ends do.
18439
18440 2004-04-08  Doug Rupp  <rupp@gnat.com>
18441
18442         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
18443         libraries.
18444
18445 2004-04-06  Pascal Obry  <obry@gnat.com>
18446
18447         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
18448
18449         * osint.adb (Program_Name): Do not look past a directory separator.
18450
18451 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
18452
18453         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
18454
18455         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
18456         requirement for preserving a copy of the original assignment node.
18457
18458         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
18459
18460 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
18461
18462         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
18463         when supported.
18464
18465 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
18466
18467         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
18468         operator calls in functional notation, and apply
18469         Universal_Interpretation to operands, not to their type.
18470
18471 2004-04-06  Robert Dewar  <dewar@gnat.com>
18472
18473         * 5wdirval.adb: Minor reformatting
18474
18475 2004-04-06  Ed Falis  <falis@gnat.com>
18476
18477         * gnat_rm.texi: Improve a reference to the GCC manual
18478
18479 2004-04-05  Vincent Celier  <celier@gnat.com>
18480
18481         * adaint.h, adaint.c: Add function __gnat_named_file_length
18482
18483         * impunit.adb: Add Ada.Directories to the list
18484
18485         * Makefile.in: Add VMS and Windows versions of
18486         Ada.Directories.Validity package body.
18487
18488         * Makefile.rtl: Add a-direct and a-dirval
18489
18490         * mlib-tgt.ads: Minor comment update.
18491
18492         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
18493         a-direct.ads, a-direct.adb: New files.
18494
18495 2004-04-05  Vincent Celier  <celier@gnat.com>
18496
18497         PR ada/13620
18498         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
18499         just to the compiler.
18500
18501 2004-04-05  Robert Dewar  <dewar@gnat.com>
18502
18503         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
18504         returned string is 1.
18505
18506         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
18507
18508         * eval_fat.ads: Minor reformatting
18509
18510         * g-curexc.ads: Document that lower bound of returned string values
18511         is always one.
18512
18513         * gnatlink.adb: Add ??? comment for previous change
18514         (need to document why this is VMS specific)
18515
18516         * s-stoele.ads: Minor reformatting
18517
18518         * tbuild.ads: Minor reformatting throughout (new function specs)
18519
18520         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
18521         after WITH.
18522
18523         * scng.adb: Minor reformatting
18524
18525 2004-04-05  Geert Bosch  <bosch@gnat.com>
18526
18527         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
18528         (Leading_Part): Still perform truncation to machine number if the
18529         specified radix_digits is greater or equal to machine_mantissa.
18530
18531 2004-04-05  Javier Miranda  <miranda@gnat.com>
18532
18533         * par-ch3.adb: Complete documentation of previous change
18534         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
18535         (aliased must appear before constant).
18536
18537         * par-ch4.adb: Complete documentation of previous change.
18538
18539         * par-ch6.adb: Complete documentation of previous change.
18540
18541         * sinfo.ads: Fix typo in commment.
18542
18543 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
18544
18545         * sem_ch3.adb (Inherit_Components): If derived type is private and has
18546         stored discriminants, use its discriminants to constrain parent type,
18547         as is done for non-private derived record types.
18548
18549         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
18550         Ada 2005 AI-310: an abstract non-dispatching operation is not a
18551         candidate interpretation in an overloaded call.
18552
18553         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
18554         expression is Null and target type is not an access type (e.g. a
18555         non-private address type).
18556
18557 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
18558
18559         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
18560         statement whose right-hand side is an inlined call, save a copy of the
18561         original assignment subtree to preserve enough consistency for
18562         Analyze_Assignment to proceed.
18563
18564         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
18565         complete assignment subtree which is now unnecessary, as the expansion
18566         of inlined call has been improved to preserve a consistent assignment
18567         tree.  Note_Possible_Modification must be called only
18568         after checks have been applied, or else unnecessary checks will
18569         be generated.
18570
18571         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
18572         of explicit dereferences that do not Come_From_Source:
18573          - be selective on cases where we must go back to the dereferenced
18574            pointer (an assignment to an implicit dereference must not be
18575            recorded as modifying the pointer);
18576          - do not rely on Original_Node being present (Analyze_Assignment
18577            calls Note_Possible_Modification on a copied tree).
18578
18579         * sem_warn.adb (Check_References): When an unset reference to a pointer
18580         that is never assigned is encountered, prefer '<pointer> may be null'
18581         warning over '<pointer> is never assigned a value'.
18582
18583 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
18584
18585         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
18586         the ABI.
18587
18588 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
18589
18590         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
18591         libexc. We currently don't reference anything in this library and
18592         linking it in triggers linker warnings we don't want to see.
18593
18594         * init.c: Update comments.
18595
18596 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18597
18598         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
18599         * utils.c (create_field_decl): Likewise.
18600         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
18601
18602 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
18603
18604         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
18605         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
18606         Add info directory entry and category.
18607
18608 2004-04-02  Jan Hubicka  <jh@suse.cz>
18609
18610         * utils.c: Include function.h
18611         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
18612
18613 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18614
18615         PR ada/14150
18616         * Make-lang.in: Clean up generation of documentation
18617
18618         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
18619
18620         * xgnatug.adb: Removed, replaced by xgnatugn.adb
18621
18622         * xgnatugn.adb: Replaces xgnatug.adb
18623
18624         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
18625
18626         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
18627
18628         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
18629         gnat_ug_wnt.texi: Removed.
18630
18631 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18632
18633         * utils2.c: Update copyright notice.
18634
18635 2004-04-01  Robert Dewar  <dewar@gnat.com>
18636
18637         * checks.adb: Minor reformatting throughout
18638         Note that prev checkin added RM reference to alignment warning
18639
18640 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
18641
18642         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
18643         non-static when building aggregate for bit-packed array.
18644
18645         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
18646         function call that is itself the actual in a procedure call, build
18647         temporary for it.
18648
18649         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
18650         a string literal, create a temporary for it, constant folding only
18651         handles scalars here.
18652
18653 2004-04-01  Vincent Celier  <celier@gnat.com>
18654
18655         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
18656         Error_Msg_SP): New empty procedures to instantiate the Scanner.
18657         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
18658         tokens.
18659         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
18660         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
18661         and get the checksum.
18662
18663         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
18664         already in the Q.
18665         Increase the Marking_Label at the end of the Multiple_Main_Loop,
18666         instead of at the beginning.
18667
18668         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
18669         directly.
18670         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
18671         on VMS.
18672
18673         * osint.ads (Multi_Unit_Index_Character): New Character global variable
18674
18675         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
18676         not '~' directly.
18677
18678         * par.adb: Remove test on file name to detect language defined units.
18679         Add test on unit name, after parsing, to detect language defined units
18680         that are not compiled with -gnatg (except System.RPC and its children)
18681
18682         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
18683         following units without style checking.
18684
18685         * switch-c.adb: Change -gnatC to -gnateI
18686
18687         * usage.adb: Document new switch -gnateInnn
18688
18689         * scng.adb (Accumulate_Token_Checksum): New procedure
18690         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
18691         word or literal number.
18692         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
18693         numbers.
18694
18695 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
18696
18697         * a-tasatt.adb,
18698         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
18699         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
18700         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
18701         5vtpopde.adb: Add missing 'constant' keywords.
18702
18703 2004-04-01  Javier Miranda  <miranda@gnat.com>
18704
18705         * par-ch4.adb: (P_Allocator): Code cleanup
18706
18707         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
18708         attribute.
18709
18710         * sinfo.ads: Complete documentation of previous change
18711
18712 2004-04-01  Pascal Obry  <obry@gnat.com>
18713
18714         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
18715         only on VMS.  This special handling was done because an old GNU/ld bug
18716         on Windows which has been fixed.
18717
18718 2004-04-01  GNAT Script  <nobody@gnat.com>
18719
18720         * Make-lang.in: Makefile automatically updated
18721
18722 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18723
18724         * decl.c (gnat_to_gnu_entity, make_type_from_size):
18725         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
18726         * trans.c (tree_transform, convert_with_check): Likewise.
18727         * utils.c (gnat_signed_or_unsigned_type): Likewise.
18728         (build_vms_descriptor, unchecked_convert): Likewise.
18729         * utils2.c (nonbinary_modular_operation): Likewise.
18730
18731 2004-03-29  Javier Miranda  <miranda@gnat.com>
18732
18733         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
18734         (Install_Null_Excluding_Check): Local subprogram that determines whether
18735         an access node requires a runtime access check and if so inserts the
18736         appropriate run-time check.
18737         (Apply_Access_Check): Call Install_Null_Excluding check if required
18738         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
18739
18740         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
18741
18742         * einfo.ads: Fix typo in comment
18743
18744         * exp_ch3.adb (Build_Assignment): Generate conversion to the
18745         null-excluding type to force the corresponding run-time check.
18746         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
18747         type to force the corresponding run-time check.
18748
18749         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
18750         the null-excluding type to force the corresponding run-time check.
18751
18752         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
18753         case of access types unless they have the null-excluding attribute.
18754
18755         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
18756         part.
18757
18758         * exp_util.ads: Fix typo in comment
18759
18760         * par.adb (P_Null_Exclusion): New subprogram
18761         (P_Subtype_Indication): New formal that indicates if the null-excluding
18762         part has been scanned-out and it was present
18763
18764         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
18765
18766         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
18767         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
18768         type to force the corresponding run-time check
18769         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
18770         components
18771         (Resolve_Array_Aggregate): Carry out some static checks
18772         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
18773
18774         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
18775         attribute must be set only if specified by means of the null-excluding
18776         part. In addition, we must also propagate the access-constant attribute
18777         if present.
18778         (Access_Subprogram_Declaration, Access_Type_Declaration,
18779         Analyze_Component_Declaration, Analyze_Object_Declaration,
18780         Array_Type_Declaration, Process_Discriminants,
18781         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
18782         and carry out some static checks.
18783         (Build_Derived_Access_Type): Set the null-excluding attribute
18784         (Derived_Type_Declaration, Process_Subtype): Carry out some static
18785         checks.
18786
18787         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
18788
18789         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
18790
18791         * sem_ch6.adb (Process_Formals): Carry out some static checks.
18792         (Set_Actual_Subtypes): Generate null-excluding subtype if the
18793         null-excluding part was present; it is not required to be done here in
18794         case of anonymous access types.
18795         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
18796         value.
18797
18798         * sem_res.adb (Resolve_Actuals): Carry out some static check
18799         (Resolve_Null): Allow null in anonymous access
18800
18801         * sinfo.adb: New subprogram Null_Exclusion_Present
18802         All_Present and Constant_Present available on access_definition nodes
18803
18804         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
18805         object_declaration, derived_type_definition, component_definition,
18806         discriminant_specification, access_to_object_definition,
18807         access_function_definition, allocator, access_procedure_definition,
18808         access_definition, parameter_specification, All_Present and
18809         Constant_Present flags available on access_definition nodes.
18810
18811 2004-03-29  Robert Dewar  <dewar@gnat.com>
18812
18813         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
18814         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
18815         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
18816         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
18817         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
18818         sem_prag.adb: Updates to handle multiple units/file
18819
18820         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
18821
18822         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
18823         sem_util.adb: Minor reformatting
18824
18825         * sem_ch12.adb: Add comment for previous change
18826
18827 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
18828
18829         * osint.adb (Executable_Prefix): Set Exec_Name to the current
18830         executable name when not initialized. Otherwise, use its current value.
18831
18832         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
18833         initialize it to another executable name than the current one. This
18834         allows to configure paths for an executable name (gnatmake) different
18835         from the current one (gnatdist).
18836
18837 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
18838
18839         * exp_ch6.adb (Expand_Call): A call to a function declared in the
18840         current unit cannot be inlined if it appears in the body of a withed
18841         unit, to avoid order of elaboration problems in gigi.
18842
18843         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
18844         information for protected (wrapper) operation as well, to simplify gdb
18845         use.
18846
18847         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
18848         protected body, indicate that the entity for the generated spec comes
18849         from source, to ensure that references are properly generated for it.
18850         (Build_Body_To_Inline): Do not inline a function that returns a
18851         controlled type.
18852
18853         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
18854         apply convention to homonyms that are declared explicitly.
18855
18856         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
18857         that renames an equality operator and the operands are overloaded,
18858         resolve them with the declared formal types, before rewriting as an
18859         operator.
18860
18861 2004-03-29  GNAT Script  <nobody@gnat.com>
18862
18863         * Make-lang.in: Makefile automatically updated
18864
18865 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
18866
18867         * memtrack.adb: Log realloc calls, which are treated as free followed
18868         by alloc.
18869
18870 2004-03-25  Vincent Celier  <celier@gnat.com>
18871
18872         * prj-makr.adb (Process_Directories): Detect when a file contains
18873         several units. Do not include such files in the config pragmas or
18874         in the naming scheme.
18875
18876         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
18877         Resolve links only when not in Trusted_Mode.
18878         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
18879         Do not resolve links for the display names.
18880
18881         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
18882         resolve links when computing the display names.
18883
18884 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
18885
18886         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
18887         attribute reference does not denote a subtype, it can be any
18888         expression that has a classwide type, potentially after an implicit
18889         dereference.  In particular, the prefix can be a view conversion for
18890         a classwide type (for which Is_Object_Reference holds), but it can
18891         also be a value conversion for an access-to-classwide type. In the
18892         latter case, there is an implicit dereference, and the original node
18893         for the prefix does not verify Is_Object_Reference.
18894
18895         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
18896         conversion of a discriminant-dependent component of a mutable object
18897         is one itself.
18898
18899 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
18900
18901         * freeze.adb (Freeze_Entity): When an inherited subprogram is
18902         inherited, has convention C, and has unconstrained array parameters,
18903         place the corresponding warning on the derived type declaration rather
18904         than the original subprogram.
18905
18906         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
18907         indication on renaming declaration, if formal has a box and actual
18908         is absent.
18909
18910         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
18911         determine whether to generate an implicit or explicit reference to
18912         the renamed entity.
18913
18914         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
18915         subprogram renaming comes from a defaulted formal subprogram in an
18916         instance.
18917
18918 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
18919
18920         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
18921         value expressions to ensure that calls within a component definition
18922         will be checked (since those are evaluated during the record type's
18923         elaboration).
18924
18925 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
18926
18927         * s-tpobop.adb: Code clean up:
18928         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
18929         code.
18930         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
18931
18932 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
18933
18934         * Makefile.in: Clean up in the ravenscar run time.
18935
18936 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18937
18938         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
18939         of No_Strict_Aliasing to build_pointer_type_for_mode.
18940         * utils.c (update_pointer_to): Walk pointer and ref chains.
18941
18942 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
18943
18944         * ali.ads: Fix Comment about Dynamic_Elab.
18945
18946         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
18947         Has_RACW, Is_Generic, etc.)
18948         (Output_Object, Gnatls): Take into account ALI files not attached to
18949         an object.
18950
18951 2004-03-22  Vincent Celier  <celier@gnat.com>
18952
18953         * gprep.adb: Change all String_Access to Name_Id
18954         (Is_ASCII_Letter): new function
18955         (Double_File_Name_Buffer): New procedure
18956         (Preprocess_Infile_Name): New procedure
18957         (Process_Files): New procedure
18958         (Gnatprep): Check if output and input are existing directories.
18959         Call Process_Files to do the real job.
18960
18961 2004-03-22  Robert Dewar  <dewar@gnat.com>
18962
18963         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
18964         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
18965
18966 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
18967
18968         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
18969         case when the source contains only comments.
18970
18971 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
18972
18973         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
18974         declaration for a child subprogram body that acts as a spec, indicate
18975         that the entity in the declaration needs debugging information.
18976
18977         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
18978         full view if the subtype is created for a constrained record component;
18979         gigi has enough information to construct the record, and there is no
18980         place in the tree for the declaration.
18981
18982         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
18983         serial number for the dummy body that is built for analysis, to avoid
18984         inconsistencies in the generation of internal names when compiling
18985         with -gnatN.
18986
18987 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
18988
18989         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
18990         object.
18991
18992 2004-03-22  GNAT Script  <nobody@gnat.com>
18993
18994         * Make-lang.in: Makefile automatically updated
18995
18996 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18997
18998         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
18999         * trans.c (tree_transform, emit_index_check): Likewise.
19000         * utils.c (build_template): Likewise.
19001         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
19002         (maybe_unconstrained_array, unchecked_convert): Likewise.
19003         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
19004         (build_unary_op): Likewise.
19005         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
19006         (fill_vms_descriptor): Likewise.
19007         (build_call_alloc_dealloc): Likewise.
19008         ALIGN is unsigned.
19009         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
19010
19011 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
19012
19013         PR other/14630
19014         * gnat_ug.texi: Add info directory category and entry.
19015         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
19016         gnat_ug_wnt.texi: Regenerate.
19017
19018 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
19019
19020         * ada-tree.h: Update copyright notice.
19021         Minor reformatting.
19022
19023 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
19024
19025         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
19026         as regular exception objects and not as mere integers representing the
19027         condition code.  The latter approach required some dynamics to mask off
19028         severity bits, which did not fit well into the GCC table based model.
19029         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
19030         exception data objects. We don't it and it would conflict with the other
19031         external symbol we have to generate for such exceptions.
19032
19033         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
19034         the special code for VMS exceptions, since these are now represented
19035         as regular exceptions objects.
19036
19037 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19038
19039         * decl.c (debug_no_type_hash): Remove.
19040         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
19041         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
19042
19043 2004-03-19  Laurent Guerby <laurent@guerby.net>
19044
19045         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
19046         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
19047
19048 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19049
19050         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
19051         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
19052         (TYPE_RM_SIZE_INT): Directly use type.values.
19053         (TREE_LOOP_ID): Clean up check.
19054         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
19055         TYPE_VALUES, not TYPE_FIELDS.
19056         * trans.c (convert_with_check): Delay access of bounds of basetype
19057         until sure is numeric.
19058
19059 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
19060
19061         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
19062
19063         Code clean up:
19064         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
19065         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
19066         Specific.Set instead of direct call to e.g pthread_setspecific.
19067
19068 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
19069
19070         * adaint.c: Update comments.
19071
19072         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
19073         GNATLIB_SHARED for FreeBSD.
19074
19075 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
19076
19077         * init.c [VxWorks]: Do not fix the stack size for the environment task.
19078         When needed (stack checking) the stack size is retrieved
19079         from the VxWorks kernel.
19080
19081         * Makefile.in: Flag -nostdinc is required when building the run time
19082         for avoiding looking for files in the base compiler.
19083         Add the VxWorks specific version of the package body for
19084         System.Stack_checking.Operations (5zstchop.adb).
19085
19086         * Make-lang.in: Add the object file for
19087         System.Stack_Checking.Operations.
19088
19089         * Makefile.rtl: Add object file for the package
19090         System.Stack_Checking.Operations.
19091
19092         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
19093
19094         * s-stache.ads, s-stache.adb: Move the operations related to stack
19095         checking from this package to package System.Stack_Checking.Operations.
19096         This way, stack checking operations are only linked in the final
19097         executable when using the -fstack-check flag.
19098
19099 2004-03-18  Doug Rupp  <rupp@gnat.com>
19100
19101         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
19102         Reorganize ifeq's.
19103
19104         * 5qsystem.ads, 5xcrtl.ads: New files.
19105
19106 2004-03-18  Vincent Celier  <celier@gnat.com>
19107
19108         * prj.adb (Reset): Reset hash table Files_Htable
19109
19110         * prj-env.adb (Source_Paths, Object_Paths): New tables.
19111         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
19112         the procedures Add_To_Path_File.
19113         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
19114         making sure that each directory is present only once and, for object
19115         dirs, when a directory already present is added, the duplicate is
19116         removed and the directory is always put as the last in the table.
19117         Write the path files at the end of these accumulations.
19118
19119         * prj-nmsc.adb (Record_Source): Add source file name in hash table
19120         Files_Htable for all sources.
19121
19122         * prj-proc.adb (Process): Remove restrictions between not directly
19123         related extending projects.
19124
19125 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
19126
19127         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
19128         (Find_Sources): Minor speed optimization.
19129
19130         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
19131         parameter Trusted_Mode.
19132
19133 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
19134
19135         * scn.adb (Determine_License): Take into account a degenerated case
19136         when the source contains only comments.
19137
19138 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
19139
19140         * sem_warn.adb (Check_References): For a warning on a selected
19141         component that does not come from source, locate an uninitialized
19142         component of the record type to produce a more precise error message.
19143
19144 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
19145
19146         * 3zsoccon.ads: Fix multicast options.
19147
19148         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
19149         in the spec.
19150
19151 2004-03-15  Robert Dewar  <dewar@gnat.com>
19152
19153         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
19154         pragma used for a private type.
19155
19156         * lib-xref.adb (Generate_Reference): Do not generate warning if
19157         reference is in a different unit from the pragma Unreferenced.
19158
19159         * 5vtpopde.adb: Minor reformatting
19160         Fix casing of To_Task_ID
19161
19162         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
19163         flag if we have an unchecked conversion to an access type in the same
19164         unit.
19165
19166 2004-03-15  Geert Bosch  <bosch@gnat.com>
19167
19168         * a-ngcoty.adb (Modulus): In alternate formula for large real or
19169         imaginary parts, use Double precision throughout.
19170
19171         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
19172         we want to be able to compile run-time with -gnata for testing, but
19173         this may also be instantiated in user code that is compiled with -gnata.
19174
19175 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
19176
19177         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
19178         codes. Having a separate type for this is useful to enforce consistency
19179         throughout the various run-time units.
19180         (Exception_Data): Use Exception_Code for Import_Code.
19181
19182         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
19183         Natural and Integer in various places.
19184         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
19185         with the severity bits masked off.
19186         (Register_VMS_Exception): Handle the additional exception data pointer
19187         argument.
19188
19189         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
19190         component, now reflected by an exported accessor.
19191         (is_handled_by): New routine to compute whether the propagated
19192         occurrence matches some handler choice specification. Extracted out of
19193         get_action_description_for, and expanded to take care of the VMS
19194         specifities.
19195         (get_action_description_for): Use is_handled_by instead of an explicit
19196         complex condition to decide if the current choice at hand catches the
19197         propagated occurrence.
19198
19199         * raise.h (Exception_Code): New type for C.
19200
19201         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
19202         System.Standard_Library.Exception_Code, to allow references from the
19203         pragma import/export expander.
19204
19205         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
19206         New accessors to allow easy access to GNAT exception data
19207         characteristics.
19208         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
19209         redundant Handled_By_Others component, helper for the personality
19210         routine which will now be able to call the appropriate exception data
19211         accessor instead.
19212
19213         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
19214         component of Standard_Exception_Type to be the closest possible to
19215         Exception_Code in System.Standard_Library, that we cannot get at this
19216         point. Expand a ??? comment to notify that this type node should
19217         probably be rewritten later on.
19218
19219         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
19220         registration call to include a pointer to the exception object in the
19221         arguments.
19222
19223         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
19224         instead of int and explicit bitmasks.
19225
19226 2004-03-15  Vincent Celier  <celier@gnat.com>
19227
19228         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
19229         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
19230
19231         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
19232         longer needed now that it is in the spec of
19233         System.Tasking.Task_Attributes.
19234
19235         * adaint.h, adaint.c: (__gnat_create_output_file): New function
19236
19237         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
19238
19239         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
19240
19241         * make.adb (Gnatmake): Do not check the executable suffix; it is being
19242         taken care of in Scan_Make_Arg.
19243         (Scan_Make_Arg): Add the executable suffix only if the argument
19244         following -o, in canonical case, does not end with the executable
19245         suffix.  When in verbose mode and executable file name does not end
19246         with executable suffix, output the executable name, in canonical case.
19247
19248         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
19249         to avoid warnings when instantiating Ada.Task_Attributes.
19250         Minor reformating.
19251
19252         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
19253         in the correct order.
19254
19255         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
19256         redirect standard output and error to a file for the invocation of the
19257         compiler, then read the file.
19258
19259         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
19260         directory, instead of the Value.
19261         (Find_Source_Dirs): Remove useless code & comments.
19262
19263 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
19264
19265         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
19266         tagged type is inherited, and the parent operation is not frozen yet,
19267         force generation of a freeze node for the inherited operation, so the
19268         corresponding dispatch entry is properly initialized.
19269         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
19270         when looking for user-defined equality operation.
19271
19272         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
19273         boolean when locating primitive equality of tagged component.
19274
19275         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
19276         bit-aligned field and the right-hand side a string literal, introduce
19277         a temporary before expanding assignment into a loop.
19278
19279         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
19280         priority in full, to ensure that any expanded subepxressions of it are
19281         elaborated in the scope of the init_proc.
19282
19283         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
19284         after object declaration, skipping over code that may have been
19285         generated for validity checks.
19286
19287         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
19288         discriminants, ignore the known discriminants of its full view, if
19289         any, to check legality.
19290
19291         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
19292         component if type has unknown discriminants.
19293         (Analyze_Private_Extension_Declaration): Discriminant constraint is
19294         null if type has unknown discriminants.
19295
19296         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
19297         for end label when present.
19298
19299         * s-fileio.adb (Open): When called with a C_Stream, use given name for
19300         temporary file, rather than an empty string.
19301
19302 2004-03-15  Ed Falis  <falis@gnat.com>
19303
19304         * s-thread.adb: Removed, no longer used.
19305
19306 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19307
19308         * decl.c (target.h): Now include.
19309         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
19310         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
19311         (validate_size): For POINTER_TYPE, get smallest size permitted on
19312         machine.
19313
19314         * fe.h: Sort Einfo decls and add Set_Mechanism.
19315
19316         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
19317         (ada/decl.o): Depends on target.h.
19318
19319         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
19320         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
19321
19322 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
19323
19324         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
19325
19326         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
19327         Insert_Dereference_Action when rewriting an implicit dereference into
19328         an explicit one, this will be taken care of during expansion of the
19329         explicit dereference.
19330         (Expand_N_Slice): Same. Always do the rewriting, even for the case
19331         of non-packed slices, since the dereference action generated by
19332         expansion of the explicit dereference is needed in any case.
19333         (Expand_N_Selected_Component): When rewriting an implicit dereference,
19334         analyze and resolve the rewritten explicit dereference so it is seen
19335         by the expander.
19336         (Insert_Dereference_Action): This procedure is now called only for the
19337         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
19338         dereferences that do not come from source (including explicit
19339         dereferences resulting from rewriting implicit ones), but do not
19340         recursively insert a check for the dereference nodes contained within
19341         the check.
19342         (Insert_Dereference_Action): Clarify and correct comment.
19343
19344 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
19345
19346         PR ada/14131
19347         Move language detection to the top level.
19348         * config-lang.in: Build by default.
19349
19350 2004-03-05  Robert Dewar  <dewar@gnat.com>
19351
19352         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
19353
19354         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
19355         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
19356         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
19357         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
19358         unchecked conversion to spec to avoid warnings.
19359
19360         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
19361         to Task_ID
19362
19363         * 7stpopsp.adb: Correct casing in To_Task_ID call
19364
19365         * a-strsea.ads, a-strsea.adb: Minor reformatting
19366
19367         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
19368
19369         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
19370         Adjust Max_Msg_Length to be clearly large enough.
19371
19372         * fe.h: Define In_Same_Source_Unit
19373
19374         * osint.adb: Add pragma Warnings Off to suppress warnings
19375         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
19376         aliasing warnings.
19377
19378         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
19379
19380         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
19381
19382         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
19383
19384         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
19385
19386         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
19387
19388         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
19389         node. We now do generate them for gcc back end.
19390
19391         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
19392         warning.
19393
19394         * sinput-c.adb: Fix bad name in header.
19395         Add pragma Warnings Off to suppress aliasing warning.
19396
19397         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
19398
19399         * snames.h, snames.ads, snames.adb: Add entry for pragma
19400         No_Strict_Aliasing.
19401
19402 2004-03-05  Vincent Celier  <celier@gnat.com>
19403
19404         * prj-com.ads: Add hash table Files_Htable to check when a file name
19405         is already a source of another project.
19406
19407         * prj-nmsc.adb (Record_Source): Before recording a new source, check
19408         if its file name is not already a source of another project. Report an
19409         error if it is.
19410
19411         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
19412         source file name, call gnatpp with all the sources of the main project.
19413
19414         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
19415         of file names.
19416
19417         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
19418         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
19419         /RUNTIME_SYSTEM=, converted to --RTS=
19420         /NOTABS, converted to -notabs
19421
19422 2004-03-05  Pascal Obry  <obry@gnat.com>
19423
19424         * make.adb: Minor reformatting.
19425
19426 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
19427
19428         Part of implemention of AI-262.
19429         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
19430
19431         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
19432         procedure.
19433
19434         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
19435         when component type is a partially constrained class-wide subtype.
19436         (Constrain_Discriminated_Type): If parent type has unknown
19437         discriminants, a constraint is illegal, even if full view has
19438         discriminants.
19439         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
19440         with unknown discriminants whose full view is a discriminated record.
19441
19442         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
19443         flag, to handle properly derivations of tagged types with unknown
19444         discriminants.
19445         (Analyze_Package_Spec, Analyze_Package_Body): Install
19446         Private_With_Clauses before analyzing private part or body.
19447
19448         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
19449         Has_Discriminants can be true for a given type (documentation).
19450
19451 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
19452
19453         * s-restri.ads: Fix license (GPL->GMGPL).
19454
19455         * s-tassta.adb: Minor reformatting.
19456
19457         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19458         by calls to Exit_One_ATC_Level, since additional clean up is performed
19459         by this function.
19460
19461         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19462         by calls to Exit_One_ATC_Level, since additional clean up is performed
19463         by this function.
19464
19465 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19466
19467         * trans.c: Reflect GCC changes to fix bootstrap problem.
19468         Add warning for suspicious aliasing unchecked conversion.
19469
19470 2004-03-05  GNAT Script  <nobody@gnat.com>
19471
19472         * Make-lang.in: Makefile automatically updated
19473
19474 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
19475
19476         * ali.adb (Read_Instantiation_Instance): Do not modify the
19477         current_file_num when reading information about instantiations, since
19478         this corrupts files in later references.
19479
19480 2004-03-02  Vincent Celier  <celier@gnat.com>
19481
19482         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
19483         before checking if it is read-only.
19484
19485         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
19486         of SRC_DIRS and eliminate duplicates.
19487
19488         * gprcmd.adb: Replace command "path" with command "path_sep" to return
19489         the path separator.
19490         (Usage): Document path_sep
19491
19492         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
19493         C++ compiler. No need for a script.
19494         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
19495         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
19496         subst.
19497
19498         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
19499         where there are Ada sources.
19500         (Set_Ada_Paths): Only add to the include path the source dirs of project
19501         with Ada sources.
19502         (Add_To_Path): Add the Display_Values of the directories, not their
19503         Values.
19504
19505         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
19506         data.
19507
19508         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
19509         is not No_Name.
19510         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
19511         Value is canonicalized.
19512         (Language_Independent_Check): Do not copy Value to Display_Value when
19513         canonicalizing Value.
19514
19515         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
19516         path to find limited with cycles.
19517         (Parse_Single_Project): Use canonical cased path to find the end of a
19518         with cycle.
19519
19520 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
19521
19522         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
19523         and not a child unit.
19524
19525         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
19526         appear in a with_clause.
19527
19528         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
19529         only happen in type_annotate mode, do not try to elaborate it.
19530
19531         * exp_util.adb (Force_Evaluation): If expression is a selected
19532         component on the left of an assignment, use a renaming rather than a
19533         temporary to remove side effects.
19534
19535         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
19536         inlined instance body, which is analyzed before the end of the
19537         enclosing scope.
19538
19539 2004-03-02  Robert Dewar  <dewar@gnat.com>
19540
19541         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
19542         sem_ch4.adb: Use new feature for substitution of keywords in VMS
19543
19544         * errout.ads, errout.adb: Implement new circuit for substitution of
19545         keywords in VMS.
19546
19547         * sem_case.adb (Analyze_Choices): Place message properly when case is
19548         a subtype reference rather than an explicit range.
19549
19550         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
19551
19552 2004-03-02  Doug Rupp  <rupp@gnat.com>
19553
19554         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
19555
19556 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
19557
19558         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
19559
19560 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19561
19562         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
19563         BLKmode bitfield.
19564
19565 2004-02-25  Robert Dewar  <dewar@gnat.com>
19566
19567         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
19568         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
19569         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
19570         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
19571         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
19572         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
19573         the defining instance of the type to avoid aliasing problems.
19574         Fix copyright header.  Fix bad comments in package header.
19575
19576         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
19577
19578 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
19579
19580         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
19581         rewritten as references when aliased through an address clause.
19582
19583         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
19584         whether call can be interpreted as an indirect call to the result of a
19585         parameterless function call returning an access subprogram.
19586
19587 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
19588
19589         Code clean up:
19590         * exp_ch7.adb (Make_Clean): Remove generation of calls to
19591         Unlock[_Entries], since this is now done by Service_Entries directly.
19592
19593         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
19594
19595         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
19596         Requeue_Call for better code readability. Change spec and update calls:
19597         PO_Service_Entries now unlock the PO on exit.
19598         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
19599         PO_Service_Entries.
19600
19601         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
19602
19603         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
19604
19605 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
19606
19607         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
19608         protected subprogram call and analyzing the result of such expanding
19609         in case when the called protected subprogram is eliminated.
19610
19611         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
19612         names.
19613
19614 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
19615
19616         * Makefile.in: Clean ups.
19617
19618 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
19619
19620         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
19621         protected operations if original subprogram is flagged as eliminated.
19622         (Expand_N_Subprogram_Body): For a protected operation, create
19623         discriminals for next operation before checking whether the operation
19624         is eliminated.
19625
19626         * exp_ch9.adb (Expand_N_Protected_Body,
19627         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
19628         for internal protected operations if the original subprogram is
19629         eliminated.
19630
19631         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
19632         declared in a single protected object.
19633
19634 2004-02-23  Vincent Celier  <celier@gnat.com>
19635
19636         * prj-attr.adb: Make attribute Builder'Executable an associative array,
19637         case insensitive if file names are case insensitive, instead of a
19638         standard associative array.
19639
19640         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
19641         them as case insensitive on platforms where the file names are case
19642         sensitive.
19643
19644         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
19645         project file has already been parsed that canonical path are compared.
19646
19647 2004-02-23  Robert Dewar  <dewar@gnat.com>
19648
19649         * sinput-c.ads: Correct bad unit title in header
19650
19651         * freeze.adb: Minor reformatting
19652
19653 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19654
19655         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
19656         nonaddressable COMPONENT_REF that is removing padding that we are
19657         taking the address of, take the address of the padded record instead
19658         if item is variable size.
19659
19660 2004-02-20  Robert Dewar  <dewar@gnat.com>
19661
19662         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
19663
19664 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
19665
19666         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
19667         itype references for the constrained designated type of a component
19668         whose base type is already frozen.
19669
19670 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
19671
19672         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
19673         avoid GCC warnings.
19674
19675 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
19676
19677         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
19678         identifier for a phantom package that rewrites the formal package
19679         declaration with a box. The Add semantic decorations for the defining
19680         identifier from the original node (that represents the formal package).
19681
19682 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
19683
19684         * Make-lang.in (ada/stamp-sdefault): Use the top level
19685         move-if-change.
19686
19687 2004-02-19  Richard Henderson  <rth@redhat.com>
19688
19689         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
19690
19691 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
19692
19693         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
19694         Scan_ALI can be used for multiple ALI files without reinitializing
19695         between calls.
19696
19697 2004-02-18  Robert Dewar  <dewar@gnat.com>
19698
19699         * debug.adb: Minor reformatting.
19700
19701 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19702
19703         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
19704         to zero if there is an address clause.
19705
19706 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
19707
19708         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
19709
19710 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
19711
19712         * layout.adb (Layout_Component_List): Revise generation of call to
19713         discriminant-checking function to pass selections of all of the type's
19714         discriminants rather than just the variant-controlling discriminant.
19715
19716 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
19717
19718         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
19719         fail in the current setup and triggers spurious system error messages.
19720         Pretend it occurred and failed instead.
19721
19722 2004-02-18  Vincent Celier  <celier@gnat.com>
19723
19724         * bld.adb: Mark FLDFLAGS as saved
19725         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
19726         it is not the root project.  Put each directory to be
19727         extended between double quotes to prevent it to be expanded on Windows.
19728         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
19729         the project file. Set them back to their initial values if they have not
19730         been set in the project file.
19731
19732         * gprcmd.adb: (Gprdebug, Debug): New global variables
19733         (Display_Command): New procedure
19734         (Usage): Document new command "linkopts"
19735         Call Display_Command when env var GPRDEBUG has the value "TRUE"
19736         Implement new command "linkopts"
19737         Remove quotes that may be around arguments for "extend"
19738         Always call Normalize_Pathname with arguments formatted for the platform
19739
19740         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
19741         Change @echo to @$(display) in target clean to be able to clean silently
19742
19743         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
19744
19745         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
19746         canonical case.
19747
19748         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
19749         = Extending_All when current project is an extending all project.
19750
19751         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
19752         set to True only for LINK command, after Unix switch -o.
19753         (Process_Arguments): Set Output_File_Expected to True for LINK command
19754         after Unix switch -o. When Output_File_Expected is True, never add an
19755         extension to a file name.
19756
19757         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
19758         option file name, only to the --for-linker= switch.
19759         (Option_File_Name): If option file name do not end with ".opt", append
19760         "/OPTIONS".
19761
19762 2004-02-18  GNAT Script  <nobody@gnat.com>
19763
19764         * Make-lang.in: Makefile automatically updated
19765
19766 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
19767
19768         * Make-lang.in (stamp-sdefault): Do not depend on
19769         move-if-change.
19770
19771 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
19772
19773         * config-lang.in: Disable Ada by default until probe logic for
19774         a bootstrap Ada compiler can be moved to the top level configure
19775         script.
19776
19777 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
19778
19779         * decl.c (components_to_record): Don't claim that the internal fields
19780         we make to hold the variant parts are semantically addressable, because
19781         they are not.
19782
19783         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
19784         adjust the comment describing the modular type form when we can use it.
19785         (Install_PAT): Account for the Esiz renaming.
19786
19787         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
19788         sc_onstack context indication before raising the exception to which
19789         the signal is mapped. Allows better handling of later signals possibly
19790         triggered by the resumed user code if the exception is handled.
19791
19792 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
19793
19794         * 5zinit.adb: Removed, no longer used.
19795
19796 2004-02-12  Robert Dewar  <dewar@gnat.com>
19797
19798         * ali.adb: Remove separating space between parameters on R line. Makes
19799         format consistent with format used by the binder for Set_Globals call.
19800
19801         * atree.ads, atree.adb: Minor reformatting (new function header format)
19802
19803         * bindgen.adb: Add Run-Time Globals documentation section containing
19804         detailed documentation of the globals passed from the binder file to
19805         the run time.
19806
19807         * gnatls.adb: Minor reformatting
19808
19809         * init.c (__gnat_set_globals): Add note pointing to documentation in
19810         bindgen.
19811
19812         * lib-writ.ads, lib-writ.adb: Remove separating space between
19813         parameters on R line.
19814         Makes format consistent with format used by the binder for Set_Globals
19815         call.
19816
19817         * osint.ads: Add 2004 to copyright notice
19818         Minor reformatting
19819
19820         * snames.ads: Correct capitalization of FIFO_Within_Priorities
19821         Noticed during code reading, documentation issue only
19822
19823         * usage.adb: Remove junk line for obsolete C switch
19824         Noticed during code reading
19825
19826 2004-02-12  Vincent Celier  <celier@gnat.com>
19827
19828         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
19829         extend for each directory, so that multiple /** directories are
19830         extended individually.
19831         (Recursive_Process): Set the default for LANGUAGES to ada
19832
19833         * gprcmd.adb: Define new command "ignore", to do nothing.
19834         Implement new comment "path".
19835
19836         * Makefile.generic: Suppress output when SILENT is set
19837         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
19838         used, so that the correct compiler is invoked.
19839         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
19840         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
19841
19842 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
19843
19844         * Makefile.in: Clean ups and remove obsolete targets.
19845
19846 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
19847
19848         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
19849         predicate declared in exp_util.
19850
19851         * exp_util.adb: Add comments.
19852
19853         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
19854         visibility before compiling context of the subunit.
19855
19856         * sem_res.adb (Check_Parameterless_Call): If the context expects a
19857         value but the name is a procedure, do not attempt to analyze as a call,
19858         in order to obtain more telling diagnostics.
19859
19860         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
19861         'Access on parameterless function calls.
19862         (Normalize_Actuals): For a parameterless function call with missing
19863         actuals, defer diagnostic until resolution of enclosing call.
19864
19865         * sem_util.adb (Wrong_Type): If the context type is an access to
19866         subprogram and the expression is a procedure name, suggest a missing
19867         'attribute.
19868
19869 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
19870             Nathanael Nerode  <neroden@gcc.gnu.org>
19871
19872         PR ada/6637, PR ada/5911
19873         Merge with libada-branch:
19874         * config-lang.in: Build libada only when ada is built.
19875
19876 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19877
19878         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
19879         for a tagged type, verify that both formals have the same type.
19880
19881         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
19882         temporary when the formal is an in-parameter and the actual a possibly
19883         unaligned slice.
19884
19885         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
19886         when expansion is disabled, to ensure proper name capture with
19887         overloaded literals.  Condition can be of any boolean type, resolve
19888         accordingly.
19889
19890         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
19891         renaming is for a formal subprogram with a default operator name, and
19892         there is a usable operator that is visible at the point of
19893         instantiation.
19894
19895 2004-02-09  Robert Dewar  <dewar@gnat.com>
19896
19897         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
19898         rewrite to ignore errors in ali files, intended to allow tools downward
19899         compatibility with new versions of ali files.
19900
19901         * ali.ads: Add new parameter Ignore_Errors
19902
19903         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
19904         duplicating the error message giving the file with restrictions.
19905
19906         * debug.adb: Add debug flag I for gnatbind
19907
19908         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
19909         operators for the case where the operator is a defining operator.
19910
19911         * exp_ch3.adb: Minor reformatting (new function spec format).
19912
19913         * exp_ch4.adb: Add comment for previous change, and make minor
19914         adjustment to loop to always check for improper loop termination.
19915         Minor reformatting throughout (new function spec format).
19916
19917         * gnatbind.adb: Implement -di debug flag for gnatbind
19918
19919         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
19920
19921         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
19922
19923         * lib-load.adb: Fix bad assertion.
19924         Found by testing and code reading.
19925         Minor reformatting.
19926
19927         * lib-load.ads: Minor reformatting.
19928
19929         * lib-writ.adb: There is only one R line now.
19930
19931         * lib-writ.ads: Add documentation on making downward compatible changes
19932         to ali files so old tools work with new ali files.
19933         There is only one R line now.
19934         Add documentation on format incompatibilities (with special GPS note)
19935
19936         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
19937
19938         * par-load.adb: Minor reformatting
19939
19940         * sem_ch8.adb: Fix to error message from last update
19941         Minor reformatting and restructuring of code from last update
19942
19943         * par-prag.adb, snames.adb, snames.ads, snames.h,
19944         sem_prag.adb: Implement pragma Profile.
19945
19946         * stylesw.adb: Implement -gnatyN switch to turn off all style check
19947         options.
19948
19949         * usage.adb: Add line for -gnatyN switch
19950
19951         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
19952
19953 2004-02-09  Albert Lee  <lee@gnat.com>
19954
19955         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
19956
19957 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19958
19959         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
19960         slices.
19961
19962         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
19963         is nested in an instance that is not frozen yet, to avoid
19964         order-of-elaboration problems in gigi.
19965
19966         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
19967         body the attribute is legal.
19968
19969 2004-02-09  Robert Dewar  <dewar@gnat.com>
19970
19971         * s-rident.ads: Minor comment correction
19972
19973         * targparm.adb: Remove dependence on uintp completely. There was
19974         always a bug in Make in that it called Targparm before initializing
19975         the Uint package. The old code appeared to get away with this, but
19976         the new code did not! This caused an assertion error in gnatmake.
19977
19978         * targparm.ads: Fix bad comment, restriction pragmas with parameters
19979         are indeed fully supported.
19980
19981 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
19982
19983         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
19984
19985 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
19986
19987         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
19988         with targetm.calls.promote_prototypes.
19989
19990 2004-02-04  Robert Dewar  <dewar@gnat.com>
19991
19992         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
19993         ali.ads, gprcmd.adb: Minor reformatting
19994
19995         * bindgen.adb: Output restrictions string for new style restrictions
19996         handling
19997
19998         * impunit.adb: Add s-rident.ads (System.Rident) and
19999         s-restri (System.Restrictions)
20000
20001         * lib-writ.adb: Fix bug in writing restrictions string (last few
20002         entries wrong)
20003
20004         * s-restri.ads, s-restri.adb: Change name Restrictions to
20005         Run_Time_Restrictions to avoid conflict with package name.
20006         Add circuit to read and acquire run time restrictions.
20007
20008 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
20009
20010         * restrict.ads, restrict.adb: Use the new restriction
20011         No_Task_Attributes_Package instead of the old No_Task_Attributes.
20012
20013         * sem_prag.adb: No_Task_Attributes is a synonym of
20014         No_Task_Attributes_Package.
20015
20016         * snames.ads, snames.adb: New entry for proper handling of
20017         No_Task_Attributes.
20018
20019         * s-rident.ads: Adding restriction No_Task_Attributes_Package
20020         (AI-00249) that supersedes the GNAT specific restriction
20021         No_Task_Attributes.
20022
20023 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
20024
20025         * sem_prag.adb:
20026         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
20027          body, an identifier may be wrapped in an unchecked conversion.
20028
20029 2004-02-04  Vincent Celier  <celier@gnat.com>
20030
20031         * lib-writ.ads: Comment update for the W lines
20032
20033         * bld.adb: (Expression): An empty string list is static
20034
20035         * fname-uf.adb: Minor comment update
20036
20037         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
20038
20039         * gnatbind.adb: Initialize Cumulative_Restrictions with the
20040         restrictions on the target.
20041
20042 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
20043
20044         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
20045         gen_rtx.
20046
20047 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
20048
20049         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
20050
20051 2004-02-02  Vincent Celier  <celier@gnat.com>
20052
20053         * gprcmd.adb (Check_Args): If condition is false, print the invoked
20054         comment before the usage.
20055         Gprcmd: Fail when command is not recognized.
20056         (Usage): Document command "prefix"
20057
20058         * g-md5.adb (Digest): Process last block.
20059         (Update): Do not process last block. Store remaining characters and
20060         length in Context.
20061
20062         * g-md5.ads (Update): Document that several call to update are
20063         equivalent to one call with the concatenated string.
20064         (Context): Add fields to allow new Update behaviour.
20065
20066         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
20067         defaulted to False.
20068         When May_Fail is True and no existing file can be found, return No_File.
20069
20070         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
20071         functions.
20072
20073         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
20074         spec file name instead on the W line.
20075
20076 2004-02-02  Robert Dewar  <dewar@gnat.com>
20077
20078         * ali.adb: Read and acquire info from new format restrictions lines
20079
20080         * bcheck.adb: Add circuits for checking restrictions with parameters
20081
20082         * bindgen.adb: Output dummy restrictions data
20083         To be changed later
20084
20085         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
20086         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
20087         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
20088         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
20089         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
20090
20091         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
20092         the warning message on access to possibly uninitialized variable S)
20093         Minor changes for new restrictions handling.
20094
20095         * gnatbind.adb: Minor reformatting
20096         Minor changes for new restrictions handling
20097         Move circuit for -r processing here from bcheck (cleaner)
20098
20099         * gnatcmd.adb, gnatlink.adb: Minor reformatting
20100
20101         * lib-writ.adb: Output new format restrictions lines
20102
20103         * lib-writ.ads: Document new R format lines for new restrictions
20104         handling.
20105
20106         * s-restri.ads/adb: New files
20107
20108         * Makefile.rtl: Add entry for s-restri.ads/adb
20109
20110         * par-ch3.adb: Fix bad error messages starting with upper case letter
20111         Minor reformatting
20112
20113         * restrict.adb: Major rewrite throughout for new restrictions handling
20114         Major point is to handle restrictions with parameters
20115
20116         * restrict.ads: Major changes in interface to handle restrictions with
20117         parameters. Also generally simplifies setting of restrictions.
20118
20119         * snames.ads/adb: New entry for proper handling of No_Requeue
20120
20121         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
20122         restriction counting.
20123         Other minor changes for new restrictions handling
20124
20125         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
20126         Restriction_Warnings now allows full parameter notation
20127         Major rewrite of Restrictions for new restrictions handling
20128
20129 2004-02-02  Javier Miranda  <miranda@gnat.com>
20130
20131         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
20132         syntax rule for object renaming declarations.
20133         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
20134         component definitions.
20135
20136         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
20137         components.
20138         (Array_Type_Declaration): Give support to access components. In addition
20139         it was also modified to reflect the name of the object in anonymous
20140         array types. The old code did not take into account that it is possible
20141         to have an unconstrained anonymous array with an initial value.
20142         (Check_Or_Process_Discriminants): Allow access discriminant in
20143         non-limited types.
20144         (Process_Discriminants): Allow access discriminant in non-limited types
20145         Initialize the new Access_Definition field in N_Object_Renaming_Decl
20146         node.  Change Ada0Y to Ada 0Y in comments
20147
20148         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
20149         equality operators.
20150         Change Ada0Y to Ada 0Y in comments
20151
20152         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
20153         renamings Change Ada0Y to Ada 0Y in comments
20154
20155         * sem_type.adb (Find_Unique_Type): Give support to the equality
20156         operators for universal access types
20157         Change Ada0Y to Ada 0Y in comments
20158
20159         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
20160
20161         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
20162         field.
20163         (N_Object_Renaming_Declaration): Addition of Access_Definition field
20164         Change Ada0Y to Ada 0Y in comments
20165
20166         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
20167         component definition and object renaming nodes
20168         Change Ada0Y to Ada 0Y in comments
20169
20170 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
20171
20172         * restrict.adb: Use the new restriction identifier
20173         No_Requeue_Statements instead of the old No_Requeue for defining the
20174         restricted profile.
20175
20176         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
20177         No_Requeue_Statements.
20178
20179         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
20180         that supersedes the GNAT specific restriction No_Requeue. The later is
20181         kept for backward compatibility.
20182
20183 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
20184
20185         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
20186         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
20187         pragma and fix incorrect ones.
20188
20189         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
20190         warning if the pragma is redundant.
20191
20192 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
20193
20194         * 5staprop.adb: Add missing 'constant' keywords.
20195
20196         * Makefile.in: use consistent value for SYMLIB on
20197         platforms where libaddr2line is supported.
20198
20199 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20200
20201         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
20202         annotating types.
20203
20204 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
20205
20206         * init.c (__gnat_install_handler): Setup an alternate stack for signal
20207         handlers in the environment thread. This allows proper propagation of
20208         an exception on stack overflows in this thread even when the builtin
20209         ABI stack-checking scheme is used without support for a stack reserve
20210         region.
20211
20212         * utils.c (create_field_decl): Augment the head comment about bitfield
20213         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
20214         here, because the former is not accurate enough at this point.
20215         Let finish_record_type decide instead.
20216         Don't make a bitfield if the field is to be addressable.
20217         Always set a size for the field if the record is packed, to ensure the
20218         checks for bitfield creation are triggered.
20219         (finish_record_type): During last pass over the fields, clear
20220         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
20221         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
20222         from DECL_BIT_FIELD.
20223
20224 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
20225
20226         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
20227         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
20228         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
20229
20230 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20231
20232         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
20233
20234         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
20235         (ZCX_By_Default): Likewise.
20236         (Front_End_ZCX_Support): Likewise.
20237
20238         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
20239         (Initialize_Lock): Mark Level unreferenced.
20240         (Sleep): Mark Reason unreferenced.
20241         (Timed_Sleep): Likewise.
20242         (Wakeup): Likewise.
20243         (Exit_Task): Use Result.
20244         (Check_No_Locks): Mark Self_ID unreferenced.
20245
20246         * 5gtasinf.adb (New_Sproc): Make Attr constant.
20247         (Bound_Thread_Attributes): Make Sproc constant.
20248         (New_Bound_Thread_Attributes): Likewise.
20249
20250 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20251
20252         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
20253         one-dimensional array an slice assignments, when component type is
20254         controlled.
20255
20256         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
20257         component type is controlled, and control_actions are in effect, use
20258         TSS procedure rather than generating inline code.
20259
20260         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
20261         arrays with controlled components.
20262
20263 2004-01-26  Vincent Celier  <celier@gnat.com>
20264
20265         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
20266         command line for the non VMS case.
20267
20268         * gnatlink.adb (Process_Binder_File): When building object file, if
20269         GNU linker is used, put all object paths between quotes, to prevent ld
20270         error when there are unusual characters (such as '!') in the paths.
20271
20272         * Makefile.generic: When there are sources in Ada and the main is in
20273         C/C++, invoke gnatmake with -B, instead of -z.
20274
20275         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
20276         from VMS_Conversion.
20277         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
20278         specification of argument file on the command line.
20279
20280 2004-01-26  Bernard Banner  <banner@gnat.com>
20281
20282         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
20283
20284 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20285
20286         * snames.adb: Update copyright notice.
20287         Add info on slice assignment for controlled arrays.
20288
20289 2004-01-23  Robert Dewar  <dewar@gnat.com>
20290
20291         * exp_aggr.adb: Minor reformatting
20292
20293         * exp_ch9.adb: Minor code clean up
20294         Minor reformatting
20295         Fix bad character in comment
20296
20297         PR ada/13471
20298         * targparm.adb (Get_Target_Parameters): Give clean abort error on
20299         unexpected end of file, along with more detailed message.
20300
20301 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20302
20303         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
20304         PAT.
20305
20306         * decl.c (copy_alias_set): New function.
20307         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
20308
20309 2004-01-23  Doug Rupp  <rupp@gnat.com>
20310
20311         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
20312         lib$${file} in case subsequent character is not a separator.
20313
20314 2004-01-23  Vincent Celier  <celier@gnat.com>
20315
20316         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
20317         when the GCC version is at least 3.
20318
20319         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
20320         Remove all "Opt.", to prepare for opt split
20321
20322         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
20323         Extends_All. Set to True when the project parsed is an extending all
20324         project. Fails for importing an extending all project only when the
20325         imported project is an extending all project.
20326         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
20327         depending on the value of Extends_All returned.
20328
20329         * prj-proc.adb (Process): Check that no project shares its object
20330         directory with a project that extends it, directly or indirectly,
20331         including a virtual project.
20332         Check that no project extended by another project shares its object
20333         directory with another also extended project.
20334
20335         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
20336         Kind = N_With_Clause
20337
20338         * prj-tree.ads: Minor reformatting
20339         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
20340
20341 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
20342
20343         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
20344         applies to a type with an incomplete view, use full view in Name of
20345         clause, for consistency with uses of Get_Attribute_Definition_Clause.
20346
20347 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
20348
20349         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
20350         SCHED_RR, since other values are not supported by this policy.
20351         (Initialize): Move initialization of mutex attribute to package
20352         elaboration, to prevent early access to this variable.
20353
20354         * Makefile.in: Remove mention of Makefile.adalib, unused.
20355
20356         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20357         1ssecsta.ads: Removed, unused.
20358
20359 2004-01-21  Javier Miranda  <miranda@gnat.com>
20360
20361         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
20362         entity if already built in the current scope.
20363
20364         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
20365         reminder in internal scopes. Required for nested limited aggregates.
20366
20367 2004-01-21  Doug Rupp  <rupp@gnat.com>
20368
20369         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
20370         VMS. Replace all occurences of libgnat- and libgnarl- with
20371         libgnat$(hyphen) and libgnarl$(hyphen).
20372         Fixed shared library build problem on VMS.
20373
20374 2004-01-21  Robert Dewar  <dewar@gnat.com>
20375
20376         * mlib-prj.adb: Minor reformatting
20377
20378 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
20379
20380         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
20381         'constant' keywords for declaration of pointers that are not modified.
20382
20383         * exp_pakd.adb: Fix English in comment.
20384
20385 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
20386
20387         PR ada/10889
20388         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
20389         copy all attributes of the parent, including the foreign language
20390         convention.
20391
20392 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
20393
20394         PR ada/10565
20395         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
20396         for 'delay until' statement.
20397
20398 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
20399
20400         * Make-lang.in: Replace $(docdir) with doc.
20401         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
20402         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
20403         to use consistent MAKEINFO rule.
20404         (ada.man, ada.srcman): Dummy entry.
20405         (ADA_INFOFILES): Define.
20406         (ada.info, ada.srcinfo): New rules.
20407
20408 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
20409
20410         * utils.c: Update copyright notice, missed in previous change.
20411
20412 2004-01-19  Vincent Celier  <celier@gnat.com>
20413
20414         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
20415         args if Bind is True. Set First_ALI, if not already done.
20416         (Build_Library): For Stand Alone Libraries, extract from one ALI file
20417         an eventual --RTS switch, for gnatbind, and all backend switches +
20418         --RTS, for linking.
20419
20420 2004-01-19  Robert Dewar  <dewar@gnat.com>
20421
20422         * sem_attr.adb, memtrack.adb: Minor reformatting
20423
20424 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
20425
20426         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
20427         that rename enumeration literals. This is properly done in sem_eval.
20428
20429         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
20430         to functions that rename enumeration literals.
20431
20432         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
20433         functions that rename enumeration literals.
20434
20435 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
20436
20437         * Make-lang.in (utils.o): Depend on target.h.
20438         * utils.c: Include target.h.
20439         (process_attributes): Use targetm.have_named_sections instead
20440         of ASM_OUTPUT_SECTION_NAME.
20441
20442 2004-01-16  Andreas Jaeger  <aj@suse.de>
20443
20444         * Makefile.in: Add $(DESTDIR).
20445
20446 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
20447
20448         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
20449         also when not defining if a Size clause applies. That information is
20450         not to be ignored.
20451
20452 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
20453
20454         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
20455         symbolic links for the shared gnat run time when needed.
20456
20457 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
20458
20459         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
20460         for writing, and terminate with an error message if not.
20461
20462 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
20463
20464         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
20465         warning on an access to subprogram in an instance, when the target
20466         type is declared in the same generic unit.
20467         (Eval_Attribute): If 'access is known to fail accessibility check,
20468         rewrite as a raise statement.
20469
20470 2004-01-15  GNAT Script  <nobody@gnat.com>
20471
20472         * Make-lang.in: Makefile automatically updated
20473
20474 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
20475
20476         * Make-lang.in (ada.srcextra): Dummy entry.
20477
20478 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
20479
20480         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
20481
20482 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
20483
20484         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
20485         components that are initialized with aggregates.
20486
20487 2004-01-13  Vincent Celier  <celier@gnat.com>
20488
20489         * gnatlink.adb (Process_Binder_File): To find directory of shared
20490         libgcc, if "gcc-lib" is not a subdirectory, look for the last
20491         subdirectory "lib" in the path of the shared libgnat or libgnarl.
20492
20493         * make.adb (Gnatmake): If GCC version is at least 3, link with
20494         -shared-libgcc, when there is at least one shared library project.
20495
20496         * opt.ads (GCC_Version): New integer constant.
20497
20498         * adaint.c (get_gcc_version): New function.
20499
20500 2004-01-13  Robert Dewar  <dewar@gnat.com>
20501
20502         * sem_dist.adb, sem_res.adb, sem_util.adb,
20503         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
20504         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
20505
20506 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
20507
20508         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
20509         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
20510         declarations.
20511
20512 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
20513
20514         * misc.c: Remove trailing spaces.
20515         Update copyright notice missed in previous change.
20516
20517         PR ada/13572
20518         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
20519         prefix/share/make
20520
20521         * Makefile.generic: Update copyright.
20522         Add license notice.
20523
20524         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
20525         of prefix/share/make.
20526
20527         * Makefile.prolog: Update copyright.
20528         Add license notice.
20529
20530 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
20531
20532         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
20533         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
20534         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
20535         instead of String.
20536
20537         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
20538         signature.
20539
20540 2004-01-12  Javier Miranda  <miranda@gnat.com>
20541
20542         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
20543         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
20544         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
20545         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
20546         Component_Definition node.
20547
20548 2004-01-12  Ed Falis  <falis@gnat.com>
20549
20550         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
20551
20552 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
20553
20554         * link.c: Change default libgnat kind to STATIC for FreeBSD.
20555
20556 2004-01-12  Bernard Banner  <banner@gnat.com>
20557
20558         * Makefile.in: map 86numaux to a-numaux for x86_64
20559
20560 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
20561
20562         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
20563         generated to rename a generic actual, go to the actual itself, the
20564         subtype is not a user-visible entity.
20565
20566         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
20567         part is a private subtype, reset the visibility of its full view, if
20568         any, to be consistent.
20569
20570         PR ada/13417
20571         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
20572         to use a generic package G as a formal package for another generic
20573         declared within G.
20574
20575 2004-01-12  Robert Dewar  <dewar@gnat.com>
20576
20577         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
20578
20579         * usage.adb: Remove mention of obsolete -gnatwb switch
20580         Noticed during code reading
20581
20582 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
20583
20584         * 1ssecsta.adb: Minor changes for -gnatwa warnings
20585
20586 2004-01-12  GNAT Script  <nobody@gnat.com>
20587
20588         * Make-lang.in: Makefile automatically updated
20589
20590 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20591
20592         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
20593
20594 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20595
20596         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
20597
20598 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
20599
20600         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
20601         Update comment and copyright date.
20602         * stamp-xgnatug: Delete.
20603
20604 2004-01-05  Robert Dewar  <dewar@gnat.com>
20605
20606         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
20607         be modified by the binder generated main program if the -D switch is
20608         used.
20609
20610         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
20611         imported functions (since now we expect this to be done for imported
20612         functions)
20613
20614         * 5vtaprop.adb: Add several ??? for sections requiring more comments
20615         Minor reformatting throughout
20616
20617         * 5zinit.adb: Minor reformatting
20618         Add 2004 to copyright date
20619         Minor changes to avoid -gnatwa warnings
20620         Correct some instances of using OR instead of OR ELSE (noted while
20621         doing reformatting)
20622
20623         * sprint.adb: Minor updates to avoid -gnatwa warnings
20624
20625         * s-secsta.ads, s-secsta.adb:
20626         (SS_Get_Max): New function to obtain high water mark for ss stack
20627         Default_Secondary_Stack is not a constant since it may be modified by
20628         the binder generated main program if the -D switch is used.
20629
20630         * switch-b.adb: New -Dnnn switch for binder
20631
20632         * switch-c.adb:
20633         Make -gnatg imply all warnings currently in -gnatwa
20634
20635         * vms_conv.adb: Minor reformatting
20636         Add 2004 to copyright notice
20637         Add 2004 to printed copyright notice
20638
20639         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
20640         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
20641         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
20642         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
20643         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
20644         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
20645         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
20646         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
20647         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
20648         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
20649         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
20650         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
20651         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
20652         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
20653         checks.adb, clean.adb, cstand.adb, einfo.ads,
20654         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
20655         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
20656         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
20657         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
20658         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
20659         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
20660         Minor reformatting and code clean ups.
20661         Minor changes to prevent -gnatwa warnings
20662
20663         * ali.adb: Minor reformatting and cleanup of code
20664         Acquire new SS indication of secondary stack use from ali files
20665
20666         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
20667         (since now we expect this to be done for imported functions)
20668
20669         * bindgen.adb: Generate call to modify default secondary stack size if
20670         -Dnnn switch given
20671
20672         * bindusg.adb: Add line for new -D switch
20673
20674         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
20675         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
20676         Add circuitry for both records and arrays to avoid gigi
20677         processing if the type involved has non-bit-aligned components
20678
20679         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
20680         N_String_Literal node always references an E_String_Literal_Subtype
20681         entity. This may not be true in the future.
20682         (Possible_Bit_Aligned_Component): Move processing of
20683         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
20684
20685         * exp_ch6.adb (Expand_Thread_Body): Pick up
20686         Default_Secondary_Stack_Size as variable so that we get value modified
20687         by possible -Dnnn binder parameter.
20688
20689         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
20690         (Type_May_Have_Bit_Aligned_Components): New function.
20691
20692         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
20693         (Type_May_Have_Bit_Aligned_Components): New function.
20694
20695         * fe.h: (Set_Identifier_Casing): Fix prototype.
20696         Add declaration for Sem_Elim.Eliminate_Error_Msg.
20697         Minor reformatting.
20698
20699         * freeze.adb (Freeze_Entity): Add RM reference to error message about
20700         importing constant atomic/volatile objects.
20701         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
20702         unless explicit Pure_Function pragma given, to avoid insidious bug of
20703         call to non-pure imported function getting eliminated.
20704
20705         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
20706         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
20707         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
20708         Add 2004 to printed copyright notice
20709
20710         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
20711         stack used.
20712
20713         * Makefile.rtl: Add entry for g-sestin.o
20714         g-sestin.ads: New file.
20715
20716         * mdll.adb: Minor changes to avoid -gnatwa warnings
20717
20718         * mlib-tgt.adb: Minor reformatting
20719
20720         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
20721         New switch Sec_Stack_Used (GNAT, GNATBIND)
20722         Make Default_Secondary_Stack_Size a variable instead of a constant,
20723         so that it can be modified by the new -Dnnn bind switch.
20724
20725         * rtsfind.adb (Load_Fail): Give full error message in configurable
20726         run-time mode if all_errors mode is set. This was not done in the case
20727         of a file not found, which was an oversight.
20728         Note if secondary stack unit is used by compiler.
20729
20730         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
20731         ineffective elaborate all pragmas on non-visible packages (this
20732         happened when a renamed subprogram was called). Now the elaborate all
20733         always goes on the package containing the renaming rather than the one
20734         containing the renamed subprogram.
20735
20736         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
20737         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
20738
20739         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
20740         has an Etype that references an E_String_Literal.
20741         (Eval_String_Literal): Avoid assumption that N_String_Literal node
20742         always references an E_String_Literal_Subtype entity. This may not
20743         be true in the future.
20744
20745         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
20746         pragma location.
20747
20748         * sem_res.adb (Resolve): Specialize msg for function name used in proc
20749         call.
20750
20751 2004-01-05  Ed Falis  <falis@gnat.com>
20752
20753         * g-debuti.adb: Replaced direct boolean operator with short-circuit
20754         form.
20755
20756 2004-01-05  Vincent Celier  <celier@gnat.com>
20757
20758         * bld.adb: Minor comment updates
20759         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
20760         of Item_Name).
20761
20762         * make.adb (Gnatmake): Special process for files to compile/check when
20763         -B is specified. Fail when there are only foreign mains in attribute
20764         Main of the project file and -B is not specified. Do not skip bind/link
20765         steps when -B is specified.
20766
20767         * makeusg.adb: Document new switch -B
20768
20769         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
20770
20771         * switch-m.adb: (Scan_Make_Switches): Process -B switch
20772
20773         * vms_data.ads: Add new GNAT PRETTY qualifier
20774         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
20775
20776 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20777
20778         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
20779         case.
20780
20781         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
20782         Set_Identifier_Casing.
20783
20784         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
20785         has size that overflows.
20786
20787 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
20788
20789         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
20790         -gnatwa warning on static condition.
20791
20792 2004-01-05  Doug Rupp  <rupp@gnat.com>
20793
20794         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
20795
20796 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
20797
20798         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
20799         all attributes, including read-only attribute.
20800
20801 2004-01-05  Pascal Obry  <obry@gnat.com>
20802
20803         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
20804         library naming scheme.
20805
20806         * mlib-prj.adb (Build_Library): Generate different names for the static
20807         or dynamic version of the GNAT runtime. This is needed to support the
20808         new shared library naming scheme.
20809         (Process_Binder_File): Add detection of shared library in binder file
20810         based on the new naming scheme.
20811
20812         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
20813         scheme for the shared runtime libraries.
20814
20815         * Makefile.in:
20816         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
20817         scheme.
20818         (install-gnatlib): Do not create symlinks for shared libraries.
20819         (gnatlib-shared-default): Idem.
20820         (gnatlib-shared-dual-win32): New target. Not used for now as the
20821         auto-import feature does not support arrays/records.
20822         (gnatlib-shared-win32): Do not create copy for the shared libraries.
20823         (gnatlib-shared-vms): Fix shared runtime libraries names.
20824
20825         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
20826         dependent runtime shared library name.
20827
20828 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
20829
20830         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
20831         than the object.
20832
20833 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
20834
20835         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
20836         protected objects when allocator has a subtype indication, not a
20837         qualified expression. Note that qualified expressions may have to be
20838         checked when limited aggregates are implemented.
20839
20840         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
20841         pure, emit warning.
20842         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
20843         subprogram is imported, remove warning.
20844
20845 2004-01-05  Geert Bosch  <bosch@gnat.com>
20846
20847         * s-poosiz.adb: Update copyright notice.
20848         (Allocate): Use Task_Lock to protect against concurrent access.
20849         (Deallocate): Likewise.
20850
20851 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
20852
20853         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
20854         comment.
20855
20856 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
20857
20858         * gnat_ug.texi: Force a CVS commit by updating copyright.
20859         * gnat_ug_vxw.texi: Regenerate.
20860         * gnat_ug_wnt.texi: Regenerate.
20861         * gnat_ug_vms.texi: Regenerate.
20862         * gnat_ug_unx.texi: Regenerate.
20863
20864 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
20865
20866         * trans.c: Remove uses of "register" specifier in
20867         declarations of local variables.
20868
20869 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
20870
20871         * stamp-xgnatug: New stamp file.
20872         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
20873         (ada/doctools/xgnatug): Add $(build_exeext).
20874         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
20875         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
20876
20877 2003-12-17  Ed Falis  <falis@gnat.com>
20878
20879         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
20880         eliminate warning.
20881
20882         * a-exextr.adb: Add context clause for
20883         Ada.Exceptions.Last_Chance_Handler.
20884
20885 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
20886
20887         * cstand.adb (Create_Standard): Change the way how the declaration of
20888         the Duration type is created (making it the same way as it is for all
20889         the other standard types).
20890
20891 2003-12-17  Robert Dewar  <dewar@gnat.com>
20892
20893         * s-crtl.ads: Fix header format
20894         Change Pure to Preelaborate
20895
20896 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
20897
20898         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
20899         the expression type only if it is declared in the current unit.
20900
20901         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
20902         are universal and already analyzed, as can occur in constrained
20903         subcomponents that depend on discriminants, when one constraint is a
20904         subtype mark.
20905
20906         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
20907         type Any_Fixed is legal as the argument of a conversion, if only one
20908         fixed-point type is in context.
20909
20910 2003-12-17  GNAT Script  <nobody@gnat.com>
20911
20912         * Make-lang.in: Makefile automatically updated
20913
20914 2003-12-15  Robert Dewar  <dewar@gnat.com>
20915
20916         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
20917         sec stack size.
20918
20919 2003-12-15  Vincent Celier  <celier@gnat.com>
20920
20921         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
20922         (Gnatchop): Do not set failure status when reporting the number of
20923         warnings.
20924
20925 2003-12-15  Doug Rupp  <rupp@gnat.com>
20926
20927         * s-ctrl.ads: New file.
20928
20929         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
20930
20931         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
20932         (GNATBIND_OBJS): Add ada/s-crtl.o.
20933
20934         * Makefile.in [VMS]: Clean up ifeq rules.
20935
20936         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
20937         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
20938         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
20939         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
20940         s-tasdeb.adb: Update copyright.
20941         Import System.CRTL.
20942         Make minor modifications to use System.CRTL declared functions instead
20943         of importing locally.
20944
20945 2003-12-15  GNAT Script  <nobody@gnat.com>
20946
20947         * Make-lang.in: Makefile automatically updated
20948
20949 2003-12-11  Ed Falis  <falis@gnat.com>
20950
20951         * 5zinit.adb: Clean up.
20952
20953         * 5zintman.adb (Notify_Exception): replaced case statement with a call
20954         to __gnat_map_signal, imported from init.c to support
20955         signal -> exception mappings that depend on the vxWorks version.
20956
20957         * init.c:
20958         Created and exported __gnat_map_signal to support signal -> exception
20959         mapping that is dependent on the VxWorks version.
20960         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
20961
20962 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
20963
20964         * 5wosinte.ads: Link with -mthreads switch.
20965
20966 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
20967
20968         * init.c (__gnat_install_handler [NetBSD]): Set
20969         __gnat_handler_installed, as done on all other platforms.
20970         Remove duplicated code.
20971
20972 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
20973
20974         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
20975
20976 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
20977
20978         * sinfo.ads: Fix inconsistent example code in comment.
20979
20980 2003-12-11  Robert Dewar  <dewar@gnat.com>
20981
20982         * a-tiinau.adb: Add a couple of comments
20983
20984         * sem_ch3.adb: Minor reformatting
20985
20986         * sem_prag.adb:
20987         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
20988         Minor reformatting throughout
20989
20990 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
20991
20992         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
20993         bounds of a loop, create a separate block in order to generate proper
20994         cleanup actions to prevent memory leaks.
20995
20996         * sem_res.adb (Resolve_Call): After a call to
20997         Establish_Transient_Scope, the call may be rewritten and relocated, in
20998         which case no further processing is needed.
20999
21000         * sem_util.adb: (Wrong_Type): Refine previous fix.
21001          Fixes ACATS regressions.
21002
21003         PR ada/13353
21004
21005         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
21006         be inlined.
21007
21008 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
21009
21010         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
21011         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
21012         obsolete files.
21013
21014         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
21015         (rts-zfp): Ditto.
21016
21017 2003-12-08  Robert Dewar  <dewar@gnat.com>
21018
21019         * 7sintman.adb: Minor reformatting
21020
21021         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
21022         standard linker options to get standard libraries linked. We now plan
21023         to provide dummy versions of these libraries to match the appropriate
21024         configurable run-time (e.g. if a library is not needed at all, provide
21025         a dummy empty library).
21026
21027         * targparm.ads: Configurable_Run_Time mode no longer affects linker
21028         options (-L parameters and standard libraries). What we plan to do is
21029         to provide dummy libraries where the libraries are not required.
21030
21031         * gnatbind.adb: Minor comment improvement
21032
21033 2003-12-08  Javier Miranda  <miranda@gnat.com>
21034
21035         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
21036         aggregate in the parent. Otherwise constants with limited aggregates
21037         are not supported. Add new formal to pass the component type (Ctype).
21038         It is required to call the corresponding IP subprogram in case of
21039         default initialized components.
21040         (Gen_Assign): In case of default-initialized component, generate a
21041         call to the IP subprogram associated with the component.
21042         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
21043         of aggregate with default initialized components.
21044         (Has_Default_Init_Comps): Improve implementation to recursively check
21045         all the present expressions.
21046
21047         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
21048         to indicate that the initialization call corresponds to a
21049         default-initialized component of an aggregate.
21050         In case of default initialized aggregate with tasks this parameter is
21051         used to generate a null string (this is just a workaround that must be
21052         improved later). In case of discriminants, this parameter is used to
21053         generate a selected component node that gives access to the discriminant
21054         value.
21055
21056         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
21057         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
21058         allocated aggregates with default-initialized components.
21059
21060         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
21061         the box notation is used in positional aggregates.
21062
21063 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
21064
21065         * lib.ads: Fix typo in comment
21066
21067 2003-12-08  Vincent Celier  <celier@gnat.com>
21068
21069         * prj.adb (Project_Empty): New component Unkept_Comments
21070         (Scan): Remove procedure; moved to Prj.Err.
21071
21072         * prj.ads (Project_Data): New Boolean component Unkept_Comments
21073         (Scan): Remove procedure; moved to Prj.Err.
21074
21075         * prj-dect.adb: Manage comments for the different declarations.
21076
21077         * prj-part.adb (With_Record): New component Node
21078         (Parse): New Boolean parameter Store_Comments, defaulted to False.
21079         Set the scanner to return ends of line and comments as tokens, if
21080         Store_Comments is True.
21081         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
21082         comments are associated with these nodes. Store the node IDs in the
21083         With_Records.
21084         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
21085         With_Records.
21086         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
21087         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
21088         current project. Call Tree.Restore afterwards. Set the various nodes
21089         for comment storage (Next_End, End_Of_Line, Previous_Line,
21090         Previous_End).
21091
21092         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
21093         defaulted to False.
21094
21095         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
21096         to False. When Truncated is True, truncate the string, never go to the
21097         next line.
21098         (Write_End_Of_Line_Comment): New procedure
21099         (Print): Process comments for nodes N_With_Clause,
21100         N_Package_Declaration, N_String_Type_Declaration,
21101         N_Attribute_Declaration, N_Typed_Variable_Declaration,
21102         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
21103         Process nodes N_Comment.
21104
21105         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
21106         without comments and there are some comments, set the flag
21107         Unkept_Comments to True.
21108         (Scan): If there are comments, set the flag Unkept_Comments to True and
21109         clear the comments.
21110         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
21111         (Next_End_Nodes: New table
21112         (Comment_Zones_Of): New function
21113         (Scan): New procedure; moved from Prj. Accumulate comments in the
21114         Comments table and set end of line comments, comments after, after end
21115         and before end.
21116         (Add_Comments): New procedure
21117         (Save, Restore, Seset_State): New procedures
21118         (There_Are_Unkept_Comments): New function
21119         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
21120         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
21121         procedures.
21122         (First_Comment_After, First_Comment_After_End): New functions
21123         (First_Comment_Before, First_Comment_Before_End): New functions
21124         (Next_Comment): New function
21125         (End_Of_Line_Comment, Follows_Empty_Line,
21126         Is_Followed_By_Empty_Line): New functions
21127         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
21128         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
21129         (Set_Next_Comment): New procedure
21130         (Default_Project_Node): Associate comment before if the node can store
21131         comments.
21132
21133         * scans.ads (Token_Type): New enumeration value Tok_Comment
21134         (Comment_Id): New global variable
21135
21136         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
21137         defaulted to False.
21138         (Scan): Store position of start of comment. If comments are tokens, set
21139         Comment_Id and set Token to Tok_Comment when scanning a comment.
21140         (Set_Comment_As_Token): New procedure
21141
21142         * sinput-p.adb: Update Copyright notice
21143         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
21144         that no longer exists.
21145
21146 2003-12-08  Javier Miranda  <miranda@gnat.com>
21147
21148         * sem_aggr.adb: Add dependence on Exp_Tss package
21149         Correct typo in comment
21150         (Resolve_Aggregate): In case of array aggregates set the estimated
21151         type of the aggregate before calling resolve. This is needed to know
21152         the name of the corresponding IP in case of limited array aggregates.
21153         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
21154         in case of default initialized array components.
21155
21156         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
21157         types. Required to give support to limited aggregates in generic
21158         formals.
21159
21160 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
21161
21162         * sem_ch3.adb (Check_Initialization): For legality purposes, an
21163         inlined body functions like an instantiation.
21164         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
21165         until bounds are analyzed, to diagnose premature use of type.
21166
21167         * sem_util.adb (Wrong_Type): Improve error message when the type of
21168         the expression is used prematurely.
21169
21170 2003-12-08  GNAT Script  <nobody@gnat.com>
21171
21172         * Make-lang.in: Makefile automatically updated
21173
21174 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
21175
21176         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
21177         they are automatically generated by Make-lang.in and cause nothing but
21178         maintenance troubles.
21179
21180 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
21181
21182         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
21183         version of this unit).
21184
21185 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
21186
21187         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
21188         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
21189         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
21190         the body of System.Interrupt_Management common to several targets.
21191         Update copyright notice when appropriate.
21192
21193         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
21194         constant.
21195
21196         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
21197         to ensure that the kernel fills in the interrupted context structure
21198         before calling a signal handler, which is necessary to be able to
21199         unwind past it. Update the copyright notice.
21200
21201 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
21202
21203         * a-elchha.ads: New file.
21204
21205         * a-elchha.adb: New default last chance handler. Contents taken from
21206         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
21207
21208         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
21209         is moved to a-elchha.adb to provide a target-independent default last
21210         chance handler.
21211
21212         * Makefile.rtl: Add a-elchha.o
21213
21214         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
21215
21216 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
21217
21218         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
21219         declared in an instance, do not inline the call if the instance is not
21220         frozen yet, to prevent order of elaboration problems.
21221
21222         * sem_prag.adb: Add comments for previous fix.
21223
21224 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
21225
21226         * g-table.adb: Use the right variable in Set_Item.
21227         Update copyright notice.
21228
21229 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
21230
21231         * Makefile.in: Remove unused rules.
21232
21233 2003-12-05  Vincent Celier  <celier@gnat.com>
21234
21235         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
21236         -nostdlib. Not needed here after all.
21237
21238 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
21239
21240         PR ada/11724
21241
21242         * adaint.h, adaint.c, g-os_lib.ads:
21243         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
21244         on some platforms (including FreeBSD), it is a 64 bit value.
21245         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
21246
21247 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
21248
21249         * gnatvsn.ads (Library_Version): Now contain only the relevant
21250         version info.
21251         (Verbose_Library_Version): New constant.
21252
21253         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
21254         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
21255         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
21256
21257         * gnatlbr.adb: Clean up: replace Library_Version by
21258         Verbose_Library_Version.
21259
21260         * make.adb, lib-writ.adb, exp_attr.adb:
21261         Clean up: replace Library_Version by Verbose_Library_Version.
21262
21263         * 5lintman.adb: Removed.
21264
21265         * Makefile.in:
21266         Update and simplify computation of LIBRARY_VERSION.
21267         Fix computation of GSMATCH_VERSION.
21268         5lintman.adb is no longer used: replaced by 7sintman.adb.
21269
21270 2003-12-03  Robert Dewar  <dewar@gnat.com>
21271
21272         * exp_ch5.adb:
21273         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
21274         name. Modified to consider small non-bit-packed arrays as troublesome
21275         and in need of component-by-component assigment expansion.
21276
21277 2003-12-03  Vincent Celier  <celier@gnat.com>
21278
21279         * lang-specs.h: Process nostdlib as nostdinc
21280
21281         * back_end.adb: Update Copyright notice
21282         (Scan_Compiler_Arguments): Process -nostdlib directly.
21283
21284 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
21285
21286         * Makefile.in:
21287         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
21288         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
21289         included in HIE_NONE_TARGET_PAIRS.
21290
21291 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
21292
21293         * sem_attr.adb:
21294         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
21295         is legal in an instance, because legality is cheched in the template.
21296
21297         * sem_prag.adb:
21298         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
21299         appplied to an unchecked conversion of a formal parameter.
21300
21301         * sem_warn.adb:
21302         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
21303         variables.
21304
21305 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
21306
21307         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
21308         routines. The second one is new functionality to deal with backtracing
21309         through signal handlers.
21310         (unwind): Split into the two separate subroutines above.
21311         Update the documentation, and deal properly with sizeof (REG) different
21312         from sizeof (void*).
21313
21314 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
21315
21316         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
21317         so that the debugger can reliably access the value of the parameter,
21318         and therefore is able to display the exception name when an exception
21319         breakpoint is reached.
21320
21321 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
21322
21323         * fmap.adb: Fix typo in warning message.
21324
21325         * g-socket.ads, g-socket.adb: Make Free a visible instance of
21326         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
21327
21328 2003-12-01  Vincent Celier  <celier@gnat.com>
21329
21330         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
21331         ther is no Afile.
21332         (Build_Library): Get the switches only if Default_Switches is declared
21333         in package Binder.
21334
21335 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
21336
21337         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
21338         actuals that are indexed components, reanalyze actual to ensure that
21339         packed array references are properly expanded.
21340
21341         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
21342         attempted assignment to a discriminant.
21343
21344 2003-12-01  Robert Dewar  <dewar@gnat.com>
21345
21346         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
21347         reformatting.
21348
21349         * switch-c.adb: Minor reformatting of comments
21350
21351 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21352
21353         * Makefile.in: Clean ups.
21354
21355 2003-12-01  GNAT Script  <nobody@gnat.com>
21356
21357         * Make-lang.in: Makefile automatically updated
21358
21359 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21360
21361         * 5wsystem.ads: Disable zero cost exception, not ready yet.
21362
21363 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
21364
21365         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
21366         to force serialization.
21367
21368 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
21369
21370         * g-socket.ads, g-socket.adb:
21371         Clarify documentation of function Stream. Introduce a Free procedure
21372         to release the returned Stream once it becomes unused.
21373
21374         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
21375
21376 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
21377
21378         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
21379         since NT 4 cannot handle timeout values that are too large,
21380         e.g. DWORD'Last - 1.
21381
21382 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
21383
21384         * exp_ch4.adb:
21385         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
21386         in procedure calls and whose expansion must be deferred.
21387
21388         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
21389         is in exp_ch4.
21390
21391         * sem_ch3.adb:
21392         (Build_Derived_Array_Type): Create operator for unconstrained type
21393         if ancestor is unconstrained.
21394
21395 2003-11-26  Vincent Celier  <celier@gnat.com>
21396
21397         * make.adb (Project_Object_Directory): New global variable
21398         (Change_To_Object_Directory): New procedure
21399         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
21400         of Change_Dir directly. Do not change working directory to object
21401         directory of main project after each compilation.
21402         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
21403         directly.
21404         Change to object directory of main project before binding step.
21405         (Initialize): Initialize Project_Object_Directory to No_Project
21406
21407         * mlib-prj.adb:
21408         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
21409         binding a Stand-Alone Library.
21410
21411         * output.adb: Update Copyright notice
21412         (Write_Char): Output buffer when full
21413
21414 2003-11-26  Robert Dewar  <dewar@gnat.com>
21415
21416         * sem_ch13.adb: (Check_Size): Reset size if size is too small
21417
21418         * sem_ch13.ads:
21419         (Check_Size): Fix documentation to include bit-packed array case
21420
21421         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
21422
21423         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
21424
21425         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
21426
21427 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
21428
21429         PR ada/13142
21430         * utils.c (init_gigi_decls): Change name of built-in setjmp to
21431         __builtin_setjmp, since this is apparently needed by recent
21432         non Ada changes.
21433
21434 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21435
21436         * adadecode.c: Only include ctype.h if not IN_GCC.
21437         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
21438
21439 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
21440
21441         * Makefile.in:
21442         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
21443         signals and interrupts.
21444
21445         * 5zintman.ads: New File.
21446
21447         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
21448         add exception signals to the set of unmasked signals.
21449
21450         * 5ztaprop.adb:
21451         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
21452         between signals and interrupts.
21453         Add to Unblocked_Signal_Mask the set of signals that are in
21454         Keep_Unmasked.
21455
21456         * 7sinmaop.adb:
21457         Adding a check to see whether the Interrupt_ID we want to unmask is in
21458         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
21459         reason is that the index type of the Keep_Unmasked array is not always
21460         Interrupt_ID; it may be a subtype of Interrupt_ID.
21461
21462 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
21463
21464         * exp_util.adb:
21465         (Remove_Side_Effects): Condition constantness of object created for a
21466          an unchecked type conversion on the constantness of the expression
21467          to ensure the correct value for 'Constrained when passing components
21468          of view-converted class-wide objects.
21469
21470 2003-11-24  Robert Dewar  <dewar@gnat.com>
21471
21472         * par-load.adb (Load): Improve handling of misspelled and missing units
21473         Removes several cases of compilation abandoned messages
21474
21475         * lib.adb: (Remove_Unit): New procedure
21476
21477         * lib.ads: (Remove_Unit): New procedure
21478
21479         * lib-load.adb: Minor reformatting
21480
21481 2003-11-24  Vincent Celier  <celier@gnat.com>
21482
21483         * make.adb:
21484         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
21485         (Marking_Label): Label to mark processed source files. Incremented for
21486         each executable.
21487         (Gnatmake): Increase Marking_Labet for each executable
21488         (Is_Marked): Compare against marking label
21489         (Mark): Mark with marking label
21490
21491 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
21492
21493         * s-thread.ads:
21494         Move the declaration of the TSD for System.Threads to System.Soft_Links.
21495         Add some comments.
21496
21497         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
21498         (rts-cert): build a single relocatable object for the run-time lib.
21499         Fix perms.
21500
21501 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
21502
21503         * Make-lang.in:
21504         Use gnatls rather than gcc to obtain the location of GNAT RTL for
21505         crosstools build.
21506
21507 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
21508
21509         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
21510         can not use it as before (that is, as a variable) when dumping it into
21511         the tree file. Add a local variable to store the result of this
21512         function and to be used as the string to be written into the tree.
21513
21514         * scn.adb (Initialize_Scanner): Add comments explaining the recent
21515         changes.
21516
21517         * sinput.adb (Source_First, Source_Last): In case of
21518         Internal_Source_File, replace returning attributes of
21519         Internal_Source_Ptr (which is wrong) with returning attributes of
21520         Internal_Source.
21521
21522 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
21523
21524         * sem_ch3.adb:
21525         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
21526         used for implicit concatenation operators.
21527         Code cleanup.
21528
21529         * sem_elab.adb:
21530         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
21531         task bodies that are in the scope of a Suppress pragma.
21532         (Check_A Call): Use the flag to prevent spurious elaboration checks.
21533
21534         * sinfo.ads, sinfo.adb:
21535         New flag No_Elaboration_Check on function/procedure calls, to properly
21536         suppress checks on calls in task bodies that are within a local suppress
21537         pragma.
21538
21539         * exp_ch4.adb:
21540         (Expand_Concatenate_Other): Use the proper integer type for the
21541         expression for the upper bound, to avoid universal_integer computations
21542         when possible.
21543
21544 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
21545
21546         * .cvsignore: Delete.
21547
21548 2003-11-21  Andreas Schwab  <schwab@suse.de>
21549
21550         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
21551
21552 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
21553
21554         * 5wsystem.ads: Enable zero cost exception.
21555
21556 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
21557
21558         * 5ztiitho.adb: Remove an unreferenced variable.
21559
21560 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
21561
21562         * adaint.c: For FreeBSD, use mkstemp.
21563
21564 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
21565
21566         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
21567
21568 2003-11-21  Robert Dewar  <dewar@gnat.com>
21569
21570         * bld.adb: Remove useless USE of gnatvsn
21571
21572         * gnatchop.adb: Minor reformatting
21573         Clean up version handling to be more consistent
21574
21575         * gnatxref.adb: Minor reformatting
21576
21577         * gprcmd.adb: Minor reformatting
21578         Fix output of copyright to be more consistent with other tools
21579
21580 2003-11-21  Vincent Celier  <celier@gnat.com>
21581
21582         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
21583
21584 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
21585
21586         * atree.adb (Initialize): Add initializations for global variables
21587         used in New_Copy_Tree.
21588
21589         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
21590         Internal_Source_File as the actual).
21591         Put the set of statements creating Any_Character before the set of
21592         statements creating Any_Array to have Any_Character fully initialized
21593         when it is used in creating Any_Array.
21594
21595         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
21596         not call Scan in case if the actual is Internal_Source_File
21597         Add 2003 to copyright note.
21598
21599         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
21600         processing Internal_Source_File.
21601
21602         * types.ads: Add the constant Internal_Source_File representing the
21603         source buffer for artificial source-code-like strings created within
21604         the compiler (the definition of Source_File_Index is changed).
21605
21606 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
21607
21608         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
21609         56system.ads: New file, FreeBSD version.
21610
21611 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
21612
21613         * Make-lang.in (ada.extraclean): Delete.
21614
21615 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
21616
21617         * gnatmem.adb: Clean up verbose output.
21618
21619         * gprcmd.adb: Change copyright to FSF.
21620
21621 2003-11-19  Vincent Celier  <celier@gnat.com>
21622
21623         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
21624         and Version (ignored).
21625
21626         * symbols.ads: (Policy): New type
21627         (Initialize): New parameter Reference, Symbol_Policy and
21628         Library_Version.
21629         Remove parameter Force.
21630         Minor reformatting.
21631
21632         * snames.ads, snames.adbadb: New standard names
21633         Library_Reference_Symbol_File and Library_Symbol_Policy
21634
21635         * mlib-prj.adb:
21636         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
21637         project.
21638
21639         * mlib-tgt.adb:
21640         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
21641
21642         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
21643
21644         * prj.adb: (Project_Empty): New component Symbol_Data
21645
21646         * prj.ads: (Policy, Symbol_Record): New types
21647         (Project_Data): New component Symbol_Data
21648
21649         * prj-attr.adb:
21650         New attributes Library_Symbol_File, Library_Symbol_Policy and
21651         Library_Reference_Symbol_File.
21652
21653         * prj-nmsc.adb:
21654         (Ada_Check): When project is a Stand-Alone library project, process
21655         attribute Library_Symbol_File, Library_Symbol_Policy and
21656         Library_Reference_Symbol_File.
21657
21658         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
21659         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
21660         5sml-tgt.adb (Build_Dynamic_Library): New parameter
21661         Symbol_Data (ignored).
21662
21663         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
21664         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
21665         functions Option_File_Name and Version_String. Set new options of
21666         gnatsym related to symbol file, symbol policy and reference symbol
21667         file.
21668
21669         * 5vsymbol.adb:
21670         Extensive modifications to take into account the reference symbol file,
21671         the symbol policy, the library version and to put in the symbol file the
21672         minor and major IDs.
21673
21674         * bld.adb (Process_Declarative_Items): Put second argument of
21675         gprcmd to_absolute between single quotes, to avoid problems with
21676         Windows.
21677
21678         * bld-io.adb: Update Copyright notice.
21679         (Flush): Remove last character of a line, if it is a back slash, to
21680         avoid make problems.
21681
21682         * gnatsym.adb:
21683         Implement new scheme with reference symbol file and symbol policy.
21684
21685         * g-os_lib.ads: (Is_Directory): Clarify comment
21686
21687 2003-11-19  Robert Dewar  <dewar@gnat.com>
21688
21689         * atree.adb: Move New_Copy_Tree global variables to head of package
21690
21691         * errout.adb: Minor reformatting
21692
21693 2003-11-19  Javier Miranda  <miranda@gnat.com>
21694
21695         * sem_ch4.adb: (Diagnose_Call): Improve error message.
21696         Add reference to Ada0Y (AI-50217)
21697
21698         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
21699         sem_util.adb: Add reference to AI-50217
21700
21701         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
21702
21703         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
21704
21705         * sem_aggr.adb: Complete documentation of AI-287 changes
21706
21707         * par-ch4.adb: Document previous changes.
21708
21709         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
21710         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
21711         Ada0Y (AI-50217)
21712
21713         * exp_aggr.adb: Add references to AI-287 in previous changes
21714
21715 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
21716
21717         * exp_ch6.adb:
21718         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
21719         in the rewriting is the result of an inlined call.
21720
21721         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
21722         parameter is a type conversion, use original node to construct the
21723         post-call assignment, because expression may have been rewritten, e.g.
21724         if it is a packed array.
21725
21726         * sem_attr.adb:
21727         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
21728         body, just as it is in an instance.
21729         Categorization routines
21730
21731         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
21732         Instantiate_Object): Set proper sloc reference for message on missing
21733         actual.
21734
21735 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
21736
21737         * Makefile.in: Add FreeBSD libgnat pairs.
21738
21739         * usage.adb: Fix typo in usage message.
21740
21741 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
21742
21743         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
21744         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
21745         pragma Thread_Body.
21746         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
21747
21748         * s-thread.adb: This file is now a dummy implementation of
21749         System.Thread.
21750
21751 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
21752
21753         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
21754
21755 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
21756
21757         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21758         instanciation references in the parent type description.
21759
21760 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21761
21762         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
21763
21764         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
21765         TYPE_PRECISION directly from esize.
21766
21767 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
21768
21769         * cstreams.c:
21770         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
21771
21772         * init.c: Initialization routines for FreeBSD
21773
21774         * link.c: Link info for FreeBSD
21775
21776         * sysdep.c: Add the case of FreeBSD
21777
21778 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
21779
21780         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
21781         already called in System.Threads.
21782
21783         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
21784         environment task, as it has been moved to System.Threads.Initialization.
21785
21786 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
21787
21788         * adaint.c (__gnatlib_install_locks): Only reference
21789         __gnat_install_locks on VMS, since other platforms can avoid using
21790         --enable-threads=gnat
21791
21792 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21793
21794         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
21795
21796         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
21797         TYPE_PACKED_ARRAY_TYPE_P.
21798         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
21799
21800         Part of PR ada/12806
21801         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
21802         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
21803
21804 2003-11-17  Vincent Celier  <celier@gnat.com>
21805
21806         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
21807         to False.
21808         Do not set exit status to Failure when Warning is True.
21809         (Gnatchop): Make errors "no compilation units found" and
21810         "no source files written" warnings only.
21811
21812         * make.adb (Gnatmake): When using a project file, set
21813         Look_In_Primary_Dir to False.
21814         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
21815         and Local_Configuration_Pragmas in the project where they are declared
21816         not an extending project which might have inherited them.
21817
21818         * osint.adb (Locate_File): If Name is already an absolute path, do not
21819         look for a directory.
21820
21821         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
21822         -gnats (Check_Syntax) is used, issue only a warning, not an error.
21823
21824         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
21825         in objects of type Variable_Value.
21826
21827         * prj.ads: (Variable_Value): New component Project
21828
21829         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
21830         is in a project extended by Project.
21831
21832         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
21833         Project of Variable_Values to this new parameter value.
21834         (Expression): Set component Project of Variable_Values.
21835         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
21836         Set the component Project in array elements.
21837
21838 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
21839
21840         * errout.adb: (Initialize): Add initialization for error nodes.
21841
21842         * sem_ch12.adb (Initialize): Add missing initializations for
21843         Exchanged_Views and Hidden_Entities.
21844
21845 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
21846
21847         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
21848         already instantiated tree for use in subsequent inlining.
21849         (Analyze_Associations, Instantiate_Formal_Subprogram,
21850         Instantiate_Object): improve error message for mismatch in
21851         instantiations.
21852
21853         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
21854         instantiations of subprograms declared in instances.
21855
21856 2003-11-17  Javier Miranda  <miranda@gnat.com>
21857
21858         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
21859         executed only under the Extensions_Allowed flag.
21860
21861 2003-11-17  Robert Dewar  <dewar@gnat.com>
21862
21863         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
21864         zeroes suppressed.
21865         (Address_Image): Fix bug of returning 0x instead of 0x0
21866         Minor reformatting (function specs).
21867
21868         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
21869         (missed case of 33-63)
21870
21871         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
21872
21873         * s-thread.adb: Add comments for pragma Restriction
21874
21875         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
21876         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
21877
21878 2003-11-17  Ed Falis  <falis@gnat.com>
21879
21880         * s-thread.adb: Added No_Tasking restriction for this implementation.
21881
21882 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
21883
21884         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21885         instanciation references in the parent type description.
21886
21887 2003-11-17  GNAT Script  <nobody@gnat.com>
21888
21889         * Make-lang.in: Makefile automatically updated
21890
21891 2003-11-16  Jason Merrill  <jason@redhat.com>
21892
21893         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
21894         and TAGS files that include them for each front end.
21895
21896 2003-11-14  Andreas Jaeger  <aj@suse.de>
21897
21898         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
21899         is the canonical version.
21900         * misc.c (gnat_handle_option): Likewise.
21901
21902         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
21903
21904         * 5nsystem.ads: New file for x86_64-linux-gnu.
21905
21906 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
21907
21908         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
21909
21910         * comperr.adb: Fix logic in previous change.
21911
21912 2003-11-13  Vincent Celier  <celier@gnat.com>
21913
21914         * 5bml-tgt.adb (Build_Dynamic_Library): Use
21915         Osint.Include_Dir_Default_Prefix instead of
21916         Sdefault.Include_Dir_Default_Name.
21917
21918         * gnatlbr.adb: Update Copyright notice
21919         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
21920         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
21921         instead of Sdefault.Object_Dir_Default_Name
21922
21923         * gnatlink.adb:
21924         (Process_Binder_File): Never suppress the option following -Xlinker
21925
21926         * mdll-utl.adb:
21927         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
21928         Sdefault.Object_Dir_Default_Name.
21929
21930         * osint.ads, osint.adb:
21931         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
21932         Minor reformatting.
21933
21934         * vms_conv.ads: Minor reformating
21935         Remove GNAT STANDARD and GNAT PSTA
21936
21937         * vms_conv.adb:
21938         Allow GNAT MAKE to have several files on the command line.
21939         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
21940         Sdefault.Object_Dir_Default_Name.
21941         Minor Reformating
21942         Remove data for GNAT STANDARD
21943
21944         * vms_data.ads:
21945         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
21946         Remove data for GNAT STANDARD
21947         Remove options and documentation for -gnatwb/-gnatwB: these warning
21948         options no longer exist.
21949
21950 2003-11-13  Ed Falis  <falis@gnat.com>
21951
21952         * 5zthrini.adb: (Init_RTS): Made visible
21953
21954         * 5zthrini.adb:
21955         (Register): Removed unnecessary call to taskVarGet that checked whether
21956          an ATSD was already set as a task var for the argument thread.
21957
21958         * s-thread.adb:
21959         Updated comment to reflect that this is a VxWorks version
21960         Added context clause for System.Threads.Initialization
21961         Added call to System.Threads.Initialization.Init_RTS
21962
21963 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
21964
21965         * 5zthrini.adb:
21966         (Init_RTS): New procedure, for the initialization of the run-time lib.
21967
21968         * s-thread.adb:
21969         Remove dependancy on System.Init, so that this file can be used in the
21970         AE653 sequential run-time lib.
21971
21972 2003-11-13  Robert Dewar  <dewar@gnat.com>
21973
21974         * bindgen.adb: Minor reformatting
21975
21976 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
21977
21978         * checks.adb:
21979         (Apply_Discriminant_Check): Do no apply check if target type is derived
21980         from source type with no applicable constraint.
21981
21982         * lib-writ.adb:
21983         (Ensure_System_Dependency): Do not apply the style checks that may have
21984         been specified for the main unit.
21985
21986         * sem_ch8.adb:
21987         (Find_Selected_Component): Further improvement in error message, with
21988         RM reference.
21989
21990         * sem_res.adb:
21991         (Resolve): Handle properly the case of an illegal overloaded protected
21992         procedure.
21993
21994 2003-11-13  Javier Miranda  <miranda@gnat.com>
21995
21996         * exp_aggr.adb:
21997         (Has_Default_Init_Comps): New function to check the presence of
21998         default initialization in an aggregate.
21999         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
22000         extension aggregate of a limited record. In addition, a new formal
22001         was added to do not initialize the record controller (if any) during
22002         this recursive expansion of ancestors.
22003         (Init_Controller): Add support for limited record components.
22004         (Expand_Record_Aggregate): In case of default initialized components
22005         convert the aggregate into a set of assignments.
22006
22007         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
22008         describing the new syntax.
22009         Nothing else needed to be done because this subprogram delegates part of
22010         its work to P_Precord_Or_Array_Component_Association.
22011         (P_Record_Or_Array_Component_Association): Give support to the new
22012         syntax for default initialization of components.
22013
22014         * sem_aggr.adb:
22015         (Resolve_Aggregate): Relax the strictness of the frontend in case of
22016         limited aggregates.
22017         (Resolve_Record_Aggregate): Give support to default initialized
22018         components.
22019         (Get_Value): In case of default initialized components, duplicate
22020         the corresponding default expression (from the record type
22021         declaration). In case of default initialization in the *others*
22022         choice, do not check that all components have the same type.
22023         (Resolve_Extension_Aggregate): Give support to limited extension
22024         aggregates.
22025
22026         * sem_ch3.adb:
22027         (Check_Initialization): Relax the strictness of the front-end in case
22028         of aggregate and extension aggregates. This test is now done in
22029         Get_Value in a per-component manner.
22030
22031         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
22032         expression corresponds to a limited aggregate. This test is now done
22033         in Get_Value.
22034
22035         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
22036         Box_Present flag.
22037
22038         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
22039         present in an N_Component_Association node
22040
22041 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
22042
22043         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
22044         type-conformant entry only if they are homographs.
22045
22046 2003-11-13  GNAT Script  <nobody@gnat.com>
22047
22048         * Make-lang.in: Makefile automatically updated
22049
22050 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22051
22052         * adadecode.c: Use <> form of include for ctype.h.
22053         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
22054
22055 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22056
22057         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
22058         Works around PR middle-end/6552.
22059
22060 2003-11-10  Ed Falis  <falis@gnat.com>
22061
22062         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
22063
22064         * 5zinit.adb: (Install_Handler): Moved back to spec
22065         (Install_Signal_Handlers): Deleted
22066
22067         * 5zthrini.adb: Added context clause for System.Storage_Elements
22068         (Register): Only handles creation of taskVar; initialization moved to
22069         Thread_Body_Enter.
22070         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
22071         Added declaration of environment task secondary stack and
22072         initialization.
22073
22074         * s-thread.adb: Implement bodies for thread body processing
22075
22076         * s-thread.ads:
22077         Added comment identifying supported targets for pragma Thread_Body.
22078
22079 2003-11-10  Pascal Obry  <obry@gnat.com>
22080
22081         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
22082         GNAT_MAX_PATH_LEN.
22083
22084         * s-fileio.adb:
22085         (Open): Properly check for string length before copying into the buffer.
22086         Raises Name_Error if buffer is too small. Note that this was a potential
22087         buffer overflow.
22088
22089 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
22090
22091         * bindgen.adb, comperr.adb: Code clean ups.
22092         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
22093
22094 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
22095
22096         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
22097
22098 2003-11-10  Vincent Celier  <celier@gnat.com>
22099
22100         * gprcmd.adb:
22101         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
22102         installation.
22103
22104         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
22105
22106         * prj.adb: (Project_Empty): Add new boolean component Virtual
22107
22108         * prj.ads: (Virtual_Prefix): New constant string
22109         (Project_Data): New boolean component Virtual
22110
22111         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
22112         a library project is extended by a virtual extending project.
22113
22114         * prj-part.adb:
22115         Modifications throughout to implement extending-all project, including:
22116         (Virtual_Hash, Processed_Hash): New hash tables
22117         (Create_Virtual_Extending_Project): New procedure
22118         (Look_For_Virtual_Projects_For): New procedure
22119
22120         * prj-proc.adb:
22121         (Process): After checking the projects, if main project is an
22122         extending-all project, set the object directory of all virtual extending
22123         project to the object directory of the main project.
22124         Adjust error message when a virtual extending project has the same
22125         object directory as an project being extended.
22126         (Recursive_Process): If name starts with the virtual prefix, set Virtual
22127         to True in the project data.
22128
22129         * prj-tree.adb:
22130         (Default_Project_Node): Add new boolean component Extending_All
22131         (Is_Extending_All): New function
22132         (Set_Is_Extending_All): New procedure
22133
22134         * prj-tree.ads: (Is_Extending_All): New function
22135         (Set_Is_Extending_All): New procedure
22136         (Project_Node_Record): New boolean component Extending_All
22137
22138         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
22139
22140         * vms_data.ads:
22141         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
22142
22143         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
22144         "gprcmd prefix" to define it.
22145
22146 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
22147
22148         * einfo.ads: Fix a typo and remove an extraneous word in comments.
22149
22150         * lib-load.adb:
22151         (Create_Dummy_Package_Unit): Set the scope of the entity for the
22152         created dummy package to Standard_Standard, not to itself, to
22153         defend other parts of the front-end against encoutering a cycle in
22154         the scope chain.
22155
22156         * sem_ch10.adb:
22157         (Analyze_With_Clause): When setting the entities for the successive
22158         N_Expanded_Names that constitute the name of a child unit, do not
22159         attempt to go further than Standard_Standard in the chain of scopes.
22160         This case arises from the placeholder units created by
22161         Create_Dummy_Package_Unit in the case of a with_clause for a
22162         nonexistent child unit.
22163
22164 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
22165
22166         * exp_ch6.adb:
22167         (Expand_Thread_Body): Place subprogram on scope stack, so that new
22168         declarations are given the proper scope.
22169
22170         * sem_ch13.adb:
22171         (Check_Expr_Constants): Reject an expression that contains a constant
22172         created during expansion, and that appears after the object to which
22173         the address clause applies.
22174
22175         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
22176         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
22177         that uses 'Range of a function call with controlled components, so
22178         that the function result can be finalized before starting the loop.
22179
22180         * sem_ch8.adb:
22181         (Find_Selected_Component): Improve error message when prefix is
22182         an implicit dereference of an incomplete type.
22183
22184 2003-11-10  Robert Dewar  <dewar@gnat.com>
22185
22186         * opt.ads: New Print_Standard flag for -gnatS switch
22187
22188         * sem_ch13.adb: Remove some additional checks for unaligned arrays
22189
22190         * cstand.adb (Create_Standard): Print out package standard if -gnatS
22191         switch set
22192
22193         * debug.adb: Update doc for -gnatds to discuss relationship with new
22194         -gnatS flag
22195
22196         * sinfo.adb: Add new field Entity_Or_Associated_Node
22197
22198         * sinfo.ads: Add new field Entity_Or_Associated_Node
22199         Update documentation for Associated_Node and Entity fields to clarify
22200         relationship and usage.
22201
22202         * sprint.adb:
22203         (Write_Id): Properly process Associated_Node field in generic template
22204
22205         * switch-c.adb:
22206         Recognize new -gnatS switch for printing package Standard
22207         This replaces gnatpsta
22208
22209         * usage.adb:
22210         Add line for  new -gnatS switch for printing package Standard
22211         This replaces gnatpsta
22212
22213 2003-11-10  Andreas Jaeger  <aj@suse.de>
22214
22215         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
22216         integer.
22217
22218 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22219
22220         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
22221         by gnat1.
22222
22223 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22224
22225         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
22226         no longer needed.
22227
22228         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
22229
22230         * sysdep.c: Add handling of cygwin.
22231
22232 2003-11-10  GNAT Script  <nobody@gnat.com>
22233
22234         * Make-lang.in: Makefile automatically updated
22235
22236 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22237
22238         PR 12950
22239         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
22240         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
22241         Replace GNAT_ROOT by GCC_ROOT.
22242
22243         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
22244
22245 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
22246
22247         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
22248         and update for changed meaning of GET_MODE_BITSIZE.
22249
22250 2003-11-04  Doug Rupp  <rupp@gnat.com>
22251
22252         * sysdep.c: Problem discovered during IA64 VMS port.
22253         [VMS] #include <unixio.h> to get proper prototypes.
22254
22255         * adaint.c:
22256         Issues discovered/problems fixed during IA64 VMS port.
22257         [VMS] #define _POSIX_EXIT for proper semantics.
22258         [VMS] #include <unixio.h> for proper prototypes.
22259         [VMS] (fork): #define IA64 version.
22260         (__gnat_os_exit): Remove unnecessary VMS specific code.
22261
22262 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22263
22264         Part of PR ada/12806
22265
22266         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
22267         tree, not integer.
22268
22269         * decl.c:
22270         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
22271         not integer.
22272
22273         * targtyps.c, decl.c, misc.c,
22274         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
22275         routines to work around change in FP sizing semantics in GCC.
22276
22277         * utils.c:
22278         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
22279
22280         * gigi.h: (enumerate_modes): New function.
22281
22282         * Make-lang.in: (ada/misc.o): Add real.h.
22283
22284         * misc.c: (enumerate_modes): New function.
22285
22286 2003-11-04  Robert Dewar  <dewar@gnat.com>
22287
22288         * 3vtrasym.adb: Minor reformatting
22289         Use terminology encoded/decoded name, rather than C++ specific notion
22290         of mangling (this is the terminology used throughout GNAT).
22291
22292         * einfo.h: Regenerated
22293
22294         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
22295
22296         * exp_ch6.adb:
22297         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
22298
22299         * par-prag.adb: Add dummy entry for Thread_Body pragma
22300
22301         * rtsfind.ads:
22302         Add entries for System.Threads entities for thread body processing
22303
22304         * sem_attr.adb:
22305         (Analyze_Pragma, Access attributes): Check these are not applied to a
22306         thread body, since this is not permitted
22307
22308         * sem_prag.adb: Add processing for Thread_Body pragma.
22309         Minor comment fix.
22310
22311         * sem_res.adb:
22312         (Resolve_Call): Check for incorrect attempt to call a thread body
22313          procedure with a direct call.
22314
22315         * snames.ads, snames.adb: Add entry for Thread_Body pragma
22316         Add names associated with thread body expansion
22317
22318         * snames.h: Add entry for Thread_Body pragma
22319
22320         * s-thread.adb: Add entries for thread body processing
22321         These are dummy bodies so far
22322
22323         * s-thread.ads: Add documentation on thread body handling.
22324         Add entries for thread body processing.
22325
22326 2003-11-04  Javier Miranda  <miranda@gnat.com>
22327
22328         * sem_ch10.adb:
22329         (Build_Limited_Views): Return after posting an error in case of limited
22330         with_clause on subprograms, generics, instances or generic renamings
22331         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
22332         on subprograms, generics, instances or generic renamings
22333
22334 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
22335
22336         * raise.c (setup_to_install): Correct mistake in last revision; two
22337         arguments out of order.
22338
22339         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
22340         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
22341         notice, missed in previous change.
22342         Remove trailing blanks and other style errors introduced in previous
22343         change.
22344
22345 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
22346
22347         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
22348         rid of the wrapper for a LJM type, ensuring we don't do that if the
22349         field is addressable.  This avoids potential low level type view
22350         mismatches later on, for instance in a by-reference argument passing
22351         process.
22352
22353 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22354
22355         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
22356         aligned at byte boundary.
22357
22358 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
22359
22360         * decl.c (components_to_record): Do not delete the empty variants from
22361         the end of the union type.
22362
22363 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
22364
22365         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
22366         operation for a derived type, an explicit declaration may use a local
22367         subtype of Boolean.
22368
22369 2003-11-04  Vincent Celier  <celier@gnat.com>
22370
22371         * make.adb (Gnatmake): Allow main sources on the command line with a
22372         library project when it is only for compilation (no binding or
22373         linking).
22374
22375 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22376
22377         * Makefile.in: Remove many duplicate variables.
22378
22379 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
22380
22381         * Make-lang.in (dvi): Move targets to $(docobjdir).
22382         (gnat_ug_vms.dvi): Simplify rule and adjust target.
22383         (gnat_ug_wnt.dvi): Likewise.
22384         (gnat_ug_unx.dvi): Likewise.
22385         (gnat_ug_vxw.dvi): Likewise.
22386         (gnat_rm.dvi): Likewise.
22387         (gnat-style.dvi): Likewise.
22388
22389 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22390
22391         * gigi.h: Missed commit from update for C90.
22392
22393 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22394
22395         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
22396
22397 2003-10-31  Andreas Schwab  <schwab@suse.de>
22398
22399         * raise.c (get_action_description_for): Fix typo in last change.
22400
22401 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
22402
22403         PR ada/12761
22404         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
22405         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
22406
22407 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
22408
22409         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
22410         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
22411         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
22412         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
22413         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
22414
22415 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
22416
22417         * 3vtrasym.adb:
22418         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
22419         numbers when symbol name is too long.
22420
22421 2003-10-30  Ed Falis  <falis@gnat.com>
22422
22423         * g-signal.ads, g-signal.adb: New files
22424
22425         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
22426
22427         * Makefile.rtl: Introduce GNAT.Signals
22428
22429 2003-10-30  Robert Dewar  <dewar@gnat.com>
22430
22431         * freeze.adb: Minor reformatting
22432
22433         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
22434
22435         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
22436         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
22437         New handling of Id_Check parameter to improve recognition of keywords
22438         used as identifiers.
22439         Update copyright notice to include 2003
22440
22441 2003-10-29  Robert Dewar  <dewar@gnat.com>
22442
22443         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
22444         sem_ch10.adb: Minor reformatting
22445
22446         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
22447         (Expand_Assign_Record): Test right hand side for bit unaligned as well
22448
22449 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
22450
22451         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
22452         Support for TBK$SYMBOLIZE-based symbolic traceback.
22453
22454 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
22455
22456         * exp_disp.adb:
22457         Revert previous change, that did not work well when pragma No_Run_Time
22458         was used in conjunction with a run-time other than ZFP.
22459
22460 2003-10-29  Vincent Celier  <celier@gnat.com>
22461
22462         * make.adb:
22463         (Gnatmake): When there are no Ada mains in attribute Main, disable the
22464          bind and link steps only is switch -z is not used.
22465
22466 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
22467
22468         * Makefile.generic: Remove duplicated setting of CC.
22469
22470         * Makefile.prolog: Set CC to gcc by default, to override make's
22471         default (cc).
22472
22473         * einfo.h: Regenerated.
22474
22475 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
22476
22477         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
22478         current body, after compiling subunit.
22479
22480         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
22481         when in deleted code, because gigi needs properly ordered freeze
22482         actions to annotate types.
22483
22484         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
22485         prevent the premature freezing of record type that contains
22486         subcomponents with a private type that does not yet have a completion.
22487
22488 2003-10-29  Javier Miranda  <miranda@gnat.com>
22489
22490         * sem_ch12.adb:
22491         (Analyze_Package_Instantiation): Check that instances can not be used in
22492         limited with_clauses.
22493
22494         * sem_ch8.adb:
22495         (Analyze_Package_Renaming): Check that limited withed packages cannot
22496         be renamed. Improve text on error messages related to limited
22497         with_clauses.
22498
22499         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
22500
22501         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
22502         Update copyright notice.
22503
22504         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
22505         (Install_Limited_Context_Clauses): New subprogram that isolates all the
22506         checks required for limited context_clauses and installs the limited
22507         view.
22508         (Install_Limited_Withed_Unit): Complete its documentation.
22509         (Analyze_Context): Check that limited with_clauses are only allowed in
22510         package specs.
22511         (Install_Context): Call Install_Limited_Context_Clauses after the
22512         parents have been installed.
22513         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
22514         package as 'From_With_Type'; this mark indicates that the limited view
22515         is installed. Used to check bad usages of limited with_clauses.
22516         (Build_Limited_Views): Do not add shadow entities to the scope's list
22517         of entities. Do not add real entities to the Non_Limited_Views chain.
22518         Improve error notification.
22519         (Remove_Context_Clauses): Remove context clauses in two phases:
22520         limited views first and regular views later (to maintain the
22521         stack model).
22522         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
22523         its visible entities.
22524
22525 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
22526
22527         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
22528         with any type that Is_Fixed_Point_Type.
22529
22530         * sinfo.ads: Fix documentation for Associated_Node attribute.
22531
22532 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
22533
22534         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
22535         both '-gnatc' and '-gnatt' are specified.
22536
22537         * atree.adb (Initialize): Add initialization for Node_Count (set to
22538         zero).
22539
22540 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22541
22542         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
22543         do not consider as Pure.
22544
22545         Part of implementation of function-at-a-time:
22546
22547         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
22548         (tree_transform): Add new argument to build_component_ref.
22549         (tree_transform, case N_Assignment_Statement): Make and return an
22550         EXPR_STMT.
22551         (tree_transform): If result IS_STMT, set flags and return it.
22552         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22553
22554         * utils2.c (build_simple_component_ref, build_component_ref): Add new
22555         arg, NO_FOLD_P.
22556         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
22557         (build_allocator): Likewise.
22558
22559         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
22560         Add new arg to build_component_ref.
22561         (maybe_unconstrained_array, unchecked_convert): Likewise.
22562
22563         * ada-tree.def (EXPR_STMT): New code.
22564
22565         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
22566
22567         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
22568         build_component_ref calls.
22569
22570         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
22571
22572         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22573         (build_component_ref): Add new argument, NO_FOLD_P.
22574
22575 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
22576
22577         * Makefile.generic: Add missing substitution on object_deps handling.
22578
22579         PR ada/5909:
22580         * Make-lang.in (check-ada): Enable ACATS test suite.
22581
22582 2003-10-27  Robert Dewar  <dewar@gnat.com>
22583
22584         * exp_ch3.adb:
22585         (Freeze_Array_Type): We do not need an initialization routine for types
22586         derived from String or Wide_String. They should be treated the same
22587         as String and Wide_String themselves. This caused problems with the
22588         use of Initialize_Scalars.
22589
22590         * exp_ch5.adb:
22591         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
22592         composites. This allows use of component clauses that are not byte
22593         aligned.
22594
22595         * sem_prag.adb:
22596         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
22597         is an attempt to pack an array of atomic objects.
22598
22599         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
22600
22601 2003-10-27  Pascal Obry  <obry@gnat.com>
22602
22603         * g-dirope.adb:
22604         (Basename): Check for drive letters in a pathname only on DOS based OS.
22605
22606 2003-10-27  Vincent Celier  <celier@gnat.com>
22607
22608         * make.adb:
22609         (Gnatmake): When unable to change dir to the object dir, display the
22610         content of the parent dir of the obj dir, to try to understand why this
22611         happens.
22612
22613 2003-10-27  GNAT Script  <nobody@gnat.com>
22614
22615         * Make-lang.in: Makefile automatically updated
22616
22617 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
22618
22619         * sem_ch12.adb:
22620         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
22621         should not be done in Save/Restore_Scope_Stack, because it is performed
22622         locally.
22623
22624         * sem_ch8.adb:
22625         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22626         whether use clauses should be removed/restored.
22627
22628         * sem_ch8.ads:
22629         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22630         whether use clauses should be removed/restored.
22631
22632 2003-10-26  Andreas Jaeger  <aj@suse.de>
22633
22634         * Makefile.in: Remove duplicated lines.
22635
22636 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22637
22638         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
22639         minimize the differences with ACT tree.
22640
22641         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
22642         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
22643         Gnatvsn.Gnat_Static_Version_String to reduce differences between
22644         ACT and FSF trees.
22645
22646 2003-10-24  Pascal Obry  <obry@gnat.com>
22647
22648         * adadecode.c (ostrcpy): New function.
22649         (__gnat_decode): Use ostrcpy of strcpy.
22650         (has_prefix): Set first parameter a const.
22651         (has_suffix): Set first parameter a const.
22652         Update copyright notice. Fix source name in header.
22653         Removes a trailing space.
22654         PR ada/12014.
22655
22656 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
22657
22658         * exp_disp.adb:
22659         Remove the test against being in No_Run_Time_Mode before generating a
22660         call to Register_Tag. It is redundant with the test against the
22661         availability of the function Register_Tag.
22662
22663 2003-10-24  Vincent Celier  <celier@gnat.com>
22664
22665         * g-catiio.adb: (Month_Name): Correct spelling of February
22666
22667         * make.adb: (Mains): New package
22668         (Initialize): Call Mains.Delete
22669         (Gnatmake): Check that each main on the command line is a source of a
22670         project file and, if there are several mains, each of them is a source
22671         of the same project file.
22672         (Gnatmake): When a foreign language is specified in attribute Languages,
22673         no main is specified on the command line and attribute Mains is not
22674         empty, only build the Ada main. If there is no Ada main, just compile
22675         the Ada sources and their closure.
22676         (Gnatmake): If a main is specified on the command line with directory
22677         information, check that the source exists and, if it does, that the path
22678         is the actual path of a source of a project.
22679
22680         * prj-env.adb:
22681         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
22682         Full_Path is True, return the full path instead of the simple file name.
22683         (Project_Of): New function
22684
22685         * prj-env.ads:
22686         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
22687         defaulted to False.
22688         (Project_Of): New function
22689
22690 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22691
22692         * Makefile.generic:
22693         Ensure objects of main project are always checked and rebuilt if needed.
22694         Set CC to gcc by default.
22695         Prepare new handling of link by creating a global archive (not activated
22696         yet).
22697
22698         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22699         stringt.h: Update copyright notice. Remove trailing blanks.
22700         Fix source name in header.
22701
22702 2003-10-24  Robert Dewar  <dewar@gnat.com>
22703
22704         * sem_ch12.adb: Minor reformatting
22705
22706         * sem_ch3.adb:
22707         Minor reformatting (including new function return style throughout)
22708
22709         * sem_ch3.ads:
22710         Minor reformatting (including new function return style throughout)
22711
22712 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22713
22714         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22715         stringt.h: Update copyright notice. Remove trailing blanks.
22716         Fix source name in header.
22717
22718 2003-10-24  GNAT Script  <nobody@gnat.com>
22719
22720         * Make-lang.in: Makefile automatically updated
22721
22722 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
22723
22724         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
22725         stringt.h: Convert to ISO C90 declarations and definitions.
22726
22727 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
22728
22729         PR ada/11978:
22730         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
22731         External_Tag attribute definition clauses.
22732
22733 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
22734
22735         PR ada/7613:
22736         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
22737         child unit, generate a fully qualified name to avoid spurious errors
22738         when the context contains renamings of different child units with
22739         the same simple name.
22740
22741         * exp_dbug.ads: Add documentation on name qualification for renamings
22742         of child units.
22743
22744 2003-10-23  Robert Dewar  <dewar@gnat.com>
22745
22746         * g-regpat.ads, g-regpat.adb: Minor reformatting
22747
22748 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
22749
22750         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
22751
22752 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22753
22754         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
22755         Machine call.
22756
22757         * urealp.h: (Machine): Update to proper definition.
22758
22759 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
22760
22761         * init.c, adaint.c: Minor reformatting.
22762
22763 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
22764
22765         * adaint.c (w32_epoch_offset): Define static const at file level.
22766         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
22767         rather than t_create, t_access in call to GetFileTime. Use union
22768         to convert between FILETIME and  unsigned long long.
22769         (__gnat_file_time_name): Test for invalid file handle.
22770         (__gnat_set_filetime_name): Support win32 targets using
22771         w32api SetFileTime.
22772
22773 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
22774
22775         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
22776
22777         * ctrl_c.c (__gnat_int_handler): Remove declaration.
22778
22779         * decl.c (creat_concat_name):  Const-ify prefix.
22780
22781         * adaint.c: Include ctype.h if __MINGW32__.
22782         (__gnat_readlink): Mark arguments as possibly unused.
22783         (__gnat_symlink): Likewise.
22784         (__gnat_is_symbolic_link): Likewise.
22785         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
22786         declaration
22787         (__gnat_file_time_name): Don't declare struct stat statbuf when
22788         not needed.
22789         (__gnat_is_absolute_path): Add parenthesis around condition of
22790         'if' statement to avoid warning.
22791         (__gnat_plist_init): Specify void as parameter.
22792         (plist_enter): Likewise.
22793         (plist_leave): Likewise.
22794         (remove_handle): Make static. Initialize prev.
22795
22796 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22797
22798         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
22799         * cstreams.c (__gnat_full_name): Minor improvements and clean up
22800         of previous change.
22801
22802 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22803
22804         * tracebak.c (MAX): Avoid redefinition warning.
22805
22806         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
22807         Change msg to const char *.
22808         (__gnat_install_handler): Remove ss, unused.
22809         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
22810         to const char *.
22811         * cstreams.c (__gnat_full_name): Declare p only when used.
22812         (__gnat_full_name) [sgi] Return buffer.
22813
22814 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22815
22816         * mingw32.h: New file.
22817         * gnat_wrapper.adb: New file.
22818
22819 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
22820
22821         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
22822         string match a pre compiled regular expression (the corresponding
22823         version of the function working on a raw regular expression)
22824         Fix typos in various comments
22825         Update copyright notice in spec
22826
22827 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
22828
22829         * exp_ch3.adb:
22830         (Component_Needs_Simple_Initialization): Return False when the type is a
22831         packed bit array. Revise spec comments to document this case.
22832
22833         * exp_prag.adb:
22834         (Expand_Pragma_Import): Set any expression on the imported object to
22835         empty to avoid initializing imported objects (in particular this
22836         covers the case of zero-initialization of bit arrays).
22837         Update copyright notice.
22838
22839 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
22840
22841         * sem_ch12.adb:
22842         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
22843         a subunit is missing.
22844         (Instantiate_Subprogram_Body): If body of function is missing, set type
22845         of return expression explicitly in dummy body, to prevent cascaded
22846         errors when a subunit is missing.
22847         Fixes PR 5677.
22848
22849         * sem_ch3.adb:
22850         (Access_Subprogram_Declaration): Verify that return type is valid.
22851         Fixes PR 8693.
22852
22853         * sem_elab.adb:
22854         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
22855         generic.
22856         Fixes PR 12318.
22857
22858         * sem_util.adb:
22859         (Corresponding_Discriminant): If the scope of the discriminant is a
22860         private type without discriminant, use its full view.
22861         Fixes PR 8247.
22862
22863 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
22864
22865         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
22866         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
22867         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
22868         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
22869         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
22870         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
22871         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
22872         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
22873         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
22874         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
22875         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
22876         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
22877         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
22878         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
22879         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
22880         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
22881         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
22882         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
22883         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
22884         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
22885         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
22886         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
22887         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
22888         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
22889         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
22890         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
22891         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
22892         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
22893         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
22894         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
22895         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
22896         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
22897         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
22898         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
22899         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
22900         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
22901         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
22902         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
22903         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
22904         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
22905         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
22906         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
22907         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
22908         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
22909         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
22910         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
22911         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
22912         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
22913         vms_conv.ads, vms_conv.adb, vms_data.ads,
22914         vxaddr2line.adb: Files added. Merge with ACT tree.
22915
22916         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
22917         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
22918         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
22919         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
22920         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
22921         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
22922         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
22923         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
22924         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
22925         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
22926
22927         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
22928         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
22929         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
22930         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
22931         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
22932         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
22933         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
22934         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
22935         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
22936         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
22937         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
22938         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
22939         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
22940         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
22941         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
22942         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
22943         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
22944         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
22945         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
22946         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
22947         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
22948         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
22949         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
22950         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
22951         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
22952         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
22953         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
22954         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
22955         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
22956         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
22957         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
22958         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
22959         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
22960         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
22961         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
22962         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
22963         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
22964         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
22965         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
22966         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
22967         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
22968         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
22969         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
22970         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
22971         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
22972         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
22973         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
22974         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
22975         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
22976         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
22977         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
22978         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
22979         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
22980         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
22981         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
22982         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
22983         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
22984         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
22985         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
22986         checks.adb, checks.ads, cio.c, comperr.adb,
22987         comperr.ads, csets.adb, cstand.adb, cstreams.c,
22988         debug_a.adb, debug_a.ads, debug.adb, decl.c,
22989         einfo.adb, einfo.ads, errout.adb, errout.ads,
22990         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
22991         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
22992         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
22993         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
22994         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
22995         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
22996         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
22997         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
22998         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
22999         fe.h, fmap.adb, fmap.ads, fname.adb,
23000         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
23001         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
23002         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
23003         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
23004         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
23005         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
23006         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
23007         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
23008         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
23009         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
23010         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
23011         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
23012         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
23013         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
23014         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
23015         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
23016         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
23017         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
23018         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
23019         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
23020         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
23021         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
23022         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
23023         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
23024         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
23025         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
23026         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
23027         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
23028         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
23029         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
23030         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
23031         layout.adb, lib.adb, lib.ads, lib-list.adb,
23032         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
23033         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23034         link.c, live.adb, make.adb, make.ads,
23035         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
23036         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
23037         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
23038         misc.c, mkdir.c, mlib.adb, mlib.ads,
23039         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
23040         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
23041         namet.adb, namet.ads, namet.h, nlists.ads,
23042         nlists.h, nmake.adt, opt.adb, opt.ads,
23043         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
23044         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
23045         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23046         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23047         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
23048         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
23049         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
23050         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
23051         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
23052         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
23053         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
23054         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
23055         prj-util.adb, prj-util.ads, raise.c, raise.h,
23056         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
23057         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
23058         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
23059         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
23060         scans.ads, scn.adb, scn.ads, s-crc32.adb,
23061         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
23062         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
23063         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
23064         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
23065         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
23066         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23067         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23068         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
23069         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
23070         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
23071         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
23072         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
23073         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
23074         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
23075         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23076         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
23077         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
23078         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
23079         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
23080         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
23081         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
23082         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
23083         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
23084         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
23085         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
23086         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
23087         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
23088         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
23089         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
23090         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
23091         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
23092         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
23093         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
23094         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
23095         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
23096         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
23097         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
23098         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
23099         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
23100         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
23101         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
23102         stringt.adb, stringt.ads, stringt.h, style.ads,
23103         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
23104         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
23105         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
23106         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
23107         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
23108         table.adb, table.ads, targparm.adb, targparm.ads,
23109         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
23110         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
23111         ttypes.ads, types.ads, types.h, uintp.adb,
23112         uintp.ads, uintp.h, uname.adb, urealp.adb,
23113         urealp.ads, urealp.h, usage.adb, utils2.c,
23114         utils.c, validsw.adb, validsw.ads, widechar.adb,
23115         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
23116         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
23117         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
23118         gnatvsn.ads: Merge with ACT tree.
23119
23120         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
23121
23122 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
23123
23124         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
23125         (gnat_ug_vmx.info): Likewise.
23126         (gnat_ug_vxw.info): Likewise.
23127         (gnat_ug_wnt.info): Likewise.
23128         (gnat_rm.info): Likewise.
23129         (gnat-style.info): Likewise.
23130
23131         * Make-lang.in (ada.install-info): Remove target.
23132         (info): New target.
23133         (install-info): Likewise.
23134         (gnat_ug_unx.info): Simplify rule.
23135         (gnat_ug_vmx.info): Likewise.
23136         (gnat_ug_vxw.info): Likewise.
23137         (gnat_ug_wnt.info): Likewise.
23138         (gnat_rm.info): Likewise.
23139         (gnat-style.info): Likewise.
23140
23141 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23142
23143         * Make-lang.in: Replace uses of $(target_alias) with
23144         $(target_noncanonical).
23145         * ada/Makefile.in: Remove unused mention of $(target_alias).
23146
23147 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
23148
23149         * Make-lang.in (ada.info): Replace with ...
23150         (info): ... this.
23151         (ada.dvi): Replace with ...
23152         (dvi): ... this.
23153
23154 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
23155
23156         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
23157         initialize dconstp5 and dconstmp5.
23158
23159 2003-09-28  Richard Henderson  <rth@redhat.com>
23160
23161         * trans.c (tree_transform): Update call to expand_asm_operands.
23162
23163 2003-09-21  Richard Henderson  <rth@redhat.com>
23164
23165         * trans.c, utils.c: Revert.
23166
23167 2003-09-21  Richard Henderson  <rth@redhat.com>
23168
23169         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
23170         change to const.
23171
23172 2003-09-04  Michael Matz  <matz@suse.de>
23173
23174         * misc.c: Include "target.h".
23175         * Make-lang.in (misc.o): Add dependency on target.h.
23176
23177 2003-09-03  DJ Delorie  <dj@redhat.com>
23178
23179         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
23180         hook.
23181
23182 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
23183
23184         * Makefile.in: Update substitutions to match changes to
23185         configure.  Use include directives instead of @-insertions
23186         to read in host and target fragments.  Add a rule to
23187         regenerate ada/Makefile.
23188
23189 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
23190
23191         * lang-options.h: Remove.
23192         * lang.opt: Add help text.
23193
23194 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23195
23196         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
23197         calls.
23198
23199 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
23200
23201         * misc.c (gnat_handle_option): Don't handle filenames.
23202
23203 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
23204
23205         * Make-lang.in: Replace PWD with PWD_COMMAND.
23206         * Makefile.adalib: Likewise.
23207         * Makefile.in: Likewise.
23208
23209 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
23210
23211         * misc.c (gnat_argv): Revert last change.
23212         (gnat_handle_option, gnat_init_options): Copy arguments.
23213
23214 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
23215
23216         * misc.c (gnat_argv): Make const.
23217
23218 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23219
23220         * misc.c (save_argc, save_argv): Keep non-static!
23221
23222 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23223
23224         * misc.c (save_argc, save_argv): Make static.
23225         (gnat_init_options): New prototype.
23226         (gnat_init_options): Update.
23227
23228 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
23229
23230         * gnat_ug.texi: Remove unlikely characters from @vars.
23231         * gnat_ug_vms.texi: Regenerate.
23232
23233 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
23234
23235         * misc.c (record_code_position): Adjust emit_note call.
23236
23237 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
23238
23239         * misc.c (gnat_handle_option): Don't check for missing arguments.
23240
23241 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
23242
23243         * utils.c (end_subprog_body): Adjust expand_function_end call.
23244
23245 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
23246
23247         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
23248         Bind_Main_Program.
23249
23250 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
23251
23252         * lang.opt: Declare Ada.
23253         * misc.c (gnat_init_options): Update.
23254
23255 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
23256
23257         * utils.c (begin_subprog_body): Adjust init_function_start call.
23258
23259 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23260
23261         * Make-lang.in: Update to use options.c and options.h.
23262         * misc.c: Include options.h not aoptions.h.
23263         (gnat_handle_option): Abort on unrecognized switch.
23264         (gnat_init_options): Request Ada switches.
23265
23266 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23267
23268         * lang.opt: Add -Wall.
23269         * misc.c (gnat_handle_option): Handle it.
23270
23271 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
23272
23273         * misc.c (gnat_handle_option): Fix warnings.
23274
23275 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
23276
23277         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
23278
23279 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
23280
23281         * Make-lang.in: Update to handle command-line options.
23282         * lang.opt: New file.
23283         * misc.c: Include aoptions.h.
23284         (cl_options_count, cl_options): Remove.
23285         (gnat_handle_option): New.
23286         (gnat_decode_option): Remove.
23287         (LANG_HOOKS_DECODE_OPTION): Remove.
23288         (LANG_HOOKS_HANDLE_OPTION): Override.
23289
23290 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
23291
23292         * init.c, misc.c, trans.c, utils.c: Remove dead code.
23293
23294 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
23295
23296         * Makefile.in: Replace "host_canonical" with "host" for autoconf
23297         substitution.
23298
23299 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
23300
23301         * Make-lang.in: Update.
23302         * misc.c: Include opts.h. Define cl_options_count and cl_options.
23303
23304 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
23305
23306         * misc.c (gnat_init_options): Update.
23307
23308 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23309
23310         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
23311         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
23312         __attribute__ ((__unused__)).
23313
23314 2003-06-05  Jan Hubicka  <jh@suse.cz>
23315
23316         * Make-lang.in:  Add support for stageprofile and stagefeedback
23317
23318 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23319
23320         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
23321         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
23322
23323 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
23324
23325         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
23326         Remove non-VMS directive.
23327         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
23328         alternatives.
23329         (Examples of gnatls Usage): Remove VMS alternative.
23330
23331 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
23332
23333         PR ada/9953:
23334         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
23335         and turn ZCX_By_Default back to False since the underlying support
23336         is not quite there yet.
23337
23338 2003-06-01  Andreas Jaeger  <aj@suse.de>
23339
23340         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
23341         and ROUND_TYPE_SIZE_UNIT.
23342
23343 2003-05-22   Geert Bosch <bosch@gnat.com>
23344
23345         * gnat_rm.texi : Remove reference to Ada Core Technologies.
23346
23347 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
23348
23349         * trans.c (tree_transform): Use location_t and input_location
23350         directly.
23351         (build_unit_elab): Likewise.
23352         * utils.c (create_label_decl): Likewise.
23353
23354 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
23355
23356         * trans.c (tree_transform, build_unit_elab,
23357         set_lineno): Rename lineno to input_line.
23358         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
23359         end_subprog_body): Likewise.
23360         * utils2.c (build_call_raise): Likewise.
23361
23362 2003-05-01  Laurent Guerby <guerby@acm.org>
23363
23364         PR ada/10546
23365         * 5iosinte.ads: Increase pthread_cond_t size to match recent
23366         LinuxThread and NPTL version, merge from ACT.
23367
23368 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
23369
23370         * utils.c (convert): No need to clear TREE_CST_RTL.
23371
23372 2003-04-23   Geert Bosch <bosch@gnat.com>
23373
23374         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
23375         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
23376         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
23377         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
23378         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
23379         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
23380         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
23381         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
23382         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
23383         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
23384         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
23385         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
23386         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
23387         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
23388         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
23389         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
23390         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
23391         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
23392         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
23393         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
23394         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
23395         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
23396         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
23397         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
23398         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
23399         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
23400         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
23401         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
23402         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
23403         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
23404         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
23405         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
23406         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
23407         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
23408         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
23409         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
23410         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
23411         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
23412         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
23413         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
23414         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
23415         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
23416         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
23417         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
23418         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
23419         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
23420         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
23421         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
23422         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
23423         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
23424         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23425         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23426         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
23427         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
23428         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
23429         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
23430         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
23431         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
23432         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
23433         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
23434         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
23435         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
23436         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
23437         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
23438         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
23439         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
23440         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
23441         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
23442         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
23443         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
23444         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
23445         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
23446         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23447         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
23448         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
23449         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
23450         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
23451         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
23452         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
23453         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
23454         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
23455         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
23456         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
23457         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
23458         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
23459         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
23460         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
23461         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23462         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
23463         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
23464         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
23465         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
23466         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
23467         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
23468         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
23469         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
23470         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
23471         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
23472         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
23473         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
23474         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
23475         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
23476         ali.adb, ali.ads, alloc.ads, argv.c,
23477         atree.adb, atree.ads, atree.h, aux-io.c,
23478         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
23479         binde.adb, binde.ads, binderr.adb, binderr.ads,
23480         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
23481         butil.adb, butil.ads, cal.c, calendar.ads,
23482         casing.adb, casing.ads, ceinfo.adb, checks.adb,
23483         checks.ads, cio.c, comperr.adb, comperr.ads,
23484         config-lang.in, csets.adb, csets.ads, csinfo.adb,
23485         cstand.adb, cstand.ads, cuintp.c, debug.adb,
23486         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
23487         dec-io.ads, dec.ads, deftarg.c, directio.ads,
23488         einfo.adb, einfo.ads, elists.adb, elists.ads,
23489         elists.h, errno.c, errout.adb, errout.ads,
23490         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
23491         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
23492         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
23493         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
23494         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
23495         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
23496         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
23497         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
23498         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
23499         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
23500         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
23501         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
23502         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
23503         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
23504         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
23505         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
23506         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
23507         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
23508         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
23509         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
23510         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
23511         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
23512         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
23513         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
23514         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
23515         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
23516         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
23517         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
23518         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
23519         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
23520         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
23521         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
23522         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
23523         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
23524         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
23525         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
23526         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
23527         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
23528         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
23529         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
23530         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
23531         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
23532         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
23533         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
23534         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
23535         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
23536         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
23537         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
23538         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
23539         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
23540         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
23541         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
23542         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
23543         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
23544         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
23545         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
23546         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
23547         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
23548         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
23549         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23550         lib.adb, lib.ads, live.adb, live.ads,
23551         machcode.ads, make.adb, make.ads, makeusg.adb,
23552         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
23553         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
23554         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
23555         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
23556         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
23557         mlib.ads, namet.adb, namet.ads, nlists.adb,
23558         nlists.ads, opt.adb, opt.ads, osint-b.adb,
23559         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
23560         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
23561         osint.ads, output.adb, output.ads, par-ch10.adb,
23562         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
23563         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23564         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
23565         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
23566         par-tchk.adb, par-util.adb, par.adb, par.ads,
23567         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
23568         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
23569         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
23570         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
23571         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
23572         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
23573         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
23574         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
23575         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
23576         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
23577         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
23578         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
23579         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
23580         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
23581         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
23582         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
23583         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
23584         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
23585         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
23586         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
23587         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
23588         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
23589         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23590         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
23591         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
23592         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
23593         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
23594         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
23595         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
23596         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
23597         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
23598         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
23599         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
23600         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
23601         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
23602         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
23603         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
23604         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
23605         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
23606         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
23607         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23608         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
23609         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
23610         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
23611         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
23612         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23613         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
23614         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
23615         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
23616         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
23617         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23618         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
23619         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
23620         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
23621         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
23622         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23623         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
23624         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
23625         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
23626         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
23627         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23628         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
23629         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
23630         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
23631         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
23632         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
23633         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
23634         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
23635         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
23636         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
23637         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
23638         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
23639         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
23640         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
23641         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
23642         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
23643         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
23644         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
23645         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
23646         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
23647         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
23648         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
23649         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
23650         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
23651         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
23652         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
23653         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
23654         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
23655         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
23656         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
23657         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
23658         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
23659         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
23660         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
23661         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
23662         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
23663         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
23664         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
23665         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
23666         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
23667         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23668         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
23669         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
23670         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
23671         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
23672         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
23673         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
23674         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
23675         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
23676         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
23677         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23678         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23679         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
23680         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
23681         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
23682         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23683         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
23684         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
23685         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
23686         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
23687         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
23688         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
23689         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
23690         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
23691         snames.ads, sprint.adb, sprint.ads, stand.adb,
23692         stand.ads, stringt.adb, stringt.ads, style.adb,
23693         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
23694         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
23695         switch-m.ads, switch.adb, switch.ads, system.ads,
23696         table.adb, table.ads, targparm.adb, targparm.ads,
23697         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
23698         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
23699         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
23700         ttypef.ads, ttypes.ads, types.adb, types.ads,
23701         uintp.adb, uintp.ads, uname.adb, uname.ads,
23702         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
23703         usage.adb, usage.ads, validsw.adb, validsw.ads,
23704         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
23705         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
23706         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
23707         formatting and other trivial changes from ACT.
23708
23709 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
23710
23711         * gigi.h, utils2.c (build_constructor):
23712         Rename gnat_build_constructor. Use build_constructor.
23713         * decl.c (gnat_to_gnu_entity)
23714         * trans.c (tree_transform, pos_to_constructor, extract_values)
23715         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
23716         (unchecked_convert)
23717         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
23718         (fill_vms_descriptor):
23719         Update to match.
23720
23721 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
23722
23723         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
23724         * misc.c (gnat_tree_size): New function.
23725         (LANG_HOOKS_TREE_SIZE): Override.
23726
23727 2003-04-03  Jason Merrill  <jason@redhat.com>
23728
23729         * misc.c (gnat_adjust_rli): #if 0.
23730
23731 2003-03-31   Geert Bosch <bosch@gnat.com>
23732
23733         PR ada/10020
23734         * link.c : Fix misspelled "const" keyword
23735
23736 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
23737
23738         PR c++/7086
23739         * utils2.c: Adjust calls to put_var_into_stack.
23740
23741 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
23742
23743         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
23744
23745 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
23746
23747         * misc.c (gnat_init): Update for new prototype.
23748
23749 2003-03-05  Olivier Hainque  <hainque@gnat.com>
23750
23751         ada/9961
23752         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
23753         warning, and fix return type for the IN_RTS && !SJLJ case.
23754
23755 2003-03-04  Tom Tromey  <tromey@redhat.com>
23756
23757         * Make-lang.in (ada.tags): New target.
23758
23759 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
23760
23761         ada/9911
23762         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
23763         wrapper, which name remains constant whatever underlying GCC
23764         scheme.
23765
23766         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
23767         the stable interface needed for a-except.
23768
23769 2003-03-02  Andreas Jaeger  <aj@suse.de>
23770
23771         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23772         gnat_ug_wnt.texi: Regenerate.
23773
23774 2003-03-02  Laurent Guerby <guerby@acm.org>
23775
23776         * Makefile.in (install-gnatlib): Match previous change there
23777         so it works.
23778
23779 2003-02-28  Andreas Schwab  <schwab@suse.de>
23780
23781         * Make-lang.in (install-gnatlib): Change to ada directory before
23782         running make instead of using ada/Makefile directly.
23783
23784 2003-02-18  Ben Elliston  <bje@redhat.com>
23785
23786         Part of fix for PR ada/9406
23787         * gnat_ug.texi (Binder output file): Grammar fix.
23788
23789 2003-02-18  Ben Elliston  <bje@redhat.com>
23790
23791         PR other/7350
23792         * 5qtaprop.adb (Sleep): Fix typo in comment.
23793
23794 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
23795
23796         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
23797         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23798         gnat_ug_wnt.texi: Regenerate.
23799
23800 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
23801
23802         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
23803         be created if necessary.
23804         (ada.install-common): Let $(DESTDIR)$(bindir) be created
23805         if necessary.  Remove erroneous and redundant gnatchop
23806         installation commands.  Test for gnatdll before attempting
23807         to install it.
23808         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
23809         and gnatdll from all plausible locations.
23810
23811 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
23812
23813         * utils2.c (build_unary_op): Don't check flag_volatile.
23814         * gnat_ug.texi: Remove -fvolatile from example.
23815         * gnat_ug_vxw.texi: Likewise.
23816
23817 2003-01-29  Laurent Guerby <guerby@acm.org>
23818
23819         PR ada/8344
23820         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
23821         * Makefile.in: match previous change.
23822         * Make-lang.in: match previous change.
23823
23824 2003-01-29      Joel Sherrill <joel@OARcorp.com>
23825
23826         * 5rosinte.ads: Add SIGXCPU.
23827         * 5rtpopsp.adb: New file.
23828         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
23829         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
23830         specific file 5rtpopsp.adb.
23831         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
23832         is likely needed for all newlib targets.
23833         * init.c: Add RTEMS specific version of __gnat_initialize().
23834
23835 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23836
23837         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
23838
23839 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23840
23841         * init.c (__gnat_error_handler): Make msg const.
23842
23843         * gmem.c (convert_addresses): Move declaration ...
23844         * adaint.h: ... here.
23845         * adaint.c (convert_addresses): Adapt addrs type to match
23846         prototype.
23847
23848         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
23849
23850 2003-01-24  Andreas Schwab  <schwab@suse.de>
23851
23852         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
23853         size_t to avoid warning.
23854
23855 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
23856
23857         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
23858
23859 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
23860
23861         * gnat_rm.texi: Remove RCS version number.
23862
23863         * ada-tree.h (union lang_tree_node): Add chain_next option.
23864
23865 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
23866
23867         * Make-lang.in (ada.install-info, ada.install-common,
23868         ada.uninstall): Prepend $(DESTDIR) to the destination
23869         directory in all (un)installation commands.
23870         * Makefile.in (install-gnatlib, install-rts): Ditto.
23871
23872 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
23873
23874         * gnat_rm.texi, gnat_ug.texi: Use @copying.
23875         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23876         gnat_ug_wnt.texi: Regenerate.
23877
23878 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
23879
23880         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
23881         only.
23882         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
23883         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
23884         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
23885         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
23886         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
23887         $(srcdir)/doc/include/gcc-common.texi.
23888
23889 2002-12-15   Geert Bosch <bosch@gnat.com>
23890
23891         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
23892
23893 2002-12-14   Geert Bosch <bosch@gnat.com>
23894
23895         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
23896         case of a body created for a Renaming_As_Body, on which
23897         conformance checks are not performed. Fixes PR ada/5690.
23898
23899 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
23900
23901         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
23902         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
23903         not already included.
23904         * Make-lang.in: Update dependencies.
23905
23906 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
23907         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
23908         solution to buffer overflow bug on GNU/Linux.
23909
23910 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23911         Closes PR ada/5856 and PR ada/6919 !
23912         * bindgen.adb: Remove all references to Public_Version.
23913         * comperr.adb: Remove all references to Public_Version and
23914         GNATPRO_Version; correct bug reporting instructions.
23915         * comperr.ads: Change to match bug box.
23916         * gnatvsn.ads: Remove all references to Public version and
23917         GNATPRO version.
23918
23919 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
23920         PR ada/6919
23921         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
23922         GNU/Linux.
23923
23924         PR ada/6558
23925         * config-lang.in: Remove diff_excludes.
23926
23927 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
23928         PR ada/8358
23929         * trans.c (gnu_pending_elaboration_lists): New GC root.
23930         (build_unit_elab): Use..
23931
23932 2002-10-30   Geert Bosch <bosch@gnat.com>
23933         PR ada/6558
23934         * misc.c : Include optabs.h
23935
23936         * Make-lang.in (misc.o): Add dependency on optabs.h
23937
23938 2002-10-29   Geert Bosch <bosch@gnat.com>
23939         PR ada/6558
23940         * Make-lang.in (gnatbind): Depend on CONFIG_H
23941
23942 2002-10-29  Geert bosch  <bosch@gnat.com>
23943         PR ada/6558
23944         * misc.c: Unrevert misc.c (1.13)
23945
23946 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
23947
23948         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
23949         maintainership comments.
23950
23951 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
23952         PR ada/5904
23953         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
23954         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
23955         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
23956         7staprop.adb: Correct statements in comments about
23957         maintainership of GNAT.
23958
23959         PR ada/5904
23960         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
23961         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
23962         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
23963         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
23964         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
23965         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
23966         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
23967         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
23968         comments about maintainership of GNAT.
23969
23970         PR ada/6919 (forward port of patch for PR ada/5904)
23971         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
23972         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
23973         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
23974         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
23975         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
23976         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
23977         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
23978         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
23979         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
23980         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
23981         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
23982         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
23983         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
23984         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
23985         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
23986         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
23987         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
23988         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
23989         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
23990         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
23991         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
23992         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
23993         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
23994         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
23995         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
23996         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
23997         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
23998         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
23999         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
24000         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
24001         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
24002         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
24003         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
24004         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
24005         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
24006         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
24007         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
24008         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
24009         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
24010         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
24011         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
24012         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
24013         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
24014         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
24015         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
24016         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
24017         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
24018         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
24019         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
24020         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
24021         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
24022         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
24023         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
24024         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
24025         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
24026         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
24027         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
24028         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
24029         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
24030         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
24031         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
24032         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
24033         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
24034         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
24035         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
24036         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
24037         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
24038         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
24039         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
24040         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
24041         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
24042         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
24043         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
24044         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
24045         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
24046         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
24047         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
24048         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
24049         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
24050         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
24051         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
24052         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
24053         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
24054         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
24055         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
24056         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
24057         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
24058         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
24059         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
24060         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
24061         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
24062         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
24063         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
24064         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
24065         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
24066         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
24067         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
24068         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
24069         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
24070         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
24071         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
24072         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
24073         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
24074         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
24075         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
24076         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
24077         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
24078         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
24079         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
24080         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
24081         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
24082         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
24083         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
24084         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
24085         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
24086         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
24087         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
24088         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
24089         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
24090         par-endh.adb par-labl.adb par-load.adb par-prag.adb
24091         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
24092         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
24093         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
24094         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
24095         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
24096         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
24097         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
24098         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
24099         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
24100         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
24101         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
24102         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
24103         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
24104         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
24105         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
24106         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
24107         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
24108         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
24109         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
24110         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
24111         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
24112         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
24113         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
24114         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
24115         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
24116         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
24117         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
24118         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
24119         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
24120         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
24121         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
24122         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
24123         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
24124         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
24125         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
24126         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
24127         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
24128         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
24129         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
24130         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
24131         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
24132         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
24133         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
24134         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
24135         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
24136         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
24137         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
24138         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
24139         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
24140         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
24141         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
24142         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
24143         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
24144         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
24145         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
24146         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
24147         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
24148         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
24149         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
24150         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
24151         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
24152         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
24153         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
24154         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
24155         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
24156         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
24157         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
24158         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
24159         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
24160         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
24161         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
24162         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
24163         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
24164         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
24165         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
24166         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
24167         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
24168         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
24169         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
24170         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
24171         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
24172         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
24173         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
24174         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
24175         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
24176         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
24177         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
24178         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
24179         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
24180         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
24181         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
24182         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
24183         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
24184         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
24185         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
24186         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
24187         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
24188         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
24189         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
24190         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
24191         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
24192         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
24193         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
24194         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
24195         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
24196         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
24197         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
24198         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
24199         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
24200         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
24201         stringt.ads stringt.h style.adb style.ads stylesw.adb
24202         stylesw.ads switch.adb switch.ads sysdep.c system.ads
24203         table.adb table.ads targparm.adb targparm.ads targtyps.c
24204         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
24205         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
24206         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
24207         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
24208         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
24209         usage.ads utils.c utils2.c validsw.adb validsw.ads
24210         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
24211         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
24212         xtreeprs.adb: Correct statements in comments about maintainership
24213         of GNAT.
24214
24215 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
24216
24217         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
24218         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
24219         * gnatvsn.ads: Gnat_Version_String is now a function.
24220         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
24221         copy the C version_string into a String and return it.
24222         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
24223         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
24224         Remove pragma Ident (Gnat_Version_String).  If this was the
24225         sole use of package Gnatvsn, remove the with statement too.
24226         * gnat1drv.adb: Tweak -gnatv output.
24227
24228 2002-09-17  Richard Henderson  <rth@redhat.com>
24229
24230         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
24231         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
24232         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
24233         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
24234         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
24235         and real_2expN instead of a loop.
24236         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
24237         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
24238
24239 2002-08-25  Andre Leis <a.leis@gmx.net>
24240             David Billinghurst (David.Billinghurst@riotinto.com>
24241
24242         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
24243
24244 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24245
24246         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
24247         Remove $(CONFIG_H) dependency.
24248
24249 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
24250
24251         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
24252
24253 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24254
24255         * adadecode.c (ada_demangle): Use xstrdup in lieu of
24256         xmalloc/strcpy.
24257         * misc.c (gnat_decode_option): Likewise.
24258
24259 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
24260
24261         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24262         function approach did not work well because of a side effect (the
24263         function call could reallocate the table which was being indexed
24264         using its result). Fixes ada/4851. [RESURRECTED]
24265
24266 2002-07-01  Roger Sayle  <roger@eyesopen.com>
24267
24268         * ada/utils.c (builtin_function): Accept an additional parameter.
24269
24270 2002-06-28  Andreas Jaeger  <aj@suse.de>
24271
24272         PR ada/7144
24273         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
24274         <adi@thur.de>.
24275
24276 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24277
24278         * Makefile.in (SHELL): Set to @SHELL@.
24279
24280 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24281
24282         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
24283         array size calculation.
24284
24285 2002-06-04  Andreas Jaeger  <aj@suse.de>
24286
24287         * Make-lang.in (gnatbind): Readd rule that has been lost in last
24288         patch.
24289
24290 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
24291
24292         Merge from pch-branch:
24293
24294         * config-lang.in (gtfiles): Add ada-tree.h.
24295         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
24296         (SET_TYPE_MODULUS): New.
24297         (SET_TYPE_INDEX): New.
24298         (SET_TYPE_DIGITS_VALUE): New.
24299         (SET_TYPE_RM_SIZE): New.
24300         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
24301         (SET_TYPE_ADA_SIZE): New.
24302         (SET_TYPE_ACTUAL_BOUNDS): New.
24303         (SET_DECL_CONST_CORRESPONDING_VAR): New.
24304         (SET_DECL_ORIGINAL_FIELD): New.
24305         (TREE_LOOP_ID): Correct typo.
24306         * decl.c: Use new macros.
24307         * utils.c: Include debug.h, use new macros.
24308         * utils2.c: Use new macros.
24309
24310         * ada-tree.h: Update all macros for new tree description.
24311         (struct tree_loop_id): New.
24312         (union lang_tree_node): New.
24313         (struct lang_decl): New.
24314         (struct lang_type): New.
24315         * misc.c (gnat_mark_tree): Delete.
24316         (LANG_HOOKS_MARK_TREE): Delete.
24317         * trans.c (tree_transform): No longer any need to cast
24318         for TREE_LOOP_ID.
24319
24320         * utils.c (struct language_function): New dummy structure.
24321
24322         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
24323         (misc.o): Likewise.
24324         (utils.o): Likewise; also gtype-ada.h.
24325         * Make-lang.in (gnat1): Add dependency on s-gtype.
24326         (gnatbind): Add dependency on $(CONFIG_H).
24327         * utils.c: Correct last #include.
24328         (stuct e_stack): Remove unnecessary 'static'.
24329         (mark_e_stack): Remove unused prototype.
24330
24331         * scn-nlit.adb: Remove whitespace after version number to
24332         keep lines under 80 chars.
24333         * snames.adb: Likewise.
24334         * treepr.ads: Likewise.
24335
24336         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
24337         (misc.o): Likewise.
24338         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
24339         * config-lang.in (gtfiles): New.
24340         * decl.c: Use gengtype for roots.
24341         * gigi.h: Use gengtype for roots.
24342         * trans.c: Use gengtype for roots.
24343         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
24344
24345 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
24346
24347         * misc.c (gnat_init): Adjust setting of internal_error_function.
24348
24349 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
24350
24351         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
24352         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
24353         gnat_ug_wnt.texi: Regenerate.
24354
24355 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
24356
24357         * 5ntaprop.adb (with System.OS_Primitives): Remove.
24358
24359         * cstreams.c (max_path_len): Move from here ...
24360         * adaint.c (__gnat_max_path_len): ... to here.
24361         * adaint.c (__gnat_max_path_len): Declare.
24362         * g-dirope.adb (Max_Path): Adjust.
24363         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
24364         * i-cstrea.ads (max_path_len): Adjust.
24365         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
24366         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
24367
24368         * Makefile.in, Make-lang.in: Documentation is now built in
24369         Make-lang.in.  Store Info and generated Texinfo files in the
24370         source directory.
24371         * gnat_ug.texi: Remove CVS keywords, correct version number.
24372         Set file name correctly.
24373
24374         * gnat_ug_*.texi: Add.
24375         * .cvsignore: Ignore generated Texinfo files.
24376
24377 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
24378
24379         * ada.h: Add MI guard macro.
24380         (SUBTYPE): Define constants with an anonymous enum, not static
24381         const variables.
24382         (IN): Cast constants to appropriate type before use.
24383
24384 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
24385
24386         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
24387         (experimental)".
24388
24389 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24390
24391         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
24392         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
24393         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
24394         (ALL_ADA_CFLAGS): Likewise.
24395         (ADA_INCLUDES): Likewise.
24396         Adapt for new working dir.
24397         (GNATBIND): Use Makefile.in version.
24398         (.SUFFIXES): Copy from Makefile.in.
24399         (ada-warn): Define.
24400         (.adb.o, .ads.o): Copy from Makefile.in.
24401         Added $(OUTPUT_OPTION).
24402         (GNAT1_C_OBJS): Moved from Makefile.in.
24403         Prefix with ada subdir.
24404         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
24405         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
24406         Adapt for new working dir.
24407         (EXTRA_GNATBIND_OBJS): Likewise.
24408         (ADA_BACKEND): Moved from Makefile.in.
24409         Renamed to avoid conflict with global BACKEND.
24410         Use that one.
24411         (TARGET_ADA_SRCS): Moved from Makefile.in.
24412         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
24413         Use ADA_BACKEND.
24414         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
24415         (ada_extra_files): Moved from Makefile.in.
24416         Prefix with ada subdir.
24417         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
24418         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
24419         (ada/nmake.ads): Likewise.
24420         (update-sources): Moved from Makefile.in.
24421         Prefix with ada subdir.
24422         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
24423         (ADA_TREE_H): Likewise.
24424         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
24425         (ada/memtrack.o): Likewise.
24426         (ada/adadecode.o): Likewise.
24427         Update dependencies.
24428         (ada/adaint.o): New.
24429         (ada/argv.o): Moved from Makefile.in.
24430         Prefix with ada subdir.
24431         Update dependencies.
24432         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
24433         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
24434         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
24435         Prefix with ada subdir.
24436         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
24437         (GNAT DEPENDENCIES): Regenerate.
24438         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
24439         toplevel Makefile.in.
24440         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
24441         (TARGET_ADA_SRCS): Removed.
24442         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
24443         (GNATBIND_OBJS): Likewise.
24444         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
24445         (BACKEND): Removed.
24446         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
24447         (TREE_H): Likewise.
24448         (ada_extra_files): Likewise.
24449         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
24450         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
24451         (update-sources): Likewise.
24452         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
24453         (ADA_TREE_H): Likewise.
24454         (adadecoce.o): Likewise.
24455         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
24456         (GNAT DEPENDENCIES): Likewise.
24457
24458 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24459
24460         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
24461         * Makefile.in: Likewise.
24462
24463 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24464
24465         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
24466         Restore $(CONFIG_H) and prefix.o dependencies.
24467         (ada.stage[1-4]): Depend on stage?-start.
24468
24469         * Makefile.in (b_gnatb.c): Depend on interfac.o.
24470
24471 2002-05-02  Jim Wilson  <wilson@redhat.com>
24472
24473         * utils.c (finish_record_type): Change record_size to record_type.
24474
24475 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24476
24477         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
24478         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
24479         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
24480
24481 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24482
24483         * misc.c (gnat_parse_file): Update.
24484
24485 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24486
24487         * misc.c (gnat_init): Don't set lang_attribute_common.
24488
24489 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
24490
24491         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
24492
24493 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
24494
24495         * gnat_ug.texi: New file.
24496
24497         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
24498         instead of gfdl.texi
24499
24500         * xgnatug.adb, ug_words: New files.
24501
24502         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
24503         gnat_rm and gnat-style manuals.
24504
24505 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
24506
24507         * gigi.h (incomplete_type_error): Remove.
24508         * utils.c (incomplete_type_error): Remove.
24509
24510 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
24511
24512         * trans.c (tree_transform): Add has_scope argument to
24513         expand_start_stmt_expr.
24514
24515 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24516
24517         * gigi.h (truthvalue_conversion): Rename.
24518         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
24519         * trans.c (tree_transform): Update.
24520         * utils2.c (truthvalue_conversion): Rename, update.
24521         (build_binary_op, build_unary_op): Update.
24522
24523 2002-04-04  Laurent Guerby  <guerby@acm.org>
24524
24525         * make.adb: Implement -margs, remove restriction about file name placement.
24526         * makeusg.adb: Documentation update.
24527         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
24528         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
24529
24530 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24531
24532         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
24533         (builtin_function): Similarly.
24534
24535 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24536
24537         * decl.c (gnat_to_gnu_entity): Update.
24538         * gigi.h (mark_addressable): Rename.
24539         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
24540         * trans.c (tree_transform): Update.
24541         * utils.c (create_var_decl): Update.
24542         * util2.c (build_binary_op, build_unary_op,
24543         fill_vms_descriptor): Update.
24544         (mark_addressable): Rename, update.
24545
24546 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24547
24548         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
24549         Rename.
24550         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
24551         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
24552         * trans.c (tree_transform, convert_with_check): Update.
24553         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
24554         Rename.
24555
24556 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
24557
24558         * gigi.h (finish_incomplete_decl): Rename.
24559         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
24560         * utils.c (gnat_init_decl_processing): Don't set hook.
24561         (finish_incomplete_decl): Rename.
24562
24563 2002-03-29  Andreas Schwab  <schwab@suse.de>
24564
24565         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
24566         directory.
24567
24568 2001-03-28  Robert Dewar <dewar@gnat.com>
24569
24570         * checks.ads:
24571         (Remove_Checks): New procedure
24572
24573         * checks.adb:
24574         (Remove_Checks): New procedure
24575
24576         * exp_util.adb:
24577         Use new Duplicate_Subexpr functions
24578         (Duplicate_Subexpr_No_Checks): New procedure
24579         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24580         (Duplicate_Subexpr): Restore original form (checks duplicated)
24581         (Duplicate_Subexpr): Call Remove_Checks
24582
24583         * exp_util.ads:
24584         (Duplicate_Subexpr_No_Checks): New procedure
24585         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24586         Add 2002 to copyright notice
24587
24588         * sem_util.adb: Use new Duplicate_Subexpr functions
24589
24590         * sem_eval.adb:
24591         (Eval_Indexed_Component): This is the place to call
24592         Constant_Array_Ref and to replace the value. We simply merge
24593         the code of this function in here, since it is now no longer
24594         used elsewhere. This fixes the problem of the back end not
24595         realizing we were clever enough to see that this was
24596         constant.
24597         (Expr_Val): Remove call to Constant_Array_Ref
24598         (Expr_Rep_Val): Remove call to Constant_Array_Ref
24599         Minor reformatting
24600         (Constant_Array_Ref): Deal with string literals (patch
24601         suggested by Zack Weinberg on the gcc list)
24602
24603 2001-03-28  Ed Schonberg <schonber@gnat.com>
24604
24605         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
24606         Duplicate_Subexpr_Move_Checks.
24607
24608         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
24609         Duplicate_Subexpr_Move_Checks.
24610
24611         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
24612         value of array exists before retrieving it (it may a private
24613         protected component in a function).
24614
24615 2002-03-28   Geert Bosch <bosch@gnat.com>
24616
24617         * prj-pp.adb : New file.
24618
24619         * prj-pp.ads : New file.
24620
24621 2002-03-28  Andreas Jaeger  <aj@suse.de>
24622
24623         * Makefile.in (stamp-sdefault): Fix path for Makefile.
24624
24625 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24626
24627         * misc.c (gnat_expand_expr): Move prototype.
24628
24629 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24630
24631         * misc.c (insert_default_attributes): Remove.
24632
24633 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24634
24635         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
24636         (gnat_init): Don't set hook.
24637         (gnat_expand_expr): Fix prototype.
24638
24639 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24640
24641         * misc.c (ggc_p): Remove.
24642
24643 2002-03-27  Geert Bosch  <bosch@gnat.com>
24644
24645         * prj-makr.ads, prj-makr.adb : New files.
24646
24647 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
24648
24649         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
24650         (lang_mark_tree): Make static, rename.
24651
24652 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24653
24654         * misc.c (maybe_build_cleanup): Remove.
24655
24656 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24657
24658         * gigi.h (yyparse): Remove.
24659
24660 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
24661
24662         * gnat_rm.texi: Sync with ACT version.
24663           (From Ben Brosgol <brosgol@gnat.com>)
24664
24665 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
24666
24667         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
24668         (gnat_init): Remove old hook.
24669
24670 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
24671
24672         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
24673         (yyparse): Rename gnat_parse_file.
24674
24675 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
24676
24677         Delete all lines containing "$Revision:".
24678         * xeinfo.adb: Don't look for revision numbers.
24679         * xnmake.adb: Likewise.
24680         * xsinfo.adb: Likewise.
24681         * xsnames.adb: Likewise.
24682         * xtreeprs.adb: Likewise.
24683
24684 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24685
24686         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
24687         gnat_tree_code_name): Delete.
24688         (tree_code_type, tree_code_length, tree_code_name): Define.
24689         (gnat_init): Don't try to copy into the various tree_code
24690         arrays.
24691
24692 2002-03-11  Richard Henderson  <rth@redhat.com>
24693
24694         * Makefile.in (.NOTPARALLEL): Add fake tag.
24695
24696 2002-03-07  Geert Bosch  <bosch@gnat.com>
24697
24698         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
24699         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
24700         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
24701         switch-m.adb, switch-m.ads : New files.
24702
24703 2002-03-07  Geert Bosch  <bosch@gnat.com>
24704
24705         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
24706         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
24707         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
24708         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
24709         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
24710         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
24711         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
24712         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
24713         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
24714         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
24715         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
24716         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
24717         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
24718         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
24719         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
24720         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
24721         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
24722         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
24723         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
24724         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
24725         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
24726         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
24727         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
24728         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
24729         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
24730         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
24731         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
24732         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
24733         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
24734         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
24735         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
24736         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
24737         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
24738         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
24739         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
24740         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
24741         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
24742         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
24743         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
24744         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
24745         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
24746         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
24747         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
24748         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
24749         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
24750         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
24751         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
24752         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
24753         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
24754         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
24755         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
24756         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
24757         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
24758         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
24759         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
24760         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
24761         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
24762         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
24763         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
24764         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
24765         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
24766         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
24767         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
24768         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
24769         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
24770         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
24771         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
24772         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
24773         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
24774         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
24775         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
24776         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
24777         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
24778         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24779         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24780         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
24781         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
24782         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
24783         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
24784         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
24785         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
24786         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
24787         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
24788         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
24789         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
24790         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
24791         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
24792         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
24793         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
24794         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
24795         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
24796         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
24797         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
24798         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
24799         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
24800         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
24801         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
24802
24803         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
24804         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
24805         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
24806         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
24807
24808         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
24809         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
24810
24811         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
24812         to mdll-fil.ad[bs] and mdll-util.ad[bs]
24813
24814         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
24815         from mdllfile.ad[bs] and mdlltool.ad[bs]
24816
24817 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24818
24819         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
24820         lieu of explicit sizeof/sizeof.
24821
24822 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24823
24824         * misc.c (copy_lang_decl): Remove.
24825
24826 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
24827
24828         * misc.c: Delete traditional-mode-related code copied from the
24829         C front end but not used, or used only to permit the compiler
24830         to link.
24831
24832 2002-02-07  Richard Henderson  <rth@redhat.com>
24833
24834         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
24835         * adaint.h (__gnat_to_gm_time): Update prototype.
24836
24837 2002-01-30  Richard Henderson  <rth@redhat.com>
24838
24839         * trans.c (tree_transform) [N_Loop_Statement]: Use
24840         expand_exit_loop_top_cond.
24841
24842 2001-12-23  Richard Henderson  <rth@redhat.com>
24843
24844         * utils.c (end_subprog_body): Push GC context around
24845         rest_of_compilation for nested functions.
24846
24847 2001-12-23  Richard Henderson  <rth@redhat.com>
24848
24849         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
24850
24851 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
24852
24853         * gnat-style.texi (Declarations and Types): Remove ancient style
24854         rule which was mandated by code generation issues.
24855
24856         * gnat-style.texi (header): Add @dircategory, @direntry.
24857         (title page): Remove date.
24858         (general) Add @./@: where approriate, and two spaces after the
24859         full stop at the end of a sentence.  Use @samp markup when
24860         referring concrete lexical entities (keywords, attribute names
24861         etc.), and @syntax for ARM grammar elements. Use @r for English
24862         text in comments.  Use @emph for emphasis.  Change "if-statements"
24863         etc. to "if statements" (without @samp). Break long lines.  Make
24864         casing of section names consistent.
24865         (Identifiers): Use @samp markup for variable names.
24866         (Comments): Use @samp markup for comment characters. Line-end
24867         comments may follow any Ada code, not just statements.  Fix
24868         misspelling of "Integer" as "integer".
24869         (Loop statements): Do not use variable name "I", use "J".
24870         (Subprogram Declarations): Document alignment.
24871         (Subprogram Bodies, Block statements): Document empty line before
24872         "begin".
24873
24874 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
24875
24876         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24877         function approach did not work well because of a side effect (the
24878         function call could reallocate the table which was being indexed
24879         using its result). Fixes ada/4851.
24880
24881 2001-12-19  Robert Dewar <dewar@gnat.com>
24882
24883         * bindgen.adb: Minor reformatting
24884
24885         * cstand.adb: Minor reformatting
24886
24887         * fmap.adb: Minor reformatting
24888         Change name from Add for Add_To_File_Map (Add is much too generic)
24889         Change Path_Name_Of to Mapped_Path_Name
24890         Change File_Name_Of to Mapped_File_Name
24891         Fix copyright dates in header
24892
24893         * fmap.ads:
24894         Change name from Add for Add_To_File_Map (Add is much too generic)
24895         Change Path_Name_Of to Mapped_Path_Name
24896         Change File_Name_Of to Mapped_File_Name
24897         Fix copyright dates in header
24898
24899         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
24900         Add use clause for Fmap.
24901
24902         * make.adb: Minor reformatting
24903
24904         * osint.adb: Minor reformatting.  Change of names in Fmap.
24905         Add use clause for Fmap.
24906
24907         * prj-env.adb: Minor reformatting
24908
24909         * prj-env.ads: Minor reformatting
24910
24911         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
24912         error found (there were odd exceptions to this general rule in
24913         -gnatec/-gnatem processing)
24914
24915 2001-12-19  Olivier Hainque <hainque@gnat.com>
24916
24917         * raise.c (__gnat_eh_personality): Exception handling personality
24918         routine for Ada.  Still in rough state, inspired from the C++ version
24919         and still containing a bunch of debugging artifacts.
24920         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
24921         inspired from the C++ library.
24922
24923         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
24924         exception handling integration.
24925
24926 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24927
24928         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
24929         (HIE_SOURCES): Add s-secsta.ad{s,b}.
24930         (HIE_OBJS): Add s-fat*.o
24931         (RAVEN_SOURCES): Remove files that are no longer required. Add
24932         interrupt handling files.
24933         (RAVEN_MOD): Removed, no longer needed.
24934
24935 2001-12-19  Robert Dewar <dewar@gnat.com>
24936
24937         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
24938         Add 2001 to copyright date
24939
24940         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
24941         need to force universal inlining for these cases.
24942
24943 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24944
24945         * s-taprob.adb: Minor clean ups so that this unit can be used in
24946         Ravenscar HI.
24947
24948         * exp_ch7.adb: Allow use of secondary stack in HI mode.
24949         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
24950
24951 2001-12-19  Vincent Celier <celier@gnat.com>
24952
24953         * prj-tree.ads (Project_Node_Record): Add comments for components
24954         Pkg_Id and Case_Insensitive.
24955
24956 2001-12-19  Pascal Obry <obry@gnat.com>
24957
24958         * g-socket.adb: Minor reformatting. Found while reading code.
24959
24960 2001-12-19  Robert Dewar <dewar@gnat.com>
24961
24962         * prj-tree.ads: Minor reformatting
24963
24964 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
24965
24966         * config-lang.in (diff_excludes): Remove.
24967
24968 2001-12-17  Ed Schonberg <schonber@gnat.com>
24969
24970         * sem_res.adb (Resolve_Selected_Component): do not generate a
24971         discriminant check if the selected component is a component of
24972         the argument of an initialization procedure.
24973
24974         * trans.c (tree_transform, case of arithmetic operators): If result
24975         type is private, the gnu_type is the base type of the full view,
24976         given that the full view itself may be a subtype.
24977
24978 2001-12-17  Robert Dewar <dewar@gnat.com>
24979
24980         * sem_res.adb: Minor reformatting
24981
24982         * trans.c (tree_transform, case N_Real_Literal): Add missing third
24983         parameter in call to Machine (unknown horrible effects from this
24984         omission).
24985
24986         * urealp.h: Add definition of Round_Even for call to Machine
24987         Add third parameter for Machine
24988
24989 2001-12-17  Ed Schonberg <schonber@gnat.com>
24990
24991         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
24992         predefined units in No_Run_Time mode.
24993
24994 2001-12-17  Richard Kenner <kenner@gnat.com>
24995
24996         * misc.c (insn-codes.h): Now include.
24997
24998 2001-12-17  Olivier Hainque <hainque@gnat.com>
24999
25000         * a-except.adb: Preparation work for future integration of the GCC 3
25001         exception handling mechanism
25002         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
25003         to factorize previous code sequences and make them externally callable,
25004         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
25005         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
25006         Use the new notification routines.
25007
25008 2001-12-17  Emmanuel Briot <briot@gnat.com>
25009
25010         * prj-tree.ads (First_Choice_Of): Document the when others case
25011
25012 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25013
25014         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
25015         HI-E mode, in order to support Ravenscar profile properly.
25016
25017         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
25018         mode on 32 bits targets.
25019
25020 2001-12-17  Vincent Celier <celier@gnat.com>
25021
25022         * fmap.adb: Initial version.
25023
25024         * fmap.ads: Initial version.
25025
25026         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
25027         If search is successfully done, add to mapping.
25028
25029         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
25030
25031         * make.adb:
25032         (Gnatmake): Add new local variable Mapping_File_Name.
25033          Create mapping file when using project file(s).
25034          Delete mapping file before exiting.
25035
25036         * opt.ads (Mapping_File_Name): New variable
25037
25038         * osint.adb (Find_File): Use path name found in mapping, if any.
25039
25040         * prj-env.adb (Create_Mapping_File): New procedure
25041
25042         * prj-env.ads (Create_Mapping_File): New procedure.
25043
25044         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
25045         (Mapping_File)
25046
25047         * usage.adb: Add entry for new switch -gnatem.
25048
25049         * Makefile.in: Add dependencies for fmap.o.
25050
25051 2001-12-17  Ed Schonberg <schonber@gnat.com>
25052
25053         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
25054         is a package instantiation rewritten as a package body.
25055         (Install_Withed_Unit): Undo previous change, now redundant.
25056
25057 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25058
25059         * layout.adb:
25060         (Compute_Length): Move conversion to Unsigned to callers.
25061         (Get_Max_Size): Convert Len expression to Unsigned after calls to
25062         Compute_Length and Determine_Range.
25063         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
25064         Compute_Length and Determine_Range.
25065         Above changes fix problem with length computation for supernull arrays
25066         where Max (Len, 0) wasn't getting applied due to the Unsigned
25067         conversion used by Compute_Length.
25068
25069 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25070
25071         * rtsfind.ads:
25072         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
25073          System.Secondary_Stack.
25074         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
25075          in HI-E mode.
25076         Remove unused entity RE_Exception_Data.
25077
25078         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
25079
25080         * rident.ads (No_Secondary_Stack): New restriction.
25081
25082 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25083
25084         * gnat_rm.texi: Fix minor typos. Found while reading the section
25085         regarding "Bit_Order Clauses" that was sent to a customer.
25086         Very interesting documentation!
25087
25088 2001-12-17  Robert Dewar <dewar@gnat.com>
25089
25090         * sem_case.adb (Choice_Image): Avoid creating improper character
25091         literal names by using the routine Set_Character_Literal_Name. This
25092         fixes bombs in certain error message cases.
25093
25094 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25095
25096         * a-reatim.adb: Minor reformatting.
25097
25098 2001-12-17  Ed Schonberg <schonber@gnat.com>
25099
25100         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
25101         case where the formal is an extension of another formal in the current
25102         unit or in a parent generic unit.
25103
25104 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25105
25106         * s-tposen.adb: Update comments.  Minor reformatting.
25107         Minor code clean up.
25108
25109         * s-tarest.adb: Update comments.  Minor code reorganization.
25110
25111 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25112
25113         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
25114         when Java_VM.
25115
25116 2001-12-17  Robert Dewar <dewar@gnat.com>
25117
25118         * exp_attr.adb: Minor reformatting
25119
25120 2001-12-17  Ed Schonberg <schonber@gnat.com>
25121
25122         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
25123         derivations nested within a child unit: verify that the parent
25124         type is declared in an outer scope.
25125
25126 2001-12-17  Robert Dewar <dewar@gnat.com>
25127
25128         * sem_ch12.adb: Minor reformatting
25129
25130 2001-12-17  Ed Schonberg <schonber@gnat.com>
25131
25132         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
25133         warning if current unit is a predefined one, from which bodies may
25134         have been deleted.
25135
25136 2001-12-17  Robert Dewar <dewar@gnat.com>
25137
25138         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
25139         Fix header format. Add 2001 to copyright date.
25140
25141         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
25142         which caused CE during compilation if checks were enabled.
25143
25144 2001-12-17  Vincent Celier <celier@gnat.com>
25145
25146         * make.adb:
25147         (Switches_Of): New function
25148         (Test_If_Relative_Path): New procedure
25149         (Add_Switches): Use new function Switches_Of
25150         (Collect_Arguments_And_Compile): Use new function Switches_Of.
25151         When using a project file, test if there are any relative
25152         search path. Fail if there are any.
25153         (Gnatmake): Only add switches for the primary directory when not using
25154         a project file. When using a project file, change directory to the
25155         object directory of the main project file. When using a project file,
25156         test if there are any relative search path. Fail if there are any.
25157         When using a project file, fail if specified executable is relative
25158         path with directory information, and prepend executable, if not
25159         specified as an absolute path, with the exec directory.  Make sure
25160         that only one -o switch is transmitted to the linker.
25161
25162         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
25163
25164         * prj-nmsc.adb:
25165         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
25166         when using a non standard naming scheme.
25167         (Check_Ada_Naming_Scheme): Make sure that error messages
25168         do not raise exceptions.
25169         (Is_Illegal_Append): Return True if there is no dot in the suffix.
25170         (Language_Independent_Check): Check the exec directory.
25171
25172         * prj.adb (Project_Empty): Add new component Exec_Directory
25173
25174         * prj.ads:
25175         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
25176         (Project_Data): Add component Exec_Directory
25177
25178         * snames.adb: Updated to match snames.ads revision 1.215
25179
25180         * snames.ads: Added Exec_Dir
25181
25182 2001-12-17  Robert Dewar <dewar@gnat.com>
25183
25184         * make.adb: Minor reformatting
25185
25186         * prj-nmsc.adb: Minor reformatting
25187
25188         * snames.adb: Updated to match snames.ads
25189
25190         * snames.ads: Alphebetize entries for project file
25191
25192 2001-12-17  Ed Schonberg <schonber@gnat.com>
25193
25194         * trans.c (process_freeze_entity): Do nothing if the entity is a
25195         subprogram that was already elaborated.
25196
25197 2001-12-17  Richard Kenner <kenner@gnat.com>
25198
25199         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
25200         and Esize if object is referenced via pointer.
25201
25202 2001-12-17  Ed Schonberg <schonber@gnat.com>
25203
25204         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
25205         is discrete before analyzing choices.
25206
25207 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25208
25209         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
25210         containing the name of the Ada Main Program. This string is mainly
25211         intended for the debugger.
25212         (Gen_Output_File_C): Do the equivalent change when generating a C file.
25213
25214 2001-12-17  Robert Dewar <dewar@gnat.com>
25215
25216         * ali.adb: Set new Dummy_Entry field in dependency entry
25217
25218         * ali.ads: Add Dummy_Entry field to source dependency table
25219
25220         * bcheck.adb (Check_Consistency): Ignore dummy D lines
25221
25222         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
25223
25224         * lib-writ.ads: Document dummy D lines for missing files.
25225
25226         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
25227
25228 2001-12-17  Robert Dewar <dewar@gnat.com>
25229
25230         * ali.adb: Type reference does not reset current file.
25231
25232         * ali.adb: Recognize and scan renaming reference
25233
25234         * ali.ads: Add spec for storing renaming references.
25235
25236         * lib-xref.ads: Add documentation for handling of renaming references
25237
25238         * lib-xref.adb: Implement output of renaming reference.
25239
25240         * checks.adb:
25241         (Determine_Range): Document local variables
25242         (Determine_Range): Make sure Hbound is initialized. It looks as though
25243          there could be a real problem here with an uninitialized reference
25244          to Hbound, but no actual example of failure has been found.
25245
25246 2001-12-17  Laurent Pautet <pautet@gnat.com>
25247
25248         * g-socket.ads:
25249         Fix comment of Shutdown_Socket and Close_Socket. These functions
25250         should not fail silently because if they are called twice, this
25251         probably means that there is a race condition in the user program.
25252         Anyway, this behaviour is consistent with the rest of this unit.
25253         When an error occurs, an exception is raised with the error message
25254         as exception message.
25255
25256 2001-12-17  Robert Dewar <dewar@gnat.com>
25257
25258         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
25259         that it happens before modification of Sloc values for -gnatD.
25260
25261         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
25262         so that it happens before modification of Sloc values for -gnatD.
25263
25264         * switch.adb: Minor reformatting
25265
25266 2001-12-15  Richard Henderson  <rth@redhat.com>
25267
25268         * sem_ch7.adb: Wrap comment.
25269
25270 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25271
25272         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
25273         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
25274         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
25275         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
25276         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
25277         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
25278         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
25279         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
25280         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
25281         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
25282         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
25283         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
25284         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
25285         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
25286         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
25287         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
25288         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
25289         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
25290         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
25291         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
25292         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
25293         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
25294         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
25295         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
25296         spelling errors.
25297
25298 2001-12-14  Vincent Celier <celier@gnat.com>
25299
25300         * osint.adb(Create_Debug_File): When an object file is specified,
25301         put the .dg file in the same directory as the object file.
25302
25303 2001-12-14  Robert Dewar <dewar@gnat.com>
25304
25305         * osint.adb: Minor reformatting
25306
25307         * lib-xref.adb (Output_Instantiation): New procedure to generate
25308         instantiation references.
25309
25310         * lib-xref.ads: Add documentation of handling of generic references.
25311
25312         * ali.adb (Read_Instantiation_Ref): New procedure to read
25313         instantiation references
25314
25315         * ali.ads: Add spec for storing instantiation references
25316
25317         * bindusg.adb: Minor reformatting
25318
25319         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25320
25321         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25322
25323         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25324
25325         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25326
25327         * csets.ads:
25328         Fix header format
25329         Add 2001 to copyright date
25330         Add entry for Latin-5 (Cyrillic ISO-8859-5)
25331
25332 2001-12-14  Matt Gingell <gingell@gnat.com>
25333
25334         * adaint.c: mktemp is a macro on Lynx and can not be used as an
25335         expression.
25336
25337 2001-12-14  Richard Kenner <kenner@gnat.com>
25338
25339         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
25340         if operand is CONSTRUCTOR.
25341
25342 2001-12-14  Ed Schonberg <schonber@gnat.com>
25343
25344         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
25345         before emiting check on right-hand side, so that exception information
25346         is correct.
25347
25348 2001-12-14  Richard Kenner <kenner@gnat.com>
25349
25350         * utils.c (create_var_decl): Throw away initializing expression
25351         if just annotating types and non-constant.
25352
25353 2001-12-14  Vincent Celier <celier@gnat.com>
25354
25355         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
25356         Default_Ada_...
25357
25358         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25359         Remove functions.
25360         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
25361
25362         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25363         Remove functions.
25364         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
25365
25366 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25367
25368         * ChangeLog: Remove piece of diff output.
25369
25370 2001-12-14  Geert Bosch <bosch@gnat.com>
25371
25372         * config-lang.in: Update copyright notice
25373
25374         * layout.adb: Remove commented out code.
25375
25376         * mdllfile.ads: Update copyright notice. Fix header format.
25377
25378         * sem_case.ads: Likewise.
25379
25380         * sem_ch3.adb: Minor reformatting.
25381
25382 2001-12-12  Geert Bosch <bosch@gnat.com>
25383
25384         * freeze.ads: Update copyright date.
25385
25386         * g-comlin.ads: Minor reformatting.
25387
25388         * gnat-style.texi: Fix typo.
25389
25390 2001-12-12  Geert Bosch <bosch@gnat.com>
25391
25392         *  einfo.h: Regenerate.
25393
25394 2001-12-12  Ed Schonberg <schonber@gnat.com>
25395
25396         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
25397         on known node types, rather than untyped fields. Further cleanups.
25398
25399 2001-12-12  Robert Dewar <dewar@gnat.com>
25400
25401         * sem_ch12.adb:
25402         (Save_Entity_Descendant): Minor comment update.
25403         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
25404          of an N_Attribute_Reference node. As per note below, this does not
25405         eliminate need for Associated_Node in attribute ref nodes.
25406         (Associated_Node): Documentation explicitly mentions attribute
25407         reference nodes, since this field is used in such nodes.
25408
25409         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
25410
25411 2001-12-12  Robert Dewar <dewar@gnat.com>
25412
25413         * s-stalib.adb: Add more comments on with statements being needed
25414
25415         * par-ch12.adb: Minor reformatting
25416
25417         * prj-dect.ads: Fix copyright header
25418
25419         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
25420         inputs fit in 32 bits, but the result still overflows.
25421
25422         * s-fatgen.ads: Minor comment improvement
25423
25424 2001-12-12  Ed Schonberg <schonber@gnat.com>
25425
25426         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
25427         formal derived type, look for an inherited component from the full
25428         view of the parent, if any.
25429
25430 2001-12-12  Robert Dewar <dewar@gnat.com>
25431
25432         * checks.ads (Apply_Alignment_Check): New procedure.
25433
25434         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
25435         ensure that the alignment of objects with address clauses is
25436         appropriate, and raise PE if not.
25437
25438         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
25439         Exp_Pakd.Known_Aligned_Enough
25440
25441         * mdllfile.ads: Minor reformatting
25442
25443         * mlib-fil.ads: Minor reformatting
25444
25445 2001-12-12  Ed Schonberg <schonber@gnat.com>
25446
25447         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
25448         fix to any component reference if enclosing record has non-standard
25449         representation.
25450
25451 2001-12-12  Vincent Celier <celier@gnat.com>
25452
25453         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
25454         Iteration
25455
25456 2001-12-12  Ed Schonberg <schonber@gnat.com>
25457
25458         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
25459         sem_attr.
25460
25461 2001-12-12  Robert Dewar <dewar@gnat.com>
25462
25463         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
25464
25465 2001-12-12  Emmanuel Briot <briot@gnat.com>
25466
25467         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
25468         and it adds dependencies to system.io.
25469
25470 2001-12-12  Pascal Obry <obry@gnat.com>
25471
25472         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
25473         variable name.
25474
25475 2001-12-11  Ed Schonberg <schonber@gnat.com>
25476
25477         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
25478         that is the parent of other generics, the instance body replaces the
25479         instance node.  Retrieve the instance of the spec, which is the one
25480         that is visible in clients and within the body.
25481
25482 2001-12-11  Vincent Celier <celier@gnat.com>
25483
25484         * gnatmain.adb: Initial version.
25485
25486         * gnatmain.ads: Initial version.
25487
25488         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
25489
25490         * snames.adb: Updated to match snames.ads.
25491
25492         * snames.ads: Added Gnatstub.
25493
25494 2001-12-11  Vincent Celier <celier@gnat.com>
25495
25496         * prj-attr.adb (Initialization_Data): Change name from
25497         Initialisation_Data.
25498
25499 2001-12-11  Emmanuel Briot <briot@gnat.com>
25500
25501         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
25502         + and * applied to backslashed expressions like \r.
25503
25504 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
25505
25506         * g-os_lib.ads: String_List type added, Argument_List type is now
25507         subtype of String_List.
25508
25509 2001-12-11  Robert Dewar <dewar@gnat.com>
25510
25511         * g-os_lib.ads: Change copyright to FSF
25512         Add comments for String_List type
25513
25514 2001-12-11  Vincent Celier <celier@gnat.com>
25515
25516         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
25517         string to the buffer).
25518
25519 2001-12-11  Ed Schonberg <schonber@gnat.com>
25520
25521         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
25522         sem_attr.
25523
25524         * sem_attr.adb: Simplify previous fix for Address.
25525         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
25526         to avoid anomalies where the bound of the type appears to raise
25527         constraint error.
25528
25529 2001-12-11  Robert Dewar <dewar@gnat.com>
25530
25531         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
25532         handled.
25533
25534 2001-12-11  Ed Schonberg <schonber@gnat.com>
25535
25536         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
25537         renamed unit before checking for recursive instantiations.
25538
25539 2001-12-11  Emmanuel Briot <briot@gnat.com>
25540
25541         * prj.ads: Add comments for some of the fields.
25542
25543 2001-12-11  Robert Dewar <dewar@gnat.com>
25544
25545         * lib-xref.adb (Output_Refs): Don't output type references outside
25546         the main unit if they are not otherwise referenced.
25547
25548 2001-12-11  Ed Schonberg <schonber@gnat.com>
25549
25550         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
25551         code and diagnose additional illegal uses
25552
25553         * sem_util.adb (Is_Object_Reference): An indexed component is an
25554         object only if the prefix is.
25555
25556 2001-12-11  Vincent Celier <celier@gnat.com>
25557
25558         * g-diopit.adb: Initial version.
25559
25560         * g-diopit.ads: Initial version.
25561
25562         * g-dirope.adb:
25563         (Expand_Path): Avoid use of Unbounded_String
25564         (Find, Wildcard_Iterator): Moved to child package Iteration
25565
25566         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
25567
25568 2001-12-11  Robert Dewar <dewar@gnat.com>
25569
25570         * sem_attr.adb: Minor reformatting
25571
25572 2001-12-11  Ed Schonberg <schonber@gnat.com>
25573
25574         * sem_ch3.adb: Clarify some ???.
25575
25576 2001-12-11  Robert Dewar <dewar@gnat.com>
25577
25578         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
25579         Exp_Pakd.Known_Aligned_Enough
25580
25581         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
25582         version is moved to Exp_Ch13.
25583
25584 2001-12-11  Robert Dewar <dewar@gnat.com>
25585
25586         * einfo.ads: Minor reformatting
25587
25588         * exp_ch5.adb: Add comment for previous.change
25589
25590         * ali.adb: New interface for extended typeref stuff.
25591
25592         * ali.ads: New interface for typeref stuff.
25593
25594         * checks.adb (Apply_Alignment_Check): New procedure.
25595
25596         * debug.adb: Add -gnatdM for modified ALI output
25597
25598         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
25599
25600         * lib-xref.adb: Extend generation of <..> notation to cover
25601         subtype/object types. Note that this is a complete rewrite,
25602         getting rid of the very nasty quadratic algorithm previously
25603         used for derived type output.
25604
25605         * lib-xref.ads: Extend description of <..> notation to cover
25606         subtype/object types. Uses {..} for these other cases.
25607         Also use (..) for pointer types.
25608
25609         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
25610
25611         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
25612         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
25613
25614 2001-12-11  Vincent Celier <celier@gnat.com>
25615
25616         * gnatcmd.adb:
25617         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
25618         Changed /BIND_ONLY to /ACTIONS=BIND
25619         Changed /LINK_ONLY to /ACTIONS=LINK
25620
25621 2001-12-11  Ed Schonberg  <schonber@gnat.com>
25622
25623         * sem_ch8.adb (Find_Selected_Component): improved search for a
25624         candidate package in case of error.
25625
25626         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
25627         chain back on scope stack before reinstalling use clauses.
25628
25629         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
25630         is enabled, do not kill the code for the condition, to preserve
25631         warning.
25632
25633 2001-12-11  Robert Dewar <dewar@gnat.com>
25634
25635         * checks.adb (Insert_Valid_Check): Apply validity check to expression
25636         of conversion, not to result of conversion.
25637
25638 2001-12-11  Ed Schonberg <schonber@gnat.com>
25639
25640         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
25641         before freezing parent. If the declarations are mutually recursive,
25642         an access to the current record type may be frozen before the
25643         derivation is complete.
25644
25645 2001-12-05  Vincent Celier <celier@gnat.com>
25646
25647         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
25648         -c /COMPILE_ONLY, -l /LINK_ONLY
25649
25650         * opt.ads:
25651         (Bind_Only): New Flag
25652         (Link_Only): New flag
25653
25654         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
25655         and -l (Link_Only)
25656
25657         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
25658
25659         * make.adb:
25660         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
25661         (Gnatmake): Set the step flags. Only perform a step if the
25662         corresponding step flag is True.
25663         (Scan_Make_Arg): Reset the bind and link step flags when -u
25664         or -gnatc has been specified.
25665
25666 2001-12-05  Ed Schonberg <schonber@gnat.com>
25667
25668         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
25669         get bounds from right operand.
25670
25671         * sem_eval.adb: Minor reformatting
25672
25673         * exp_util.adb (Make_Literal_Range): use bound of literal rather
25674         than Index'First, its lower bound may be different from 1.
25675
25676         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
25677         and C48009J
25678
25679 2001-12-05  Vincent Celier <celier@gnat.com>
25680
25681         * prj-nmsc.adb Minor reformatting
25682
25683         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
25684         set and libraries are not supported.
25685
25686 2001-12-05  Ed Schonberg <schonber@gnat.com>
25687
25688         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
25689         private view explicitly, so the back-end can treat as a global
25690         when appropriate.
25691
25692 2001-12-05  Ed Schonberg <schonber@gnat.com>
25693
25694         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
25695          unit, always replace instance node with new body, for ASIS use.
25696
25697 2001-12-05  Vincent Celier <celier@gnat.com>
25698
25699         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
25700         libraries are not supported and both attributes Library_Name and
25701         Library_Dir are specified.
25702
25703         * prj-proc.adb (Expression): Set location of Result to location of
25704         first term.
25705
25706         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
25707         (prj-nmsc is now importing MLib.Tgt)
25708
25709         * prj-proc.adb: Put the change indicated above that was forgotten.
25710
25711 2001-12-05  Robert Dewar <dewar@gnat.com>
25712
25713         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
25714
25715 2001-12-05  Ed Schonberg <schonber@gnat.com>
25716
25717         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
25718         constraint, introduce explicit subtype declaration and derive from it.
25719
25720         * sem_ch3.adb: Minor reformatting
25721
25722 2001-12-05  Robert Dewar <dewar@gnat.com>
25723
25724         * checks.adb (Determine_Range): Increase cache size for checks.
25725         Minor reformatting
25726
25727         * exp_ch6.adb: Minor reformatting
25728         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
25729         a parameter whose root type is System.Address, since treating such
25730         subprograms as pure in the code generator is almost surely a mistake
25731         that will lead to unexpected results.
25732
25733         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
25734         change handling of conversions.
25735
25736         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
25737
25738 2001-12-05  Ed Schonberg <schonber@gnat.com>
25739
25740         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
25741         aggregate with static wrong size, attach generated Raise node to
25742         declaration.
25743
25744 2001-12-05  Robert Dewar <dewar@gnat.com>
25745
25746         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
25747         Fixes compilation abandoned bomb in B24009B.
25748
25749 2001-12-05  Ed Schonberg <schonber@gnat.com>
25750
25751         * sem_ch12.adb:
25752         Document use of Associated_Node on Selected_Components.
25753         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
25754         to clarify use of untyped descendant fields.
25755
25756 2001-12-05  Robert Dewar <dewar@gnat.com>
25757
25758         * prj-dect.ads: Add ??? comment
25759         Add 2001 to copyright notice (was not done in after all)
25760
25761         * prj-part.adb: Minor reformatting. Reword one awkward error message.
25762
25763         * prj.ads: Minor reformatting throughout, and add some ??? comments
25764
25765         * snames.ads: Minor reformatting
25766
25767 2001-12-05  Geert Bosch <bosch@gnat.com>
25768
25769         * snames.adb: Autoupdate
25770
25771 2001-12-05  Vincent Celier <celier@gnat.com>
25772
25773         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
25774
25775         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
25776
25777         * prj-env.adb: Minor comment changes (modifying -> extends).
25778
25779         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
25780
25781         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
25782         Tok_Extends.
25783
25784         * prj.adb (Initialize): Change Modifying to Extends.
25785
25786         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
25787
25788         * prj.ads: Minor comment change (Modifying -> extending).
25789
25790         * snames.ads: Change modifying to extends.
25791
25792 2001-12-05  Robert Dewar <dewar@gnat.com>
25793
25794         * sem_warn.adb: Remove stuff for conditionals, we are not going to
25795         do this after all.
25796
25797         * sem_warn.ads: Remove stuff for conditionals, we are not going to
25798         do this after all.  Add 2001 to copyright notice
25799
25800 2001-12-04  Geert Bosch <bosch@gnat.com>
25801
25802         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
25803
25804 2001-12-04  Robert Dewar <dewar@gnat.com>
25805
25806         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
25807         location if we already have errors. Stops some cases of cascaded
25808         errors.
25809
25810         * errout.adb: Improve comment.
25811
25812 2001-12-04  Robert Dewar <dewar@gnat.com>
25813
25814         * sem_ch12.adb:
25815         (Analyze_Formal_Type_Definition): Defend against Error.
25816         (Analyze_Formal_Subprogram): Defend against Error.
25817
25818         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
25819         remove following semicolon if present. Removes cascaded error.
25820
25821 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25822
25823         * bindgen.adb:
25824         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
25825          exceptions equals 0.
25826         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
25827         Fixes PIWG E tests (which have to be run with -gnatL).
25828
25829 2001-12-04  Robert Dewar <dewar@gnat.com>
25830
25831         * einfo.ads: Minor reformatting
25832
25833 2001-12-04  Ed Schonberg <schonber@gnat.com>
25834
25835         * einfo.ads: Block_Node points to the identifier of the block, not to
25836         the block node itself, to preserve the link when the block is
25837         rewritten, e.g. within an if-statement with a static condition.
25838
25839         * inline.adb (Cleanup_Scopes): recover block statement from block
25840         entity using new meaning of Block_Node.
25841
25842         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
25843         identifier of block node, rather than to node itself.
25844
25845 2001-12-04  Gary Dismukes <dismukes@gnat.com>
25846
25847         * layout.adb:
25848         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
25849         (Discrimify): Go back to setting the Etypes of the selected component
25850         because the Vname component does not exist at this point and will
25851         fail name resolution. Also set Analyzed.
25852         Remove with and use of Sem_Res.
25853
25854 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25855
25856         * Makefile.in: (HIE_SOURCES): add s-fat*.
25857
25858 2001-12-04  Robert Dewar <dewar@gnat.com>
25859
25860         * sem_attr.adb:
25861         (Compile_Time_Known_Attribute): New procedure.
25862         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
25863          proper range check.
25864
25865 2001-12-04  Ed Schonberg <schonber@gnat.com>
25866
25867         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
25868         processing discriminants to diagnose illegal default values.
25869
25870 2001-12-04  Ed Schonberg <schonber@gnat.com>
25871
25872         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
25873         access discriminant within a type extension that constrains its
25874         parent discriminants.
25875
25876 2001-12-04  Ed Schonberg <schonber@gnat.com>
25877
25878         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
25879         is malformed, use instance of Any_Id to allow analysis to proceed.
25880
25881         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
25882         type definition is illegal.
25883         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
25884         misplaced.
25885
25886 2001-12-04  Ed Schonberg <schonber@gnat.com>
25887
25888         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
25889         constants.
25890
25891 2001-12-04  Robert Dewar <dewar@gnat.com>
25892
25893         * errout.adb: Minor reformatting
25894
25895 2001-12-04  Robert Dewar <dewar@gnat.com>
25896
25897         * exp_util.adb: Minor reformatting from last change
25898
25899         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
25900         which is a rewriting of an expression, traverse the original
25901         expression to remove warnings that may have been posted on it.
25902
25903 2001-12-04  Ed Schonberg <schonber@gnat.com>
25904
25905         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
25906         record that has other packed components.
25907
25908 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25909
25910         * adaint.c: Minor cleanups.
25911
25912 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25913
25914         * adaint.c: Do not use utime.h on vxworks.
25915
25916 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25917
25918         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
25919         more confusion than it solves.
25920
25921 2001-12-04  Geert bosch <bosch@gnat.com>
25922
25923         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
25924
25925 2001-12-04  Geert Bosch  <bosch@gnat.com>
25926
25927         * Makefile.in (update-sources): New target.
25928         For use by gcc_release script.
25929
25930 2001-12-04  Ed Schonberg <schonber@gnat.com>
25931
25932         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
25933         a configuration pragma, it is now legal wherever a pragma can appear.
25934
25935 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
25936
25937         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
25938         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
25939         is now @CROSS@ -DIN_GCC; update comment.
25940
25941 2001-12-04  Robert Dewar <dewar@gnat.com>
25942
25943         * einfo.adb (Has_Pragma_Pure_Function): New flag.
25944         Fix problem that stopped ceinfo from working
25945
25946         * einfo.ads (Has_Pragma_Pure_Function): New flag.
25947
25948         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
25949
25950 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25951
25952         * gnatchop.adb:
25953         (File_Time_Stamp): New procedure.
25954         (Preserve_Mode): New boolean.
25955         (Write_Unit): Pass time stamp.
25956         Implement -p switch (preserve time stamps).
25957
25958         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
25959
25960         * gnatchop.adb: Do usage info for -p switch
25961
25962         * adaint.h (__gnat_set_file_time_name): New function
25963
25964         * adaint.c (__gnat_set_file_time_name): Implement
25965
25966         * adaint.h: Fix typo
25967
25968 2001-12-03  Robert Dewar <dewar@gnat.com>
25969
25970         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
25971         have Associated_Node.
25972
25973 2001-12-03  Robert Dewar <dewar@gnat.com>
25974
25975         * prj-proc.adb: Minor reformatting
25976
25977         * make.adb: Minor reformatting
25978
25979 2001-12-03  Geert Bosch <bosch@gnat.com>
25980
25981         * make.adb: Minor reformatting.
25982
25983 2001-12-03 Robert Dewar  <dewar@gnat.com>
25984
25985         * sem_ch12.adb: Minor reformatting
25986
25987 2001-12-03  Ed Schonberg <schonber@gnat.com>
25988
25989         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
25990         push Standard on the stack before analyzing the instance body,
25991         in order to have a clean visibility environment.
25992
25993         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
25994
25995 2001-12-03  Ed Schonberg <schonber@gnat.com>
25996
25997         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
25998         instantiation of a body that contains an inlined body.
25999
26000 2001-12-03  Ed Schonberg <schonber@gnat.com>
26001
26002         * sem_ch12.adb:
26003         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
26004         to prevent freezing within formal packages.
26005         (Freeze_Subprogram_Body): If body comes from another instance that
26006         appeared before its own body, place freeze node at end of current
26007         declarative part, to prevent a back-end crash.
26008         (Inline_Instance_Body): Handle properly a package instance within
26009         a subprogram instance that is a child unit.
26010
26011 2001-12-01  Graham Stott  <grahams@redhat.com>
26012
26013         * Makefile.in (misc.o): Add missing $(srcdir) prefix
26014         and add optabs.h dependency.
26015
26016         * misc.c: Include optabs.h
26017         (gnat_tree_code_type): Make static and const.
26018         (gnat_tree_code_length): Likewise.
26019         (gnat_tree_code_name): Likewise.
26020         (update_setjmp_buf): Obtain operands mode from insn_data.
26021
26022 2001-11-29  Richard Henderson  <rth@redhat.com>
26023
26024         * init.c: Remove obsolete dwarf2 frame.h section.
26025
26026 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
26027
26028         * Make-lang.in (ada.generated-manpages): New dummy target.
26029
26030 2001-11-29  Ed Schonberg <schonber@gnat.com>
26031
26032         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
26033         into Command, an array conversion is illegal here. Uncovered by
26034         ACATS B460005.
26035
26036 2001-11-28  Geert Bosch <bosch@gnat.com>
26037
26038         * init.c: Minor whitespace changes.
26039
26040 2001-11-28  Doug Rupp <rupp@gnat.com>
26041
26042         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
26043         signal stack.
26044
26045 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
26046
26047         * misc.c (gnat_expand_constant): Move declaration above
26048         definition of lang_hooks.
26049         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
26050         (gnat_init): lang_expand_constant no longer exists.
26051
26052         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
26053         always have vprintf.
26054         (gnat_init): Always call set_internal_error_function.
26055
26056 2001-11-27  Andreas Jaeger  <aj@suse.de>
26057
26058         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
26059
26060 2001-11-27  Laurent Guerby  <guerby@acm.org>
26061
26062         * Makefile.in: Regenerate Ada dependencies.
26063
26064 2001-11-26  Richard Henderson  <rth@redhat.com>
26065
26066         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
26067         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
26068         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
26069
26070 2001-11-25  Laurent Guerby  <guerby@acm.org>
26071
26072         * sysdep.c (rts_get_*): Fix style.
26073
26074 2001-11-19  Laurent Guerby  <guerby@acm.org>
26075
26076         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
26077         since it is of no apparent use and cause warnings.
26078
26079 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
26080
26081         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
26082         static too.
26083         (gnat_init): Don't return NULL.
26084         (finish_parse): Remove.
26085
26086 2001-11-17  Laurent Guerby  <guerby@acm.org>
26087
26088         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
26089         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
26090         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
26091         * lang-spec.h: Add missing struct field to silence warnings.
26092         * sysdep.c (rts_get_*): Provide K&R prototype.
26093         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
26094         * traceback.c (Unlock_Task, Lock_Task): Likewise.
26095         * tracebak.c (__gnat_backtrace): Remove unused variable.
26096         * utils.c (end_subprog_body): Move to K&R style.
26097
26098 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26099
26100         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
26101
26102 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
26103
26104         * misc.c (gnat_init): Change prototype.  Include the
26105         functionality of the old init_parse and init_decl_processing.
26106         (gnat_init_decl_processing): New prototype.
26107         (init_parse): Remove.
26108         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
26109
26110 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26111
26112         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
26113         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
26114         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
26115         set_yydebug): Remove.
26116
26117 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26118
26119         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
26120         (struct lang_hooks): Constify.
26121         (language_string, lang_identify): Remove.
26122         * utils.c (init_decl_processing): Update.
26123
26124 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
26125
26126         * misc.c: Include langhooks-def.h.
26127         * Makefile.in: Update.
26128
26129 2001-10-30  Robert Dewar <dewar@gnat.com>
26130
26131         * style.adb:
26132         (Check_Identifier): Rewrite circuit to be compatible with use of letters
26133         in the upper half of ASCII.
26134         (Check_Identifier): Minor reformatting
26135
26136 2001-10-30  Geert Bosch <bosch@gnat.com>
26137
26138         * (Associated_Node, Set_Associated_Node): Do not check for
26139         Freeze_Entity.
26140
26141 2001-10-30  Robert Dewar <dewar@gnat.com>
26142
26143         * a-reatim.ads: Minor reformatting
26144
26145 2001-10-30  Robert Dewar <dewar@gnat.com>
26146
26147         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
26148         undocumented declarations.
26149
26150 2001-10-30  Pascal Obry <obry@gnat.com>
26151
26152         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
26153         to the binder and linker.
26154         Minor style fix.
26155
26156         * mdll.ads: Fix layout.  Update copyright notice.
26157
26158         * mdll.adb: Fix layout.  Update copyright notice.
26159
26160 2001-10-30  Robert Dewar <dewar@gnat.com>
26161
26162         * usage.adb: Minor fix to output for -gnaty.
26163
26164 2001-10-30  Ed Schonberg <schonber@gnat.com>
26165
26166         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
26167         to accommodate all its possible values.
26168
26169         * a-reatim.adb (Split): Special-case handling of Time_Span_First
26170         and of small absolute values of T.
26171
26172 2001-10-30  Richard Kenner <kenner@gnat.com>
26173
26174         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
26175         set_mem_attributes since not needed and wrong if RESULT if a REG;
26176         fixes ACATS failures.
26177
26178 2001-10-30  Geert Bosch <bosch@gnat.com>
26179
26180         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
26181         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
26182
26183 2001-10-30  Robert Dewar <dewar@gnat.com>
26184
26185         * bindusg.adb: Undocument -f switch.
26186
26187         * gnatcmd.adb: Remove /FULL_ELABORATION.
26188
26189         * opt.ads (Force_RM_Elaboration_Order): Document that this is
26190         obsolescent.
26191
26192         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
26193
26194         * gnatbind.adb: Minor update of warning msg.
26195
26196 2001-10-30  Vincent Celier <celier@gnat.com>
26197
26198         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
26199         for project file switches (-P (/PROJECT_FILE=),
26200          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
26201         or MEDIUM or HIGH)
26202
26203 2001-10-30  Geert Bosch <bosch@gnat.com>
26204
26205         * decl.c: Minor whitespace fixes.
26206
26207 2001-10-30  Richard Kenner <kenner@gnat.com>
26208
26209         * utils2.c (build_allocator): Test for SIZE overflow in array case too
26210
26211 2001-10-30  Geert Bosch <bosch@gnat.com>
26212
26213         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
26214         Found due to GCC 3.0 warning of using uninitialized value.
26215
26216         * layout.adb:
26217         (Get_Max_Size): Use variant record for tracking value/expression.
26218          Makes logic clearer and prevents warnings for uninitialized variables.
26219         (Layout_Array_Type): Use variant record for tracking value/expression.
26220          Makes logic clearer and prevents warnings for uninitialized variables.
26221
26222 2001-10-30  Robert Dewar <dewar@gnat.com>
26223
26224         * lib.adb: Minor reformatting
26225
26226         * s-taprop.ads: Minor reformatting
26227
26228 2001-10-29  Laurent Guerby  <guerby@acm.org>
26229
26230         * init.c:
26231         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
26232         const.
26233         (_gnat_error_handler): Make MSG const.
26234
26235 2001-10-29  Richard Kenner <kenner@gnat.com>
26236
26237         * sysdep.c: Fix localtime_r problem on LynxOS.
26238         Also remove #elif to avoid warnings.
26239
26240         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
26241         used by this.
26242
26243         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
26244
26245 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
26246
26247         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
26248         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
26249         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
26250         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
26251         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
26252         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
26253         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
26254         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
26255         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
26256         types.ads, urealp.adb: Fix spelling errors.
26257
26258 2001-10-27  Laurent Guerby <guerby@acm.org>
26259
26260         * trans.c (gigi): Fix non determinism leading to bootstrap
26261         comparison failures for debugging information.
26262
26263 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
26264
26265         * gnat_rm.texi: Use @./@: where appropriate.
26266
26267 2001-10-26  Robert Dewar <dewar@gnat.com>
26268
26269         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
26270
26271 2001-10-26  Richard Kenner <kenner@gnat.com>
26272
26273         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
26274
26275 2001-10-26  Richard Kenner <kenner@gnat.com>
26276
26277         * decl.c (validate_size): Modify message for bad size to avoid
26278         implication that compiler is modifying the size.
26279
26280 2001-10-26  Robert Dewar <dewar@gnat.com>
26281
26282         * prj-util.adb: Minor reformatting. Fix bad header format.
26283
26284 2001-10-26  Robert Dewar <dewar@gnat.com>
26285
26286         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
26287
26288         * sinfo.ads: Clarify use of Associated_Node (documentation only).
26289
26290         * sem_ch12.adb: Change Node4 to Associated_Node. Change
26291         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
26292         much more narrowly in places where needed. These are cleanups.
26293
26294 2001-10-26  Joel Brobecker <brobecke@gnat.com>
26295
26296         * 5zosinte.ads (null_pthread): new constant.
26297
26298         * 5ztaprop.adb:
26299         (Initialize_TCB): Initialize thread ID to null, to be able to verify
26300          later that this field has been set.
26301         (Finalize_TCB): ditto.
26302         (Suspend_Task): Verify that the thread ID is not null before using it.
26303         (Resume_Task): ditto.
26304
26305         * s-tasdeb.adb:
26306         (Resume_All_Tasks): Lock the tasks list before using it.
26307         (Suspend_All_Tasks): ditto.
26308
26309 2001-10-26  Richard Kenner <kenner@gnat.com>
26310
26311         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
26312         Make constant variant of designated type for Is_Access_Constant.
26313         Call update_pointer_to with main variant.
26314
26315         * trans.c (process_freeze_entity, process_type):
26316         Call update_pointer_to on main variant.
26317
26318         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
26319         If main variant, update all other variants.
26320
26321         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
26322         TREE_STATIC.
26323
26324 2001-10-26  Robert Dewar <dewar@gnat.com>
26325
26326         * prj-util.adb: Minor reformatting
26327
26328 2001-10-26  Robert Dewar <dewar@gnat.com>
26329
26330         * prj-util.adb: Minor reformatting
26331
26332 2001-10-26  Robert Dewar <dewar@gnat.com>
26333
26334         * prj-attr.adb: Minor reformatting throughout
26335
26336 2001-10-26  Robert Dewar <dewar@gnat.com>
26337
26338         * prj-attr.ads: Minor reformatting
26339         Add ??? comment (this whole spec has almost no comments)
26340
26341 2001-10-26  Vincent Celier <celier@gnat.com>
26342
26343         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
26344         ("//") that precede the drive letter on Interix.
26345
26346 2001-10-26  Geert Bosch <bosch@gnat.com>
26347
26348         * gnat_rm.texi: Add GNAT Reference Manual.
26349
26350 2001-10-25  Robert Dewar <dewar@gnat.com>
26351
26352         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
26353         is Error. Similar change for other renaming cases.
26354
26355 2001-10-25  Robert Dewar <dewar@gnat.com>
26356
26357         * s-atacco.ads: Add pragma Inline_Always for functions.
26358         Fix header format. Add copyright 2001
26359
26360 2001-10-25  Ed Schonberg <schonber@gnat.com>
26361
26362         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
26363         return Error rather than Empty so that analysis can proceed.
26364
26365 2001-10-25  Ed Schonberg <schonber@gnat.com>
26366
26367         * sem_util.adb (Enter_Name): better handling of cascaded error
26368         messages when a unit appears in its own context.
26369
26370 2001-10-25  Ed Schonberg <schonber@gnat.com>
26371
26372         * sem_util.adb (Defining_Entity): in case of error, attach created
26373         entity to specification, so that semantic analysis can proceed.
26374
26375 2001-10-25  Robert Dewar <dewar@gnat.com>
26376
26377         * sem_util.adb
26378         (Defining_Entity): Deal with Error.
26379         (Process_End_Label): Deal with bad end label for.
26380
26381 2001-10-25  Ed Schonberg <schonber@gnat.com>
26382
26383         * sem_elab.adb (Check_A_Call): refine message when call is in an
26384         instance but callee is not declared in the generic unit.
26385
26386 2001-10-25  Ed Schonberg <schonber@gnat.com>
26387
26388         * sem_elab.adb (Check_A_Call): check for renaming before finding the
26389         enclosing unit, which may already be different from the calling unit.
26390
26391 2001-10-25  Geert Bosch <bosch@gnat.com>
26392
26393         * 4gintnam.ads: fix header format.
26394
26395 2001-10-25  Ed Schonberg <schonber@gnat.com>
26396
26397         * sem_res.adb (Resolve_Call): if the call is actually an indexing
26398         operation on the result of a parameterless call, perform elaboration
26399         check after the node has been properly rewritten.
26400
26401         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
26402         inlined within the generic tree, the defining identifier is not a
26403         compilation_unit.
26404
26405 2001-10-25  Ed Schonberg <schonber@gnat.com>
26406
26407         * sem_res.adb (Resolve): special-case resolution of Null in an
26408          instance or an inlined body to avoid view conflicts.
26409
26410         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
26411          compatibility by retrieving the access type of the generic copy.
26412
26413 2001-10-25  Robert Dewar <dewar@gnat.com>
26414
26415         * sem_ch3.adb:
26416         (Analyze_Number_Declaration): Handle error expression.
26417         (Signed_Integer_Type_Declaration): Handle error bound.
26418         (Analyze_Subtype_Indication): Handle error range.
26419
26420         * sem_util.adb (Get_Index_Bounds): Check for Error.
26421
26422 2001-10-25  Robert Dewar <dewar@gnat.com>
26423
26424         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
26425         in no run time mode.
26426
26427 2001-10-25  Pascal Obry <obry@gnat.com>
26428
26429         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
26430         mode case for ALLOC case.
26431
26432         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
26433         all platforms. Improvement of last change.
26434
26435 2001-10-25  Robert Dewar <dewar@gnat.com>
26436
26437         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
26438
26439 2001-10-25  Geert Bosch  <bosch@gnat.com>
26440
26441         * osint.adb (Is_Relative): Remove duplicate.
26442
26443 2001-10-25  Pascal Obry <obry@gnat.com>
26444
26445         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
26446         pathnames in UNIX and DOS style with drive letter.
26447         (Is_Relative): new routine.
26448
26449         * osint.adb: Minor reformatting
26450
26451         * osint.adb (Is_Relative): implementation using
26452         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
26453
26454 2001-10-25  Pascal Obry <obry@gnat.com>
26455
26456         * g-dirope.adb (Basename): correctly compute offset between the
26457         original Path and the translated one.
26458
26459         * g-dirope.adb: (Base_Name): add some comments.
26460
26461 2001-10-25  Robert Dewar <dewar@gnat.com>
26462
26463         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
26464         in HIE mode, avoids compilation abandoned message
26465
26466         * exp_imgv.adb: Correct typo in previous change
26467
26468         * exp_imgv.adb: Correct typo in previous change (not my day!)
26469
26470 2001-10-25  Robert Dewar <dewar@gnat.com>
26471
26472         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
26473
26474 2001-10-25  Pascal Obry <obry@gnat.com>
26475
26476         * g-awk.ads: Move all pragma inlines next to the routine
26477          declarations. This is more uniform with other GNAT spec.
26478
26479 2001-10-22  Geert Bosch  <bosch@gnat.com>
26480
26481         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
26482
26483 2001-10-19  Geert Bosch  <bosch@gnat.com>
26484
26485         * Makefile.in (tools, gnattools): Remove gnatmem.
26486
26487 2001-10-17  Richard Henderson  <rth@redhat.com>
26488
26489         * Makefile.in (misc.o): Depend on langhooks.h.
26490         * misc.c: Include it.
26491         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
26492         (LANG_HOOKS_DECODE_OPTION): New.
26493         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
26494
26495 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
26496
26497         * trans.c (tree_transform): Adjust to recent change in
26498         expand_asm_operands to implement named asm operands.
26499
26500 2001-10-11  Ed Schonberg  <schonber@gnat.com>
26501
26502         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
26503         renaming of discriminant for mutable record type.
26504
26505 2001-10-11  Robert Dewar  <dewar@gnat.com>
26506
26507         * validsw.adb: Properly save -gnatVn status.
26508
26509 2001-10-11  Robert Dewar <dewar@gnat.com>
26510
26511         * usage.adb: Add lines for V switch.
26512
26513         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
26514         (/VALIDITY_CHECKING).
26515
26516 2001-10-11  Ed Schonberg <schonber@gnat.com>
26517
26518         * sem_type.adb (Add_One_Interp): an operator for a type declared in
26519         an extension of System is known to be visible.
26520
26521 2001-10-11  Ed Schonberg <schonber@gnat.com>
26522
26523         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
26524         properly. Fixes regression on ACATS C34005G.
26525
26526 2001-10-11  Robert Dewar <dewar@gnat.com>
26527
26528         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
26529         loop in generic instance, since this is likely not very useful.
26530
26531 2001-10-11  Robert Dewar <dewar@gnat.com>
26532
26533         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
26534         the error message for high integrity mode.
26535
26536         * rtsfind.adb (RTE): Give message if we try to find an entity that
26537         is not available in high integrity mode.
26538
26539         * rtsfind.ads:
26540         (OK_To_Use_In_HIE_Mode): New array.
26541         (RTE): May return Empty in high integrity mode.
26542
26543         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
26544         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
26545
26546         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
26547         unit if not inlined always and in no runtime mode. Fixes problem
26548         caused by new Rtsfind changes.
26549
26550         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
26551         body is deleted.
26552
26553         * rtsfind.adb (RTE): Make sure we do not try to load unit after
26554         giving message for entity not available in high integrity mode.
26555
26556 2001-10-11  Pascal Obry <obry@gnat.com>
26557
26558         * impunit.adb: Add GNAT.CRC32.
26559
26560 2001-10-11  Ed Schonberg <schonber@gnat.com>
26561
26562         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
26563         properly the case where one universal operand in a non-static
26564         exponentiation of a real literal.
26565
26566 2001-10-11  Ed Schonberg <schonber@gnat.com>
26567
26568         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
26569         clause, return the gobal finalization list, for lack of anthing else.
26570
26571 2001-10-11  Ed Schonberg <schonber@gnat.com>
26572
26573         * exp_ch7.adb (Make_Transient_Block): if statement is within
26574         exception handler, always use new transient scope to place Clean
26575         procedure.
26576
26577 2001-10-11  Pascal Obry <obry@gnat.com>
26578
26579         * Makefile.in:
26580         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26581         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26582         (GNATLS_RTL_OBJS): add g-crc32.o
26583         (GNATMAKE_RTL_OBJS): add g-crc32.o
26584
26585         * ali-util.adb:
26586         (CRC_Match): new function.
26587         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
26588         instead of the previous simple checksum algorithm.
26589         (Time_Stamp_Mismatch): use CRC_Match for comparison.
26590         (Set_Source_Table): idem.
26591
26592         * ali-util.ads:
26593         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
26594         instead of simple checksum.
26595         (CRC_Match): new function.
26596         (CRC_Error): new constant.
26597
26598         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
26599         a CRC now and not a simple checksum. A CRC uses lower-case hex
26600         letters, fixes ambiguity in parsing.
26601
26602         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
26603         is what this variable will store.
26604
26605         * bcheck.adb: Change reference to chechsum in comments by CRC.
26606         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
26607         rename All_Checksum_Match to All_CRC_Match. Change due to API
26608         renaming since now GNAT does not use a simple checksum but a
26609         CRC using GNAT.CRC32.
26610
26611         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
26612         now and not anymore a simple checksum.
26613
26614         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
26615         places.
26616
26617         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
26618
26619         * scans.adb:
26620         (Restore_Scan_State): rename Checksum to CRC.
26621         (Save_Scan_State): idem.
26622
26623         * scans.ads:
26624         With GNAT.CRC32.
26625         (Checksum): rename to CRC.
26626         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
26627
26628         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
26629         GNAT.CRC32).  Update copyright notice.
26630
26631         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
26632         GNAT.CRC32).  Update copyright notice.
26633
26634         * scn.adb:
26635         (Accumulate_Checksum): removed.
26636         (Update): new procedure. Add a wide-character into the CRC.
26637
26638         * sinput-l.adb:
26639         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
26640         (Load_File): fix initialization of S (change Source_Checksum to
26641         Source_CRC)
26642
26643         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
26644         Source_CRC in S initialization.
26645
26646         * sinput.adb (Source_Checksum): renamed to Source_CRC.
26647
26648         * sinput.ads (Source_Checksum): renamed to Source_CRC.
26649         Update comments for the CRC.
26650
26651         * types.adb (Hex): Use lowercase for the letter part.
26652
26653         * types.ads (Get_Hex_String): Returns the hexadecimal representation
26654         for a word. This is currently used only for CRC. In previous version,
26655         the checksum was using a representation with all letter being
26656         upper-case. With the new implementation (using CRC) we do not remove
26657         the 32th bit of the CRC, so we can have an upper-case starting letter
26658         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
26659         It is ambigous since the CRC was optional and could be followed by
26660         options like EB, EE. So now this routines uses lower-case letter for
26661         the hexadecimal representation. Strange enough only lower case letters
26662         where checked in Scan_ALI (even if this was not a possible case).
26663
26664         * gnatvsn.ads (Library_Version): changed to 3.15a.
26665
26666         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
26667         for the compiler.
26668
26669         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
26670         for the compiler.
26671
26672         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
26673         Add 2001 to copyright notice
26674         (Accumulate_Checksum): Modify to use System.CRC32.
26675
26676         * ali-util.ads: Redo changes of previous revision to continue to use
26677         the word Checksum. Add 2001 to copyright notice.
26678
26679         * ali.adb: Undo some of previous changes, not needed.
26680         Keep the change for lower case letters in the checksum.
26681
26682         * ali.ads: Undo previous change not needed.
26683
26684         * bcheck.adb: Undo most of previous change, not needed.
26685         But do use Checksums_Match for checksum comparison.
26686
26687         * gnatls.adb: Undo most of previous change, not needed.
26688         But do use Checksums_Match for comparing checksums.
26689
26690         * lib-load.adb: Undo previous change, not needed.
26691
26692         * lib-writ.adb: Undo previous change, not needed.
26693
26694         * lib-writ.ads: Document that checksums use lower case,
26695         not upper case letters.
26696
26697         * scans.adb: Undo previous change, not needed
26698
26699         * scans.ads: Undo previous change, not needed.
26700
26701         * scn-nlit.adb: Undo previous changes, not needed.
26702
26703         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
26704
26705         * scn.adb:
26706         (Accumulate_Checksum): Use System.CRC32.
26707         (Initialize_Checksum): New procedure.
26708         Remove other changes of previous revision.
26709
26710         * sinput-p.adb: Undo previous change, not needed.
26711
26712         * sinput.adb: Undo previous change, not needed.
26713
26714         * sinput-l.adb: Undo previous change, not needed.
26715
26716         * sinput.ads: Undo previous change, not needed.  Keep only comment
26717         on new checksum algorithm
26718
26719         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
26720         Also remove a-tags and a-stream from GNAT sources.
26721
26722         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
26723
26724         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
26725
26726 2001-10-11  Geert Bosch  <bosch@gnat.com>
26727
26728         * einfo.h: Regenerate.
26729
26730         * nmake.ads: Regenerate.
26731
26732         * nmake.adb: Regenerate.
26733
26734         * sinfo.h: Regenerate.
26735
26736         * treeprs.adb: Regenerate.
26737
26738 2001-10-10  Geert Bosch  <bosch@gnat.com>
26739
26740         * gnat-style.texi: New file describing coding guidelines for Ada.
26741
26742 2001-10-10  Ed Schonberg <schonber@gnat.com>
26743
26744         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
26745         is Flag174.
26746
26747 2001-10-10  Geert Bosch  <bosch@gnat.com>
26748
26749         * snames.ads: Add new names for project facility.
26750
26751         * snames.adb: Update to reflect snames.ads changes.
26752
26753         * snames.h: Update to reflect snames.ads changes.
26754
26755 2001-10-10  Vincent Celier <celier@gnat.com>
26756
26757         * make.adb:
26758         (Add_Switches): reflect the changes for the switches attributes
26759         Default_Switches indexed by the programming language,
26760         Switches indexed by the file name.
26761         (Collect_Arguments_And_Compile): Idem.
26762         Reflect the attribute name changes.
26763
26764         * prj-attr.adb:
26765         (Initialisation_Data): Change the names of some packages and
26766         attributes.
26767         (Initialize): process case insensitive associative arrays.
26768
26769         * prj-attr.ads:
26770         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
26771
26772         * prj-dect.adb:
26773         (Parse_Attribute_Declaration): For case insensitive associative
26774          arrays, set the index string to lower case.
26775
26776         * prj-env.adb:
26777         Reflect the changes of the project attributes.
26778
26779         * prj-nmsc.adb:
26780         Replace Check_Naming_Scheme by Ada_Check and
26781         Language_Independent_Check.
26782
26783         * prj-nmsc.ads:
26784         Replaced Check_Naming_Scheme by 2 procedures:
26785         Ada_Check and Language_Independent_Check.
26786
26787         * prj-proc.adb:
26788         (Process_Declarative_Items): For case-insensitive associative
26789         arrays, set the index string to lower case.
26790         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
26791         Prj.Nmsc.Check_Naming_Scheme.
26792
26793         * prj-tree.adb:
26794         (Case_Insensitive): New function
26795         (Set_Case_Insensitive): New procedure
26796
26797         * prj-tree.ads:
26798         (Case_Insensitive): New function
26799         (Set_Case_Insensitive): New procedure
26800         (Project_Node_Record): New flag Case_Insensitive.
26801
26802         * prj-util.adb:
26803         (Value_Of): new function to get the string value of a single
26804         string variable or attribute.
26805
26806         * prj-util.ads:
26807         (Value_Of): new function to get the string value of a single
26808         string variable or attribute.
26809
26810         * prj.adb:
26811         (Ada_Default_Spec_Suffix): New function
26812         (Ada_Default_Impl_Suffix): New function
26813         Change definitions of several constants to reflect
26814         new components of record types.
26815
26816         * prj.ads:
26817         (Naming_Data): Change several components to reflect new
26818         elements of naming schemes.
26819         (Project_Data): New flags Sources_Present and
26820         Language_Independent_Checked.
26821         (Ada_Default_Spec_Suffix): New function.
26822         (Ada_Default_Impl_Suffix): New function.
26823
26824         * snames.ads:
26825         Modification of predefined names for project manager: added
26826         Implementation, Specification_Exceptions, Implementation_Exceptions,
26827         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
26828         Default_Switches, _Languages, Builder, Cross_Reference,
26829         Finder. Removed Body_Part, Specification_Append, Body_Append,
26830         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
26831         Gnatlink.
26832
26833         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
26834         Add comments.
26835
26836         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
26837         not that it is Nil_Variable_Value.
26838
26839         * prj.ads: Add ??? for uncommented declarations
26840
26841 2001-10-10  Ed Schonberg <schonber@gnat.com>
26842
26843         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
26844         constant, do not indicate possible modification, so that gigi can
26845         treat it as a bona fide constant.
26846
26847 2001-10-10  Robert Dewar <dewar@gnat.com>
26848
26849         * sem_prag.adb: Add processing for pragma External.
26850
26851         * snames.ads: Add entry for pragma External.
26852
26853         * par-prag.adb: Add pragma External.
26854
26855         * snames.adb: Updated to match snames.ads.
26856
26857 2001-10-10  Ed Schonberg <schonber@gnat.com>
26858
26859         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
26860         a dynamic task if the allocator appears in an indexed assignment
26861         or selected component assignment.
26862
26863         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
26864         For a dynamic task in an assignment statement, use target of
26865         assignment to generate meaningful name.
26866
26867 2001-10-10  Ed Schonberg <schonber@gnat.com>
26868
26869         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
26870         a generic package.
26871
26872         * einfo.ads: Body_Entity is also defined for generic package.
26873         Documentation change only
26874
26875         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
26876         others_choice for a discriminated component initialization,
26877         convert discriminant references into the corresponding discriminals.
26878
26879         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
26880         only if original type is private and expression has to be wrapped
26881         in a conversion.
26882
26883         * checks.adb:
26884         (Apply_Constraint_Check): Do not perform length check
26885         if expression is an aggregate with only an others_choice.
26886         (Length_N_Cond): two references to the same in_parameter
26887         (typically the discriminal in an init_proc) denote the same value.
26888         Two useful optimization uncovered by bugfixes above.
26889
26890 2001-10-10  Robert Dewar <dewar@gnat.com>
26891
26892         * xeinfo.adb: Change int to char in translation of enumeration types.
26893         This fixes a problem in the C representation of component alignment.
26894         Add 2001 to copyright notice
26895
26896 2001-10-10  Richard Kenner <kenner@gnat.com>
26897
26898         * decl.c: (validate_size): Do check size of object of integral type
26899         if it is a packed array type.
26900
26901 2001-10-10  Richard Kenner <kenner@gnat.com>
26902
26903         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
26904         VAR_DECL for constant if not Is_Public but -O0.
26905
26906 2001-10-10  Richard Kenner  <kenner@gnat.com>
26907
26908         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
26909
26910 2001-10-10  Geert Bosch  <bosch@gnat.com>
26911
26912         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
26913         use '/' as switch character, allowing for absolute file names.
26914
26915 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
26916
26917         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
26918         FSF address.
26919
26920 2001-10-08  Geert Bosch  <bosch@gnat.com>
26921
26922         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
26923         Automatically build utilities when files need to be regenerated.
26924
26925 2001-10-08  Geert Bosch  <bosch@gnat.com>
26926
26927         * xsnames.adb: New utility for updating snames.ads and snames.adb
26928
26929 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
26930
26931         * Make-lang.in (ADAFLAGS): Add -W -Wall.
26932         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
26933         (gnat1): Also depend on attribs.o.
26934         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
26935         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
26936         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
26937         (ADAFLAGS): Add -W -Wall.
26938         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
26939         take out CFLAGS.
26940
26941         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
26942         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
26943         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
26944         Use $(ADAC), not $(CC), as compilation command.
26945
26946         (gnattools): Depend directly on tools to build, don't use
26947         recursive make.
26948         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
26949
26950         * einfo.h, sinfo.h: New files (autogenerated).
26951
26952 2001-10-08  Richard Henderson  <rth@redhat.com>
26953
26954         * comperr.adb (Abort_In_Progress): New.
26955         (Compiler_Abort): Use it to prevent recursion.
26956
26957 2001-10-08  Robert Dewar <dewar@gnat.com>
26958
26959         * atree.adb: Set Error_Posted in Error node, helps error recovery.
26960
26961         * par-endh.adb (Output_End_Expected): We should also not test
26962         Error_Posted on the Error node, since now it is always set.
26963
26964         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
26965         to help error recovery. Part of general work on 9407-004.
26966
26967         * par.adb: Add ??? for misuse of error
26968
26969         * sem_res.adb:
26970         (Resolve): Defend against Error, fixes 9407-003.
26971         (Resolve_Discrete_Subtype_Indication): Defend against Error.
26972
26973         * sinfo.ads (N_Error): Now has Etype field (which will be set
26974         to Any_Type to help error recovery).
26975
26976 2001-10-08  Richard Kenner (kenner@gnat.com)
26977
26978         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
26979         Consistently set MEM attributes from expression; fixes
26980         bootstrap failure on x86.
26981
26982 2001-10-08  Geert Bosch  (bosch@gnat.com)
26983
26984         * 5oosinte.adb: Add 2001 to copyright notice.
26985
26986 2001-10-08  Geert Bosch  (bosch@gnat.com)
26987
26988         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
26989
26990         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
26991
26992 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
26993
26994         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
26995
26996 2001-10-05  Geert Bosch  (bosch@gnat.com)
26997
26998         * adaint.h: Small formatting fix.
26999
27000 2001-10-04  Geert Bosch  <bosch@gnat.com>
27001
27002         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
27003         Arg is int, not FILE *, in dummy version of functions.
27004
27005         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
27006         Arg is int, not FILE *.
27007
27008 2001-10-04  Geert Bosch  <bosch@gnat.com>
27009
27010         * 3lsoccon.ads: Added file, missed with initial check ins.
27011
27012         * 4lintnam.ads: Fix header format.
27013         Change Linux to GNU/Linux.
27014
27015         * 5iosinte.adb: Change Linux to GNU/Linux.
27016
27017         * 5iosinte.ads: Change Linux to GNU/Linux.
27018
27019         * 5itaprop.adb: Change Linux to GNU/Linux.
27020
27021         * 5itaspri.ads: Change Linux to GNU/Linux.
27022         Update copyright notice.
27023
27024         * 5lintman.adb: Change Linux to GNU/Linux.
27025
27026         * 5lml-tgt.adb: Change Linux to GNU/Linux.
27027
27028         * 5losinte.ads: Change Linux to GNU/Linux.
27029
27030         * 5lsystem.ads: Change Linux to GNU/Linux.
27031
27032         * 5qosinte.adb: Change Linux to GNU/Linux.
27033
27034         * 5qosinte.ads: Change Linux to GNU/Linux.
27035
27036         * 5qparame.ads: Change Linux to GNU/Linux.
27037
27038         * 5qtaprop.adb: Change Linux to GNU/Linux.
27039
27040         * 5qtaspri.ads: Change Linux to GNU/Linux.
27041         Add 2001 to copyright notice.
27042
27043         * 5vintman.ads: Change Linux to GNU/Linux.
27044         Fix header format.  Add 2001 to copyright notice.
27045
27046         * g-soccon.ads: Change Linux to GNU/Linux.
27047
27048         * g-trasym.ads: Change Linux to GNU/Linux.
27049         Add 2001 to copyright notice.
27050
27051         * memtrack.adb: Change Linux to GNU/Linux.
27052
27053         * s-intman.ads: Change Linux to GNU/Linux.
27054         Add 2001 to copyright notice.  Fix header format.
27055
27056         * s-stache.adb: Change Linux to GNU/Linux.
27057
27058         * adaint.c: Change Linux to GNU/Linux.
27059
27060         * cio.c: Change Linux to GNU/Linux.
27061
27062         * cstreams.c: Change Linux to GNU/Linux.
27063
27064         * init.c: Change Linux to GNU/Linux.
27065
27066         * gmem.c: Change Linux to GNU/Linux.
27067
27068         * tracebak.c: Change Linux to GNU/Linux.
27069
27070
27071 2001-10-02  Geert Bosch  <bosch@gnat.com>
27072
27073         * misc.c (insert_default_attributes): Add dummy version.