OSDN Git Service

* trans.c (call_to_gnu): Use build_call_list instead of build3 to
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2             Sandra Loosemore  <sandra@codesourcery.com>
3
4         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
5         build the call expression.
6         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
7         * utils.c (max_size) <tcc_exceptional>: Delete.
8         <tcc_vl_exp>: New case.
9         <tcc_expression>: Delete CALL_EXPR subcase.
10         (build_global_cdtor): Use build_call_nary instead of build3.
11         * utils2.c (build_call_1_expr): Likewise.
12         (build_call_2_expr): Likewise.
13         (build_call_0_expr): Likewise.
14         (build_call_alloc_dealloc): Likewise.
15
16 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
17
18         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
19         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
20         and _Unwind_SWord with _sleb128_t.
21
22 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
23
24         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
25         * decl.c: Include gt-ada-decl.h.
26         (annotate_value_cache): New.
27         (annotate_value): Use it instead of TREE_COMPLEXITY.
28
29 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
30
31         * misc.c, utils2.c: Fix comment typos.
32
33 2007-01-24  Roger Sayle  <roger@eyesopen.com>
34
35         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
36         TREE_CONSTANT_OVERFLOW.
37         (allocatable_size_p, annotate_value): Likewise.
38         * trans.c (gnat_to_gnu): Likewise.
39         * utils.c (unchecked_convert): Likewise.
40         * utils2.c (build_simple_component_ref): Likewise.
41
42 2007-01-23  Richard Guenther  <rguenther@suse.de>
43
44         PR bootstrap/30541
45         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
46         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
47         (gnatboot3): Likewise.
48         (GNATBIND): Do not define.
49         * Makefile.in (GNATBIND): Do not define.
50
51 2007-01-08  Richard Guenther  <rguenther@suse.de>
52
53         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
54         * trans.c (gnat_to_gnu): Likewise.
55
56 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
57
58         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
59         * adaint.c: Likewise.
60
61 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
62
63         Merge from gimple-tuples-branch.
64
65         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
66         * ada-tree.h (lang_tree_node): Handle gimple tuples.
67         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
68         GIMPLE_MODIFY_STMT.
69
70 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
71
72         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
73         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
74         Fix typos.
75
76 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
77
78         PR ada/27936
79         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
80         if the initializer takes into account the padding.
81
82 2006-11-11  Richard Guenther  <rguenther@suse.de>
83
84         * trans.c (maybe_stabilize_reference): Remove handling of
85         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
86
87 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
88
89         PR ada/29707
90         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
91         (To_Target_Priority): New function.
92
93 2006-10-31  Robert Dewar  <dewar@adacore.com>
94
95         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
96         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
97         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
98         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
99         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
100         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
101         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
102         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
103         a-szbzha.adb: Minor reformatting. Fix header.
104
105         * a-numaux-x86.adb: Add parentheses for use of unary minus
106         * a-ngcefu.adb: Supply missing parentheses for unary minus
107         * a-ngcoty.adb: Add parens for use of unary minus
108         * a-ngelfu.adb: Add missing parens for unary minus
109         * a-tifiio.adb: Add parentheses for uses of unary minus
110
111 2006-10-31  Robert Dewar  <dewar@adacore.com>
112             Bob Duff  <duff@adacore.com>
113             Ed Schonberg  <schonberg@adacore.com>
114
115         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
116         with multiplying operator.
117         (Expected_Type_Is_Any_Real): New function to determine from the Parent
118         pointer whether the context expects "any real type".
119         (Resolve_Arithmetic_Op): Do not give an error on calls to the
120         universal_fixed "*" and "/" operators when they are used in a context
121         that expects any real type. Also set the type of the node to
122         Universal_Real in this case, because downstream processing requires it
123         (mainly static expression evaluation).
124         Reword some continuation messages
125         Add some \\ sequences to continuation messages
126         (Resolve_Call): Refine infinite recursion case. The test has been
127         sharpened to eliminate some false positives.
128         Check for Current_Task usage now includes entry barrier, and is now a
129         warning, not an error.
130         (Resolve): If the call is ambiguous, indicate whether an interpretation
131         is an inherited operation.
132         (Check_Aggr): When resolving aggregates, skip associations with a box,
133         which are priori correct, and will be replaced by an actual default
134         expression in the course of expansion.
135         (Resolve_Type_Conversion): Add missing support for conversion from
136         a class-wide interface to a tagged type. Minor code cleanup.
137         (Valid_Tagged_Converion): Add support for abstact interface type
138         conversions.
139         (Resolve_Selected_Component): Call Generate_Reference here rather than
140         during analysis, and use May_Be_Lvalue to distinguish read/write.
141         (Valid_Array_Conversion): New procedure, abstracted from
142         Valid_Conversion, to incorporate accessibility checks for arrays of
143         anonymous access types.
144         (Valid_Conversion): For a conversion to a numeric type occurring in an
145         instance or inlined body, no need to check that the operand type is
146         numeric, since this has been checked during analysis of the template.
147         Remove legacy test for scope name Unchecked_Conversion.
148
149         * sem_res.ads: Minor reformatting
150
151         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
152         (PE_Current_Task_In_Entry_Body): New exception code
153         (SE_Restriction_Violation): Removed, not used
154
155         * a-except.ads:  Update comments.
156
157         * types.h, types.ads: Add definition for Validity_Check
158         (PE_Current_Task_In_Entry_Body): New exception code
159         (SE_Restriction_Violation): Removed, not used
160
161 2006-10-31  Thomas Quinot  <quinot@adacore.com>
162
163         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
164         error status.
165
166 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
167             Jose Ruiz  <ruiz@adacore.com>
168
169         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
170         part of Ada.Calendar: all subprogram raise Unimplemented.
171         (Split_W_Offset): Temp function body, raising Unimplemented
172
173         * a-calend.ads, a-calend-vms.ads: 
174         Add imported variable Invalid_TZ_Offset used to designate targets unable
175         to support time zones.
176         (Unimplemented): Temporary function raised by the body of new
177         subprograms below.
178         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
179         unit provides handling of leap seconds and is used by the new Ada 2005
180         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
181         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
182         version returns an extra value which is the offset to UTC.
183
184         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
185         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
186         (Split_W_Offset): New function body.
187         (Time_Of): When a date is close to UNIX epoch, compute the time for
188         that date plus one day (that amount is later substracted after
189         executing mktime) so there are no problems with time zone adjustments.
190
191         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
192
193         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
194         a-catizo.ads, a-catizo.adb: New files.
195
196         * impunit.adb: Add new Ada 2005 entries
197
198         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
199         Rename all occurences of "__gnat_localtime_r" to
200         "__gnat_localtime_tzoff".
201         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
202         zone data and calculate the GMT offset.
203         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
204         Use the field "tm_gmtoff" to extract the GMT offset.
205         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
206         the external variable "timezone" to calculate the GMT offset.
207
208 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
209             Jose Ruiz  <ruiz@adacore.com>
210
211         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
212         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
213         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
214         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
215         System.Any_Priority to a POSIX priority on the target.
216
217         * system-linux-ia64.ads: 
218         Extend range of Priority types on Linux to use the whole range made
219         available by the system.
220
221         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
222         function maps from System.Any_Priority to a POSIX priority on the
223         target.
224         (PTHREAD_PRIO_PROTECT): Set real value.
225         (PTHREAD_PRIO_INHERIT): Now a function.
226         (SIGCPUFAIL): New signal.
227         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
228         are documented as reserved by the OS.
229
230         * system-aix.ads: Use the full range of priorities provided by the
231         system on AIX.
232
233         * s-taprop-posix.adb: Call new function To_Target_Priority.
234         (Set_Priority): Take into account Task_Dispatching_Policy and
235         Priority_Specific_Dispatching pragmas when determining if Round Robin
236         must be used for scheduling the task.
237
238         * system-linux-x86_64.ads, system-linux-x86.ads, 
239         system-linux-ppc.ads: Extend range of Priority types on Linux to use
240         the whole range made available by the system.
241
242         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
243         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
244         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
245         when deallocating the TCB in order to avoid potential references to
246         deallocated data.
247         (Set_Priority): Take into account Task_Dispatching_Policy and
248         Priority_Specific_Dispatching pragmas when determining if Round Robin
249         or FIFO within priorities must be used for scheduling the task.
250
251         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
252         the Thread field (to be used internally by the run-time system) and the
253         kernel-level task id in the LWP field (to be used by the debugger).
254         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
255         instance, and propagate the current task options to the spawned task.
256         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
257         (Initialize): Set Round Robin dispatching when the corresponding pragma
258         is in effect.
259
260 2006-10-31  Robert Dewar  <dewar@adacore.com>
261
262         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
263         system-linux-hppa.ads, system-hpux-ia64.ads, 
264         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
265         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
266         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
267         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
268         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
269         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
270         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
271         Default_Bit_Order) to kill constant condition warnings for references
272         to this switch.
273
274 2006-10-31  Vincent Celier  <celier@adacore.com>
275             Eric Botcazou  <ebotcazou@adacore.com>
276
277         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
278         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
279         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
280         Ext_To, when building the library file name
281
282         * mlib-tgt-vxworks.adb: ditto.
283         (Get_Target_Suffix): Add support for x86 targets.
284
285         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
286
287         * mlib-tgt-darwin.adb: 
288         Use Append_To, instead of Ext_To, when building the library file name
289         (Flat_Namespace): New global variable.
290         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
291         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
292         (Link_Shared_Libgcc): Delete.
293         (Build_Dynamic_Library): Adjust for above changes.
294         Use Opt package.
295         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
296
297 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
298
299         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
300         (Initialize): Add type conversions required by above change.
301
302 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
303
304         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
305         (getpid): New body for this function that uses the underlying taskIdSelf
306         function for VxWorks 5 and VxWorks 6 in kernel mode.
307         (unsigned_int): New type, modular to allow logical bit operations.
308         (taskOptionsGet): New imported function.
309
310         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
311         field to be compliant with the type used by the corresponding operating
312         system primitive.
313
314 2006-10-31  Pascal Obry  <obry@adacore.com>
315             Eric Botcazou  <ebotcazou@adacore.com>
316             Vincent Celier  <celier@adacore.com>
317
318         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
319         ASCII version of the registry API. This is needed as the GNAT runtime
320         is now UNICODE by default.
321         Include version.h.
322         (get_gcc_version): Do not hardcode the return value.
323         (__gnat_file_time_name): On Windows properly set the default returned
324         value to -1 which corresponds to Invalid_Time.
325         (__gnat_fopen): New routine. A simple wrapper on all plateforms
326          except on Windows where it does conversion for unicode support.
327         (__gnat_freopen): Idem.
328         (__gnat_locate_exec_on_path): If environment variable PATH does not
329         exist, return a NULL pointer
330
331         * adaint.h: (__gnat_fopen): Declare.
332         (__gnat_freopen): Likewise.
333
334         * mingw32.h (_tfreopen): Define this macro here for older MingW
335         version.
336         Activate the unicode support on platforms using a MingW runtime
337         version 3.9 or newer.
338
339         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
340         This is needed for proper unicode support on Windows.
341         (freopen): Idem.
342
343 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
344             Nicolas Setton  <setton@adacore.com>
345             Olivier Hainque  <hainque@adacore.com>
346             Gary Dismukes  <dismukes@adacore.com>
347
348         * gigi.h: (tree_code_for_record_type): Declare.
349         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
350         (get_global_renaming_pointers): Rename to
351         invalidate_global_renaming_pointers.
352         (static_ctors): Delete.
353         (static_dtors): Likewise.
354         (gnat_write_global_declarations): Declare.
355         (create_var_decl): Adjust descriptive comment to indicate that the
356         subprogram may return a CONST_DECL node.
357         (create_true_var_decl): Declare new function, similar to
358         create_var_decl but forcing the creation of a VAR_DECL node.
359         (get_global_renaming_pointers): Declare.
360         (add_global_renaming_pointer): Likewise.
361
362         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
363
364         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
365         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
366         processing.
367         (gnat_to_gnu_entity): Remove From_With_Type from computation for
368         imported_p.
369         <E_Access_Type>: Use the Non_Limited_View as the full view of the
370         designated type if the pointer comes from a limited_with clause.  Make
371         incomplete designated type if it is in the main unit and has a freeze
372         node.
373         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
374         Underlying_Full_View similarly.  Return earlier if the full view already
375         has an associated tree.
376         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
377         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
378         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
379         reference type built for objects with an address clause.
380         Use create_true_var_decl with const_flag set for
381         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
382         TREE_READONLY set.
383         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
384         for Character and Wide_Character types. This info is read by the
385         dwarf-2 writer, and is needed to be able to use the command "ptype
386         character" in the debugger.
387         (gnat_to_gnu_entity): When generating a type representing
388         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
389         so that debug writers can distinguish it from ordinary integers.
390         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
391         addition to TREE_READONLY to assert the constantness of variables for
392         elaboration purposes.
393         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
394         parameters to call new Einfo function First_Formal_With_Extras.
395         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
396         protected type with its corresponding discriminant, to obtain a usable
397         declaration
398         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
399         for a multiple elaboration of the "equivalent" type.
400         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
401         into record_global_renaming_pointer.
402         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
403         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
404         <E_Array_Subtype>: Likewise.
405         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
406         incomplete subtypes and incomplete subtypes of incomplete types visible
407         through a limited with clause.
408         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
409         the base index type for the maximum size of the array only if they are
410         constant.
411         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
412         expression into a SAVE_EXPR if stabilization failed.
413
414         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
415         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
416         by lower level compilation passes.
417         (gnat_genericize): New function, lowering a function body to GENERIC.
418         Turn the type of RESULT_DECL into a real reference type if the decl
419         has been marked DECL_BY_REFERENCE, and adjust references to the latter
420         accordingly.
421         (gnat_genericize_r): New function. Tree walking callback for
422         gnat_genericize.
423         (convert_from_reference, is_byref_result): New functions. Helpers for
424         gnat_genericize_r.
425         (create_type_decl): Call gnat_pushdecl before calling
426         rest_of_decl_compilation, to make sure that field TYPE_NAME of
427         type_decl is properly set before calling the debug information writers.
428         (write_record_type_debug_info): The heuristics which compute the
429         alignment of a field in a variant record might not be accurate. Add a
430         safety test to make sure no alignment is set to a smaller value than
431         the alignment of the field type.
432         (make_dummy_type): Use the Non_Limited_View as the underlying type if
433         the type comes from a limited_with clause. Do not loop on the full view.
434         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
435         (dummy_node_table): New global variable, moved from decl.c.
436         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
437         (save_gnu_tree): Use above macros.
438         (get_gnu_tree): Likewise.
439         (present_gnu_tree): Likewise.
440         (init_dummy_type): New function, moved from decl.c. Use above macros.
441         (make_dummy_type): Likewise.
442         (tree_code_for_record_type): New function extracted from make_dummy_type
443         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
444         (static_ctors): Change it to a vector, make static.
445         (static_dtors): Likewise.
446         (end_subprog_body): Adjust for above change.
447         (build_global_cdtor): Moved from trans.c.
448         (gnat_write_global_declarations): Emit global constructor and
449         destructor, and call cgraph_optimize before emitting debug info for
450         global declarations.
451         (global_decls): New global variable.
452         (gnat_pushdecl): Store the global declarations in global_decls, for
453         later use.
454         (gnat_write_global_declarations): Emit debug information for global
455          declarations.
456         (create_var_decl_1): Former create_var_decl, with an extra argument to
457          state whether the creation of a CONST_DECL is allowed.
458         (create_var_decl): Behavior unchanged. Now a wrapper around
459         create_var_decl_1 allowing CONST_DECL creation.
460         (create_true_var_decl): New function, similar to create_var_decl but
461         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
462         (create_field_decl): Do not always mark the field as addressable
463         if its type is an aggregate.
464         (global_renaming_pointers): New static variable.
465         (add_global_renaming_pointer): New function.
466         (get_global_renaming_pointers): Likewise.
467
468         * misc.c (gnat_dwarf_name): New function.
469         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
470         (gnat_post_options): Add comment about structural alias analysis.
471         (gnat_parse_file): Do not call cgraph_optimize here.
472         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
473
474         * trans.c (process_freeze_entity): Don't abort if we already have a
475         non dummy GCC tree for a Concurrent_Record_Type, as it might
476         legitimately have been elaborated while processing the associated
477         Concurrent_Type prior to this explicit freeze node.
478         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
479         exception handler volatile if it is of variable size.
480         (process_type): Remove bypass for types coming from a limited_with
481         clause.
482         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
483         actual, convert the corresponding gnu_actual to the real destination
484         type when necessary.
485         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
486         originally TREE_READONLY but whose elaboration cannot be performed
487         statically.
488         Part of fix for F504-021.
489         (tree_transform, subprogram cases): Change loops on formal parameters to
490         call new Einfo function First_Formal_With_Extras.
491         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
492         stemming from type conversion for the lhs.
493         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
494         number of bits per unit for components of records.
495         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
496         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
497         with At_End_Proc after the SJLJ EH cleanup.
498         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
499         compilation unit.
500         (elaborate_all_entities): Do not retest type_annotate_only.
501         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
502         result type of an abstract subprogram, which may be an itype associated
503         with an anonymous access result (related to AI-318-02).
504         (build_global_cdtor): Move to utils.c.
505         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
506         this choice is not a null tree nor an integer constant.
507         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
508         on the body of elaboration routines instead of mark_unvisited.
509         (add_stmt): Do not mark the tree.
510         (add_decl_expr): Tweak comment.
511         (mark_unvisited): Delete.
512         (unshare_save_expr): New static function.
513         (call_to_gnu): Issue an error when making a temporary around a
514         procedure call because of non-addressable actual parameter if the
515         type of the formal is by_reference.
516         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
517         after building the elaboration routine.
518
519 2006-10-31  Bob Duff  <duff@adacore.com>
520
521         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
522         as finalization-started, so we can raise Program_Error on 'new'.
523
524         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
525         collection has already started.
526
527         * s-finimp.ads (Collection_Finalization_Started): Added new special
528         flag value for indicating that a collection's finalization has started.
529
530         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
531         create a task whose master has already waited for dependent tasks.
532
533 2006-10-31  Robert Dewar  <dewar@adacore.com>
534
535         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
536
537         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
538         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
539         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
540         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
541         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
542         a-except-2005.ads: Add pragma Preelaborable_Warning
543
544 2006-10-31  Robert Dewar  <dewar@adacore.com>
545             Jose Ruiz  <ruiz@adacore.com>
546
547         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
548
549         * ali.adb (Get_Name): Properly handle scanning of wide character names
550         encoded with brackets notation.
551         (Known_ALI_Lines): Add S lines to this list.
552         (Scan_ALI): Acquire S (priority specific dispatching) lines.
553         New flag Elaborate_All_Desirable in unit table
554
555         * ali.ads (Priority_Specific_Dispatching): Add this range of
556         identifiers to be used for Priority_Specific_Dispatching table entries.
557         (ALIs_Record): Add First_Specific_Dispatching and
558         Last_Specific_Dispatching that point to the first and last entries
559         respectively in the priority specific dispatching table for this unit.
560         (Specific_Dispatching): Add this table for storing each S (priority
561         specific dispatching) line encountered in the input ALI file.
562         New flag Elaborate_All_Desirable in unit table
563
564         * bcheck.adb: (Check_Configuration_Consistency): Add call to
565         Check_Consistent_Dispatching_Policy.
566         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
567         verifying that the use of Priority_Specific_Dispatching,
568         Task_Dispatching_Policy, and Locking_Policy is consistent across the
569         partition.
570
571         * bindgen.adb: (Public_Version_Warning): function removed.
572         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
573         required information from ALI files in order to initialize the table
574         containing the specific dispatching policy.
575         (Gen_Adainit_Ada): Generate the variables required for priority specific
576         dispatching entries (__gl_priority_specific_dispatching and
577         __gl_num_specific_dispatching).
578         (Gen_Adainit_C): Generate the variables required for priority specific
579         dispatching entries (__gl_priority_specific_dispatching and
580         __gl_num_specific_dispatching).
581         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
582         pragma entries.
583         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
584         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
585         (Tab_To): Removed.
586         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
587         a call to gnat_set_globals.
588         Generate a string containing settings from
589         Priority_Specific_Dispatching pragma entries.
590         (Gen_Object_Files_Options): Do not include the runtime libraries when
591         pragma No_Run_Time is specified.
592
593         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
594         consistency with s-intman-posix.adb.
595         (__gnat_error_handler, case FreeBSD): Account for the fact that the
596         handler is installed with SA_SIGINFO.
597         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
598         FreeBSD ZCX support, copied from Linux version.
599         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
600         sigfillset, and sigemptyset so the routines defined by MaRTE.
601         (__gl_priority_specific_dispatching): Add this variable that stores the
602         string containing priority specific dispatching policies in the
603         partition.
604         (__gl_num_specific_dispatching): Add this variable that indicates the
605         highest priority for which a priority specific dispatching pragma
606         applies.
607         (__gnat_get_specific_dispatching): Add this routine that returns the
608         priority specific dispatching policy, as set by a
609         Priority_Specific_Dispatching pragma appearing anywhere in the current
610         partition. The input argument is the priority number, and the result
611         is the upper case first character of the policy name.
612         (__gnat_set_globals): Now a dummy function.
613         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
614         mechargs instead of sigargs, as the latter can be retrieved from the
615         former and sigargs is not what we want on ia64.
616         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
617         mechargs argument.
618         (__gnat_adjust_context_for_raise, ia64-vms): New function.
619         (tasking_error): Remove unused symbol.
620         (_abort_signal): Move this symbol to the IRIX specific part since this
621         is the only target that uses this definition.
622         (Check_Abort_Status): Move this symbol to the IRIX specific part since
623         this is the only target that uses this definition.
624         (Lock_Task): Remove unused symbol.
625         (Unlock_Task): Remove unused symbol.
626
627         * lib-writ.adb (Write_ALI): Output new S lines for
628         Priority_Specific_Dispatching pragmas.
629         Implement new flag BD for elaborate body desirable
630
631         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
632         (Specific_Dispatching): Add this table for storing the entries
633         corresponding to Priority_Specific_Dispatching pragmas.
634         Document new BD flag for elaborate body desirable
635
636         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
637         of known pragmas.
638
639 2006-10-31  Javier Miranda  <miranda@adacore.com>
640
641         * a-tags.ads, a-tags.adb: 
642         (Predefined_DT): New function that improves readability of the code.
643         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
644         Inherit_DT): Use the new function Predefined_DT to improve code
645         readability.
646         (Register_Interface_Tag): Update assertion.
647         (Set_Interface_Table): Update assertion.
648         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
649         determining progenitor interfaces in Tags.
650         (Inherit_CPP_DT): New subprogram.
651
652         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
653         analysis of the thunk code.
654         (Expand_Interface_Conversion): Handle run-time conversion of
655         access to class wide types.
656         (Expand_Dispatching_Call): When generating the profile for the
657         subprogram itype for a dispatching operation, properly terminate the
658         formal parameters chaind list (set the Next_Entity of the last formal
659         to Empty).
660         (Collect_All_Interfaces): Removed. This routine has been moved to
661         sem_util and renamed as Collect_All_Abstract_Interfaces.
662         (Set_All_DT_Position): Hidden entities associated with abstract
663         interface primitives are not taken into account in the check for
664         3.9.3(10); this check is done with the aliased entity.
665         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
666         interfacing with CPP by default.
667         (Expand_Interface_Conversion): Add missing support for static conversion
668         from an interface to a tagged type.
669         (Collect_All_Interfaces): Add new out formal containing the list of
670         abstract interface types to cleanup the subprogram Make_DT.
671         (Make_DT): Update the code to generate the table of interfaces in case
672         of abstract interface types.
673         (Is_Predefined_Dispatching_Alias): New function that returns true if
674         a primitive is not a predefined dispatching primitive but it is an
675         alias of a predefined dispatching primitive.
676         (Make_DT): If the ancestor of the type is a CPP_Class and we are
677         compiling under full ABI compatibility mode we avoid the generation of
678         calls to run-time services that fill the dispatch tables because under
679         this mode we currently inherit the dispatch tables in the IP subprogram.
680         (Write_DT): Emit an "is null" indication for a null procedure primitive.
681         (Expand_Interface_Conversion): Use an address as the type of the formal
682         of the internally built function that handles the case in which the
683         target type is an access type.
684
685 2006-10-31  Robert Dewar  <dewar@adacore.com>
686
687         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
688
689 2006-10-31  Robert Dewar  <dewar@adacore.com>
690
691         * bindusg.ads, bindusg.adb:
692         Change to package and rename procedure as Display, which
693         now ensures that it only outputs usage information once.
694
695 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
696
697         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
698         using RTPs.
699
700         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
701         when using RTPs.
702
703 2006-10-31  Robert Dewar  <dewar@adacore.com>
704             Ed Schonberg  <schonberg@adacore.com>
705
706         * treepr.adb: Use new subtype N_Membership_Test
707
708         * checks.ads, checks.adb: Add definition for Validity_Check
709         (Range_Or_Validity_Checks_Suppressed): New function
710         (Ensure_Valid): Test Validity_Check suppressed
711         (Insert_Valid_Check): Test Validity_Check suppressed
712         (Insert_Valid_Check): Preserve Do_Range_Check flag
713         (Validity_Check_Range): New procedure
714         (Expr_Known_Valid): Result of membership test is always valid
715         (Selected_Range_Checks): Range checks cannot be applied to discriminants
716         by themselves. Disabling those checks must also be done for task types,
717         where discriminants may be used for the bounds of entry families.
718         (Apply_Address_Clause_Check): Remove side-effects if address expression
719         is non-static and is not the name of a declared constant.
720         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
721         Code cleanup and new error messages.
722         (Enable_Range_Check): Test for some cases of suppressed checks
723         (Generate_Index_Checks): Suppress index checks if index checks are
724         suppressed for array object or array type.
725         (Apply_Selected_Length_Checks): Give warning for compile-time detected
726         length check failure, even if checks are off.
727         (Ensure_Valid): Do not generate a check on an indexed component whose
728         prefix is a packed boolean array.
729         * checks.adb: (Alignment_Checks_Suppressed): New function
730         (Apply_Address_Clause_Check): New procedure, this is a completely
731         rewritten replacement for Apply_Alignment_Check
732         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
733         we request a discriminal value only in case of discriminants.
734         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
735         assignments where the target subtype is unconstrained and the target
736         object is a parameter or dereference (other aliased cases are known
737         to be unconstrained).
738
739 2006-10-31  Robert Dewar  <dewar@adacore.com>
740
741         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
742         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
743         vms_conv.adb: Fix bad table increment values (much too small)
744
745         * table.adb (Realloc): Make sure we get at least some new elements
746         Defends against silly small values for table increment
747
748 2006-10-31  Robert Dewar  <dewar@adacore.com>
749             Ed Schonberg  <schonberg@adacore.com>
750             Bob Duff  <duff@adacore.com>
751
752         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
753         entities. Move other fields around to make this possible
754         (Is_Derived_Type): Add missing call to Is_Type.
755         (Extra_Formals): New function for subprograms, entries, subprogram
756         types.
757         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
758         (First_Formal_With_Extras): New function for subprogs, entries, subp
759         types.
760         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
761         Add node information for E_Return_Statement.
762         (Elaborate_Body_Desirable): New flag
763         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
764         to be Is_Inherently_Limited_Type, because return-by-reference has
765         no meaning in Ada 2005.
766         (E_Return_Statement): New entity kind.
767         (Return_Applies_To): Field of E_Return_Statement.
768         (Is_Return_Object): New flag in object entities.
769         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
770         (Must_Have_Preelab_Init): New flag
771         (Known_To_Have_Preelab_Init): New flag
772         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
773         (Is_Visible_Formal): New flag on entities in formal packages.
774         (Low_Bound_Known): New flag
775         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
776         Incomplete_Kind.
777         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
778         output when Id is an incomplete subtype.
779
780 2006-10-31  Robert Dewar  <dewar@adacore.com>
781
782         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
783         Avoid abbreviation Creat
784         (Finalize): List all sources in extended mail source if -gnatl
785         switch is active.
786         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
787         (Finalize): Implement new -gnatl=xxx switch to output listing to file
788         (Set_Specific_Warning_On): New procedure
789         (Set_Specific_Warning_Off): New procedure
790         Add implementation of new insertion \\
791         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
792         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
793         types.
794         (Error_Msg_Internal): Make sure that we set Last_Killed to
795         True when a message from another package is suppressed.
796         Implement insertion character ~ (insert string)
797         (First_Node): Minor adjustments to get better placement.
798
799         * frontend.adb: 
800         Implement new -gnatl=xxx switch to output listing to file
801
802         * gnat1drv.adb: 
803         Implement new -gnatl=xxx switch to output listing to file
804
805         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
806         (Commands_To_Stdout): New flag
807         Implement new -gnatl=xxx switch to output listing to file
808         New switch Dump_Source_Text
809         (Warn_On_Deleted_Code): New warning flag for -gnatwt
810         Define Error_Msg_Line_Length
811         (Warn_On_Assumed_Low_Bound): New switch
812
813         * osint.ads, osint.adb
814         (Normalize_Directory_Name): Fix bug.
815         Implement new -gnatl=xxx switch to output listing to file
816         (Concat): Removed, replaced by real concatenation
817         Make use of concatenation now allowed in compiler
818         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
819         we find the 'lib' or 'bin' directory even when the tool has been
820         invoked with a relative path.
821         (Executable_Name): New function taking string parameters.
822
823         * osint-c.ads, osint-c.adb: 
824         Implement new -gnatl=xxx switch to output listing to file
825
826         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
827
828         * switch-c.adb: 
829         Implement new -gnatl=xxx switch to output listing to file
830         Recognize new -gnatL switch
831         (no longer keep in old warning about old style usage)
832         Use concatenation to simplify code
833         Recognize -gnatjnn switch
834         (Scan_Front_End_Switches): Clean up handling of -gnatW
835         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
836
837 2006-10-31  Robert Dewar  <dewar@adacore.com>
838
839         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
840         (Set_Specific_Warning_Off): New procedure
841         (Warning_Specifically_Suppressed): New function
842         (Validate_Specific_Warnings): New procedure
843         (Output_Msg_Text): Complete rewrite to support -gnatjnn
844
845         * err_vars.ads: Implement insertion character ~ (insert string)
846
847 2006-10-31  Bob Duff  <duff@adacore.com>
848             Ed Schonberg  <schonberg@adacore.com>
849
850         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
851         the parent part is a build-in-place function call, generate assignments.
852         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
853         are build-in-place function calls.
854         (Replace_Self_Reference): New subsidiary of
855         Make_OK_Assignment_Statement, to replace an access attribute that is a
856         self-reference into an access to the appropriate component of the
857         target object. Generalizes previous mechanism to handle self-references
858         nested at any level.
859         (Is_Self_Referential_Init): Remove, not needed.
860         (Is_Self_Referential_Init): New predicate to simplify handling of self
861         referential components in record aggregates.
862         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
863         check for presence of entity before checking for self-reference.
864         (Has_Default_Init_Comps): Return True if a component association is a
865         self-reference to the enclosing type, which can only come from a
866         default initialization.
867         (Make_OK_Assignment_Statement): If the expression is of the form
868         Typ'Acc, where Acc is an access attribute, the expression comes from a
869         default initialized self-referential component.
870         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
871         that has been derived from several abstract interfaces we must also
872         initialize the tags of the secondary dispatch tables.
873
874 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
875             Thomas Quinot  <quinot@adacore.com>
876             Javier Miranda  <miranda@adacore.com>
877             Robert Dewar  <dewar@adacore.com>
878         
879         * exp_attr.adb: 
880         (Expand_Access_To_Protected_Op): If the context indicates that an access
881         to a local operation may be transfered outside of the object, create an
882         access to the wrapper operation that must be used in an external call.
883         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
884         target, pass the Valid attribute applied to a floating-point prefix on
885         to the back end without expansion.
886         (Storage_Size): Use the new run-time function Storage_Size to retrieve
887         the allocated storage when it is specified by a per-object expression.
888         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
889         Nothing to do here, the attribute has been rewritten during semantic
890         analysis.
891         (Expand_Attribute_Reference): Handle expansion of the new Priority
892         attribute
893         (Find_Fat_Info): Handle case of universal real
894         (Expand_Access_To_Protected_Op): Fix use of access to protected
895         subprogram from inside the body of a protected entry.
896         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
897         'Access and 'Unrestricted_Access, to transform the attribute reference
898         into a fat pointer.
899         (Is_Constrained_Aliased_View): New predicate to help determine whether a
900         subcomponent's enclosing variable is aliased with a constrained subtype.
901         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
902         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
903         an aliased prefix must be known to be constrained in order to use True
904         for the attribute value, and now it's possible for some aliased views
905         to be unconstrained.
906
907 2006-10-31  Robert Dewar  <dewar@adacore.com>
908
909         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
910         (Expand_Entity_Reference): Correct error of not handling subprogram
911         formals in current_value processing.
912
913 2006-10-31  Javier Miranda  <miranda@adacore.com>
914             Robert Dewar  <dewar@adacore.com>
915             Ed Schonberg  <schonberg@adacore.com>
916             Gary Dismukes  <dismukes@adacore.com>
917
918         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
919         register in the final list objects containing class-wide interfaces;
920         otherwise we incorrectly register the tag of the interface in the final
921         list.
922         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
923         generate the wrapper if the parent primitive is abstract. This is
924         required to report the correct error message.
925         (Expand_N_Subtype_Indication): Do validity checks on range
926         (Clean_Task_Names): If an initialization procedure includes a call to
927         initialize a task (sub)component, indicate that the procedure will use
928         the secondary stack.
929         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
930         compatibility for interfacing with CPP by default.
931         (Expand_N_Object_Declaration): Only build an Adjust call when the
932         object's type is a nonlimited controlled type.
933         * exp_ch3.adb: Add with and use of Exp_Ch6.
934         (Expand_N_Object_Declaration): Check for object initialization that is a
935         call to build-in-place function and apply Make_Build_In_Place_Call_In_
936         Object_Declaration to the call.
937         (Freeze_Type): When the designated type of an RACW was not frozen at the
938         point where the RACW was declared, validate the primitive operations
939         with respect to E.2.2(14) when it finally is frozen.
940         (Build_Initialization_Call,Expand_Record_Controller): Rename
941         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
942         return-by-reference has no meaning in Ada 2005.
943         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
944         to register tag of the immediate ancestor interfaces in the
945         run-time structure.
946         (Init_Secondary_Tags): Moved to the specification to allow the
947         initialization of extension aggregates with abstract interfaces.
948         (Build_Master_Renaming): Make public, for use by function declarations
949         whose return type is an anonymous access type.
950         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
951         Insert_List_Before_And_Analyze after the generation of the specs
952         associated with null procedures.
953         (Expand_Tagged_Root): Update documentation in its specification.
954         (Init_Secondary_Tags): Update documentation.
955         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
956         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
957         then generate code to inherit the contents of the dispatch table
958         directly from the ancestor.
959         (Expand_Record_Controller): Insert controller component after tags of
960         implemented interfaces.
961         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
962         create null procedure overridings when null procedures are inherited
963         from interfaces.
964         (Make_Null_Procedure_Specs): New procedure to generate null procedure
965         declarations for overriding null primitives inherited from interfaces.
966         (Is_Null_Interface_Procedure): New function in
967         Make_Null_Procedure_Specs.
968         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
969         immediate ancestor of a tagged type is an abstract interface type we
970         must generate the specification of the predefined primitives associated
971         with controlled types (because the dispatch table of the ancestor is
972         null and hence these entries cannot be inherited). This is required to
973         elaborate well the dispatch table.
974
975 2006-10-31  Javier Miranda  <miranda@adacore.com>
976             Ed Schonberg  <schonberg@adacore.com>
977             Bob Duff  <duff@adacore.com>
978             Gary Dismukes  <dismukes@adacore.com>
979             Robert Dewar  <dewar@adacore.com>
980         
981         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
982         conversion.
983         (Expand_N_In): Do validity checks on range
984         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
985         (Expand_N_Allocator): For "new T", if the object is constrained by
986         discriminant defaults, allocate the right amount of memory, rather than
987         the maximum for type T.
988         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
989         when the allocator is initialized by a build-in-place call, since the
990         allocator is already rewritten as a reference to the function result,
991         and this prevents an unwanted duplication of the function call.
992         Add with and use of Exp_Ch6.
993         (Expand_Allocator_Expresssion): Check for an allocator whose expression
994         is a call to build-in-place function and apply
995         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
996         untagged designated types).
997         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
998         optimization if source or target is biased.
999         (Expand_N_Allocator): Add comments for case of an allocator within a
1000         function that returns an anonymous access type designating tasks.
1001         (Expand_N_Allocator): apply discriminant checks for access
1002         discriminants of anonymous access types (AI-402, AI-416)
1003
1004 2006-10-31  Bob Duff  <duff@adacore.com>
1005             Robert Dewar  <dewar@adacore.com>
1006             Gary Dismukes  <dismukes@adacore.com>
1007             Ed Schonberg  <schonberg@adacore.com>
1008
1009         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
1010
1011         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
1012         (Expand_N_Assignment_Statement): Call
1013         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
1014         build-in-place function call. Currently, this can happen only for
1015         assignments that come from aggregates.
1016         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1017         in order to alleviate the upward compatibility introduced by AI-318.
1018         (Expand_N_Extended_Return_Statement): Add support for handling the
1019         return object as a build-in-place result.
1020         (Expand_Non_Function_Return): Implement simple return statements nested
1021         within an extended return.
1022         (Enable_New_Return_Processing): Turn on the new processing of return
1023         statements.
1024         (Expand_Non_Function_Return): For a return within an extended return,
1025         don't raise Program_Error, because Sem_Ch6 now gives a warning.
1026         (Expand_N_Extended_Return_Statement): Implement AI-318
1027         (Expand_Simple_Function_Return): Ditto.
1028         (Expand_N_If_Statement): Handle new -gnatwt warning
1029         (Expand_N_Case_Statement): Handle new -gnatwt warning
1030         (Expand_N_Assignment): Handle assignment to the Priority attribute of
1031         a protected object.
1032         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
1033         validity checking of assignments to elementary record components.
1034         (Expand_N_Return_Statement): return Class Wide types on the secondary
1035         stack independantly of their controlled status since with HIE runtimes,
1036         class wide types are not potentially controlled anymore.
1037
1038         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
1039         node kind.
1040
1041         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
1042         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
1043         it expects a block, procedure, or task. The return statement will get
1044         turned into a block, and Expand_Cleanup_Actions will happen then.
1045
1046 2006-10-31  Robert Dewar  <dewar@adacore.com>
1047             Ed Schonberg  <schonberg@adacore.com>
1048             Bob Duff  <duff@adacore.com>
1049             Gary Dismukes  <dismukes@adacore.com>
1050
1051         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
1052         capability.
1053         (Expand_Inlined_Call): Tagged types are by-reference types, and
1054         therefore should be replaced by a renaming declaration in the expanded
1055         body, as is done for limited types.
1056         (Expand_Call): If this is a call to a function with dispatching access
1057         result, propagate tag from context.
1058         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
1059         CPP by default.
1060         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
1061         build-in-place when the right-hand side of an assignment is a
1062         build-in-place function call.
1063         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
1064         of the explicit dereference of the allocator to the result subtype of
1065         the build-in-place function. This is needed to satisfy type checking
1066         in cases where the caller's return object is created by an allocator for
1067         a class-wide access type and the type named in the allocator is a
1068         specific type.
1069         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
1070         conversion of the reference to the declared object to the result subtype
1071         of the build-in-place function. This is needed to satisfy type checking
1072         in cases where the declared object has a class-wide type. Also, in the
1073         class-wide case, change the type of the object entity to the specific
1074         result subtype of the function, to avoid passing a class-wide object
1075         without explicit initialization to the back end.
1076         (Register_Interface_DT_Entry): Moved outside the body of
1077         Freeze_Subprogram because this routine is now public; it is called from
1078         Check_Dispatching_Overriding to handle late overriding of abstract
1079         interface primitives.
1080         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
1081         adding an implicit access actual on a call to a build-in-place function.
1082         (Expand_Actuals): Test for an actual parameter that is a call to a
1083         build-in-place function and apply
1084         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
1085         (Is_Build_In_Place_Function): New function to determine whether an
1086         entity is a function whose calls should be handled as build-in-place.
1087         (Is_Build_In_Place_Function_Call): New function to determine whether an
1088         expression is a function call that should handled as build-in-place.
1089         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
1090         calls to build-in-place functions as the initialization of an allocator.
1091         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
1092         handling calls to build-in-place functions in contexts that do not
1093         involve init of a separate object (for example, actuals of subprogram
1094         calls).
1095         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
1096         handling calls to build-in-place functions as the initialization of an
1097         object declaration.
1098         (Detect_Infinite_Recursion): Add explicit parameter Process to
1099         instantiation of Traverse_Body to avoid unreferenced warning.
1100         (Check_Overriding_Inherited_Interfaces): Removed.
1101         (Register_Interface_DT_Entry): Code cleanup.
1102         (Register_Predefined_DT_Entry): Code cleanup.
1103         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
1104         inlined statements if within a transient scope.
1105         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
1106         formal parameters with occurrences of actuals in inlined body, establish
1107         visibility on the proper view of the actual's subtype for the body's
1108         context.
1109         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
1110         compatibility mode and we have an imported CPP subprogram because
1111         for now we assume that imported CPP primitives correspond with
1112         objects whose constructor is in the CPP side (and therefore we
1113         don't need to generate code to register them in the dispatch table).
1114         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
1115         aligned selected component.
1116         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
1117         the actual of an in-mode parameter is a type conversion.
1118         (Expand_Actuals): If the call does not come from source and the actual
1119         is potentially misaligned, let gigi handle it rather than rejecting the
1120         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
1121         Class Wide types as returning by reference independantly of their
1122         controlled status since with HIE runtimes class wide types are not
1123         potentially controlled anymore.
1124
1125 2006-10-31  Ed Schonberg  <schonberg@adacore.com>             
1126
1127         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
1128         references that are private components of the protected object.
1129         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
1130         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
1131         instantiation to deal with warnings.
1132         (Initialize_Protection): If expression for priority is non-static, use
1133         System_Priority as its expected type, in case the expression has not
1134         been analyzed yet.
1135
1136 2006-10-31  Robert Dewar  <dewar@adacore.com>
1137
1138         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
1139         initialization of Homonym_Len.
1140         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
1141         names from fully qualified name. Fixes problem of duplicate
1142         external names differing only in the presence of such a block name.
1143
1144 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1145             Pablo Oliveira  <oliveira@adacore.com>
1146         
1147         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
1148         subprogram Ids, even if they are not yet assigned.
1149         (Build_Subprogram_Id): It is now this function that will take care of
1150         calling Assign_Subprogram_Ids if necessary.
1151         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
1152         should be done only once they are assigned.
1153         (Build_From_Any_Function, case of tagged types): Add missing call to
1154         Allocate_Buffer.
1155         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
1156         type for an RACW type.
1157         (Add_RACW_Features): When processing an RACW declaration for which the
1158         designated type is already frozen, enforce E.2.2(14) rules immediately.
1159         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
1160         special reordering of controlling formals.
1161
1162         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
1163         associated stub type for an RACW type.
1164
1165 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1166
1167         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
1168         fixed-point operations in an integer context, i.e. as operands of a
1169         conversion to an integer type, indicate that result must be rounded.
1170
1171 2006-10-31  Robert Dewar  <dewar@adacore.com>
1172
1173         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
1174         cases, pass the encoding method, since it is now required by the run
1175         time.
1176
1177         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
1178         assumption that Str'First = 1.
1179         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
1180         it on to the Value_Wide_Wide_Character call.
1181         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
1182         properly handles a string of the form quote-encoded_wide_char-quote.
1183
1184         * s-wchcnv.adb: Minor reformatting
1185
1186 2006-10-31  Javier Miranda  <miranda@adacore.com>
1187         
1188         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1189         run-time membership test to ensure that the constructed object
1190         implements the target abstract interface.
1191
1192 2006-10-31  Robert Dewar  <dewar@adacore.com>
1193
1194         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
1195         Machine_Attribute pragma internally to implement the user pragma.
1196         Add processing for pragma Interface so that it is now completely
1197         equivalent to pragma Import.
1198
1199         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
1200         so that it can be applied to all entities, including record components
1201         and enumeration literals.
1202         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
1203         priority ranges are correct, verify compatibility against task
1204         dispatching and locking policies, and if everything is correct an entry
1205         is added to the table containing priority specific dispatching entries
1206         for this compilation unit.
1207         (Delay_Config_Pragma_Analyze): Delay processing
1208         Priority_Specific_Dispatching pragmas because when processing the
1209         pragma we need to access run-time data, such as the range of
1210         System.Any_Priority.
1211         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
1212         Allow pragma Unreferenced as a context item
1213         Add pragma Preelaborable_Initialization
1214         (Analyze_Pragma, case Interface): Interface is extended so that it is
1215         now syntactically and semantically equivalent to Import.
1216         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
1217         insertion characters.
1218         Add handling for Pragma_Wide_Character_Encoding
1219         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
1220         never supercedes a real restriction, and that a real restriction
1221         always supercedes a warning.
1222         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
1223         appropriate form.
1224
1225 2006-10-31  Bob Duff  <duff@adacore.com>
1226             Ed Schonberg  <schonberg@adacore.com>
1227             Robert Dewar  <dewar@adacore.com>
1228
1229         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
1230         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
1231         Is_Inherently_Limited_Type, because return-by-reference has no meaning
1232         in Ada 2005.
1233         (Find_Node_To_Be_Wrapped): Use new method of determining the result
1234         type of the function containing a return statement, because the
1235         Return_Type field was removed. We now use the Return_Applies_To field.
1236
1237         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
1238         (Build_Task_Image_Decl): If procedure is not called from an
1239         initialization procedure, indicate that function that builds task name
1240         uses the sec. stack. Otherwise the enclosing initialization procedure
1241         will carry the indication.
1242         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
1243         N_Object_Declaration instead.
1244         (Kill_Dead_Code): New interface to implement -gnatwt warning for
1245         conditional dead code killed, and change implementation accordingly.
1246         (Insert_Actions): Add N_Return_Object_Declaration case.
1247         Correct comment to mention N_Extension_Aggregate node.
1248         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
1249         attempts to save information for global variables which cannot be
1250         safely tracked.
1251         (Get_Current_Value_Condition): Handle conditions the other way round
1252         (constant on left). Also handle right operand of AND and AND THEN
1253         (Set_Current_Value_Condition): Corresponding changes
1254         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
1255         (Get_Current_Value_Condition): Handle simple boolean operands
1256         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
1257         (Get_Current_Value_Condition): If the variable reference is within an
1258         if-statement, does not appear in the list of then_statments, and does
1259         not come from source, treat it as being at unknown location.
1260         (Get_Current_Value_Condition): Enhance to allow while statements to be
1261         processed as well as if statements.
1262         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
1263         come from source.
1264         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
1265         of loop. This is safe now that we fixed Kill_Current_Values.
1266         (OK_To_Do_Constant_Replacement): Check whether current scope is
1267         Standard, before examining outer scopes.
1268
1269 2006-10-31  Vincent Celier  <celier@adacore.com>
1270
1271         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
1272         When True, apply VMS treatment to children of packages A, G, I and S.
1273         For F320-016
1274
1275         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
1276
1277 2006-10-31  Robert Dewar  <dewar@adacore.com>
1278             Ed Schonberg  <schonberg@adacore.com>
1279
1280         * freeze.adb: Add handling of Last_Assignment field
1281         (Warn_Overlay): Supply missing continuation marks in error msgs
1282         (Freeze_Entity): Add check for Preelaborable_Initialization
1283
1284         * g-comlin.adb: Add Warnings (Off) to prevent new warning
1285
1286         * g-expect.adb: Add Warnings (Off) to prevent new warning
1287
1288         * lib-xref.adb: Add handling of Last_Assignment field
1289         (Generate_Reference): Centralize handling of pragma Obsolescent here
1290         (Generate_Reference): Accept an implicit reference generated for a
1291         default in an instance.
1292         (Generate_Reference): Accept a reference for a node that is not in the
1293         main unit, if it is the generic body corresponding to an subprogram
1294         instantiation.
1295
1296         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
1297
1298         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
1299         -gnatwq/Q.
1300         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
1301         exception handler.
1302         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
1303         use clauses, to avoid messages on packages used to qualify, and also
1304         to avoid messages from obsolescent units.
1305         (Warn_On_Useless_Assignments): Don't generate messages for imported
1306         and exported variables.
1307         (Warn_On_Useless_Assignments): New procedure
1308         (Output_Obsolescent_Entity_Warnings): New procedure
1309         (Check_Code_Statement): New procedure
1310
1311         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
1312         Change name Is_Ada_2005 to Is_Ada_2005_Only
1313         (Last_Assignment): New field for useless assignment warning
1314
1315 2006-10-31  Olivier Hainque  <hainque@adacore.com>
1316
1317         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
1318         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
1319
1320 2006-10-31  Bob Duff  <duff@adacore.com>
1321             Robert Dewar  <dewar@adacore.com>
1322             Ed Schonberg  <schonberg@adacore.com>
1323
1324         * g-awk.adb (Default_Session, Current_Session): Compile this file in
1325         Ada 95 mode, because it violates the new rules for AI-318.
1326
1327         * g-awk.ads: Use overloaded subprograms in every case where we used to
1328         have a default of Current_Session. This makes the code closer to be
1329         correct for both Ada 95 and 2005.
1330
1331         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
1332         code, relying on the fact that the compiler generates a warning
1333         instead of an error in -gnatg mode.
1334
1335         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
1336         E_Return_Statement entity kind.
1337         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
1338
1339         * par.adb (P_Interface_Type_Definition): Addition of one formal to
1340         report an error if the reserved word abstract has been previously found.
1341         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
1342         
1343         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
1344         parenthesized range attribute usage
1345         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
1346
1347         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
1348         in the syntax for extended_return_statement. This is not in the latest
1349         RM, but the ARG is expected to issue an AI allowing this.
1350         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
1351         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
1352         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
1353         P_Return_Statement): Parse the new syntax for extended_return_statement.
1354
1355         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
1356         Output_End_Missing): Add error-recovery code for the new
1357         extended_return_statement syntax; that is, the new E_Return entry on
1358         the scope stack.
1359
1360         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
1361         limited to nonlimited, because otherwise we violate the new Ada 2005
1362         rules about returning limited types in function Create_AST_Handler in
1363         s-asthan.adb.
1364
1365         * sem.adb (Analyze): Add cases for new node kinds
1366         N_Extended_Return_Statement and N_Return_Object_Declaration.
1367
1368         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
1369         type is in the same category as type of context before applying check,
1370         to prevent anomalies in instantiations.
1371         (Resolve_Aggregate): Remove test for limited components in aggregates.
1372         It's unnecessary in Ada 95, because if it has limited components, then
1373         it must be limited. It's wrong in Ada 2005, because limited aggregates
1374         are now allowed.
1375         (Resolve_Record_Aggregate): Move check for limited types later, because
1376         OK_For_Limited_Init requires its argument to have been resolved.
1377         (Get_Value): When copying the component default expression for a
1378         defaulted association in an aggregate, use the sloc of the aggregate
1379         and not that of the original expression, to prevent spurious
1380         elaboration errors, when the expression includes function calls.
1381         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
1382         were missing. We also didn't handle qualified expressions. Now also
1383         allow function calls. Use new common routine OK_For_Limited_Init.
1384         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
1385         with space can upper case letter).
1386
1387         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
1388         Has_Static_Discriminants flag
1389         (Record_Type_Declaration): Diagnose an attempt to declare an interface
1390         type with discriminants.
1391         (Process_Range_Expr_In_Decl): Do validity checks on range
1392         (Build_Discriminant_Constraints): Use updated form of
1393         Denotes_Discriminant.
1394         (Process_Subtype): If the subtype is a private subtype whose full view
1395         is a concurrent subtype, introduce an itype reference to prevent scope
1396         anomalies in gigi.
1397         (Build_Derived_Record_Type, Collect_Interface_Primitives,
1398         Record_Type_Declaration):  The functionality of the subprograms
1399         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
1400         is now performed by a single routine.
1401         (Build_Derived_Record_Type): If the type definition includes an explicit
1402         indication of limitedness, then the type must be marked as limited here
1403         to ensure that any access discriminants will not be treated as having
1404         a local anonymous access type.
1405         (Check_Abstract_Overriding): Issue a detailed error message when an
1406         abstract subprogram was not overridden due to incorrect mode of its
1407         first parameter.
1408         (Analyze_Private_Extension_Declaration): Add support for the analysis of
1409         synchronized private extension declarations. Verify that the ancestor is
1410         a limited or synchronized interface or in the generic case, the ancestor
1411         is a tagged limited type or synchronized interface and all progenitors
1412         are either limited or synchronized interfaces.
1413         Derived_Type_Declaration): Check for presence of private extension when
1414         dealing with synchronized formal derived types.
1415         Process_Full_View): Enchance the check done on the usage of "limited" by
1416         testing whether the private view is synchronized.
1417         Verify that a synchronized private view is completed by a protected or
1418         task type.
1419         (OK_For_Limited_Init_In_05): New function.
1420         (Analyze_Object_Declaration): Move check for limited types later,
1421         because OK_For_Limited_Init requires its argument to have been resolved.
1422         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1423         in order to alleviate the upward compatibility introduced by AI-318.
1424         (Constrain_Corresponding_Record): If the constraint is for a component
1425         subtype, mark the itype as frozen, to avoid out-of-scope references to
1426         discriminants in the back-end.
1427         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
1428         this subprogram against wrong sources.
1429         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
1430         discriminant of limited type completed with a protected type, when the
1431         discriminant is used to constrain a private component of the type, and
1432         expansion is disabled.
1433         (Find_Type_Of_Object): Do not treat a return subtype that is an
1434         anonymous subtype as a local_anonymous_type, because its accessibility
1435         level is the return type of the enclosing function.
1436         (Check_Initialization): In -gnatg mode, turn the error "cannot
1437         initialize entities of limited type" into a warning.
1438         (OK_For_Limited_Init): Return true for generated nodes, since it
1439         sometimes violates the legality rules.
1440         (Make_Incomplete_Declaration): If the type for which an incomplete
1441         declaration is created happens to be the currently visible entity,
1442         preserve the homonym chain when removing it from visibility.
1443         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
1444         inherited subprograms.
1445         (Access_Definition): If this is an access to function that is the return
1446         type of an access_to_function definition, context is a type declaration
1447         and the scope of the anonymous type is the current one.
1448         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
1449         incomplete subtype to the set of private dependents of the original
1450         incomplete type.
1451         (Constrain_Discriminated_Type): Emit an error message whenever an
1452         incomplete subtype is being constrained.
1453         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
1454         corresponding subtype of the full view of the original incomplete type.
1455         (Check_Incomplete): Properly detect invalid usage of incomplete types
1456         and subtypes.
1457
1458 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1459
1460         * g-catiio.ads, g-catiio.adb (Value): New function.
1461         Given an input String, try and parse a valid Time value.
1462
1463 2006-10-31  Vincent Celier  <celier@adacore.com>
1464
1465         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1466         Integer_Address arithmetic, as in Set_Valid.
1467
1468 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1469             Robert Dewar  <dewar@adacore.com>
1470
1471         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
1472         handling executable extension manually and duplicating code.
1473
1474         * make.adb: Implement new -S switch
1475         (Gnatmake): Use new function Osint.Executable_Name instead
1476         of handling executable extension manually.
1477
1478         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
1479         is specified, the executable name ends with this suffix.
1480         Take advantage of Osint.Executable_Name instead of duplicating code.
1481
1482         * switch-m.adb: Recognize new gnatmake -S switch
1483
1484         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
1485         variable.
1486         (Get_Target_Parameters): Set Executable_Extension_On_Target if
1487         available.
1488
1489         * makeusg.adb: Add line for gnatmake -S switch
1490
1491 2006-10-31  Vincent Celier  <celier@adacore.com>
1492
1493         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
1494         call it with -static-libgcc, as there are some platforms, such as
1495         Darwin, where one of these two switches is compulsory to link.
1496
1497 2006-10-31  Vincent Celier  <celier@adacore.com>
1498         
1499         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
1500         instead of ADA_PROJECT_PATH, for the project path.
1501         (Gnatls): When displaying the project path directories, use host dir
1502         specs.
1503
1504         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
1505         names in the project path, as absolute paths may correspond to
1506         multi-valued VMS logical names.
1507
1508 2006-10-31  Vincent Celier  <celier@adacore.com>
1509
1510         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
1511         absolute path name.
1512         (Locate_Regular_File): Ditto
1513         (Change_Dir): Remove, no longer used
1514         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
1515         on Windows. Get it calling Get_Current_Dir.
1516         (OpenVMS): Remove imported boolean, no longer needed.
1517         (Normalize_Pathname)[VMS]: Do not resolve directory names.
1518         (Pid_To_Integer): New function to convert a Process_Id to  Integer
1519
1520 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1521
1522         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
1523         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
1524         to No_Socket.
1525         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
1526         W_Sig_Socket.
1527
1528 2006-10-31  Robert Dewar  <dewar@adacore.com>
1529
1530         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1531         initial letter o as a zero.
1532
1533 2006-10-31  Robert Dewar  <dewar@adacore.com>
1534
1535         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1536
1537 2006-10-31  Robert Dewar  <dewar@adacore.com>
1538
1539         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
1540         variant records
1541         (Layout_Variant_Record): Retrieve the discriminants from the entity
1542         rather than from the type definition, because in the case of a full
1543         type for a private type we need to take the discriminants from the
1544         partial view.
1545         (Layout_Component_List): When applying the Max operator to variants with
1546         a nonstatic size, check whether either operand is static and scale that
1547         operand from bits to storage units before applying Max.
1548         (Layout_Type): In VMS, if a C-convention access type has no explicit
1549         size clause (and does not inherit one in the case of a derived type),
1550         then the size is reset to 32 from 64.
1551
1552 2006-10-31  Vincent Celier  <celier@adacore.com>
1553
1554         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
1555         its file has already been loaded, according to the unit being loaded,
1556         not to the current value of Multiple_Unit_Index.
1557
1558 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1559             Eric Botcazou  <ebotcazou@adacore.com>
1560             Arnaud Charlet  <charlet@adacore.com>
1561
1562         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
1563         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
1564         possible.
1565         (a-except.o): Pass it to the compiler.
1566         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
1567         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
1568         a-calend-mingw.adb version.
1569
1570         * Makefile.rtl: Added s-dsaser.
1571         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
1572         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
1573         Ada.Dispatching.Round_Robin.
1574         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
1575
1576         * Make-lang.in: Remove all references to gt-ada-decl.h.
1577         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
1578         sources.
1579         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
1580         Update dependencies.
1581
1582         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
1583
1584 2006-10-31  Vincent Celier  <celier@adacore.com>
1585
1586         * mlib-utl.adb (Initialized): Remove, no longer used
1587         (Initialize): Remove, no longer used
1588         (Ar): If Ar_Exec is null, get the location of the archive builder and,
1589         if there is one, the archive indexer. Fail if the archive builder cannot
1590         be found.
1591         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
1592         be found.
1593
1594 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1595
1596         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
1597         Process_Body_Clauses): If the context of a body includes a use clause
1598         for P.Q then a with_clause for P in the same body is not redundant,
1599         even if the spec also has a with_clause on P.
1600         Add missing continuation mark to error msg
1601         (Build_Limited_Views): A limited view of a type is tagged if its
1602         declaration includes a record extension.
1603         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
1604         node, even if the subunit has errors. This avoids malfunction by
1605         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
1606         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
1607         generation of obsolescent messages for with statements (cannot do
1608         this too early, or we cannot implement avoiding the messages in the
1609         case of obsolescent units withing obsolescent units).
1610         (Install_Siblings): If the with_clause is on a remote descendant of
1611         an ancestor of the current compilation unit, find whether there is
1612         a sibling child unit that is immediately visible.
1613         (Remove_Private_With_Clauses): New procedure, invoked after completing
1614         the analysis of the private part of a nested package, to remove from
1615         visibility the private with_clauses of the enclosing package
1616         declaration.
1617         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
1618         now centralized in Generate_Reference.
1619         (Install_Limited_Context_Clauses): Remove superfluous error
1620         message associated with unlimited view visible through use
1621         and renamings. In addition, at the point in which the error
1622         is reported, we add the backslash to the text of the error
1623         to ensure that it is reported as a single error message.
1624         Use new // insertion for some continuation messages
1625         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
1626         to create implicit with_clause for parent unit mentioned in original
1627         limited_with_clause.
1628         (Install_Limited_With_Unit): Set entity of parent identifiers if the
1629         unit is a child unit. For ASIS queries.
1630         (Analyze_Subunit): If the subunit appears within a child unit, make all
1631         ancestor child units directly visible again.
1632
1633 2006-10-31  Robert Dewar  <dewar@adacore.com>
1634
1635         * par-ch10.adb (P_Context_Clause): Minor error message fix
1636
1637 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1638             Javier Miranda  <miranda@adacore.com>
1639
1640         * par-ch12.adb: Grammar update and cleanup.
1641         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
1642         support for synchronized derived type definitions.
1643         Add the new actual Abstract_Present to every call to
1644         P_Interface_Type_Definition.
1645         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
1646         a formal object declaration with an access definition or a subtype mark
1647         with a null exclusion.
1648         (P_Generic_Association): Handle association with box, and others_choice
1649         with box, to support Ada 2005 partially parametrized formal packages.
1650
1651 2006-10-31  Robert Dewar  <dewar@adacore.com>
1652             Javier Miranda  <miranda@adacore.com>
1653         
1654         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
1655         (P_Type_Declaration): Remove barrier against the reserved word "limited"
1656         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
1657         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
1658         private extensions.
1659         (P_Type_Declaration): Add the new actual Abstract_Present to every call
1660         to P_Interface_Type_Definition.
1661         (P_Interface_Type_Definition): Addition of one formal to report an error
1662         if the reserved word abstract has been previously found.
1663         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
1664         object renaming declaration with an access definition or subtype mark
1665         with a possible null exclusion.
1666
1667         * par-ch9.adb: Minor error msg fix
1668
1669         * par-load.adb: Add missing continuation mark to error msg
1670
1671         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
1672
1673 2006-10-31  Vincent Celier  <celier@adacore.com>
1674
1675         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
1676         unknown attribute in unknown package or in package that does not need
1677         to be checked.
1678         (Parse_Package_Declaration): Do not issue warning for unknown package in
1679         quiet output.
1680
1681 2006-10-31  Vincent Celier  <celier@adacore.com>
1682
1683         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
1684         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
1685         Packages_To_Check.
1686
1687 2006-10-31  Vincent Celier  <celier@adacore.com>
1688
1689         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
1690         on VMS, change "__" to '.' before checking the name.
1691         (Record_Ada_Source): Always add the source file name in the list of
1692         of sources, even if it is not the first time, as it is for another
1693         source index.
1694         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
1695         dot, instead of replacing only the first '_'.
1696
1697         * prj-part.adb (Parse): Convert project file path to canonical form
1698
1699         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
1700         extended, the project id of the project extending it is recorded in its
1701         data, even when it has already been processed as an imported project.
1702
1703 2006-10-31  Robert Dewar  <dewar@adacore.com>
1704
1705         * repinfo.adb (List_Entities): Don't list entities from renaming
1706         declarations.
1707
1708 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1709             Robert Dewar  <dewar@adacore.com>
1710
1711         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
1712         only a restriction warning is active for the given restriction. This is
1713         desirable because we do not want to modify code in the case where only
1714         a warning is set.
1715         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
1716         causes overriding of real restrictions.
1717         Take advantage of new No_Restrictions constant.
1718
1719         * raise.h: (__gnat_set_globals): Change profile.
1720
1721 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1722         
1723         * rtsfind.adb: Remove s-polint from comment as it exists no more.
1724
1725         * rtsfind.ads: 
1726         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
1727         Move all the entities in obsolete package System.PolyORB_Interface to
1728         System.Partition_Interface.
1729         (RE_Storage_Size): New function in System.Tasking.
1730         (RE_Get_Ceiling): New entity.
1731         (RE_Set_Ceiling): New entity.
1732         (RO_PE_Get_Ceiling): New entity.
1733         (RO_RE_Set_Ceiling): New entity.
1734         (Inherit_CPP_DT): New entity
1735
1736 2006-10-31  Robert Dewar  <dewar@adacore.com>
1737
1738         * scng.adb (Scan, case of numeric literal): Better msg for identifier
1739         starting with a digit.
1740
1741 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1742             Thomas Quinot  <quinot@adacore.com>
1743             Javier Miranda  <miranda@adacore.com>
1744             Gary Dismukes  <dismukes@adacore.com>
1745
1746         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
1747         properly an attempt to apply Unchecked_Access to a protected operation.
1748         (OK_Self_Reference): New subprogram to check the legality of an access
1749         attribute whose prefix is the type of an enclosing aggregate.
1750         Generalizes previous mechanism to handle attribute references nested
1751         arbitrarily deep within the aggregate.
1752         (Analyze_Access_Attribute): An access attribute whose prefix is a type
1753         can appear in an aggregate if this is a default-initialized aggregate
1754         for a self-referential type.
1755         (Resolve_Attribute, case Access): Ditto.
1756         Add support for new implementation defined attribute Stub_Type.
1757         (Eval_Attribute, case Attribute_Stub_Type): New case.
1758         (Analyze_Attribute, case Attribute_Stub_Type): New case.
1759         (Stream_Attribute_Available): Implement using new subprogram from
1760         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
1761         Has_Specified_Stream_Attribute flag.
1762         Disallow Storage_Size and Storage_Pool for access to subprogram
1763         (Resolve_Attribute, case 'Access et al): Take into account anonymous
1764         access types of return subtypes in extended return statements. Remove
1765         accessibility checks on anonymous access types when Unchecked_Access is
1766         used.
1767         (Analyze_Attribute): Add support for the use of 'Class to convert
1768         a class-wide interface to a tagged type.
1769         Add support for the attribute Priority.
1770         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
1771         whether the designated type is discriminated with a constrained partial
1772         view and require static matching in that case.
1773         Add local variable Des_Btyp. The Designated_Type
1774         of an access to incomplete subtype is either its non-limited view if
1775         coming from a limited with or its etype if regular incomplete subtype.
1776
1777         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
1778         Fix predicate to identify and allow cases of (expander-generated)
1779         references to tag of designated object of a RACW.
1780         (Validate_Static_Object_Name): In Ada 2005, a formal object is
1781         non-static, and therefore cannot appear as a primary in a preelaborable
1782         package.
1783         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
1784         Has_Read_Write_Attributes.
1785         (Has_Read_Write_Attributes): Reimplement in termes of
1786         Has_Stream_Attribute_Definition.
1787         (Missing_Read_Write_Attributes): When checking component types in a
1788         record, unconditionally call Missing_Read_Write_Attributes recursively
1789         (remove guard checking for Is_Record_Type / Is_Access_Type).
1790
1791 2006-10-31  Robert Dewar  <dewar@adacore.com>
1792
1793         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
1794         useless assignments here and conditionalize it on absence of exception
1795         handlers.
1796         (Analyze_Exception_Handlers): Small code reorganization of error
1797         detection code, for new handling of formal packages.
1798
1799 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1800             Hristian Kirtchev  <kirtchev@adacore.com>
1801         
1802         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
1803         that has been constant-folded, preserve information of original tree,
1804         for ASIS uses.
1805         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
1806         generated private extension declaration if the formal derived type is
1807         synchronized. Carry synchronized present over to the generated private
1808         extension.
1809         (Validate_Derived_Type_Instance): Ensure that the actual of a
1810         synchronized formal derived type is a synchronized tagged type.
1811         (Instantiate_Formal_Package): When creating the instantiation used to
1812         validate the actual package of a formal declared without a box, check
1813         whether the formal itself depends on a prior actual.
1814         (Instantiate_Formal_Subprogram): Create new entities for the defining
1815         identifiers of the formals in the renaming declaration, for ASIS use.
1816         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
1817         a renaming declaration or a subtype declaration for an actual in an
1818         instance, capture location information of declaration in generic, for
1819         ASIS use.
1820         (Instantiate_Formal_Package): Add comments on needed additional tests.
1821         AI-317 (partial parametrization) is fully implemented.
1822         (Validate_Private_Type_Instance): Add check for actual which
1823         must have preelaborable initialization
1824         Use new // insertion for some continuation messages
1825         (Analyze_Formal_Object_Declaration): Change usage of Expression to
1826         Default_Expression. Add type retrieval when the declaration has an
1827         access definition. Update premature usage of incomplete type check.
1828         (Check_Access_Definition): New subsidiary routine. Check whether the
1829         current compilation version is Ada 05 and the supplied node has an
1830         access definition.
1831         (Instantiate object): Alphabetize local variables. Handle the creation
1832         of new renaming declarations with respect to the kind of definition
1833         used - either an access definition or a subtype mark. Guard against
1834         unnecessary error message in the context of anonymous access types after
1835         they have been resolved. Add check for required null exclusion in a
1836         formal object declaration.
1837         (Switch_View): A private subtype of a non-private type needs to be
1838         switched (the base type can have been switched without its private
1839         dependents because of the last branch of Check_Private_View.
1840         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
1841         value from BT.
1842         (Instantiate_Type): Emit an error message whenever a class-wide type of
1843         a tagged incomplete type is used as a generic actual.
1844         (Find_Actual_Type): Extend routine to handle a component type in a child
1845         unit that is imported from a formal package in a parent.
1846         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
1847         agree on constrainedness, rather than checking against ultimate ancestor
1848         (Instantiate_Subprogram_Body): Create a cross-reference link to the
1849         generic body, for navigation purposes.
1850
1851 2006-10-31  Robert Dewar  <dewar@adacore.com>
1852             Thomas Quinot  <quinot@adacore.com>
1853
1854         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
1855         type.
1856         (New_Stream_Subprogram): When processing an attribute definition clause
1857         for a stream-oriented subprogram, record an entity node occurring at
1858         the point of clause to use for checking the visibility of the clause,
1859         as defined by 8.3(23) as amended by AI-195.
1860         (New_Stream_Subprogram): New procedure, factoring behaviour from both
1861          New_Stream_Function and New_Stream_Procedure.
1862         (New_Stream_Function, New_Stream_Procedure): Removed.
1863         (Analyze_Attribute_Definition_Clause, case Address): Check new
1864         Alignment_Check check
1865
1866 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1867             Javier Miranda  <miranda@adacore.com>
1868             Robert Dewar  <dewar@adacore.com>
1869
1870         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
1871         generate the same errors compiling under -gnatc.
1872         (Try_Object_Operation): If no candidate interpretation succeeds, but
1873         there is at least one primitive operation with the right name, report
1874         error in call rather than on a malformed selected component.
1875         (Analyze_Selected_Component): If the prefix is an incomplete type from
1876         a limited view, and the full view is available, use the full view to
1877         determine whether this is a prefixed call to a primitive operation.
1878         (Operator_Check): Verify that a candidate interpretation is a binary
1879         operation before checking the type of its second formal.
1880         (Analyze_Call): Add additional warnings for function call contexts not
1881         yet supported.
1882         (Analyze_Allocator): Move the check for "initialization not allowed for
1883         limited types" after analyzing the expression. This is necessary,
1884         because OK_For_Limited_Init looks at the structure of the expression.
1885         Before analysis, we don't necessarily know what sort of expression it
1886         is. For example, we don't know whether F(X) is a function call or an
1887         indexed component; the former is legal in Ada 2005; the latter is not.
1888         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
1889         were missing. We also didn't handle qualified expressions. Now also
1890         allow function calls. Use new common routine OK_For_Limited_Init.
1891         (Analyze_Type_Conversion): Do not perform some legality checks in an
1892         instance, because the error message will be redundant or spurious.
1893         (Analyze_Overloaded_Selected_Component): Do not do style check when
1894         setting an entity, since we do not know it is the right entity yet.
1895         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
1896         (Analyze_Overloaded_Selected_Component): Same change
1897         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
1898         since regular incomplete subtypes are transformed into corresponding
1899         subtypes of their full views.
1900         (Complete_Object_Operation): Treat name of transformed subprogram call
1901         as coming from source, for browsing purposes.
1902         (Try_Primitive_Operation): If formal is an access parameter, compare
1903         with base type of object to determine whether it is a primitive
1904         operation.
1905         (Operator_Check): If no interpretation of the operator matches, check
1906         whether a use clause on any candidate might make the operation legal.
1907         (Try_Class_Wide_Operation): Check whether the first parameter is an
1908         access type whose designated type is class-wide.
1909
1910 2006-10-31  Robert Dewar  <dewar@adacore.com>
1911             Ed Schonberg  <schonberg@adacore.com>
1912             Gary Dismukes  <dismukes@adacore.com>
1913
1914         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
1915         warn on infinite loops.
1916         Add \\ to some continuation messages
1917         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
1918         (Process_Bounds): If the bounds are integer literals that result from
1919         constant-folding, and they carry a user-defined type, preserve that type
1920         rather than treating this as an integer range.
1921         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
1922         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
1923         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
1924         left hand side of assignment.
1925         (Analyze_Assignment): Add suport to manage assigments to the attribute
1926         priority of a protected object.
1927         (Check_Possible_Current_Value_Condition): Allow fully qualified names
1928         not just identifiers.
1929         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
1930         or AND THEN for possible tracking.
1931         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
1932         case of while loops so we can track values in the loop body.
1933
1934 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1935             Hristian Kirtchev  <kirtchev@adacore.com>
1936             Bob Duff  <duff@adacore.com>
1937         
1938         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
1939         procedure cannot be a protected operation (it is a basic_declaration,
1940         not a subprogram_declaration).
1941         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
1942         Subp. Add logic for entry processing.
1943         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
1944         Determine whether an entry or subprogram of a protected or task type
1945         override an inherited primitive of an implemented interface.
1946         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
1947         Update the actual used in calls to Check_Overriding_Indicator.
1948         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
1949         generate the proper reference to the parent unit, for cross-reference.
1950         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
1951         Is_Formal.
1952         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1953         (Add_Extra_Formal): Revise procedure to allow passing in associated
1954         entity, scope, and name suffix, and handle setting of the new
1955         Extra_Formals field.
1956         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
1957         pass new parameters. Add support for adding the new extra access formal
1958         for functions whose calls are treated as build-in-place.
1959         (Analyze_A_Return_Statement): Correct casing in error message.
1960         Move Pop_Scope to after Analyze_Function_Return, because an extended
1961         return statement really is a full-fledged scope. Otherwise, visibility
1962         doesn't work right. Correct use of "\" for continuation messages.
1963         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
1964         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
1965         the node doesn't get properly marked as analyzed.
1966         (Analyze_Subprogram_Body): If subprogram is a function that returns
1967         an anonymous access type that denotes a task, build a Master Entity
1968         for it.
1969         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
1970         proper usage of null exclusion in a result definition.
1971         (Process_Formals): Code cleanup and new error message.
1972         (Process_Formals): Detect incorrect application of null exclusion to
1973         non-access types.
1974         (Conforming_Types): Handle conformance between [sub]types and itypes
1975          generated for entities that have null exclusions applied to them.
1976         (Maybe_Primitive_Operation): Add an additional type retrieval when the
1977          base type is an access subtype. This case arrises with null exclusions.
1978         (New_Overloaded_Entity): Do not remove the overriden entity from the
1979         homonym chain if it corresponds with an abstract interface primitive.
1980         (Process_Formals): Replace membership test agains Incomplete_Kind with a
1981         call to the synthesized predicate Is_Incomplete_Type.
1982         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
1983         primitives.
1984         (Analyze_Subprogram_Declaration): Check that abstract interface
1985         primitives are abstract or null.
1986         (Analyze_Subprogram_Specification): Remove previous check for abstract
1987         interfaces because it was not complete.
1988         (Has_Interface_Formals): Removed.
1989
1990 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1991             Javier Miranda  <miranda@adacore.com>
1992
1993         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
1994         of Analyze_Package_Body, to create Itype references for anonymous
1995         access types created in the package declaration, whose designated types
1996         may have only a limited view.
1997         (Analyze_Package_Specification): For the private part of a nested
1998         package, install private_with_clauses of enclosing compilation unit if
1999         we are in its visible part.
2000         (Declare_Inherited_Private_Subprograms): Complete barrier
2001         to ensure that the primitive operation has an alias to some parent
2002         primitive. This is now required because, after the changes done for the
2003         implementation of abstract interfaces, the contents of the list of
2004         primitives has entities whose alias attribute references entities of
2005         such list of primitives.
2006         (Analyze_Package_Specification): Simplify code that handles parent units
2007         of instances and formal packages.
2008         (Uninstall_Declarations): Check the convention consistency among
2009         primitive overriding operations of a tagged record type.
2010
2011 2006-10-31  Robert Dewar  <dewar@adacore.com>
2012             Hristian Kirtchev  <kirtchev@adacore.com>
2013             Javier Miranda  <miranda@adacore.com>
2014             Ed Schonberg  <schonberg@adacore.com>
2015         
2016         * sem_ch8.adb: Minor error msg rewording
2017         (Undefined): When checking for misspellings, invert arguments (to get
2018         expected and found set right)
2019         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
2020         (Analyze_Generic_Renaming): Same fix
2021         (Use_One_Package): Do not take into account the internal entities of
2022         abstract interfaces during the analysis of entities that are marked
2023         as potentially use-visible.
2024         (Find_Type): Handle the case of an attribute reference for
2025         implementation defined attribute Stub_Type (simply let the analysis of
2026         the attribute reference rewrite it).
2027         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
2028         type that appears in a Use_Type clause.
2029         (Analyze_Object_Renaming): Add support for renaming of the Priority
2030         attribute.
2031         (Find_Type): In Ada 2005, a task type can be used within its own body,
2032         when it appears in an access definition.
2033         (Analyze_Object_Renaming): Remove warning on null_exclusion.
2034         (Analyze_Object_Renaming): Introduce checks for required null exclusion
2035          in a formal object declaration or in a subtype declaration.
2036         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
2037         (Check_Null_Exclusion): New local routine to
2038         Analyze_Subprogram_Renaming. Check whether the formals and return
2039         profile of a renamed subprogram have required null exclusions when
2040         their counterparts of the renaming already impose them.
2041         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
2042         Determine whether an entity is inside a generic scope.
2043         (In_Open_Scope): First pass of documentation update.
2044         (Find_Expanded_Name): Add support for shadow entities associated with
2045         limited withed packages. This is required to handle nested packages.
2046         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
2047         that makes a renaming of a limited withed package illegal.
2048
2049 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2050             Ed Schonberg  <schonberg@adacore.com>
2051
2052         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
2053         Check_Overriding_Indicator.
2054         (Analyze_Task_Definition): Ditto.
2055         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
2056         (Check_Overriding_Indicator): To find overridden interface operation,
2057         examine only homonyms that have an explicit subprogram declaration, not
2058         inherited operations created by an unrelated type derivation.
2059         (Check_Overriding_Indicator): When checking for the presence of "null"
2060         in a procedure, ensure that the queried node is a procedure
2061         specification.
2062         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
2063         type when the formal is an access to variable.
2064         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
2065         (Analyze_Task_Type): Same addition
2066         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
2067         provide navigation capabilities for entries.
2068
2069 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2070             Ed Schonberg  <schonberg@adacore.com>
2071             Javier Miranda  <miranda@adacore.com>
2072             Gary Dismukes  <dismukes@adacore.com>
2073
2074         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
2075         inherited from an interface ancestor by another interface in the
2076         context of an instance as 'late'.
2077         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
2078         of a call to a function that dispatches on access result.
2079         (Check_Dispatching_Operation): In case of late overriding of a primitive
2080         that covers abstract interface subprograms we register it in all the
2081         secondary dispatch tables associated with abstract interfaces.
2082         (Check_Dispatching_Call): Add check that a dispatching call is not made
2083         to a function with a controlling result of a limited type. This is a
2084         current implementation restriction.
2085         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
2086         (Check_Dispatching_Operation): Do no emit a warning if the controlling
2087         argument is an interface type that is a generic formal.
2088         (Is_Interface_Subprogram): Removed.
2089         (Check_Dispatching_Operation): If the subprogram is not a dispatching
2090         operation, check the formals to handle the case in which it is
2091         associated with an abstract interface type.
2092
2093 2006-10-31  Robert Dewar  <dewar@adacore.com>
2094             Ed Schonberg  <schonberg@adacore.com>
2095
2096         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
2097         Add new calls to this procedure during traversal
2098         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
2099         another unit if expansion is disabled.
2100
2101 2006-10-31  Robert Dewar  <dewar@adacore.com>
2102
2103         * sem_eval.adb (Compile_Time_Compare): Make use of information from
2104         Current_Value in the conditional case, to evaluate additional
2105         comparisons at compile time.
2106
2107 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2108             Hristian Kirtchev  <kirtchev@adacore.com>
2109             Javier Miranda  <miranda@adacore.com>
2110
2111         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
2112         subprogram type to provide better diagnostics in case of ambiguity.
2113         (Covers): Handle coverage of formal and actual anonymous access types in
2114         the context of generic instantiation.
2115         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
2116         abstract interface types; this is required to handle concurrent types
2117         with discriminants and abstract interface types.
2118         (Covers): Include type coverage of both regular incomplete subtypes and
2119         incomplete subtypes of incomplete type visibles through a limited with
2120         clause.
2121
2122 2006-10-31  Robert Dewar  <dewar@adacore.com>
2123             Hristian Kirtchev  <kirtchev@adacore.com>
2124             Ed Schonberg  <schonberg@adacore.com>
2125         
2126         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
2127         messages for entities in packages which are not used.
2128         (Collect_Synchronized_Interfaces): New procedure.
2129         (Overrides_Synchronized_Primitive): New function.
2130         (Denotes_Discriminant): Extend predicate to apply to task types.
2131         Add missing continuation marks in error msgs
2132         (Unqualify): New function for removing zero or more levels of
2133         qualification from an expression. There are numerous places where this
2134         ought to be used, but we currently only deal properly with zero or one
2135         level.
2136         (In_Instance); The analysis of the actuals in the instantiation of a
2137         child unit is not within an instantiation, even though the parent
2138         instance is on the scope stack.
2139         (Safe_To_Capture_Value): Exclude the case of variables that are
2140         renamings.
2141         (Check_Obsolescent): Removed
2142         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
2143         is an aliased view, even when rewritten as a reference to the target
2144         object in an assignment.
2145         (Get_Subprogram_Entity): New function
2146         (Known_To_Be_Assigned): New function
2147         (Type_Access_Level): Compute properly the access level of a return
2148         subtype that is an anonymous access type.
2149         (Explain_Limited_Type): Correct use of "\" for continuation messages.
2150         (Is_Transfer): The new extended_return_statement causes a transfer of
2151         control.
2152         (Has_Preelaborable_Initialization): New function
2153         (Has_Null_Exclusion): New function. Given a node N, determine whether it
2154         has a null exclusion depending on its Nkind.
2155         Change Is_Lvalue to May_Be_Lvalue
2156         (May_Be_Lvalue): Extensive additional code to deal with subprogram
2157         arguments (IN parameters are not Lvalues, IN OUT parameters are).
2158         (Safe_To_Capture_Value): Extend functionality so it can be used for
2159         the current value condition case.
2160         (Has_Compatible_Alignment): New function
2161         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
2162         objects to handle the Ada 2005 case, where aliasedness no longer implies
2163         that the object is constrained. In particular, for dereferenced names,
2164         the designated object must be assumed to be unconstrained.
2165         (Kill_Current_Values): Properly deal with the case where we encounter
2166         a loop in the scope chain.
2167         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
2168         a value.
2169         (Compile_Time_Constraint_Error): Improve error message in error case
2170
2171         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
2172         associated with entities of abstract interface primitives.
2173         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
2174
2175 2006-10-31  Robert Dewar  <dewar@adacore.com>
2176
2177         * s-osinte-tru64.adb: 
2178         Mark Asm statements Volatile to prevent warnings (seems a
2179         reasonable change anyway)
2180         Fixes new warnings
2181
2182         * s-mastop-irix.adb: Add Volatile to Asm statements
2183         Suppresses warning, and seems appropriate in any case
2184
2185         * s-osinte-vms.adb: Add Volatile to Asm statement
2186
2187         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
2188
2189         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
2190         returned.
2191         Add call to Check_Code_Statement
2192
2193 2006-10-31  Robert Dewar  <dewar@adacore.com>
2194             Ed Schonberg  <schonberg@adacore.com>
2195             Bob Duff  <duff@adacore.com>
2196
2197         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
2198         Synchronized_Present): Add Formal_Derived_Type_Definition and
2199         Private_Extension_Declaration to the list of assertions.
2200         (Is_Entry_Barrier_Function): New flag
2201         (Has_Self_Reference): New flag on aggregates, to indicate that they
2202         contain a reference to the enclosing type, inserted through a default
2203         initialization.
2204         (Next_Rep_Item): Move from Node4 to Node5.
2205         (Entity): Add this field for N_Attribute_Definition_Clause.
2206         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
2207         (N_Return_Object_Declaration): Remove this node kind. We now use
2208         N_Object_Declaration instead.
2209         (Actual_Designated_Subtype): Move to a different place to make room in
2210         N_Extended_Return_Statement.
2211         (Procedure_To_Call): Move to a different place to make room in
2212         N_Extended_Return_Statement.
2213         (Return_Type): Removed this field to make room in return statements
2214         (both kinds).
2215         (Return_Statement_Entity): New field in return statements, in part to
2216         replace Return_Type, and in part to support the fact that return
2217         statements are now pushed on the scope stack during semantic analysis.
2218         (Return_Object_Declarations): New field to support extended return
2219         statements.
2220         (N_Extended_Return_Statement): New node for extended_return_statement
2221         nonterminal.
2222         (N_Return_Object_Declaration): New node for part of
2223         extended_return_statement nonterminal. Needed because all the necessary
2224         fields won't fit in N_Extended_Return_Statement.
2225         Generic_associations now carry the Box_Present flag, to indicate a
2226         default for an actual in a partially parametrized formal package.
2227
2228         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
2229         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
2230         and for the new predefined dispatching policies: EDF_Across_Priorities,
2231         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
2232         Introduce new name Stub_Type for implementation defined attribute.
2233         Add pragma Preelaborable_Initialization
2234         Add entry for Priority attribute.
2235         Add Pragma_Wide_Character_Encoding
2236         (Get_Convention_Name): Given a convention id, this function returns the
2237         corresponding name id from the names table.
2238
2239 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2240             Robert Dewar  <dewar@adacore.com>
2241             Bob Duff  <duff@adacore.com>
2242
2243         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
2244         print null exclusion twice in the case of an access definition,
2245         Implement new -gnatL switch
2246         Remove N_Return_Object_Declaration. We now use
2247         N_Object_Declaration instead. Implement the case for
2248         N_Extended_Return_Statement. Alphabetize the cases.
2249         Add cases for new nodes N_Extended_Return_Statement and
2250         N_Return_Object_Declaration. The code is not yet written.
2251         Update the output for N_Formal_Object_Declaration
2252         and N_Object_Renaming_Declaration.
2253         (Write_Itype): Account for the case of a modular integer subtype whose
2254         base type is private.
2255
2256 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2257
2258         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
2259         Remove elaboration code, now done in the binder.
2260
2261         * s-rident.ads: Make this unit Preelaborate.
2262         (No_Restrictions): New constant used to clean up code and follow
2263         preelaborate constraints.
2264
2265         * s-stalib.adb: 
2266         Add System.Restrictions dependence, referenced directly from the
2267         binder generated file.
2268
2269 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
2270
2271         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
2272         True when AAMP extended floating-point is in use (48-bit). Change type
2273         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
2274         the two byte array types on AFloat. Change type of IV_Ilf overlay
2275         variable from Byte8 to ByteLF. Add appropriate initializations of
2276         floating-point overlays for AAMP cases.
2277
2278 2006-10-31  Javier Miranda  <miranda@adacore.com>
2279
2280         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
2281         (Get_Ceiling): New subprogram that returns
2282         the ceiling priority of the protected object.
2283         (Set_Ceiling): New subprogram that sets the new ceiling priority of
2284         the protected object.
2285
2286         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
2287
2288         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
2289
2290 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2291
2292         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
2293         requeuing to the same protected object to give higher priority tasks
2294         the opportunity to execute.
2295
2296 2006-10-31  Robert Dewar  <dewar@adacore.com>
2297
2298         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
2299         add more precise check for the character sequence that follows '[' to
2300         avoid possible confusion in case if '[' is the last character of a
2301         string literals.
2302         (Scan_Wide): Always allow brackets encoding
2303
2304 2006-10-31  Olivier Hainque  <hainque@adacore.com>
2305
2306         * s-stchop.ads: make this unit preelaborate. This is desirable in
2307         general and made mandatory by the use of this unit by s-taprop which
2308         is itself preelaborate.
2309
2310         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
2311         Td_Events component.
2312
2313 2006-10-31  Vincent Celier  <celier@adacore.com>
2314
2315         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2316         in file names.
2317
2318 2006-10-31  Vincent Celier  <celier@adacore.com>
2319
2320         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2321
2322 2006-10-31  Vincent Celier  <celier@adacore.com>
2323
2324         * makegpr.adb (Check_Compilation_Needed): Take into account path names
2325         with spaces.
2326         (Check_Compilation_Needed): When checking a C or C++ source, do not
2327         resolve symbolic links.
2328         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
2329         When not in verbose mode and Ellipse is True, display "..." for the
2330         first argument with Display set to False.
2331         (Build_Global_Archive): Always set Display True for the first object
2332         file. Call Display_Command with Ellipse set to True.
2333
2334 2006-10-31  Matt Heaney  <heaney@adacore.com>
2335
2336         * a-crbtgo.ads: Commented each subprogram
2337
2338         * a-crbtgo.adb: Added reference to book from which algorithms were
2339         adapted.
2340
2341         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
2342         indicate which child.
2343         (Generic_Conditional_Insert): changed parameter name from "Success" to
2344         "Inserted".
2345         (Generic_Unconditional_Insert_With_Hint): improved algorithm
2346
2347         * a-coorse.adb (Replace_Element): changed parameter name in call to
2348         conditional insert operation.
2349
2350         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
2351
2352         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
2353         Generic_Iteration
2354
2355         * a-ciorse.adb (Replace_Element): changed parameter name in call to
2356         conditional insert operation.
2357
2358         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
2359         Generic_Iteration.
2360
2361         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
2362         instead of mode inout.
2363
2364         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
2365         draft
2366         (Generic_Read): preserve existing buckets array if possible
2367         (Generic_Write): don't send buckets array length anymore
2368
2369         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
2370         instead of mode inout.
2371
2372         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
2373         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2374
2375         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
2376         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2377         (Replace_Element): local operation is now an instantiation
2378
2379         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
2380         check current length.
2381         (Generic_Replace_Element): new operation
2382
2383 2006-10-31  Doug Rupp  <rupp@adacore.com>
2384
2385         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2386         Call TBK$SYMBOLIZE without omitting parameters.
2387
2388 2006-10-31  Vincent Celier  <celier@adacore.com>
2389
2390         * symbols-processing-vms-ia64.adb,
2391         symbols-processing-vms-alpha.adb (Process): Do not include symbols
2392         that come from generic instantiations in bodies.
2393
2394 2006-10-31  Pat Rogers  <rogers@adacore.com>
2395
2396         * a-rttiev.ads, a-rttiev.adb: 
2397         This is a significant redesign primarily for the sake of automatic
2398         timer task termination but also to fix a design flaw.
2399         Therefore we are now using an RTS lock, instead of a protected
2400         object, to provide mutual exclusion to the queue of pending events
2401         and the type Timing_Event is no longer a protected type.
2402
2403 2006-10-31  Robert Dewar  <dewar@adacore.com>
2404             Cyrille Comar  <comar@adacore.com>
2405             Ben Brosgol  <brosgol@adacore.com>
2406
2407         * debug.adb:  Update flags documentation
2408
2409         * gnat_ugn.texi: Add documentation for new -gnatwq switch
2410         Clean up documentation for several other warning switches
2411         Clarify how task stack size can be specified with various
2412         versions of Windows.
2413         Add note that -gnatVo includes ranges including loops
2414         Add documentation for -gnatL switch
2415         Add note on elaboration warning for initializing variables
2416         Add documentation for new -gnatwt warning switch
2417         Document new form of pragma Warnings (On|Off, string)
2418         Add comment on use of pragma Warnings to control warnings
2419         Add documentation for -gnatjnn switch
2420         Modify section on interfacing with C for VMS 64-bit.
2421         Add doc for -gnatVe/E
2422         Add documentation of new warning flags -gnatww/-gnatwW
2423         Add warnings about address clause overlays to list of warnings
2424         (Exception Handling Control): Document that the option --RTS must be
2425         used consistently for gcc and gnatbind.
2426         Clarify that inlining is not always possible
2427         Update documentation on pragma Unchecked_Union.
2428
2429         * gnat_rm.texi: 
2430         Add documentation for new extended version of pragma Obsolescent
2431         Add documentation for implementation defined attribute 'Stub_Type.
2432         Add note on use of Volatile in asm statements
2433         Add documentation on use of pragma Unreferenced in context clause
2434         Document new form of pragma Warnings (On|Off, pattern)
2435         Document pragma Wide_Character_Encoding
2436         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
2437         enforced if code generation is active.
2438         Add section on pragma Suppress to document GNAT specific check
2439         Alignment_Check
2440         Clarify difference between No_Dispatching_Calls & No_Dispatch.
2441         Add documentation for pragma Restrictions (No_Elaboration_Code)
2442
2443         * gnat-style.texi: 
2444         Add comments on layout of subprogram local variables in the
2445         presence of nested subprograms.
2446
2447         * ug_words: Resync.
2448
2449         * elists.ads: Minor reformatting
2450         Node returns Node_Or_Entity_Id (doc change only)
2451
2452         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
2453
2454         * g-arrspl.ads (Create): Update comments.
2455
2456         * sem.ads: Add details on the handling of the scope stack.
2457
2458         * usage.adb: Update documentation.
2459
2460         * validsw.ads, validsw.adb: 
2461         Add definition of Validity_Check_Components and implement -gnatVe/E
2462
2463         * vms_data.ads: Add missing VMS qualifiers.
2464
2465         * s-addope.ads: Add documentation on overflow and divide by zero
2466
2467 2006-10-31  Robert Dewar  <dewar@adacore.com>
2468             Thomas Quinot  <quinot@adacore.com>
2469             Arnaud Charlet  <charlet@adacore.com>
2470
2471         * fmap.adb: Put routines in alpha order
2472
2473         * g-boumai.ads: Remove redundant 'in' keywords
2474
2475         * g-cgi.adb: Minor reformatting
2476
2477         * g-cgi.ads: Remove redundant 'in' keywords
2478
2479         * get_targ.adb: Put routines in alpha order
2480
2481         * prj-attr.ads: Minor reformatting
2482
2483         * s-atacco.ads: Minor reformatting
2484
2485         * scn.adb: Put routines in alpha order
2486
2487         * sinput-l.adb: Minor comment fix
2488
2489         * sinput-p.adb: Minor comment fix
2490
2491         * s-maccod.ads: Minor reformatting
2492
2493         * s-memory.adb: Minor reformatting
2494
2495         * s-htable.adb: Fix typo in comment.
2496
2497         * s-secsta.adb: Minor comment update.
2498
2499         * s-soflin.adb: Minor reformatting
2500
2501         * s-stoele.ads: 
2502         Add comment about odd qualification in Storage_Offset declaration
2503
2504         * s-strxdr.adb: 
2505         Remove unnecessary 'in' keywords for formal parameters.
2506
2507         * treeprs.adt: Minor reformatting
2508
2509         * urealp.adb: Put routines in alpha order
2510
2511         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
2512         taking string.
2513
2514         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2515
2516         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
2517
2518         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
2519         workaround as on other platforms.
2520
2521         * g-eacodu-vms.adb: Remove redundant 'in' keywords
2522         * g-expect-vms.adb: Remove redundant 'in' keywords
2523
2524         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
2525         clear error message if the list-of-files file cannot be opened.
2526
2527         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
2528         equality operator is always visible.
2529
2530         * lang.opt: Woverlength-strings: New option.
2531
2532         * nmake.adt: 
2533         Update copyright, since nmake.ads and nmake.adb have changed.
2534
2535         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
2536         (Binder_Output_Time_Stamps_Set): removed.
2537         (Old_Binder_Output_Time_Stamp): idem.
2538         (New_Binder_Output_Time_Stamp): idem.
2539         (Recording_Time_From_Last_Bind): idem.
2540         (Recording_Time_From_Last_Bind): Make constant.
2541
2542         * output.ads, output.adb (Write_Str): Allow LF characters
2543         (Write_Spaces): New procedure
2544
2545         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
2546
2547         * inline.adb: Minor reformatting
2548
2549         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2550
2551         * s-mastop-vms.adb: Remove redundant 'in' keywords
2552
2553         * s-osprim-vms.adb: Remove redundant 'in' keywords
2554
2555         * s-trafor-default.adb: Remove redundant 'in' keywords
2556
2557         * 9drpc.adb: Remove redundant 'in' keywords
2558
2559         * s-osinte-mingw.ads: Minor reformatting
2560
2561         * s-inmaop-posix.adb: Minor reformatting
2562
2563         * a-direio.ads: Remove quotes from Compile_Time_Warning message
2564
2565         * a-exexda.adb: Minor code reorganization
2566
2567         * a-filico.adb: Minor reformatting
2568
2569         * a-finali.adb: Minor reformatting
2570
2571         * a-nudira.ads: Remove quote from Compile_Time_Warning message
2572
2573         * a-numeri.ads: Minor reformatting
2574
2575         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
2576
2577         * exp_pakd.ads: Fix obsolete comment
2578
2579         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
2580         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
2581         Probably not a bug, but certainly neater and more efficient.
2582
2583         * a-tienio.adb: Minor reformatting
2584
2585         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
2586         Avoid assuming low bound of string is 1.
2587
2588         * gnatbind.adb: Change Bindusg to package and rename procedure as
2589         Display, which now ensures that it only outputs usage information once.
2590         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
2591
2592         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
2593         Table'First.
2594
2595         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
2596         warning.
2597         (Match): Add pragma Assert to ensure that Matches'First is zero
2598
2599         * g-regpat.ads (Match): Document that Matches lower bound must be zero
2600
2601         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
2602         documented preconditions (also kills warnings about bad indexes).
2603
2604         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
2605         is 1.
2606         (Build_Import_Library): Ditto;
2607
2608         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
2609
2610         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
2611
2612         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
2613         lower bound of choice table is 1.
2614
2615         * sem_case.ads (Analyze_Choices): Document that lower bound of
2616         Choice_Table is 1.
2617
2618         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
2619         string is 1.
2620
2621         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
2622         and add appropriate Assert pragma to suppress warnings.
2623
2624         * atree.h, atree.ads, atree.adb
2625         Change Elist24 to Elist25
2626         Add definitions of Field28 and Node28
2627         (Traverse_Field): Use new syntactic parent table in sinfo.
2628
2629         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2630
2631         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2632
2633         * exp_tss.adb: Put routines in alpha order
2634
2635         * fe.h: Remove redundant declarations.
2636
2637 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
2638
2639         * utils.c (builtin_function): Rename to gnat_builtin_function.
2640         Move common code to add_builtin_function.
2641         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2642         gnat_builtin_function.
2643         * gigi.h (builtin_function): Rename to gnat_builtin_function.
2644         Change the signature.
2645
2646 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2647
2648         * Makefile.in: Add TEXI2PDF definition.
2649         * Make-lang.in: Add "ada.pdf" target.
2650
2651 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2652
2653         * decl.c, utils.c: Fix comment typos.
2654         * utils.c: Fix a typo.
2655
2656 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2657
2658         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
2659         on "pure" Ada subprograms if SJLJ exceptions are used.
2660         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
2661         on the declaration node of JMPBUF_SAVE.
2662         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
2663         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
2664         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
2665
2666 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
2667
2668         PR ada/28716
2669         g-socket.adb (Bind_Socket): Call Set_Address.
2670
2671 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2672
2673         PR ada/15802
2674         * decl.c (same_discriminant_p): New static function.
2675         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
2676         subtype and we have discriminants, fix up the COMPONENT_REFs
2677         for the discriminants to make them reference the corresponding
2678         fields of the parent subtype after it has been built.
2679
2680 2006-09-15  Roger Sayle  <roger@eyesopen.com>
2681
2682         PR ada/18817
2683         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
2684         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
2685
2686 2006-09-13  Olivier Hainque  <hainque@adacore.com>
2687
2688         PR ada/29025
2689         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
2690         of a SAVE_EXPR, just make the operand addressable/not-readonly and
2691         let the common gimplifier code make and propagate a temporary copy.
2692         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
2693         out/in-out actuals and defer setting the addressable/readonly bits
2694         to the gimplifier.
2695
2696 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2697
2698         PR ada/28591
2699         * decl.c (components_to_record): Defer emitting debug info for the
2700         record type associated with the variant until after we are sure to
2701         actually use it.
2702
2703 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2704
2705         PR ada/21952
2706         * gigi.h (gnat_internal_attribute_table): Declare.
2707         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
2708         * utils.c (gnat_internal_attribute_table): New global variable.
2709         (builtin_function): Always call decl_attributes on the builtin.
2710         (handle_const_attribute): New static function.
2711         (handle_nothrow_attribute): Likewise.
2712
2713 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2714
2715         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2716
2717 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2718
2719         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
2720         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
2721
2722 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
2723             Eric Botcazou  <ebotcazou@adacore.com>
2724
2725         PR ada/18692
2726         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2727         check-gnat into check-acats.
2728
2729 2006-06-17  Karl Berry  <karl@gnu.org>
2730
2731         * gnat-style.texi (@dircategory): Use "Software development"
2732         instead of "Programming", following the Free Software Directory.
2733
2734 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2735
2736         PR ada/27944
2737         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2738
2739 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
2740
2741         PR ada/27769
2742         mlib-utl.adb: Use Program_Name.
2743         
2744 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2745
2746         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
2747         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
2748         trans.c, utils.c: Fix comment typos.  Follow spelling
2749         conventions.
2750         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
2751         conventions.
2752
2753 2006-05-19  Nicolas Setton  <setton@adacore.com>
2754
2755         * misc.c (gnat_dwarf_name): New function.
2756         (LANG_HOOKS_DWARF_NAME): Define to it.
2757
2758 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2759
2760         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
2761         (ada/misc.o): Likewise.
2762         (ada/utils.o): Likewise.
2763
2764 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
2765
2766         * Makefile.in: Add Ada support for GNU/kFreeBSD.
2767         * s-osinte-kfreebsd-gnu.ads: New file.
2768
2769 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2770
2771         * Make-lang.in: Rename docdir to gcc_docdir.
2772
2773 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2774
2775         * gigi.h (get_ada_base_type): Delete.
2776         * utils2.c (get_ada_base_type): Likewise.
2777         * trans.c (convert_with_check): Operate in the real base type.
2778
2779 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2780
2781         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2782
2783 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2784
2785         * utils.c (create_var_decl): Use have_global_bss_p when deciding
2786         whether to make the decl common.
2787
2788 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2789
2790         * Make-lang.in (Ada): Remove.
2791         (.PHONY): Remove Ada
2792
2793 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2794
2795         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
2796         aggregate, check the interpretations of the other operand to find one
2797         that may be a boolean array.
2798
2799         (Analyze_Selected_Component): Fix flow-of-control typo in case where
2800         the prefix is a private extension.
2801
2802 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
2803
2804         PR ada/26315
2805         * utils2.c (find_common_type): If both input types are BLKmode and
2806         have the same constant size, keep using the first one.
2807
2808         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
2809
2810         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
2811
2812         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
2813
2814 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
2815
2816         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
2817         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2818         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
2819         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
2820         Abort_Defer/Undefer pairs to avoid the possibility of a task being
2821         aborted while owning a lock.
2822
2823 2006-02-17  Javier Miranda  <miranda@adacore.com>
2824             Robert Dewar  <dewar@adacore.com>
2825
2826         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
2827         through an access to class-wide interface we force the displacement of
2828         the pointer to the allocated object to reference the corresponding
2829         secondary dispatch table.
2830         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
2831         if Long_Shifts are supported on the target, even if 64 bit divides
2832         are not supported (configurable run time mode).
2833         (Expand_N_Type_Conversion): Do validity check if validity checks on
2834         operands are enabled.
2835         (Expand_N_Qualified_Expression): Do validity check if validity checks
2836         on operands are enabled.
2837
2838 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2839
2840         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
2841         must be materialized when the renamed expression is an explicit
2842         dereference.
2843
2844 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2845
2846         * freeze.adb (Statically_Discriminated_Components): Return false if
2847         the bounds of the type of the discriminant are not static expressions.
2848
2849         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
2850         the bounds of the discriminant type are not static.
2851
2852 2006-02-17  Robert Dewar  <dewar@adacore.com>
2853
2854         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
2855         then we close To if it is valid.
2856
2857 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2858
2859         * init.c (facility_resignal_table): new array
2860         (__gnat_default_resignal_p): enhance default predicate to resignal if
2861         VMS condition has one of the predefined facility codes.
2862
2863 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2864
2865         * Makefile.in: Use VMS64 specialized versions of several units in
2866         Interfaces.C hierarchy to be compatible with HP C default size choices.
2867         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
2868
2869 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2870
2871         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
2872         instantiation, the corresponding entity is the related_instance of the
2873         wrapper package created for the instance.
2874
2875 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2876
2877         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
2878         the current instance is nested within another instance in a child unit.
2879
2880 2006-02-17  Javier Miranda  <miranda@adacore.com>
2881             Ed Schonberg  <schonberg@adacore.com>
2882
2883         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
2884         type we cannot inherit the primitive operations; we inherit the
2885         Corresponding_Record_Type (which has the list of primitive operations).
2886         (Check_Anonymous_Access_Types): When creating anonymous access types for
2887         access components, use Rewrite in order to preserve the tree structure,
2888         for ASIS use.
2889         (Analyze_Object_Declaration): For limited types with access
2890         discriminants with defaults initialized by an aggregate, obtain
2891         subtype from aggregate as for other mutable types.
2892         (Derived_Type_Declaration): If the derived type is a limited interface,
2893         set the corresponding flag (Is_Limited_Record is not sufficient).
2894
2895 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2896
2897         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
2898         to inline a function that returns an unconstrained type, the return
2899         expression must be the first variable declared in the body of the
2900         function.
2901
2902 2006-02-17  Javier Miranda  <miranda@adacore.com>
2903
2904         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
2905         abstract interface type, the static analysis is not enough to know if
2906         the interface is implemented or not by the source tagged type. Hence
2907         we must pass the work to the expander to generate the required code to
2908         evaluate the conversion at run-time.
2909         (Resolve_Equality_Op): Do not apply previous
2910         transformation if expansion is disasbled, to prevent anomalies when
2911         locating global references in a generic unit.
2912
2913 2006-02-17  Vincent Celier  <celier@adacore.com>
2914
2915         * snames.ads, snames.adb: New standard names for new project attributes:
2916         archive_builder, archive_indexer, compiler_pic_option,
2917         config_body_file_name, config_body_file_name_pattern,
2918         config_file_switches, config_file_unique, config_spec_file_name,
2919         config_spec_file_name_pattern, default_builder_switches,
2920         default_global_compiler_switches, default_language,
2921         dependency_file_kind, global_compiler_switches, include_path,
2922         include_path_file, language_kind, linker_executable_option,
2923         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
2924         roots, runtime_project.
2925
2926 2006-02-17  Matthew Heaney  <heaney@adacore.com>
2927
2928         * a-convec.ads, a-convec.adb: 
2929         (operator "&"): handle potential overflow for large index types
2930         (Insert): removed Contraint_Error when using large index types
2931         (Insert_Space): removed Constraint_Error for large index types
2932         (Length): moved constraint check from Length to Insert
2933
2934         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
2935         as not null access.
2936         Explicit raise statements now include an exception message.
2937         (operator "&"): handle potential overflow for large index types
2938         (Insert): removed Contraint_Error when using large index types
2939         (Insert_Space): removed Constraint_Error for large index types
2940         (Length): moved constraint check from Length to Insert
2941
2942 2006-02-17  Robert Dewar  <dewar@adacore.com>
2943
2944         * s-wchcnv.adb: Document handling of [ on output (we do not change
2945         this to ["5B"] and the new comments say why not.
2946
2947         * gnat_ugn.texi: 
2948         Add note for -gnatVo that this now includes the cases of type
2949         conversions and qualified expressions.
2950         Add comments on handling of brackets encoding for Text_IO
2951
2952 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
2953             Thomas Quinot  <quinot@adacore.com>
2954             Robert Dewar  <dewar@adacore.com>
2955             Javier Miranda  <miranda@adacore.com>
2956
2957         * expander.adb: Fix typo in comment
2958
2959         * exp_pakd.adb: Fix typo
2960         Minor comment reformatting.
2961
2962         * g-dyntab.adb: Minor reformatting
2963
2964         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
2965         aliased subprograms to look for the abstract interface subprogram.
2966
2967 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2968
2969         * env.c (__gnat_setenv): Use size_t.
2970         (__gnat_unsetenv): Likewise.
2971         (__gnat_clearenv): Likewise.
2972
2973 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
2974
2975         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2976
2977 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
2978
2979         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
2980         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
2981         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
2982         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
2983         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
2984         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
2985         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
2986         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
2987         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
2988         no longer used.
2989
2990 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
2991
2992         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
2993         protection against race conditions is not needed.
2994         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
2995         fallback handler.
2996         (Set_Specific_Handler): Add mutual exclusive access to the specific
2997         handler.
2998         (Specific_Handler): Add mutual exclusive access for retrieving the
2999         specific handler.
3000
3001         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
3002         back handler.
3003
3004         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
3005         Fall_Back_Handler and Specific_Handler.
3006
3007         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
3008         termination handlers.
3009         Set two different owerflow depending on the maximal stack size.
3010
3011         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
3012         protection against race conditions is not needed when executing the
3013         task termination handler.
3014
3015 2006-02-13  Robert Dewar  <dewar@adacore.com>
3016
3017         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
3018         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
3019         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
3020         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
3021         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
3022         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
3023         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
3024         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
3025         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
3026         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
3027         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
3028         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
3029         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
3030         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
3031         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
3032         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
3033         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
3034         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
3035         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
3036         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
3037         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
3038         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
3039         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
3040         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
3041         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
3042         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
3043         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
3044         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
3045         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
3046         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
3047         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
3048         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
3049         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
3050         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
3051         reformatting.
3052
3053 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3054
3055         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
3056         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
3057         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
3058         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
3059         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
3060         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
3061         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
3062         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
3063         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
3064
3065 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3066
3067         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
3068         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
3069         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
3070         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
3071         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
3072         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
3073         replaced by anonymous access type.
3074         (pthread_sigmask): Now take an access sigset_t
3075
3076         * s-osinte-hpux.ads:  Ditto.
3077         (pthread_mutex_t, pthread_cond_t): Update definitions to support
3078         properly 32 and 64 bit ABIs.
3079
3080 2006-02-13  Pascal Obry  <obry@adacore.com>
3081
3082         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
3083         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
3084         s-taprop-linux.adb, s-taprop-solaris.adb,
3085         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
3086         adjustement is already done when calling this routine.
3087
3088 2006-02-13  Pascal Obry  <obry@adacore.com>
3089
3090         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
3091         table to take advantage of the 16 priority levels available on Windows
3092         2000 and XP. On NT4 there are only 7 priority levels, this is properly
3093         supported by this new mapping.
3094
3095 2006-02-13  Nicolas Setton  <setton@adacore.com>
3096
3097         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
3098         (get_encoding): New subprogram. Extracts the encodings from an encoded
3099         Ada name.
3100
3101 2006-02-13  Pascal Obry  <obry@adacore.com>
3102             Nicolas Roche  <roche@adacore.com>
3103             Arnaud Charlet  <charlet@adacore.com>
3104
3105         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
3106         support.
3107         (__gnat_try_lock): Add unicode support by using a specific section on
3108         Windows.
3109         (__gnat_get_current_dir): Idem.
3110         (__gnat_open_read): Idem.
3111         (__gnat_open_rw): Idem.
3112         (__gnat_open_create): Idem.
3113         (__gnat_create_output_file): Idem.
3114         (__gnat_open_append): Idem.
3115         (__gnat_open_new): Idem.
3116         (__gnat_file_time_name): Idem.
3117         (__gnat_set_file_time_name): Idem.
3118         (__gnat_stat): Idem.
3119         (win32_no_block_spawn): Idem.
3120         (__gnat_locate_exec_on_path): Idem.
3121         (__gnat_opendir): New routine.
3122         (__gnat_closedir): Idem.
3123         (__gnat_readdir): Add new parameter length (pointer to int). Update
3124         implementation to use it and add specific Win32 code for Unicode
3125         support.
3126         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
3127         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
3128         (convert_addresses): Do not define this dummy routine on VMS.
3129
3130         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
3131         runtime Unicode support will be activated.
3132         (S2WS): String to Wide-String conversion. This version just copy a
3133         string in non Unicode version.
3134         (WS2S): Wide-String to String conversion. This version just copy a
3135         string in non Unicode version.
3136
3137         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
3138         (Open): Now import __gnat_opendir from adaint.c.
3139         (Read): Change the implementation to support unicode characters. It is
3140         not possible to use strlen() on Windows as this version supports only
3141         standard ASCII characters. So the length of the directory entry is now
3142         returned from the imported __gnat_readdir routine.
3143         Update copyright notice.
3144
3145         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
3146         (opendir): Moved to adaint.c.
3147
3148         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
3149         (Get_Directory): Fix wrong indexing.
3150         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
3151         __gnat_getenv from env.c
3152         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
3153         from env.c
3154
3155         * env.h, env.c: New file.
3156
3157         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
3158         adaint.c by __gnat_getenv from env.c
3159
3160         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
3161         adaint.c by __gnat_getenv from env.c
3162
3163         * Make-lang.in: Add env.o in the list of C object needed by gnat1
3164         and gnatbind.
3165         Update dependencies.
3166
3167 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3168             Olivier Hainque  <hainque@adacore.com>
3169             Eric Botcazou  <ebotcazou@adacore.com>
3170
3171         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
3172         
3173         * gigi.h (value_factor_p): Add prototype and description, now public.
3174
3175         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
3176         promotion for field with rep clause if the associated size was proven
3177         to be in error.
3178         Expand comments describing attempts to use a packable type.
3179         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
3180         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
3181         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
3182         necessary since these are not different types and pointers may
3183         actually designate any subtype in this hierarchy.
3184         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
3185         discriminants but put them into record only if not Unchecked_Union;
3186         pass flag to components_to_record showing Unchecked_Union.
3187         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
3188         components before variants; don't set TYPE_UNCHECKED_UNION_P.
3189         (components_to_record): New argument UNCHECKED_UNION.
3190         Remove special case code for Unchecked_Union and instead use main code
3191         with small changes.
3192
3193         PR ada/26096
3194         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
3195         variable with the expression being built, only its inner field.
3196
3197         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
3198         emit_sequence_entry_statements.
3199         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
3200         (establish_gnat_vms_condition_handler): Move before
3201         Subprogram_Body_to_gnu.
3202         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
3203         for a subprogram if it has a foreign convention or is exported.
3204         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
3205         substituted for a CONST_DECL.
3206         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
3207         Etype to assoc_to_constructor.
3208         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
3209         discriminants of Unchecked_Union.
3210         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
3211         don't need cluttering preprocessor directives.
3212         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
3213         condition handler as current in the compiled function.
3214         (body_with_handlers_p): New function. Tell whether a given sequence of
3215         statements node is attached to a package or subprogram body and involves
3216         exception handlers possibly nested within inner block statements.
3217         (emit_sequence_entry_statements): New function, to emit special
3218         statements on entry of sequences when necessary. Establish GNAT
3219         condition handler in the proper cases for VMS.
3220         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
3221         emit_sequence_entry_statements.
3222
3223         * utils2.c (find_common_type): If both input types are BLKmode and
3224         have a constant size, use the smaller one.
3225         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
3226         the same.
3227
3228         * utils.c (value_factor_p): Make public, to allow uses from other gigi
3229         units.
3230         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
3231         (convert, case UNION_TYPE): Remove special treatment for unchecked
3232         unions.
3233
3234         PR ada/18659
3235         (update_pointer_to): Update variants of pointer types to unconstrained
3236         arrays by attaching the list of fields of the main variant.
3237
3238 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3239             Robert Dewar  <dewar@adacore.com>
3240
3241         * a-exexpr.adb, a-exexpr-gcc.adb
3242         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
3243         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
3244         Remove code unused for exception propagation for the compiler itself
3245         from a-except.adb and update to still share separate packages.
3246
3247         * a-except.ads, a-except.adb: Ditto.
3248         Add comments that this version is now used only by the compiler and
3249         other basic tools. The full version that includes the Ada 2005 stuff
3250         is in separate files a-except-2005.ads/adb. The reason is that we do
3251         not want to cause bootstrap problems with compilers not recognizing
3252         Wide_Wide_String.
3253         Add exception reason code PE_Implicit_Return
3254         Add new exception reason code (Null Exception_Id)
3255
3256         * a-except-2005.adb, a-except-2005.ads: New files.
3257
3258         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
3259
3260         * s-wchcon.adb: New file.
3261
3262         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
3263         (traceback.o deps): Likewise.
3264         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
3265         Activate build of GMEM instrumentation library on VMS targets.
3266         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
3267         Use a-except-2005.ads/adb for all run-time library builds unless
3268         specified otherwise.
3269         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
3270         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
3271         Use s-parame.adb on all native platforms.
3272         Use s-parame-vxworks.adb on all vxworks platforms.
3273         Add env.c env.h in LIBGNAT_SRCS
3274         Add env.o in LIBGNAT_OBJS
3275         (GNATMAKE_OBJS): Remove ctrl_c.o object.
3276         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
3277         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
3278         supports VxWorks 6 RTPs.
3279         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
3280         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
3281
3282         * types.h, types.ads (Terminate_Program): New exception
3283         Add comment on modifying multiple versions of a-except.adb when the
3284         table of exception reasons is modified.
3285         Add exception reason code PE_Implicit_Return
3286         Add new exception reason code (Null Exception_Id)
3287
3288         * clean.adb (Initialize): Get the target parameters before checking
3289         if target is OpenVMS. Move the OpenVMS specific code here from package
3290         body elaboration code.
3291
3292 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3293             Vincent Celier  <celier@adacore.com>
3294             Robert Dewar  <dewar@adacore.com>
3295
3296         * ali-util.adb (Get_File_Checksum): Update to account for change in
3297         profile of Initialize_Scanner.
3298
3299         * gprep.adb (Gnatprep): Update to account for change in profile of
3300         Initialize_Scanner.
3301         (Process_One_File): Same.
3302
3303         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
3304         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
3305         that behaviour using the new Unit information recorded in the source
3306         files table, rather than going through all units every time.
3307         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
3308         (Get_Source_Unit): Same.
3309
3310         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
3311         change in profile of Initialize_Scanner.
3312         (Prepare_To_Preprocess): Same.
3313
3314         * lib.ads: Fix typo in comment (templace -> template).
3315
3316         * prj-part.adb (Parse_Single_Project): Update to account for change in
3317         profile of Initialize_Scanner.
3318
3319         * scn.adb (Initialize_Scanner): Account for change in profile of
3320         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
3321         Also record the association of the given Source_File_Index to the
3322         corresponding Unit_Number_Type.
3323
3324         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
3325         procedure.
3326         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
3327         Remove Unit formal for generic scanner: this formal
3328         is only relevant to Scn (the scanner instance used to parse Ada source
3329         files), not to other instances. Update comment accordingly.
3330         (Scan): Use new function Snames.Is_Keyword_Name.
3331
3332         * sinfo-cn.adb: Fix typo in comment.
3333
3334         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
3335         Unit.
3336
3337         * sinput.ads (Source_File_Record): New component Unit, used to capture
3338         the unit identifier (if any) associated to a source file.
3339
3340         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
3341         Unit in Source_File_Record.
3342
3343         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
3344         in profile of Initialize_Scanner.
3345
3346         * scans.adb (Initialize_Ada_Keywords): New procedure
3347
3348         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
3349         Ada keywords in the Namet table, without the need to call
3350         Initialize_Scanner.
3351
3352         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
3353         (Is_Keyword_Name): New function
3354
3355         * snames.ads: Add subtype Configuration_Pragma_Names
3356         Add pragma Ada_2005 (synonym for Ada_05)
3357         (Is_Keyword_Name): New function
3358
3359         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
3360
3361 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3362
3363         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
3364         index.
3365
3366         * a-stwima.adb (To_Set): Add extra check when N = 0.
3367
3368         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
3369
3370 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3371
3372         * s-parame-mingw.adb, s-parame-linux.adb,
3373         s-parame-solaris.adb: Removed, replaced by s-parame.adb
3374
3375         * s-parame-vxworks.ads: Fix typo.
3376
3377         * s-parame-vxworks.adb: New file.
3378
3379         * s-parame.adb: Version now used by all native platforms.
3380         (Default_Stack_Size): Use 2 megs for default stack size and use
3381         __gl_default_stack_size when available.
3382         (Minimum_Stack_Size): Use 12K.
3383
3384         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
3385         (Create_Task): Refine implementation taking advantage of the XP stack
3386         size support. On XP, we now create the thread using the flag
3387         STACK_SIZE_PARAM_IS_A_RESERVATION.
3388
3389         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
3390
3391         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
3392         XP and 0 on older Windows versions.
3393
3394         * interfac-vms.ads: Removed, no longer used.
3395
3396 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3397
3398         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
3399         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
3400         a-cohase.adb: All explicit raise statements now include an exception
3401         message.
3402
3403         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
3404         (Update_Element_Preserving_Key): renamed op to just Update_Element.
3405         Explicit raise statements now include an exception message
3406
3407         * a-cihase.ads, a-cohase.ads: Removed comment.
3408
3409         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
3410         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
3411         a-szbzha.adb, a-szfzha.ads: New files.
3412
3413 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3414
3415         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
3416         quicksort.
3417
3418 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3419
3420         * lang.opt: Wvariadic-macros: New option.
3421         Wold-style-definition: Likewise.
3422         Wmissing-format-attribute: Likewise.
3423
3424         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
3425         -Wold-style-definition and -Wmissing-format-attribute.
3426
3427 2006-02-13  Robert Dewar  <dewar@adacore.com>
3428
3429         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
3430
3431         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
3432
3433 2006-02-13  Nicolas Roche  <roche@adacore.com>
3434
3435         * a-envvar.adb, a-envvar.ads: New files.
3436
3437 2006-02-13  Douglas Rupp  <rupp@adacore.com>
3438
3439         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
3440
3441         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
3442
3443 2006-02-13  Pat Rogers  <rogers@adacore.com>
3444
3445         * a-rttiev.adb, a-rttiev.ads: New files.
3446
3447 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3448
3449         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
3450         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
3451
3452         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
3453
3454 2006-02-13  Robert Dewar  <dewar@adacore.com>
3455
3456         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
3457         sem_case.adb: Minor code reorganization (not Present should be No)
3458
3459 2006-02-13  Geert Bosch  <bosch@adacore.com>
3460             Gary Dismukes  <dismukes@adacore.com>
3461
3462         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
3463         0, since the lower bound of the actual string may be greater than one.
3464
3465         PR ada/20753
3466         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
3467         layout is requested.
3468
3469 2006-02-13  Vincent Celier  <celier@adacore.com>
3470
3471         * back_end.adb (Scan_Compiler_Arguments): Check if
3472         Search_Directory_Present is True and, if it is, add the argument in
3473         the source search directory path.
3474
3475         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
3476         Search_Directory_Present to True.
3477
3478 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
3479
3480         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
3481         volatile, to tell the compiler to preserve this variable at any level
3482         of optimization.
3483         (Gen_Versions_Ada): Temporarily work around codegen bug.
3484
3485 2006-02-13  Vincent Celier  <celier@adacore.com>
3486
3487         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
3488         gcc to link with option -shared-libgcc.
3489         (Gnatlink): Remove duplicate switches -shared-libgcc
3490
3491 2006-02-13  Robert Dewar  <dewar@adacore.com>
3492
3493         * gnatvsn.ads (Current_Year): New constant, used to easily update
3494         copyright on all GNAT tools.
3495
3496         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
3497         copyright notice.
3498
3499 2006-02-13  Robert Dewar  <dewar@adacore.com>
3500
3501         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
3502         after hyphen (small aesthetic change useful for a range of numbers
3503         using ^-^.
3504         Suppress range checks for a couple of assignments which otherwise
3505         cause validity checks with validity checking turned on.
3506
3507         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
3508         Improvement in error message for object.
3509         (Rep_Item_Too_Late): Remove '!' in warning message.
3510
3511 2006-02-13  Robert Dewar  <dewar@adacore.com>
3512             Eric Botcazou  <ebotcazou@adacore.com>
3513
3514         * err_vars.ads: Suppress range checks for a couple of assignments
3515         which otherwise cause validity checks with validity checking turned on.
3516         Update comments.
3517
3518         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
3519         Make message unconditional if it is a warning.
3520         (Error_Msg_NEL): Always output warning messages.
3521         Suppress range checks for a couple of assignments which otherwise
3522         cause validity checks with validity checking turned on.
3523
3524         * errout.ads (Message Insertion Characters): Document that '!' is
3525         implied by '?' in error messages.
3526
3527         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
3528         (Gnat1drv): Use a goto to end of main subprogram instead of
3529         Exit_Program (E_Success) so that finalization can occur normally.
3530
3531 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3532
3533         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
3534         wrapped around.
3535
3536 2006-02-13  Vincent Celier  <celier@adacore.com>
3537
3538         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
3539         Unchecked_Conversion functions.
3540         (Modification_Time): Use direct conversion of OS_Time to Calendar time
3541         when OpenVMS returns False.
3542
3543         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
3544         a-dirval.adb (OpenVMS): New Boolean function
3545
3546 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3547             Thomas Quinot  <quinot@adacore.com>
3548
3549         * checks.adb (Build_Discriminant_Checks): If the expression being
3550         checks is an aggregate retrieve the values of its discriminants to
3551         generate the check, rather than creating a temporary and a reference
3552         to it.
3553         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
3554         (Install_Null_Excluding_Check): Ditto
3555         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
3556         not for the renamed object, so that the actual itype is attached in the
3557         proper context.
3558
3559 2006-02-13  Robert Dewar  <dewar@adacore.com>
3560             Vincent Celier  <celier@adacore.com>
3561
3562         * debug.adb: Eliminate numeric switches for binder/gnatmake
3563
3564         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
3565         switches for the compiler.
3566         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
3567         (Scan_Make_Switches): When failing with an illegal switch, output an
3568         error message with the full switch.
3569         Eliminate numeric switches for binder/gnatmake
3570
3571         * switch.ads, switch.adb (Bad_Switch): New procedure
3572
3573         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
3574         Remove 0-9 as debug flag character possibilities
3575         -d is now controlling the primary stack size when its value is a
3576         positive. Also add checks against invalid values, and support for kb,
3577         mb. Ditto for -D switch.
3578
3579 2006-02-13  Robert Dewar  <dewar@adacore.com>
3580             Serguei Rybin  <rybin@adacore.com>
3581
3582         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
3583         save/restore routines.
3584         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3585         were not always properly handled previously.
3586         Since we are changing the tree format anyway, also get rid of the
3587         junk obsolete Immediate_Errors flag.
3588         (Tree_Read): Change the way of reading Tree_Version_String - now we
3589         read the version string from the tree even if its length is not the
3590         same as the length of the version string computed from Gnatvsn.
3591         (Search_Directory_Present): New Boolean flag for the compiler.
3592         Define Tree_Version_String as a dynamic string.
3593         (Default_Stack_Size): new variable, used to handle switch -d.
3594
3595         * par-prag.adb: 
3596         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
3597         only for main unit.
3598         Add pragma Ada_2005 (synonym for Ada_05)
3599         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3600         were not always properly handled previously.
3601
3602         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
3603         explicit Ada_95 to Ada_2005.
3604
3605 2006-02-13  Javier Miranda  <miranda@adacore.com>
3606             Robert Dewar  <dewar@adacore.com>
3607             Ed Schonberg  <schonberg@adacore.com>
3608
3609         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
3610         against errors in the source program: a private types for which the
3611         corresponding full type declaration is missing and pragma CPP_Virtual
3612         is used.
3613         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
3614         (Is_Known_Null): New flag
3615         (Has_Pragma_Pure): New flag
3616         (No_Return): Present in all entities, set only for procedures
3617         (Is_Limited_Type): A type whose ancestor is an interface is limited if
3618         explicitly declared limited.
3619         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
3620         entities. Only used for component marked Is_Tag. If present it stores
3621         the Offset_To_Top function used to provide this value in tagged types
3622         whose ancestor has discriminants.
3623
3624         * exp_ch2.adb: Update status of new Is_Known_Null flag
3625
3626         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
3627
3628         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
3629         the categorization sense if Is_Pure was set by pragma Pure_Function.
3630
3631 2006-02-13  Quentin Ochem  <ochem@adacore.com>
3632             Olivier Hainque  <hainque@adacore.com>
3633
3634         * bindusg.adb: Updated documentation for -d and -D switches.
3635
3636         * raise.h (__gnat_set_globals): added new parameter for
3637         Default_Stack_Size.
3638
3639         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
3640         (__gnat_handle_vms_condition): Adjust context before raise.
3641         (__gnat_install_handler): Restore the global vector setup for GCC
3642         versions before 3.4, as the frame based circtuitry is not available
3643         in this case.
3644         (__gnat_set_globals): added a parameter default_stack_size
3645         (__gl_default_stack_size): new variable.
3646
3647 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3648
3649         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
3650         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
3651         does not exist in the Ada RM.
3652         (Compatible_Int_Bounds): Determine whether two integer range bounds
3653         are of equal length and have the same start and end values.
3654         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
3655         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
3656         aggregate when it is part of an object declaration.
3657         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
3658         constrains discriminants of its parent, add explicitly the discriminant
3659         constraints of the ancestor by retrieving them from the
3660         stored_constraint of the parent.
3661
3662 2006-02-13  Robert Dewar  <dewar@adacore.com>
3663
3664         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
3665         attribute Mechanism_Code is applied to renamed subprogram, modify
3666         prefix to point to base subprogram.
3667         Max/Min attributes now violate Restriction No_Implicit_Conditionals
3668
3669         * sinfo.ads: Document that Mechanism_Code cannot be applied to
3670         renamed subprograms so that the front-end must replace the prefix
3671         appropriately.
3672
3673 2006-02-13  Javier Miranda  <miranda@adacore.com>
3674             Gary Dismukes  <dismukes@adacore.com>
3675
3676         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
3677         availability of RE_Interface_Tag.
3678         (Build_Initialization_Call): Fix wrong access to the discriminant value.
3679         (Freeze_Record_Type): Do not generate the tables associated with
3680         timed and conditional dispatching calls through synchronized
3681         interfaces if compiling under No_Dispatching_Calls restriction.
3682         When compiling for Ada 2005, for a nonabstract
3683         type with a null extension, call Make_Controlling_Function_Wrappers
3684         and insert the wrapper function declarations and bodies (the latter
3685         being appended as freeze actions).
3686         (Predefined_Primitive_Bodies): Do not generate the bodies of the
3687         predefined primitives associated with timed and conditional
3688         dispatching calls through synchronized interfaces if we are
3689         compiling under No_Dispatching_Calls.
3690         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
3691         service is available before generating a call.
3692         (Make_Controlling_Function_Wrappers): New procedure.
3693         (Expand_N_Full_Type_Declaration): Create a class-wide master for
3694         access-to-limited-interfaces because they can be used to reference
3695         tasks that implement such limited interface.
3696         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
3697         procedure spec and body of the Offset_To_Top function that is generated
3698         when the parent of a type with discriminants has secondary dispatch
3699         tables.
3700         (Init_Secondary_Tags): Handle the case in which the parent of the type
3701         containing secondary dispatch tables has discriminants to generate the
3702         correct arguments to call Set_Offset_To_Top.
3703         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
3704
3705         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
3706         Add Wide_[Wide_]Expanded_Name.
3707         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
3708         the same functionality of Get_Prim_Op_Address but applied to predefined
3709         primitive operations because the pointers to the predefined primitives
3710         are now saved in a separate table.
3711         (Parent_Size): Modified to get access to the separate table of primitive
3712         operations or the parent type.
3713         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
3714         functionality of Set_Prim_Op_Address but applied to predefined primitive
3715         operations.
3716         (Set_Signature): New subprogram used to store the signature of a DT.
3717         (Displace): If the Offset_To_Top value is not static then call the
3718         function generated by the expander to get such value; otherwise use
3719         the value stored in the table of interfaces.
3720         (Offset_To_Top): The type of the actual has been changed to Address to
3721         give the correct support to tagged types with discriminants. In this
3722         case this value is stored just immediately after the tag field.
3723         (Set_Offset_To_Top): Two new formals have been added to indicate if the
3724         offset_to_top value is static and hence pass this value to the run-time
3725         to store it in the table of interfaces, or else if this value is dynamic
3726         and then pass to the run-time the address of a function that is
3727         generated by the expander to provide this value for each object of the
3728         type.
3729
3730         * rtsfind.ads (Default_Prin_Op_Count): Removed.
3731         (Default_Prim_Op_Count): New entity
3732         (Get_Predefined_Prim_Op_Address): New entity
3733         (Set_Predefined_Prim_Op_Address): New entity
3734         (RE_Set_Signature): New entity
3735
3736 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3737             Ed Schonberg  <schonberg@adacore.com>
3738
3739         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
3740         Make_Adjust_Call done for a newly-allocated object.
3741
3742         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
3743         in a subprogram are wrapped in a cleanup block, indicate that the
3744         subprogram contains an inner block with an exception handler.
3745         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
3746         Adjust call is for a newly-allocated object. In that case we must not
3747         assume that the finalization list chain pointers are correct (since they
3748         come from a bit-for-bit copy of the original object's pointers) so if
3749         the attach level would otherwise be zero (no change), we set it to 4
3750         instead to cause the pointers to be reset to null.
3751
3752         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
3753         reset chain pointers to null.
3754
3755 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3756
3757         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
3758         string, and the context requires a loop for the assignment (e.g.
3759         because the left-hand side is packed), generate a unique name for the
3760         temporary that holds the string, to prevent spurious name clashes.
3761
3762 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3763             Javier Miranda  <miranda@adacore.com>
3764             Robert Dewar  <dewar@adacore.com>
3765             Gary Dismukes  <dismukes@adacore.com>
3766
3767         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
3768         return unconstrained arrays.
3769         Update comments.
3770         (Expand_Call):  An indirect call through an access parameter of a
3771         protected operation is not a protected call.
3772         Add circuit to raise CE in Ada 2005 mode following call
3773         to Raise_Exception.
3774         (Register_DT_Entry): Do nothing if
3775         the run-time does not give support to abstract interfaces.
3776         (Freeze_Subprogram): In case of dispatching operations, do not generate
3777         code to register the operation in the dispatch table if the source
3778         is compiled with No_Dispatching_Calls.
3779         (Register_Predefined_DT_Entry): Generate code that calls the new
3780         run-time subprogram Set_Predefined_Prim_Op_Address instead of
3781         Set_Prim_Op_Address.
3782
3783         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
3784         on array assignments if the right-hand side is a function call that has
3785         been inlined. Check is performed on the assignment in the block.
3786         (Process_Bounds): If bounds and range are overloaded, apply preference
3787         rule for root operations to disambiguate, and diagnose true ambiguity.
3788         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
3789         a tag-indeterminate right-hand side even when Expander_Active is True.
3790         Needed to ensure that dispatching calls to T'Input are allowed and
3791         get the tag of the target class-wide object.
3792
3793         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
3794         an inherited primitive operation that already overrides several
3795         abstract interface primitives. For transitivity, the new entity must
3796         also override all the abstract interface primitives covered by the
3797         inherited overriden primitive.
3798         Emit warning if new entity differs from homograph in same scope only in
3799         that one has an access parameter and the other one has a parameter of
3800         a general access type with the same designated type, at the same
3801         position in the signature.
3802         (Make_Inequality_Operator): Use source locations of parameters and
3803         subtype marks from corresponding equality operator when creating the
3804         tree structure for the implicit declaration of "/=". This does not
3805         change anything in behaviour except that the decoration of the
3806         components of the subtree created for "/=" allows ASIS to get the
3807         string images of the corresponding identifiers.
3808         (Analyze_Return_Statement): Remove '!' in warning message.
3809         (Check_Statement_Sequence): Likewise.
3810         (Analyze_Subprogram_Body): For an access parameter whose designated type
3811         is an incomplete type imported through a limited_with clause, use the
3812         type of the corresponding formal in the body.
3813         (Check_Returns): Implicit return in No_Return procedure now raises
3814         Program_Error with a compile time warning, instead of beging illegal.
3815         (Has_Single_Return):  Function returning unconstrained type cannot be
3816         inlined if expression in unique return statement is not an identifier.
3817         (Build_Body_To_Inline): It is possible to inline a function call that
3818         returns an unconstrained type if all return statements in the function
3819         return the same local variable. Subsidiary procedure Has_Single_Return
3820         verifies that the body conforms to this restriction.
3821
3822         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
3823         same type, and  one of them is of an anonymous access type, convert
3824         the other operand to it, so that this is a valid binary operation for
3825         gigi.
3826         (Resolve_Type_Conversion): Handle subtypes of protected types and
3827         task types when accessing to the corresponding record type.
3828         (Resolve_Allocator): Add '\' in 2-line warning message.
3829         Remove '!' in warning message.
3830         (Resolve_Call): Add '\' in 2-line warning message.
3831         (Valid_Conversion): Likewise.
3832         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
3833         resulting type may be an access type with an implicit dereference.
3834         Obtain the proper component from the designated type.
3835         (Make_Call_Into_Operator): Handle properly a call to predefined equality
3836         given by an expanded name with prefix Standard, when the operands are
3837         of an anonymous access type.
3838         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
3839         Explicit_Dereference and Resolve_Selected_Component, to verify that the
3840         prefix of the expression is not of an incomplete type. Allows full
3841         diagnoses of all semantic errors.
3842         (Resolve_Actuals): If the actual is an allocator whose directly
3843         designated type is a class-wide interface we build an anonymous
3844         access type to use it as the type of the allocator. Later, when
3845         the subprogram call is expanded, if the interface has a secondary
3846         dispatch table the expander will add a type conversion to force
3847         the displacement of the pointer.
3848         (Resolve_Call): If a function that returns an unconstrained type is
3849         marked Inlined_Always and inlined, the call will be inlined and does
3850         not require the creation of a transient scope.
3851         (Check_Direct_Boolean_Op): Removed
3852         (Resolve_Comparison_Op): Remove call to above
3853         (Resolve_Equality_Op): Remove call to above
3854         (Resolve_Logical_Op): Inline above, since this is only call.
3855         (Valid_Conversion): Handle properly conversions between arrays of
3856         convertible anonymous access types.
3857
3858         PR ada/25885
3859         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
3860         the literal in an unchecked conversion, because GCC 4.x needs a static
3861         value for a string bound.
3862
3863 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3864             Hristian Kirtchev  <kirtchev@adacore.com>
3865
3866         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
3867         components of the corresponding record, take into account component
3868         definitions that are access definitions.
3869         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
3870         procedure is not considered a dispatching call and will be expanded
3871         properly.
3872
3873 2006-02-13  Javier Miranda  <miranda@adacore.com>
3874
3875         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
3876         controlling argument of the dispatching call is an abstract interface
3877         class-wide type then we use it directly.
3878         Check No_Dispatching_Calls restriction.
3879         (Default_Prim_Op_Position): Remove the code that looks for the last
3880         entity in the list of aliased subprograms. This code was wrong in
3881         case of renamings.
3882         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
3883         when the source is compiled with the No_Dispatching_Calls restriction.
3884         (Init_Predefined_Interface_Primitives): No need to inherit primitives
3885         if we are compiling with restriction No_Dispatching_Calls.
3886         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
3887         subprograms if we are compiling under No_Dispatching_Calls restriction.
3888         (Make_DT): Generate a dispatch table with a single dummy entry if
3889         we are compiling with the No_Dispatching_Calls restriction. In
3890         addition, in this case we don't generate code that calls to the
3891         following run-time subprograms: Set_Type_Kind, Inherit_DT.
3892         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
3893         of this subprogram if compiling with the No_Dispatching_Calls
3894         restriction.
3895         (Expand_Type_Conversion): Instead of using the actual parameter,
3896         the argument passed as parameter to the conversion function was
3897         erroneously referenced by the expander.
3898         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
3899         Set_Predefined_Primitive_Op_Address and Set_Signature.
3900         (Expand_Dispatching_Call): Generate call to
3901         Get_Predefined_Prim_Op_Address for predefined primitives.
3902         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
3903         predefined primitives.
3904         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
3905         primitives we reserve one dummy entry to ensure that the tag does not
3906         point to some memory that is associated with some other object. In
3907         addition, remove all the old code that generated the assignments
3908         associated with the signature of the dispatch table and replace them
3909         by a call to the new subprogram Set_Signature.
3910         (Set_All_DT_Position): Change the algorithm because now we have a
3911         separate dispatch table associated with predefined primitive operations.
3912         (Expand_Interface_Conversion): In case of non-static offset_to_top
3913         add explicit dereference to get access to the object after the call
3914         to displace the pointer to the object.
3915         (Expand_Interface_Thunk): Modify the generation of the actual used
3916         in the calls to the run-time function Offset_To_Top to fulfil its
3917         new interface.
3918         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
3919
3920 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3921
3922         * exp_dist.adb (Copy_Specification): For access parameters, copy
3923         Null_Exclusion flag, which will have been set for stream subprograms
3924         in Ada2005 mode.
3925
3926 2006-02-13  Pascal Obry  <obry@adacore.com>
3927
3928         * expect.c (__gnat_expect_portable_execvp): New implementation. The
3929         previous implementation was using the C runtime spawnve routine but
3930         the corresponding wait was using directly the Win32 API. This was
3931         causing some times a lock when waiting for an event using
3932         WaitForSingleObject in __gnat_waitpid. This new implementation uses
3933         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
3934         API fixes this problem.
3935
3936 2006-02-13  Robert Dewar  <dewar@adacore.com>
3937
3938         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
3939         call.
3940
3941 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3942
3943         * exp_pakd.ads: Fix typos in comments.
3944
3945         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
3946         array reference that is an explicit dereference, mark the converted
3947         (packed) array reference as analyzed to prevent a forthcoming
3948         reanalysis from resetting its type to the original (non-packed) array
3949         type.
3950
3951 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3952             Javier Miranda  <miranda@adacore.com>
3953             Eric Botcazou  <ebotcazou@adacore.com>
3954
3955         * exp_util.ads, exp_util.adb (Find_Prim_Op,
3956         Is_Predefined_Primitive_Operation): When
3957         searching for the predefined equality operator, verify that operands
3958         have the same type.
3959         (Is_Predefined_Dispatching_Operation): Remove the code that looks
3960         for the last entity in the list of aliased subprograms. This code
3961         was wrong in case of renamings.
3962         (Set_Renamed_Subprogram): New procedure
3963         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
3964         Exp_Type constant computed when entering this subprogram.
3965         (Known_Null): New function
3966         (OK_To_Do_Constant_Replacement): New function
3967         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
3968         (Side_Effect_Free): An attribute reference 'Input is not free of
3969         side effect, unlike other attributes that are functions. (from code
3970         reading).
3971         (Remove_Side_Effects): Expressions that involve packed arrays or records
3972         are copied at the point of reference, and therefore must be marked as
3973         renamings of objects.
3974         (Is_Predefined_Dispatching_Operation): Return false if the operation is
3975         not a dispatching operation.
3976
3977         PR ada/18819
3978         (Remove_Side_Effects): Lift enclosing type conversion nodes for
3979         elementary types in all cases.
3980
3981 2006-02-13  Javier Miranda  <miranda@adacore.com>
3982
3983         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
3984         task types when accessing to the corresponding record type.
3985         Remove '!' in warning message.
3986
3987 2006-02-13  Olivier Hainque  <hainque@adacore.com>
3988
3989         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
3990         to avoid useless and space inefficient overalignments on targets where
3991         Max_Alignment is larger than 16.
3992
3993 2006-02-13  Pascal Obry  <obry@adacore.com>
3994
3995         * g-catiio.adb (Sec_Number): New type used to compute the number of
3996         seconds since 1-1-1970.
3997         (Image) [Natural]: The parameter was an Integer, as we can't deal with
3998         negative numbers (years, months...) it is better to have a Natural here.
3999         Code clean-up.
4000         (Image) [Number]: Change parameter from Long_Integer to Number.
4001         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
4002         overflow for dates past year 2038.
4003
4004 2006-02-13  Matthew Heaney  <heaney@adacore.com>
4005
4006         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
4007         Constraint_Error.
4008
4009 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4010
4011         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
4012         native platforms.
4013         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
4014         finalization can occur normally.
4015
4016 2006-02-13  Vincent Celier  <celier@adacore.com>
4017
4018         * gnatcmd.adb (Rules_Switches): New table
4019         (Add_To_Rules_Switches): New procedure
4020         (GNATCmd): For command CHECK, put all options following "-rules" in the
4021         Rules_Switches table. Append these -rules switches after the -cargs
4022         switches.
4023
4024 2006-02-13  Robert Dewar  <dewar@adacore.com>
4025
4026         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
4027         These two cases were generating incorrect output, and if this unit
4028         was built with checks on, generated a discriminant mismatch constraint
4029         error.
4030
4031 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4032             Robert Dewar  <dewar@adacore.com>
4033
4034         * lib-xref.adb (Get_Type_Reference): For a private type whose full
4035         view is an array type, indicate the component type as well, for
4036         navigation purposes.
4037         (Generate_Reference): Don't consider array ref on LHS to be a case
4038         of violating pragma Unreferenced.
4039         Do not give Ada 2005 warning except on real reference.
4040
4041 2006-02-13  Vincent Celier  <celier@adacore.com>
4042
4043         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
4044         main source, add switch -mdebug-main=_ada_ so that the executable can
4045         be debugged by the standard VMS debugger.
4046         (Gnatmake): Set No_Main_Subprogram to True when there is no main
4047         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
4048         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
4049         of the last source, as the binding and linking phases are never
4050         performed.
4051         Set all executable obsolete when rebuilding a library.
4052
4053         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
4054         options.
4055
4056 2006-02-13  Javier Miranda  <miranda@adacore.com>
4057
4058         PR ada/23973
4059
4060         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
4061         code to improve the error message reported when the program has
4062         declarations of abstract interface types and it is not compiled with
4063         the -gnat05 switch.
4064         (P_Access_Definition): Reorganize the code to improve the error
4065         message reported when the new Ada 2005 syntax for anonymous
4066         access types is used and the program is not compiled with the
4067         -gnat05 switch.
4068
4069 2006-02-13  Robert Dewar  <dewar@adacore.com>
4070
4071         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
4072         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
4073         (MODE_IN)
4074
4075 2006-02-13  Javier Miranda  <miranda@adacore.com>
4076
4077         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
4078         against source containing syntax errors.
4079
4080 2006-02-13  Vincent Celier  <celier@adacore.com>
4081
4082         * prj.adb (Reset): Initialize the first element of table Namings with
4083         the standard naming data.
4084
4085 2006-02-13  Vincent Celier  <celier@adacore.com>
4086
4087         * prj.ads (Error_Warning): New enumeration type
4088
4089         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
4090         unknown, use the location of the project to report the error.
4091         (When_No_Sources): New global variable
4092         (Report_No_Ada_Sources): New procedure
4093         (Check): New parameter When_No_Sources. Set value of global variable
4094         When_No_Sources,
4095         (Find_Sources): Call Report_No_Ada_Sources when appropriate
4096         (Get_Sources_From_File): Ditto
4097         (Warn_If_Not_Sources): Better warning messages indicating the unit name
4098         and the file name.
4099
4100         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
4101         Call Prj.Proc.Process with parameter When_No_Sources.
4102
4103         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
4104         Call Recursive_Check with parameter When_No_Sources.
4105         (Recursive_Check): New parameter When_No_Sources. Call itself and
4106         Prj.Nmsc.Check with parameter When_No_Sources.
4107         (Process): New parameter When_No_Sources. Call Check with parameter
4108         When_No_Sources.
4109         (Copy_Package_Declarations): New procedure to copy renamed parameters
4110         and setting the location of the declared attributes to the location
4111         of the renamed package.
4112         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
4113         packages.
4114
4115 2006-02-13  Vincent Celier  <celier@adacore.com>
4116
4117         * prj-makr.adb (Make): Preserve the comments from the original project
4118         file.
4119         When removing nodes (attributes Source_Dirs, Source_Files,
4120         Source_List_File and package Naming), save the comments and attach the
4121         saved comments to the newly created nodes.
4122         Do not add a with clause for the naming package if one already exists.
4123
4124 2006-02-13  Javier Miranda  <miranda@adacore.com>
4125             Gary Dismukes  <dismukes@adacore.com>
4126             Robert Dewar  <dewar@adacore.com>
4127
4128         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
4129
4130         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
4131         aliased entities to look for the overriden abstract interface
4132         subprogram.
4133         (Is_Interface_Subprogram): Complete documentation.
4134         (Check_Dispatching_Operation): Do not generate code to register the
4135         operation in the dispatch table if the source is compiled with
4136         restriction No_Dispatching_Calls.
4137         (Override_Dispatching_Operation): Check for illegal attempt to override
4138         No_Return procedure with procedure that is not No_Return
4139         (Check_Dispatching_Call): Suppress the check for an abstract operation
4140         when the original node of an actual is a tag-indeterminate attribute
4141         call, since the attribute, which must be 'Input, can never be abstract.
4142         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
4143         call to the Input attribute (even when rewritten).
4144         (Propagate_Tag): Augment comment to indicate the possibility of a call
4145         to an Input attribute.
4146
4147         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
4148         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
4149
4150         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
4151         No_Wide_Characters is no longer partition-wide
4152         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
4153         rather than GNAT
4154
4155 2006-02-13  Douglas Rupp  <rupp@adacore.com>
4156
4157         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
4158
4159 2006-02-13  Javier Miranda  <miranda@adacore.com>
4160
4161         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
4162         handles default-initialized components to keep separate the management
4163         of this feature but also avoid the unrequired resolution and
4164         expansion of components that do not have partially initialized
4165         values.
4166         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
4167         (Check_Bounds): Likewise.
4168         (Check_Length): Likewise.
4169
4170 2006-02-13  Javier Miranda  <miranda@adacore.com>
4171             Ed Schonberg  <schonberg@adacore.com>
4172
4173         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
4174         abstract interface type call analyze_and_resolve to expand the type
4175         conversion into the corresponding displacement of the
4176         reference to the base of the object.
4177         (Eval_Attribute, case Width): For systems where IEEE extended precision
4178         is supported, the maximum exponent occupies 4 decimal digits.
4179         (Accessibility_Message): Add '\' in 2-line warning message.
4180         (Resolve_Attribute): Likewise.
4181         (case Attribute_Access): Significantly revise checks
4182         for illegal access-to-subprogram Access attributes to properly enforce
4183         the rules of 3.10.2(32/2).
4184         Diagnose use of current instance with an illegal attribute.
4185
4186         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
4187         to a Node_Id.
4188         (Enclosing_Generic_Unit): New function to return a node's innermost
4189         enclosing generic declaration node.
4190         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
4191         (Type_Access_Level): The accessibility level of anonymous acccess types
4192         associated with discriminants is that of the current instance of the
4193         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
4194         (Compile_Time_Constraint_Error): Handle case of conditional expression.
4195         (Kill_Current_Values_For_Entity): New function
4196         (Enter_Name): Change formal type to Entity_Id
4197
4198 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
4199             Ed Schonberg  <schonberg@adacore.com>
4200             Gary Dismukes  <dismukes@adacore.com>
4201
4202         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
4203         Analyze_Compilation_Unit.
4204         Detect and warn on redundant with clauses detected in a package spec
4205         and/or body when -gnatwr is used.
4206         (Analyze_Context): Analyze config pragmas before other items
4207         (Install_Context_Items): Don't analyze config pragmas here
4208         (Install_Limited_Withed_Unit): Set limited entity of package in
4209         with_clause so that cross-reference information or warning messages on
4210         unused packages can be properly generated
4211         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
4212         has Error_Posted set. Prevent infinite loops in illegal programs.
4213         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
4214         to the point of the error test requiring the current unit to be private.
4215         This ensures that private with clauses are not exempted from the basic
4216         checking for being a descendant of the same library unit parent as a
4217         withed private descendant unit.
4218         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
4219         handle private with clauses properly, as well as to account for cases
4220         where the withed unit is a public descendant of a private ancestor
4221         (in which case the current unit must be a descendant of the private
4222         ancestor's parent). The spec comments were updated accordingly. Also,
4223         the old error message in this subprogram was replaced with error
4224         messages that mirror the errors tested and reported by
4225         Check_Private_Child_Unit.
4226         Parameter and variable names improved for readability.
4227         (Install_Limited_Context_Clauses): Remove test for a withed unit being
4228         private as the precondition for calling
4229         Check_Private_Limited_Withed_Unit since that subprogram has been
4230         revised to test public units as well as private units.
4231
4232 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4233             Robert Dewar  <dewar@adacore.com>
4234             Ed Schonberg  <schonberg@adacore.com>
4235             Javier Miranda  <miranda@adacore.com>
4236
4237         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
4238         that Scope_Stack.First = 1.
4239         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4240         were not always properly handled previously.
4241         (Formal_Entity): Complete rewrite, to handle properly some complex case
4242         with multiple levels of parametrization by formal packages.
4243         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
4244         to the corresponding derived type declaration for proper semantics.
4245
4246         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
4247         (Check_Component): Enforce restriction on components of
4248         unchecked_unions: a component in a variant cannot contain tasks or
4249         controlled types.
4250         (Unchecked_Union): Allow nested variants and multiple discriminants, to
4251         conform to AI-216.
4252         Add pragma Ada_2005 (synonym for Ada_05)
4253         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4254         were not always properly handled previously.
4255         Document that pragma Propagate_Exceptions has no effect
4256         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
4257         (Set_Convention_From_Pragma): Check that if a convention is
4258         specified for a dispatching operation, then it must be
4259         consistent with the existing convention for the operation.
4260         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
4261         longer required to specify an vtable-ptr component in the record. For
4262         compatibility reasons we leave the support for the previous definition.
4263         (Analyze_Pragma, case No_Return): Allow multiple arguments
4264
4265         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
4266         non-overrideen inherited operation with a controlling result as
4267         illegal only its implicit declaration comes from the derived type
4268         declaration of its result's type.
4269         (Check_Possible_Deferred_Completion): Relocate the object definition
4270         node of the subtype indication of a deferred constant completion rather
4271         than directly analyzing it. The analysis of the generated subtype will
4272         correctly decorate the GNAT tree.
4273         (Record_Type_Declaration): Check whether this is a declaration for a
4274         limited derived record before analyzing components.
4275         (Analyze_Component_Declaration): Diagnose record types  not explicitly
4276         declared limited when a component has a limited type.
4277         (Build_Derived_Record_Type): Code reorganization to check if some of
4278         the inherited subprograms of a tagged type cover interface primitives.
4279         This check was missing in case of a full-type associated with a private
4280         type declaration.
4281         (Constant_Redeclaration): Check that the subtypes of the partial and the
4282         full view of a constrained deferred constant statically match.
4283         (Mentions_T): A reference to the current type in an anonymous access
4284         component declaration  must be an entity name.
4285         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
4286         class_wide type to refer to full type, not to the incomplete one.
4287         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
4288         available. Required to give support to the certified run-time.
4289         (Analyze_Component_Declaration): In case of anonymous access components
4290         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
4291         (Process_Discriminants): For an access discriminant, use the
4292         discriminant specification as the associated_node_for_itype, to
4293         simplify accessibility checks.
4294
4295 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4296             Javier Miranda  <miranda@adacore.com>
4297
4298         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
4299         abstract interpretations on an operator, remove interpretations that
4300         yield Address or a type derived from it, if one of the operands is an
4301         integer literal.
4302         (Try_Object_Operation.Try_Primitive_Operation,
4303         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
4304         location when creating the new reference to a primitive or class-wide
4305         operation as a part of rewriting a subprogram call.
4306         (Try_Primitive_Operations): If context requires a function, collect all
4307         interpretations after the first match, because there may be primitive
4308         operations of the same type with the same profile and different return
4309         types. From code reading.
4310         (Try_Primitive_Operation): Use the node kind to choose the proper
4311         operation when a function and a procedure have the same parameter
4312         profile.
4313         (Complete_Object_Operation): If formal is an access parameter and prefix
4314         is an object, rewrite as an Access reference, to match signature of
4315         primitive operation.
4316         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
4317         by an expanded name with prefix Standard, when the operands are of an
4318         anonymous access type.
4319         (Remove_Abstract_Operations): If the operation is abstract because it is
4320         inherited by a user-defined type derived from Address, remove it as
4321         well from the set of candidate interpretations of an overloaded node.
4322         (Analyze_Membership_Op): Membership test not applicable to cpp-class
4323         types.
4324
4325 2006-02-13  Bob Duff  <duff@adacore.com>
4326
4327         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
4328         redundant use clauses.
4329         In particular, if the scope of two use clauses overlaps, but one is not
4330         entirely included in the other, we should not warn.  This can happen
4331         with nested packages.
4332         (Analyze_Subprogram_Renaming): Protect the compiler against previously
4333         reported errors. The bug was reported when the compiler was built
4334         with assertions enabled.
4335         (Find_Type): If the node is a 'Class reference and the prefix is a
4336         synchronized type without a corresponding record, return the type
4337         itself.
4338
4339 2006-02-13  Javier Miranda  <miranda@adacore.com>
4340
4341         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
4342         if this is the full-declaration associated with a private declaration
4343         that implement interfaces, then the private type declaration must be
4344         limited.
4345         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
4346         as aliased. The use of the 'access attribute is not available for such
4347         object (for this purpose the object should be explicitly marked as
4348         aliased, but being an anonymous type this is not possible).
4349
4350 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4351             Robert Dewar  <dewar@adacore.com>
4352
4353         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
4354         compilation unit is an elaboration scope.
4355         (Add_Task_Proc): Add '\' in 2-line warning message.
4356         (Activate_All_Desirable): Deal with case of unit with'ed by parent
4357
4358 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4359             Javier Miranda  <miranda@adacore.com>
4360
4361         * sem_type.adb (Write_Overloads): Improve display of candidate
4362         interpretations.
4363         (Add_One_Interp): Do not add to the list of interpretations aliased
4364         entities corresponding with an abstract interface type that is an
4365         immediate ancestor of a tagged type; otherwise we have a dummy
4366         conflict between this entity and the aliased entity.
4367         (Disambiguate): The predefined equality on universal_access is not
4368         usable if there is a user-defined equality with the proper signature,
4369         declared in the same declarative part as the designated type.
4370         (Find_Unique_Type): The universal_access equality operator defined under
4371         AI-230 does not cover pool specific access types.
4372         (Covers): If one of the types is a generic actual subtype, check whether
4373         it matches the partial view of the other type.
4374
4375 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4376
4377         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
4378         line. This is necessary to allow In_Extended_Main_Unit to provide
4379         correct results for itypes while writing out expanded source.
4380         (Close_File): No need to update the source_index_table here since it's
4381         now done for each line.
4382
4383 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4384             Robert Dewar  <dewar@adacore.com>
4385
4386         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
4387         preserve the source unit where the itype is declared, and prevent a
4388         backend abort.
4389         (Note_Implicit_Run_Time_Call): New procedure
4390         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
4391         E_Subprogram_Type)
4392
4393         * sprint.ads: Document use of $ for implicit run time routine call
4394
4395 2006-02-13  Quentin Ochem  <ochem@adacore.com>
4396
4397         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
4398         task name.
4399
4400 2006-02-13  Bob Duff  <duff@adacore.com>
4401
4402         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
4403         Scan_Unsigned, so we do not scan leading blanks and sign twice.
4404         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4405         raise Constraint_Error.
4406
4407         * s-vallli.adb (Scan_Long_Long_Integer): Call
4408         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
4409         do not scan leading blanks and sign twice.
4410         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4411         raise Constraint_Error.
4412
4413         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
4414         Scan_Long_Long_Unsigned): Split out most of the processing from
4415         Scan_Long_Long_Unsigned out into
4416         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
4417         This prevents scanning leading blanks and sign twice.
4418         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
4419         See RM-3.5(44).
4420
4421         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
4422         out most of the processing from Scan_Unsigned out into
4423         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
4424         This prevents scanning leading blanks and sign twice.
4425
4426         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
4427         use with Modular'Value attribute.
4428         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
4429         attribute.
4430
4431 2006-02-13  Robert Dewar  <dewar@adacore.com>
4432
4433         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
4434
4435 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
4436
4437         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
4438         (PPC VxWorks): Likewise.
4439         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
4440         (forced_callee): Make non-inlinable and non-pure.
4441         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
4442
4443 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4444             Ben Brosgol  <brosgol@adacore.com>
4445             Robert Dewar  <dewar@adacore.com>
4446
4447         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
4448         support.
4449         Document that gnatbind -M option is for cross environments only.
4450         Added description of using gnatmem to trace gnat rtl allocs and deallocs
4451         Add note on use of $ to label implicit run time calls
4452         Add documentation for -gnatyI (check mode IN)
4453         Updated chapter on compatibility with HP Ada
4454         VMS-oriented edits.
4455         Ran spell and corrected errors
4456         Add documentation for gnatbind -d and rework documentation of -D
4457         at the same time.
4458         Add subprogram/data elimination section.
4459         Minor editing of annex A.
4460         Add section for gnatcheck.
4461         Add documentation for restriction No_Dispatching_Calls
4462         Add documentation for pragma Ada_2005
4463         Remove mention of obsolete pragma Propagate_Exceptions
4464         Document that pragma Unreferenced can appear after DO in ACCEPT
4465         Clarify Pure_Function for library level units
4466         Mention Max/Min in connection with No_Implicit_Conditionals
4467         No_Wide_Characters restriction is no longer partition-wide
4468         Add a nice example for Universal_Literal_String attribute
4469         Document that pragma No_Return can take multiple arguments
4470
4471         * ug_words: Added entry for gnatcheck
4472
4473         * g-ctrl_c.ads (Install_Handler): Enhance comments
4474
4475         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
4476
4477         * g-trasym.ads: Add documentation on how to do off line symbolic
4478         traceback computation.
4479
4480         * s-fatgen.adb: Add comments for Unaligned_Valid
4481
4482         * stand.ads: Fix typo in comment
4483
4484 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4485
4486         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
4487
4488 2006-02-06  Roger Sayle  <roger@eyesopen.com>
4489
4490         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
4491
4492 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4493
4494         PR target/25926
4495         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
4496         implementation that calls __main.
4497
4498 2006-01-25  Peter O'Gorman  <peter@pogma.com>
4499
4500         PR bootstrap/25859
4501         * Makefile.in (GCC_LINK): Remove quotes.
4502         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
4503         or $(GCC_LINK).
4504
4505         (powerpc-darwin): Pass -shared-libgcc when building shared library.
4506
4507 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4508
4509         PR ada/24533
4510         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
4511
4512 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4513
4514         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
4515
4516 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4517
4518         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
4519         needed.
4520
4521 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4522
4523         * Make-lang.in: Update dependencies
4524
4525 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4526
4527         * Make-lang.in: Add rule for ada/exp_sel.o
4528
4529 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4530
4531         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
4532
4533 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
4534
4535         * gnatvsn.ads (Library_Version): Bump to version 4.2
4536         (ASIS_Version_Number): Bumped.
4537
4538 2005-12-09  Doug Rupp  <rupp@adacore.com>
4539
4540         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
4541         Ada bind file prefix on VMS from b$ to b__.
4542         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
4543         __init.
4544
4545         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
4546         Targparm.OpenVMS_On_Target.
4547         (Object_Suffix): Initialize with target object suffix.
4548         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
4549
4550         * butil.adb: Change some Hostparm.OpenVMS checks to
4551         Targparm.OpenVMS_On_Target.
4552
4553         * clean.adb: Change some Hostparm.OpenVMS checks to
4554         Targparm.OpenVMS_On_Target.
4555         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
4556         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
4557         Ada bind file prefix on VMS from b$ to b__.
4558
4559         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
4560         --GCC so that Get_Target_Parameters can find system.ads.
4561         (Gnatlink): Call Get_Target_Parameters in mainline.
4562         Initialize standard packages for Targparm.
4563         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
4564         (Process_Args): Also Check for object files with target object
4565         extension.
4566         (Make_Binder_File_Names): Create with target object extension.
4567         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
4568         to b__.
4569
4570         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
4571         Targparm.OpenVMS_On_Target.
4572         ({declaration},Build_Library,Check_Library): Change Ada bind file
4573         prefix on VMS from b$ to b__.
4574
4575         * osint-b.adb: Change some Hostparm.OpenVMS checks to
4576         Targparm.OpenVMS_On_Target.
4577         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
4578         b__.
4579
4580         * targext.c: New file.
4581
4582         * Makefile.in: add support for vxworks653 builds
4583         (../../vxaddr2line): gnatlink with targext.o.
4584         (TOOLS_LIBS): Move targext.o to precede libgnat.
4585         (init.o, initialize.o): Minor clean up in dependencies.
4586         (GNATLINK_OBJS): Add targparm.o, snames.o
4587         Add rules fo building targext.o and linking it explicitly with all
4588         tools.
4589         Also add targext.o to gnatlib.
4590
4591         * Make-lang.in: Add rules for building targext.o and linking it in
4592         with gnat1 and gnatbind.
4593         Add entry for exp_sel.o.
4594
4595         * osint.adb Change some Hostparm.OpenVMS checks to
4596         Targparm.OpenVMS_On_Target.
4597         (Object_File_Name): Use target object suffix.
4598
4599         * osint.ads (Object_Suffix): Remove, no longer used.
4600         (Target_Object_Suffix): Initialize with target object suffix.
4601
4602         * rident.ads: Add special exception to license.
4603
4604         * targparm.adb (Get_Target_Parameters): Set the value of
4605         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
4606         value.
4607         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
4608         
4609         * targparm.ads: Add special exception to license.
4610
4611         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
4612         function.
4613         (Copy_File): Make sure from file is closed if error on to file
4614         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
4615
4616         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
4617         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
4618
4619         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
4620         target object suffix.
4621
4622 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
4623             Quentin Ochem  <ochem@adacore.com>
4624             Florian Villoing  <villoing@adacore.com>
4625
4626         * a-taster.ads, a-taster.adb: New files.
4627
4628         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
4629         link to the version that does nothing. This way the task termination
4630         routine is not executed twice for the environment task when finishing
4631         because of an unhandled exception.
4632
4633         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
4634         handler because of an unhandled exception.
4635
4636         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
4637         System.Tasking.Utilities instead of that in System.Tasking.Stages.
4638
4639         * s-finimp.adb (initialization code): Modify the soft link for the
4640         finalization of the global list instead of Adafinal.
4641
4642         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
4643         non-tasking version of the soft link for task termination. We do
4644         nothing since if we are using the non-tasking version it
4645         means that the task termination functionality is not used.
4646         (Null_Finalize_Global_List): Add this null version for the procedure
4647         in charge of finalizing the global list for controlled objects.
4648         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
4649         instead for handling run-time termination in a more flexible way.
4650         (Adafinal_NT): This new procedure will take care of finalizing the
4651         global list for controlled objects if needed, but no tasking
4652         finalization.
4653
4654         * s-tarest.adb (Task_Lock): Do not try to lock again the
4655         Global_Task_Lock if we already own it. Otherwise, we get blocked in
4656         some run-time operations.
4657         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
4658         until all nested locks have been released.
4659         (Task_Wrapper): Call the fall-back task termination handler. It
4660         applies to all tasks but the environment task.
4661         (Finalize_Global_Tasks): Add the call for the task termination
4662         procedure for the environment task.
4663         (Task_Wrapper): suppress warnings around declaration of
4664         Secondary_Stack_Address.
4665
4666         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
4667         moved to the Common_ATCB record.
4668         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
4669         Common_ATCB record.
4670         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
4671         Common_ATCB record.
4672
4673         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
4674         Fall_Back_Handler, and Specific_Handler.
4675
4676         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
4677         defined in Ada.Task_Termination, to avoid circular dependencies.
4678         (Termination_Handler): Redefine this type here, alredy defined in
4679         Ada.Task_Termination, for avoiding circular dependencies.
4680         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
4681         for storing task termination handlers. In addition,
4682         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
4683         Common_ATCB because it is used by both the regular and the restricted
4684         run times.
4685         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
4686         Common_ATCB because it is used by both the regular and the restricted
4687         run times.
4688         (Common_ATCB): Added a dynamic task analyzer field.
4689
4690         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
4691         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
4692         (Task_Wrapper): Call the task termination handler. It applies to all
4693         tasks but the environment task.
4694         (Finalize_Global_Tasks): Call the task termination procedure for the
4695         environment task. The call to Finalize_Global_List is now performed
4696         using the soft links mechanism.
4697         (Task_Wrapper): added dynamic stack analysis.
4698
4699         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
4700         potentially blocking operations has been moved from
4701         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
4702         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
4703         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
4704         this run-time check.
4705
4706         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
4707         of task termination procedure.
4708         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
4709         link for the task termination procedure.
4710
4711         * bindusg.adb: (Bindusg): Added documentation for -u option.
4712
4713         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
4714         (Get_Main_C): Add handling of dynamic stack analysis.
4715         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
4716
4717         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
4718         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
4719         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
4720
4721         * opt.ads: Added flags used by dynamic stack measurement.
4722         (Max_Line_Length): Remove (not used anymore)
4723
4724         * s-io.ads, s-io.adb (Standard_Error): new subprogram
4725         (Standart_Output): new subprogram
4726         (Set_Output): new subprogram
4727         (Put): now uses the value of Current_Out to know if the output has to be
4728         send to stderr or stdout.
4729         
4730         * s-stausa.ads: Complete implementation.
4731
4732         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
4733         
4734         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
4735         list of Ada 05 files.
4736         (GNAT Library Units): Add AltiVec files.
4737
4738         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
4739         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
4740         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
4741
4742 2005-12-09  Nicolas Setton  <setton@adacore.com>
4743
4744         * adaint.c (__gnat_locate_regular_file): Return immediately if
4745         file_name is empty.
4746
4747 2005-12-09  Javier Miranda  <miranda@adacore.com>
4748             Hristian Kirtchev  <kirtchev@adacore.com>
4749
4750         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
4751         to the specification because the frontend generates code that uses this
4752         subprogram.
4753         (Set_Interface_Table): Add missing assertion.
4754         Update documentation describing the run-time structure.
4755         (Displace): New subprogram that displaces the pointer to the object
4756         to reference one of its secondary dispatch tables.
4757         (IW_Membership): Modified to use the new table of interfaces.
4758         (Inherit_TSD): Modified to use the new table of interfaces.
4759         (Register_Interface_Tag): Use the additional formal to fill the
4760         contents of the new table of interfaces.
4761         (Set_Interface_Table): New subprogram that stores in the TSD the
4762         pointer to the table of interfaces.
4763         (Set_Offset_To_Top): Use the additional formal to save copy of
4764         the offset value in the table of interfaces.
4765         Update structure of GNAT Primary and Secondary dispatch table diagram.
4766         Add comment section on GNAT dispatch table prologue.
4767         (Offset_To_Signature): Update the constant value of the Signature field.
4768         (Dispatch_Table): Update comment on hidden fields in the prologue.
4769         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
4770         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
4771         the type of formal parameter T to Tag, introduce additional assertions.
4772         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
4773         conversion.
4774         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
4775
4776         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
4777         in all the calls to Expand_Interface_Thunk. Instead of referencing the
4778         record component containing the tag of the secondary dispatch table we
4779         have to use the Offset_To_Top run-time function to get this information;
4780         otherwise if the pointer to the base of the object has been displace
4781         we get a wrong value if we use the 'position attribute.
4782
4783         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
4784         all the calls to Expand_Interface_Thunk.
4785         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
4786         interfaces; hence the call to Set_Interface_Table was clearly wrong.
4787         (Collect_All_Interfaces): Modify the internal subprogram Collect to
4788         ensure that the interfaces implemented by the ancestors are placed
4789         at the header of the generated list.
4790         (Expand_Interface_Conversion): Handle the case in which the displacement
4791         associated with the interface conversion is not statically known. In
4792         this case we generate a call to the new run-time subprogram Displace.
4793         (Make_DT): Generate and fill the new table of interfaces.
4794         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
4795         Get_Tagged_Kind and Set_Tagged_Kind.
4796         (Tagged_Kind): New function that determines the tagged kind of a type
4797         with respect to limitedness and concurrency and returns a reference to
4798         RE_Tagged_Kind.
4799         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
4800         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
4801         primary dispatch table for a type.
4802         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
4803         secondary dispatch table respectively of a tagged type.
4804
4805         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
4806         (Expand_Interface_Conversion): New subprogram to indicate if the
4807         displacement of the type conversion is statically known.
4808         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
4809
4810         * rtsfind.ads (RE_Offset_To_Top): New entity
4811         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
4812         accessible to users.
4813         (Re_Displace): New entity
4814         (RE_Interface_Data): New entity
4815         (RE_Set_Interface_Data): New_Entity
4816         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
4817         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
4818         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
4819         RE_TK_Tagged, RE_TK_Task.
4820
4821         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
4822         Init_Secondary_Tags_Internal to allow its use with interface types and
4823         also to generate the code for the new additional actual required
4824         by Set_Offset_To_Top.
4825         (Build_Init_Statements): In case of components associated with abstract
4826         interface types there is no need to generate a call to its IP.
4827         (Freeze_Record_Type): Generate Select Specific Data tables only for
4828         concurrent types.
4829         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
4830         the bodies and specifications of the predefined primitive operations
4831         dealing with dispatching selects and abort, 'Callable, 'Terminated only
4832         for concurrent types.
4833
4834         * exp_sel.ads, exp_sel.adb: New files.
4835
4836         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
4837         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
4838         properly protected objects and attach handler in the case of the
4839         restricted profile.
4840         Move embeded package Select_Expansion_Utilities into a separate external
4841         package.
4842         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
4843         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
4844         (Build_K, Build_S_Assignment): New subprograms, part of the select
4845         expansion utilities.
4846         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
4847         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
4848         where the trigger is a dispatching procedure of a limited tagged type.
4849
4850 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4851
4852         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
4853         pointer initialization values. Make a SAVE_EXPR instead. Add comments
4854         about the use and expansion of SAVE_EXPRs in the various possible
4855         renaming handling cases.
4856         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
4857         abusing DECL_FCONTEXT.
4858
4859 2005-12-09  Matthew Heaney  <heaney@adacore.com>
4860
4861         * a-convec.adb (Merge): Added assertions to check whether vector params
4862         are sorted.
4863
4864         * a-coinve.adb (Merge): Added assertions to check whether vector params
4865         are sorted.
4866
4867         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
4868         draft.
4869         (Cursor'Read): raises PE
4870
4871         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
4872         to its default value.
4873
4874         * a-cihama.adb: Manually check whether cursor's key and elem are
4875         non-null
4876
4877         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
4878         (Merge): Assert that target and source lists are in order
4879         (Swap): Declare non-const temporaries, to pass to Splice
4880
4881         * a-cdlili.ads: (Splice): Changed param name and param mode
4882
4883         * a-cdlili.adb: (Splice): Changed param name and param mode
4884         (Merge): Assert that target and source lists are in order
4885         (Swap): Declare non-const temporaries, to pass to Splice
4886
4887         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
4888         (Write): declare Stream param as not null
4889
4890         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
4891         an exception message.
4892
4893 2005-12-09  Thomas Quinot  <quinot@adacore.com>
4894             Robert Dewar  <dewar@adacore.com>
4895
4896         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
4897         which is the absolute maximum length we can support.
4898
4899         * frontend.adb: For the processing of configuration pragma files,
4900         remove references to Opt.Max_Line_Length, which is not checked anymore.
4901
4902         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
4903         length.
4904
4905         * scn.adb, scng.adb: 
4906         Always check line length against the absolute supported maximum,
4907         Hostparm.Max_Line_Length.
4908
4909         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
4910         value for the maximum line length is Max_Line_Length (not
4911         Column_Number'Last).
4912         Minor error msg update
4913         (Set_Style_Check_Options): New interface returning error msg
4914         Minor code reorganization (processing for 'M' was out of alpha order)
4915
4916         * switch-c.adb: New interface for Set_Style_Check_Options
4917
4918         * stylesw.ads (Set_Style_Check_Options): New interface returning error
4919         msg.
4920
4921 2005-12-09  Javier Miranda  <miranda@adacore.com>
4922
4923         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
4924         with IP subprogram were only supported if there were limited types.
4925
4926         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
4927         records with IP subprogram were only supported if there were limited
4928         types.
4929
4930 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4931             Eric Botcazou  <ebotcazou@adacore.com>
4932
4933         * trans.c (tree_transform, emit_check): Adjust calls to
4934         build_call_raise, passing the now expected GNAT_NODE argument.
4935
4936         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
4937         source line information than what the current global locus indicates
4938         when appropriate.
4939
4940         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
4941         field has overflowed.
4942         (build_call_raise): Add a GNAT_NODE argument to convey better source
4943         line information than what the current global locus indicates when
4944         appropriate.
4945         (build_component_ref): Adjust call to build_call_raise.
4946
4947 2005-12-09  Pascal Obry  <obry@adacore.com>
4948
4949         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
4950         the iterator is quitting iteration on parent directory.
4951
4952 2005-12-09  Javier Miranda  <miranda@adacore.com>
4953
4954         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
4955         and the assignment to a class-wide object, before the assignment we
4956         generate a run-time check to ensure that the tag of the Target is
4957         covered by the tag of the source.
4958
4959 2005-12-09  Robert Dewar  <dewar@adacore.com>
4960
4961         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
4962         parameter in call to Image_Wide_Character.
4963
4964         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
4965         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
4966         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
4967         annoying FFFE/FFFF inconsistency.
4968
4969 2005-12-09  Robert Dewar  <dewar@adacore.com>
4970             Javier Miranda  <miranda@adacore.com>
4971             Ed Schonberg  <schonberg@adacore.com>
4972
4973         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
4974         of type conversion.
4975         (Find_Interface): New subprogram that given a tagged type and one of its
4976         component associated with the secondary table of an abstract interface
4977         type, return the entity associated with such abstract interface type.
4978         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
4979         base type to create anonymous subtype, because entity may be a locally
4980         declared subtype or generic actual.
4981         (Find_Interface): New subprogram that given a tagged type and one of its
4982         component associated with the secondary table of an abstract interface
4983         type, return the entity associated with such abstract interface type.
4984
4985         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
4986         conversion cannot be handled at compile time. In this case we pass this
4987         information to the expander to generate the appropriate code.
4988
4989 2005-12-09  Robert Dewar  <dewar@adacore.com>
4990             Ed Schonberg  <schonberg@adacore.com>
4991             Gary Dismukes  <dismukes@adacore.com>
4992             Javier Miranda  <miranda@adacore.com>
4993             Hristian Kirtchev  <kirtchev@adacore.com>
4994
4995         * einfo.adb (Itype_Printed): New flag
4996         (Is_Limited_Type): Derived types do not inherit limitedness from
4997         interface progenitors.
4998         (Is_Return_By_Reference_Type): Predicate does not apply to limited
4999         interfaces.
5000
5001         * einfo.ads (Itype_Printed): New flag
5002         Move Is_Wrapper_Package to proper section
5003         Add missing Inline for Is_Volatile
5004
5005         * output.ads, output.adb (Write_Erase_Char): New procedure
5006         (Save/Restore_Output_Buffer): New procedures
5007         (Save/Restore_Output_Buffer): New procedures
5008
5009         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
5010         Add missing support for anonymous access type
5011         (Write_Id): Insert calls to Write_Itype
5012         (Write_Itype): New procedure to output itypes
5013
5014         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
5015         use of "limited" in declaration.
5016
5017         * sinfo.ads, sinfo.adb: 
5018         Formal derived types can carry an explicit "limited" indication.
5019
5020         * sem_ch3.adb: Add with and use of Targparm.
5021         (Create_Component): If Frontend_Layout_On_Target is True and the
5022         copied component does not have a known static Esize, then reset
5023         the size and positional fields of the new component.
5024         (Analyze_Component_Declaration): A limited component is
5025         legal within a protected type that implements an interface.
5026         (Collect_Interfaces): Do not add to the list the interfaces that
5027         are implemented by the ancestors.
5028         (Derived_Type_Declaration): If the parent of the full-view is an
5029         interface perform a transformation of the tree to ensure that it has
5030         the same parent than the partial-view. This simplifies the job of the
5031         expander in order to generate the correct object layout, and it is
5032         needed because the list of interfaces of the full-view can be given in
5033         any order.
5034         (Process_Full_View): The parent of the full-view does not need to be
5035         a descendant of the parent of the partial view if both parents are
5036         interfaces.
5037         (Analyze_Private_Extension_Declaration): If declaration has an explicit
5038         "limited" the parent must be a limited type.
5039         (Build_Derived_Record_Type): A derived type that is explicitly limited
5040         must have limited ancestor and progenitors.
5041         (Build_Derived_Type): Ditto.
5042         (Process_Full_View): Verify that explicit uses of "limited" in partial
5043         and full declarations are consistent.
5044         (Find_Ancestor_Interface): Remove function.
5045         (Collect_Implemented_Interfaces): New procedure used to gather all
5046         implemented interfaces by a type.
5047         (Contain_Interface): New function used to check whether an interface is
5048         present in a list.
5049         (Find_Hidden_Interface): New function used to determine whether two
5050         lists of interfaces constitute a set equality. If not, the first
5051         differing interface is returned.
5052         (Process_Full_View): Improve the check for the "no hidden interface"
5053         rule as defined by AI-396.
5054
5055 2005-12-09  Robert Dewar  <dewar@adacore.com>
5056
5057         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
5058         types, not on record subtypes.
5059         (Freeze_Entity): Code cleanup. Add barrier to the loop
5060         that generates the references for primitive operations. This allows to
5061         remove an unnecessary exception handler.
5062         Code reformatting and comment clean ups.
5063
5064 2005-12-09  Vincent Celier  <celier@adacore.com>
5065
5066         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
5067         If GNAT CHECK is called with a project file, but with no
5068         source on the command line, call gnatcheck with all the compilable
5069         sources of the project.
5070         Take into account the new command Check, for gnatcheck. Treat as for
5071         other ASIS tools: take into account project, specific package Check and
5072         Compiler switches.
5073         For ASIS tools, add the switches in package Compiler for
5074         the invocation of the compiler.
5075
5076         * prj-attr.adb: Add package Check and its attributes
5077
5078         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
5079
5080         * vms_conv.adb (Initialize): Change Params of command Check to
5081         unlimited files.
5082         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
5083         Add data for new command Check
5084
5085         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
5086         ELIM.
5087         Add qualifiers for Check command options
5088         (Command_Type): New command Check
5089
5090 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5091
5092         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
5093         command line switch overruns the output buffer.
5094
5095 2005-12-09  Robert Dewar  <dewar@adacore.com>
5096
5097         * sem_prag.adb: Processing for new pragma Complete_Representation
5098         (Analyze_Pragma, case Debug): Implement two argument form.
5099
5100         * par-prag.adb: Entry for new pragma Complete_Representation
5101         (Prag, case Debug): Recognize two argument form of pragma Debug
5102         New interface for Set_Style_Check_Options.
5103
5104         * sem_ch13.adb: Implement new pragma Complete_Representation.
5105
5106         * snames.adb, snames.ads, snames.h: Entry for new pragma
5107         Complete_Representation.
5108
5109 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5110
5111         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
5112         available user-specified stream attributes on limited parameters to
5113         also test the type directly rather than only its underlying type (for
5114         Ada 95) and, in the case of Ada 2005, to check that the user-specified
5115         attributes are visible at the point of the subprogram declaration.
5116         For Ada 2005, the error message is modified to indicate that the
5117         type's stream attributes must be visible (again, only for -gnat05).
5118
5119 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5120
5121         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
5122         anonymous access types.
5123
5124         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
5125         matching of anonymous access types and anonymous access to subprogram
5126         types. 'R'M 4.9.1 (2/2).
5127
5128 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5129
5130         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
5131         rule prematurely when operands are universal, remaining ambiguities
5132         will be removed during resolution.
5133         Code cleanup.
5134
5135         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
5136         that are Ada 2005 functions.
5137         (Has_Abstract_Interpretation): Subsidiary to
5138         Remove_Conversions, to remove ambiguities caused by abstract operations
5139         on numeric types when operands are universal.
5140
5141 2005-12-09  Robert Dewar  <dewar@adacore.com>
5142
5143         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
5144         for case where spec is categorized.
5145
5146 2005-12-09  Javier Miranda  <miranda@adacore.com>
5147
5148         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
5149         types use the corresponding record type. This was not needed before
5150         the implementation of Ada 2005 synchronized types because
5151         concurrent types were never tagged types in Ada 95.
5152
5153 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5154
5155         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
5156         first subtype of the type of the expression to verify that it is a
5157         legal Time type.
5158
5159 2005-12-09  Robert Dewar  <dewar@adacore.com>
5160
5161         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
5162         decoded names.
5163
5164 2005-12-09  Quentin Ochem  <ochem@adacore.com>
5165             Robert Dewar  <dewar@adacore.com>
5166             Ed Falis  <falis@adacore.com>
5167             Florian Villoing  <villoing@adacore.com>
5168             Thomas Quinot  <quinot@adacore.com>
5169             Arnaud Charlet  <charlet@adacore.com>
5170
5171         * gnat_ugn.texi: Created section "Stack Related Tools"
5172         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
5173         "Stack Related Tools"
5174         Added subsection "Static Stack Usage Analysis"
5175         Added subsection "Dynamic Stack Usage Analysis"
5176         Include documentation of itypes in sprint listing (-gnatG)
5177         Documented gnatbind -D switch (default sec stack size for fixed sec
5178         stacks).
5179         Added Interrupt_State and Persistent_BSS to list of configuration
5180         pragmas.
5181         Add missing doc for maximum value of nnn in -gnatyMnnn
5182
5183         * gnat_rm.texi: Document the AltiVec binding.
5184         Add documentation for pragma Complete_Representation
5185         Shortened an overly long line (> 79 chars)
5186         Clarify documentation of unchecked conversion in implementation
5187         defined cases.
5188         Document two argument form of pragma Debug
5189
5190         * types.ads (Column_Number): Update documentation.
5191
5192         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
5193         library level Finalize_Storage_Only objects (these are not attached to
5194         any finalization list).
5195
5196         * system-mingw.ads: (Underlying_Priorities): Update comment.
5197
5198 2005-12-09  Robert Dewar  <dewar@adacore.com>
5199
5200         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
5201         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
5202         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
5203         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
5204         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
5205         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
5206         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
5207         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
5208         reformatting.
5209
5210 2005-12-09  Robert Dewar  <dewar@adacore.com>
5211
5212         * s-vaflop-vms-alpha.adb: (Ne_F): New function
5213         (Ne_G): New function
5214
5215         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
5216         for tag assignment.
5217         (Rewrite_Comparison): Handle case where operation is not a comparison
5218         and ignore, and also handle type conversion case.
5219
5220 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5221
5222         * exp_aggr.ads: Fix typo in comment.
5223         ???-mark Convert_Aggr_In_Assignment as needing documentation.
5224
5225 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5226
5227         * layout.adb: Replace various uses of byte by storage unit throughout.
5228         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
5229         static size, convert to storage units before returning, to conform to
5230         spec.
5231
5232 2005-12-09  Matthew Gingell  <gingell@adacore.com>
5233
5234         * g-exctra.ads: Fix typo in comment.
5235
5236 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5237
5238         * utils.c: Minor reformatting.
5239
5240 2005-12-09  Robert Dewar  <dewar@adacore.com>
5241
5242         * g-soccon.ads: 
5243         Further comment fixes to make the status of the default file clear
5244
5245         * s-bitops.adb: Clarify comment for Bits_Array
5246
5247 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5248
5249         * Make-lang.in (ada.install-normal): Remove.
5250
5251 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5252
5253         * Make-lang.in: Remove all dependencies on s-gtype.
5254
5255 2005-12-05  Richard Guenther  <rguenther@suse.de>
5256
5257         * utils.c (convert): Use fold_convert where appropriate.
5258
5259 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
5260
5261         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
5262         a period is meant.
5263
5264 2005-12-02  Richard Guenther  <rguenther@suse.de>
5265
5266         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
5267
5268 2005-12-01  Roger Sayle  <roger@eyesopen.com>
5269
5270         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
5271         nodes.
5272
5273 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
5274
5275         * mlib-prj.adb (Build_Library): Initialize Delete.
5276
5277 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
5278
5279         * socket.c: Add extern int h_errno for rtems since networking header
5280         files are not available at this point in a tool bootstrap. Newlib
5281         only has basic C library header files.
5282
5283 2005-11-19  Richard Guenther  <rguenther@suse.de>
5284         Roger Sayle  <roger@eyesopen.com>
5285
5286         PR ada/23717
5287         * misc.c (internal_error_function): Don't use vsprintf to format
5288         the error message text, instead use pp_format_text and the new
5289         pretty printer APIs.  This allows handling of %qs, %w, etc.
5290
5291 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
5292
5293         PR ada/24857
5294         * Makefile.in: Use s-auxdec-empty for RTEMS.
5295
5296 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5297
5298         PR ada/22333
5299         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
5300         a temporary if taking the address of something that is neither
5301         reference, declaration, or constant, since the gimplifier
5302         can't handle that case.
5303
5304 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
5305
5306         PR ada/24857
5307         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
5308         
5309 2005-11-16  Richard Guenther  <rguenther@suse.de>
5310
5311         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
5312
5313 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
5314
5315         PR ada/24855
5316         * raise-gcc.c: Add missing stdarg.h include.
5317  
5318 2005-11-16  Richard Guenther  <rguenther@suse.de>
5319
5320         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
5321         (ada/misc.o): Likewise.
5322
5323 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5324
5325         * g-soccon.ads: Minor reformatting. Update comments.
5326
5327         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
5328         gain visibility on the declaration of struct timeval.
5329
5330         * g-soccon-freebsd.ads,
5331         g-soccon-darwin.ads,
5332         g-soccon-tru64.ads,
5333         g-soccon-aix.ads,
5334         g-soccon-irix.ads,
5335         g-soccon-hpux.ads,
5336         g-soccon-solaris.ads,
5337         g-soccon-vms.ads,
5338         g-soccon-mingw.ads,
5339         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
5340
5341         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
5342         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
5343         g-soccon-linux-x86.ads: New files.
5344
5345         * g-socthi-mingw.adb: 
5346         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
5347
5348         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
5349         (time_t, suseconds_t): New types constructed to match the tv_sec
5350         and tv_usec fields of C struct timeval.
5351         (Timeval): Construct structure in terms of the new types.
5352         (Host_Errno): New function (imported from socket.c), returns last hosts
5353         database error.
5354
5355         * g-socthi-vxworks.adb:  Add error handling circuitry.
5356
5357         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
5358         components of struct timeval.
5359         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
5360         (Check_Selector): In error conditions, clear internal socket sets to
5361         avoid a memory leak.
5362         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
5363         Send_Timeout, Receive_Timeout.
5364
5365         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
5366         the tv_sec and tv_usec fields of C struct timeval.
5367         (Timeval): Construct structure in terms of the new types.
5368         (Host_Errno): New function (imported from socket.c), returns last hosts
5369         database error.
5370
5371         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
5372         hosts database last error code.
5373
5374         * gen-soccon.c: Complete value expansion should not be performed on
5375         TARGET, as it has the form of a math expression, and some components
5376         may be platform-defined macros.
5377         For VxWorks, generate the OK and ERROR values.
5378         New constants giving the sizes of the components of C struct timeval.
5379
5380 2005-11-14  Robert Dewar  <dewar@adacore.com>
5381             Ed Schonberg  <schonberg@adacore.com>
5382
5383         PR ada/18434
5384
5385         * types.ads: Include All_Checks in Suppress_Array
5386
5387         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
5388         not(a=b), since we no longer do this rewriting, and hence it is not
5389         needed.
5390         (Elaboration_Checks_Suppressed): Add special casing to
5391         deal with different cases of static and dynamic elaboration checks (all
5392         checks does not count in the first case, but does in the second).
5393         (Expr_Known_Valid): Do not assume that the result of any arbitrary
5394         function call is valid, since this is not the case.
5395         (Ensure_Valid): Do not apply validity check to a real literal
5396         in a universal or fixed context
5397
5398         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
5399         elementary types using the operator in standard. It is cleaner not to
5400         modify the programmers intent, especially in the case of floating-point.
5401         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
5402         it did not matter because we always rewrote a/=b to not(a=b).
5403         (Expand_Allocator_Expression): For an allocator expression whose nominal
5404         subtype is an unconstrained packed type, convert the expression to its
5405         actual constrained subtype.
5406         Implement warning for <= or >= where < or > not possible
5407         Fix to Vax_Float tests (too early in many routines, causing premature
5408         Vax_Float expansions.
5409
5410         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
5411         to be used with packages and generic packages as well as with
5412         subprograms.
5413         (Suppress): Set All_Checks, but not Elaboration_Check, for case
5414         of pragma Suppress (All_Checks)
5415         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
5416         a string literal for precise control over warnings.
5417         Avoid raise of pragma in case of unrecognized pragma and just return
5418         instead.
5419
5420         * sem_prag.ads: Minor reformatting
5421
5422         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
5423         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
5424         Switch. Do not handle any exception.
5425         Include -gnatwx as part of -gnatg (warn on redundant parens)
5426         Allow optional = after -gnatm
5427         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
5428         longer sets Elaboration_Checks.
5429         Code to set warning mode moved to Sem_Warn
5430         so that it can be shared by pragma processing.
5431
5432         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
5433         statement.
5434
5435         * s-taprop-solaris.adb: 
5436         Change some <= to =, to avoid new warning
5437
5438         * a-exexda.adb, prj-proc.adb: 
5439         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
5440         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
5441
5442 2005-11-14  Robert Dewar  <dewar@adacore.com>
5443
5444         * exp_vfpt.adb: Handle /= case
5445         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
5446         so that we do not get duplicate scaling for fixed point conversions.
5447
5448         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
5449
5450 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5451
5452         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
5453         Increase default priority on Lynx from 15 to 17, and meet the Ada
5454         requirement that Default_Priority be ((Priority'First +
5455         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
5456
5457 2005-11-14  Vincent Celier  <celier@adacore.com>
5458
5459         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5460         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
5461         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
5462         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
5463         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
5464         mlib-tgt-lynxos.adb (DLL_Prefix): New function
5465
5466 2005-11-14  Doug Rupp  <rupp@adacore.com>
5467
5468         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
5469         private part.
5470
5471 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5472
5473         * s-traces-default.adb, s-trafor-default.ads,
5474         s-tratas-default.adb: Fix compilation errors.
5475
5476 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5477
5478         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
5479         raising the exception so the memory used is freed.
5480
5481 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5482
5483         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
5484         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
5485         (convert_address): Update comments and list of platforms using this.
5486
5487         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
5488         no longer used.
5489
5490 2005-11-14  Pascal Obry  <obry@adacore.com>
5491             Vincent Celier  <celier@adacore.com>
5492
5493         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
5494         GNAT.Command_Line.
5495
5496         * memroot.adb: Remove redundant with/use clause on
5497         System.Storage_Elements.
5498
5499 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5500
5501         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
5502         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
5503         related code to a-exexpr.adb
5504         (Save_Occurrence_And_Private): Move GCC EH related code to
5505         a-exexpr-gcc.adb
5506         (Raise_Current_Excep): Add new variable Id with pragma
5507         volatile, to ensure that the variable lives on stack.
5508
5509         * a-exexpr-gcc.adb, raise-gcc.c: New file.
5510
5511         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
5512         from a-except.adb.
5513         Move GCC EH related code to a-exexpr-gcc.adb
5514
5515         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
5516         64-bit Solaris
5517         Split the Linux version of g-soccon into separate variants for 32 and 64
5518         bit platforms.
5519         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
5520         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
5521         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
5522         of host variable $(RANLIB_FLAGS).
5523         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
5524         Code clean up: remove unused/obsolete targets.
5525         (EH_MECHANISM): New variable introduced to differenciate between the
5526         two EH mechanisms statically.
5527         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
5528         (LIBGNAT_OBJS): Add raise-gcc.o
5529         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
5530         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
5531         supports VxWorks 6 RTPs.
5532         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
5533         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
5534
5535         * raise.c: Move all GCC EH-related routines to raise-gcc.c
5536
5537 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5538
5539         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
5540         deferral level, when abort is not allowed, to a later stage (the
5541         Task_Wrapper).
5542         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
5543         it will not get changed by the generated code. It was previously done
5544         in Create_Task.
5545
5546 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5547             Olivier Hainque  <hainque@adacore.com>
5548             Eric Botcazou  <ebotcazou@adacore.com>
5549
5550         * decl.c:
5551         Factor common code to build a storage type for an unconstrained object
5552         from a fat or thin pointer type and a constrained object type.
5553         (annotate_value): Handle BIT_AND_EXPR.
5554         (annotate_rep): Don't restrict the back annotation of inherited
5555         components to the type_annotate_only case.
5556         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
5557         we are not defining the type.
5558         <E_Record_Type>: Likewise.
5559         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
5560         to get advantage of the new maybe_stabilize_reference interface, to
5561         ensure that what we reference is indeed stabilized instead of relying
5562         on assumptions on what the stabilizer does.
5563         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
5564         type imported through a limited_with clause, use its non-limited view.
5565         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
5566         differentiation.
5567         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
5568         of #if sections + explicit comparisons of convention identifiers.
5569         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
5570         before early-returning for certain types when code generation is
5571         disabled.
5572         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
5573         nullification of gnu_expr we do for objects with address clause and
5574         that we are not defining.
5575         (elaborate_expression_1): Do not create constants when creating
5576         variables needed by the debug info: the dwarf2 writer considers that
5577         CONST_DECLs is used only to represent enumeration constants, and emits
5578         nothing for them.
5579         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
5580         object with an address clause into an indirect reference, drop the
5581         initializing expression.
5582         Include "expr.h".
5583         (STACK_CHECK_BUILTIN): Delete.
5584         (STACK_CHECK_PROBE_INTERVAL): Likewise.
5585         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
5586         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
5587         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
5588         corresponding to the renamed object as ignored for debugging purposes.
5589
5590         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
5591         related): For a prefix that is a dereference of a fat or thin pointer,
5592         if there is an actual subtype provided by the front-end, use that
5593         subtype to build an actual type with bounds template.
5594         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
5595         is provided by the front-end, use that subtype to compute the size of
5596         the deallocated object.
5597         (gnat_to_gnu): When adding a statement into an elaboration procedure,
5598         check for a potential violation of a No_Elaboration_Code restriction.
5599         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5600         with extra arguments to control whether to recurse through non-values
5601         and to let the caller know if the stabilization has succeeded.
5602         (gnat_stabilize_reference): Now a simple wrapper around
5603         maybe_stabilize, for common uses without restriction on lvalues and
5604         without need to check for the success indication.
5605         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
5606         pass false instead of 0 as the FORCE argument which is a bool.
5607         (Identifier_to_gnu): Remove checks ensuring that an renamed object
5608         attached to a renaming pointer has been properly stabilized, as no such
5609         object is attached otherwise.
5610         (call_to_gnu): Invoke create_var_decl to create the temporary when the
5611         function uses the "target pointer" return mechanism.
5612         Reinstate conversion of the actual to the type of the formal
5613         parameter before any other specific treatment based on the passing
5614         mechanism. This turns out to be necessary in order for PLACEHOLDER
5615         substitution to work properly when the latter type is unconstrained.
5616
5617         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
5618         common pattern.
5619         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5620         with extra arguments to control whether to recurse through non-values
5621         and to let the caller know if the stabilization has succeeded.
5622
5623         * utils2.c (gnat_build_constructor): Only sort the fields for possible
5624         static output of record constructor if all the components are constant.
5625         (gnat_build_constructor): For a record type, sort the list of field
5626         initializers in increasing bit position order.
5627         Factor common code to build a storage type for an unconstrained object
5628         from a fat or thin pointer type and a constrained object type.
5629         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
5630         types variants, and process special cases of VIEW_CONVERT expressions
5631         as their NOP_EXPR counterpart to ensure we get to the
5632         CORRESPONDING_VARs associated with CONST_DECls.
5633         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
5634         on the right-hand side.
5635
5636         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
5637         a common pattern.
5638         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
5639         are converting back to its original type.
5640         (convert) <JM input>: Fallthrough regular conversion code instead of
5641         extracting the object if converting to a type variant.
5642         (create_var_decl): When a variable has an initializer requiring code
5643         generation and we are at the top level, check for a potential violation
5644         of a No_Elaboration_Code restriction.
5645         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
5646         SIZE and SIZE_UNIT which we need for later back-annotations.
5647         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
5648         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
5649         is an unchecked union.
5650         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
5651         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
5652         main variant, just replace the VIEW_CONVERT_EXPR.
5653         <UNION_TYPE>: Revert 2005-03-02 change.
5654
5655         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
5656
5657         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
5658
5659 2005-11-14  Matthew Heaney  <heaney@adacore.com>
5660
5661         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
5662         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
5663         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
5664         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
5665         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5666         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
5667         Compiles against the spec for ordered maps described in sections
5668         A.18.6 of the most recent (August 2005) AI-302 draft.
5669
5670 2005-11-14  Olivier Hainque  <hainque@adacore.com>
5671
5672         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
5673         to ensure bias adjustments take place when need be and to prevent
5674         occurrences of intermediate overflows.
5675
5676 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5677             Olivier Hainque  <hainque@adacore.com>
5678
5679         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
5680         ia64 HP-UX.
5681
5682         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
5683         tracebacks on ia64 HP-UX and provide explanatory comment.
5684         Enable backtraces on ia64 GNU/Linux.
5685         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
5686         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
5687
5688 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
5689             Javier Miranda  <miranda@adacore.com>
5690
5691         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
5692         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
5693         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
5694         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
5695
5696         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
5697         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
5698         assertions).
5699
5700         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
5701         subprogram that generates the external name associated with a
5702         secondary dispatch table.
5703         (Get_Secondary_DT_External_Name): New subprogram that generates the
5704         external name associated with a secondary dispatch table.
5705
5706 2005-11-14  Emmanuel Briot  <briot@adacore.com>
5707
5708         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
5709         line in the ALI file to include both an instantiation reference, and a
5710         returned value.
5711
5712 2005-11-14  Vincent Celier  <celier@adacore.com>
5713
5714         * clean.adb (Check_Project): Look for Ada code in extending project,
5715         even if Ada is not specified as a language.
5716         Use new function DLL_Prefix for DLL_Name
5717         (Clean_Interface_Copy_Directory): New procedure
5718         (Clean_Library_Directory): New procedure
5719         (Clean_Directory): Remove procedure, no longer used
5720         (Clean_Project): Do not delete any file in an externally built project
5721
5722         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
5723         directory of an extending project, even when there are no Ada source
5724         present.
5725         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
5726         (Set_Ada_Paths.Add.Recursive_Add): Ditto
5727
5728         * mlib-prj.adb (Check_Library): For all library projects, get the
5729         library file timestamp.
5730         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
5731         (Build_Library): Use new function DLL_Prefix for the DLL_Name
5732         (Clean): Remove procedure, no longer used
5733         (Ultimate_Extension_Of): New function
5734         (Build_Library): When cleaning the library directory, only remove an
5735         existing library file and any ALI file of a source of the project.
5736         When cleaning the interface copy directory, remove any source that
5737         could be a source of the project.
5738
5739         * prj.ads, prj.adb (Project_Empty): Add values of new components
5740         Library_TS and All_Imported_Projects.
5741         (Project_Empty): Add values for new components of Project_Data:
5742         Library_ALI_Dir and Display_Library_ALI_Dir
5743
5744         * prj-attr.adb: New project level attribute name Library_ALI_Dir
5745
5746         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
5747         attribute Library_ALI_Dir.
5748         (Check_Library_Attributes): The library directory cannot be the same as
5749         any source directory of the project tree.
5750         (Check_Stand_Alone_Library): The interface copy directory cannot be
5751         the same as any source directory of the project tree.
5752
5753         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
5754         all temporary files.
5755
5756 2005-11-14  Robert Dewar  <dewar@adacore.com>
5757             Ed Schonberg  <schonberg@adacore.com>
5758
5759         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5760         (Check_Elab_Call): A call within a protected body is never an
5761         elaboration call, and does not require checking.
5762         (Same_Elaboration_Scope): Take into account protected types for both
5763         entities.
5764         (Activate_Elaborate_All_Desirable): New procedure
5765
5766         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
5767         desirable
5768
5769         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
5770         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
5771
5772         * lib-writ.ads, lib-writ.adb: 
5773         Implement new AD/ED for Elaborate_All/Elaborate desirable
5774         Use new Elaborate_All_Desirable flag in N_With_Clause node
5775
5776         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
5777         N_Free_Statement nodes.
5778         Define new class N_Subprogram_Instantiation
5779         Add Elaborate_Desirable flag to N_With_Clause node
5780         Add N_Delay_Statement (covering two kinds of delay)
5781
5782         * debug.adb: Introduce d.f flag for compiler
5783         Add -da switch for binder
5784
5785 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5786             Cyrille Comar  <comar@adacore.com>
5787
5788         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
5789         for task component, in the case of a limited aggregate. The enclosed
5790         object declaration will create it earlier. Otherwise, in the case of a
5791         nested aggregate, the object may appear in the wrong scope.
5792         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
5793         (Gen_Assign): If the component being assigned is an array type and the
5794         expression is itself an aggregate, wrap the assignment in a block to
5795         force finalization actions on the temporary created for each row of the
5796         enclosing object.
5797         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
5798         structures are initialized after all discriminants are set so that
5799         they can be accessed even when their offset is dynamic.
5800
5801 2005-11-14  Robert Dewar  <dewar@adacore.com>
5802             Hristian Kirtchev  <kirtchev@adacore.com>
5803
5804         * sem_attr.adb: Implement Machine_Rounding attribute
5805         (Analyze_Access_Attribute): The access attribute may appear within an
5806         aggregate that has been expanded into a loop.
5807         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
5808         'Terminated whenever the prefix is of a task interface class-wide type.
5809         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
5810         the prefix is of a task interface class-wide type.
5811
5812         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
5813         to avoid warnings.
5814
5815         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
5816         Remove pragma Inline for [Unaligned_]Valid.
5817         Add comments that Valid routines do not work for Vax_Float
5818
5819         * exp_attr.adb: Implement Machine_Rounding attribute
5820
5821         * snames.h: Add entry for Machine_Rounding attribute
5822
5823 2005-11-14  Javier Miranda  <miranda@adacore.com>
5824             Robert Dewar  <dewar@adacore.com>
5825             Hristian Kirtchev  <kirtchev@adacore.com>
5826
5827         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
5828         and related): For a prefix that is an explicit dereference of an
5829         access to unconstrained packed array type, annotate the dereference
5830         with an actual subtype so GIGI can make a correct size computation.
5831         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
5832         'Unrestricted_Access, if the designated type is an interface we
5833         add a type conversion to force the displacement of the pointer
5834         to the secondary dispatch table.
5835         Use Universal_Real instead of Long_Long_Float when we need a high
5836         precision float type for the generated code (prevents gratuitous
5837         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
5838         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
5839         'Terminated for task interface class-wide objects. Generate a call to
5840         the predefined dispatching routine used to retrieve the _task_id from
5841         a task corresponding record.
5842         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
5843
5844         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5845         (Check_Dispatching_Operation): Protect the frontend againts
5846         previously detected errors.
5847
5848         * Makefile.rtl: Add new instantiations of system.fat_gen
5849
5850         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
5851         Change name of instantiated package for better consistency
5852         with newly added system.fat_gen instantiations.
5853
5854         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
5855         s-fvagfl.ads: New files.
5856
5857 2005-11-14  Cyrille Comar  <comar@adacore.com>
5858             Thomas Quinot  <quinot@adacore.com>
5859
5860         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
5861         assignment of a value of a tagged type that has been rewritten to a
5862         block statement, it is known by construction that no checks are
5863         necessary for the statements within the block: analyze it with checks
5864         suppressed.
5865         (Expand_N_If_Statement): When killing a dead then-branch in an
5866         if-statement that has elsif_parts, recompute the Current_Value node
5867         for any entity whose value is known from the condition of the first
5868         elsif_part.
5869         (Expand_N_Return_Statement): When returning a mutable record, convert
5870         the return value into its actual subtype in order to help the backend
5871         to return the actual size instead of the maximum. This is another
5872         aftermath of not returning mutable records on the sec-stack anymore.
5873
5874         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
5875         handling of error msg for suspicious reverse range iteration.
5876         (Check_Possible_Current_Value_Condition): Move declaration from body to
5877         spec, to allow this subprogram to be called from exp_ch5.
5878
5879 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5880
5881         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
5882         generate a set of nested array aggregates instead of a single flat
5883         aggregate for multi-dimensional arrays.
5884
5885 2005-11-14  Pascal Obry  <obry@adacore.com>
5886
5887         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
5888         by spawnve is a process handle, no need to convert. Add a parameter
5889         close to control wether the process handle must be closed.
5890         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
5891         a process handle, not need to convert.
5892         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
5893
5894         * g-expect.adb: (Kill): Document the new close parameter.
5895         (Close): Do not release the process handle in the kill there as
5896         waitpid() is using it.
5897         (Send_Signal): Release the process handle.
5898
5899 2005-11-14  Robert Dewar  <dewar@adacore.com>
5900
5901         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
5902         need a high precision float type for the generated code (prevents
5903         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5904         used).
5905
5906         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
5907         need a high precision float type for the generated code (prevents
5908         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5909         used).
5910         (Expand_Width_Attribute): In configurable run-time, the attribute is not
5911         allowed on non-static enumeration subtypes. Force a load error to emit
5912         the correct diagnostic.
5913
5914 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5915             Robert Dewar  <dewar@adacore.com>
5916             Ed Schonberg  <schonberg@adacore.com>
5917
5918         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
5919         subtype to compute the size of the designated object at run-time,
5920         create such a subtype and store it in the Actual_Designated_Subtype
5921         attribute of the N_Free_Statement.
5922         Generate itype for classwide designated object in both cases of
5923         user-specified storage pool: specific and class-wide, not only in the
5924         specific case.
5925         Raise CE when trying to set a not null access type object to null.
5926         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
5927         an explicit loop, because freeze nodes make its position variable.
5928
5929         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
5930         null object.
5931
5932 2005-11-14  Javier Miranda  <miranda@adacore.com>
5933
5934         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
5935         Build_Stream_Procedure): Add the null-excluding attribute to the first
5936         formal.
5937         This has no semantic meaning under Ada95 mode but it is a
5938         requirement under Ada05 mode.
5939
5940         * par-ch3.adb (P_Access_Definition): Addition of warning message if
5941         the null exclusion is used under Ada95 mode
5942         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
5943         (P_Access_Definition): Remove assertion that forbids the use of
5944         the null-exclusion feature in Ada95.
5945
5946 2005-11-14  Robert Dewar  <dewar@adacore.com>
5947
5948         * impunit.adb: Exclude container helper units not intended for use by
5949         users.
5950
5951 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5952
5953         * freeze.adb (Freeze_Entity): For an access formal that is an access
5954         to subprogram, freeze the anonymous subprogram type at the same time,
5955         to prevent later freezing in the wrong scope, such as the enclosing
5956         subprogram body.
5957         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
5958         subprogram whenever available.
5959
5960 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5961
5962         PR ada/23732
5963         * gnatvsn.ads (Library_Version): Bump to 4.1
5964
5965 2005-11-14  Robert Dewar  <dewar@adacore.com>
5966
5967         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
5968         Storage_Offset to avoid wrap around causing invalid results.
5969
5970 2005-11-14  Pascal Obry  <obry@adacore.com>
5971
5972         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
5973         cross-compiler.
5974         (Scan_Bind_Arg): Fail with an error message if -M option is used
5975         on a native compiler.
5976
5977 2005-11-14  Robert Dewar  <dewar@adacore.com>
5978             Vincent Celier  <celier@adacore.com>
5979
5980         * gprep.adb: Implement -C switch to scan comments
5981
5982         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
5983
5984         * scans.ads: Comment updates (including new use of Tok_Comment in
5985         preprocessing)
5986
5987         * opt.ads: Add documentation for flags that are used by gprmake,
5988         currently and in the next version of gprmake.
5989         (Verbosity_Level): New variable
5990         Add Replace_In_Comments switch
5991
5992         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
5993         and -vm.
5994         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
5995
5996 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5997
5998         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
5999         message, friendlier.
6000
6001 2005-11-14  Robert Dewar  <dewar@adacore.com>
6002
6003         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
6004
6005 2005-11-14  Doug Rupp  <rupp@adacore.com>
6006
6007         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
6008
6009 2005-11-14  Robert Dewar  <dewar@adacore.com>
6010
6011         * interfac.ads: Change declarations of IEEE float types so that we no
6012         longer need a separate version of this package for VMS.
6013
6014 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6015
6016         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
6017         internal entity created for the declaration of a child subprogram body
6018         with no spec as coming from source, to generate proper cross-reference
6019         information.
6020
6021 2005-11-14  Vincent Celier  <celier@adacore.com>
6022
6023         * make.adb (Compile_Sources): Change verbose message to minimum
6024         verbosity level High for "is in an Ada library", "is a read-only
6025         library" and "is an internal library",
6026         (Create_Binder_Mapping_File): Path name of ALI file for library project
6027         must include the library directory, not the object directory.
6028         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
6029         for new switches -vl, -vm and -vh.
6030         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
6031         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
6032         (Compile_Sources): Do not attempt to compile if an ALI file is missing
6033         in a project that is externally built.
6034         (Compute_All_Imported_Projects): New procedure
6035         (Gnatmake): Check if importing libraries should be regenerated because
6036         at least an imported library is more recent.
6037         (Initialize): For each project compute the list of the projects it
6038         imports directly or indirectly.
6039         (Add_Library_Search_Dir): New procedure, used in place of
6040         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
6041         put in the search paths.
6042         (Add_Source_Search_Dir): New procedure, used in place of
6043         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
6044         put in the search paths.
6045         (Mark_Directory): Resolve the absolute path the directory before marking
6046         it.
6047
6048         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
6049         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
6050         Switch. Do not handle any exception.
6051         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
6052         so that the switch is recognized as valid.
6053         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
6054
6055 2005-11-14  GNAT Script  <nobody@adacore.com>
6056
6057         * Make-lang.in: Makefile automatically updated
6058
6059 2005-11-14  Pascal Obry  <obry@adacore.com>
6060
6061         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
6062         used.
6063         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
6064         In both cases the last argument was dropped.
6065
6066 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
6067
6068         * namet.h: (Column_Numbe): New type.
6069         (Get_Column_Number): Define to sinput__get_column_number.
6070         (Instantiation): Define to sinput__instantiation.
6071         (Get_Column_Number): Declare.
6072         (Instantiation): Likewise.
6073
6074 2005-11-14  Robert Dewar  <dewar@adacore.com>
6075
6076         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
6077         syntax, which could cause compiler hangs.
6078
6079 2005-11-14  Vincent Celier  <celier@adacore.com>
6080
6081         * prj-ext.adb: Take into account new environment variable
6082         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
6083         are defined.
6084         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
6085         normalize its path name, making it absolute and resolving symbolic
6086         links, and replace the original if resolved path is different.
6087
6088 2005-11-14  Vincent Celier  <celier@adacore.com>
6089
6090         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
6091         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
6092
6093 2005-11-14  Emmanuel Briot  <briot@adacore.com>
6094
6095         * prj-pp.adb (Print): Do not output the with statement if the
6096         associated name is empty, which happens for virtual extending projects.
6097         (Print): Preserve the "extends all" attribute when printing the project.
6098
6099         * prj-tree.ads (String_Value_Of): Add comment about returned value for
6100         a virtual extending project.
6101
6102 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6103
6104         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
6105         rhs of an assignment even if the type is unconstrained, when the
6106         context is non-expanding.
6107         In an inlined body, if the context type is private,
6108         resolve with its full view, which must be a composite type.
6109
6110 2005-11-14  Robert Dewar  <dewar@adacore.com>
6111             Ed Schonberg  <schonberg@adacore.com>
6112
6113         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
6114         Do not give obsolescent warning on with of subprogram (since we
6115         diagnose calls)
6116         (Analyze_With_Clause): Add test for obsolescent package
6117         (Install_Context_Clauses): If the unit is the body of a child unit, do
6118         not install twice the private declarations of the parents, to prevent
6119         circular lists of Use_Clauses in a parent.
6120         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
6121         compiling body of child unit.
6122         Use new class N_Subprogram_Instantiation
6123         (Expand_With_Clause): If this is a private with_clause for a child unit,
6124         appearing in the context of a package declaration, then the implicit
6125         with_clauses generated for parent units are private as well.
6126         (License_Check): Do not generate message if with'ed unit is internal
6127
6128 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6129             Ed Schonberg  <schonberg@adacore.com>
6130             Thomas Quinot  <quinot@adacore.com>
6131
6132         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
6133         names are internal, because they will not have a corresponding partner
6134         in the actual package.
6135         (Analyze_Formal_Package): Move the setting of the formal package spec's
6136         Generic_Parent field so that it occurs prior to analyzing the package,
6137         to allow proper operation of Install_Parent_Private_Declarations.
6138         (Analyze_Package_Instantiation): Set the instantiated package entity's
6139         Package_Instantiation field.
6140         (Get_Package_Instantiation_Node): Move declaration to package spec.
6141         Retrieve the N_Package_Instantiation node when the Package_Instantiation
6142         field is present.
6143         (Check_Generic_Child_Unit): Within an inlined call, the only possible
6144         instantiation is Unchecked_Conversion, for which no parents are needed.
6145         (Inline_Instance_Body): Deinstall and record the use_clauses for all
6146         parent scopes of a scope being removed prior to inlining an instance
6147         body.
6148         (Analyze_Package_Instantiation): Do not perform front-end inlining when
6149         the current context is itself an instance within a non-instance child
6150         unit, to prevent scope stack errors.
6151         (Save_References): If the node is an aggregate that is an actual in a
6152         call, rewrite as a qualified expression to preserve some type
6153         information, to resolve possible ambiguities in the instance.
6154         (Instance_Parent_Unit): New global variable to record the ultimate
6155         parent unit associated with a generic child unit instance (associated
6156         with the existing Parent_Unit_Visible flag).
6157         (type Instance_Env): New component Instance_Parent_Unit for stacking
6158         parents recorded in the global Instance_Parent_Unit.
6159         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
6160         stack.
6161         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
6162         it's not a top-level unit, and only do this if Instance_Parent_Unit is
6163         not already set. Replace test of Is_Child_Unit with test of parent's
6164         scope against package Standard. Add comments and a ??? comment.
6165         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
6166         on a child instance parent to test that the parent equals
6167         Instance_Parent rather than simply checking that the unit is not a
6168         child unit.
6169         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
6170         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
6171         a formal interface are ancestors of the corresponding actual.
6172         (Validate_Formal_Interface_Type): Additional legality checks.
6173         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
6174         interface types with ancestors.
6175         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
6176         to diagnose attempts to use generic within its own declaration.
6177
6178 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6179             Javier Miranda  <miranda@adacore.com>
6180
6181         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
6182         discriminant.
6183         (Build_Private_Derived_Type): The entity of the created full view of the
6184         derived type does not come from source. If after installing the private
6185         declarations of the parent scope the parent is still private, use its
6186         full view to construct the full declaration of the derived type.
6187         (Build_Derived_Record_Type): Relax the condition that controls the
6188         execution of the check that verifies that the partial view and
6189         the full view agree in the set of implemented interfaces. In
6190         addition, this test now only takes into account the progenitors.
6191         (Derive_Interface_Subprograms): No need to derive subprograms
6192         of ancestors that are interfaces.
6193         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
6194         associated code.
6195         Change name Is_Package to Is_Package_Or_Generic_Package
6196         (Complete_Subprograms_Derivation): Handle the case in which the full
6197         view is a transitive derivation of the ancestor of the partial view.
6198         (Process_Full_View): Rename local subprogram Find_Interface_In_
6199         Descendant to Find_Ancestor_Interface to leave the code more clear.
6200         Remove wrong code that avoids the generation of an error message
6201         when the immediate ancestor of the partial view is an interface.
6202         In addition some minor reorganization of the code has been done to
6203         leave it more clear.
6204         (Analyze_Type_Declaration): If type has previous incomplete tagged
6205         partial view, inherit properly its primitive operations.
6206         (Collect_Interfaces): Make public, for analysis of formal
6207         interfaces.
6208         (Analyze_Interface_Declaration): New procedure for use for regular and
6209         formal interface declarations.
6210         (Build_Derived_Record_Type): Add support for private types to the code
6211         that checks if a tagged type implements abstract interfaces.
6212         (Check_Aliased_Component_Type): The test applies in the spec of an
6213         instance as well.
6214         (Access_Type_Declaration): Clean up declaration of malformed type
6215         declared as an access to its own classwide type, to prevent cascaded
6216         crash.
6217         (Collect_Interfaces): For private extensions and for derived task types
6218         and derived protected types, the parent may be an interface that must
6219         be included in the interface list.
6220         (Access_Definition): If the designated type is an interface that may
6221         contain tasks, create Master_Id for it before analyzing the expression
6222         of the declaration, which may be an allocator.
6223         (Record_Type_Declaration): Set properly the interface kind, for use
6224         in allocators, the creation of master id's for task interfaces, etc.
6225
6226 2005-11-14  Javier Miranda  <miranda@adacore.com>
6227             Ed Schonberg  <schonberg@adacore.com>
6228
6229         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
6230         omitted in case of stream attribute subprograms.
6231         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
6232         appear immediately after a subprogram body, when there is no previous
6233         subprogram declaration.
6234         Change name Is_Package to Is_Package_Or_Generic_Package
6235         (Process_Formals): A non null qualifier on a non null named access
6236         type is not an error, and is a warning only if Redundant_Constructs
6237         are flagged.
6238
6239 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6240             Ed Schonberg  <schonberg@adacore.com>
6241
6242         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
6243         nested within Analyze_Package_Specification to install the private
6244         declarations and use clauses within each of the parent units of a
6245         package instance of a generic child package.
6246         (Analyze_Package_Specification): When entering a private part of a
6247         package associated with a generic instance or formal package, the
6248         private declarations of the parent must be installed (by calling new
6249         procedure Install_Parent_Private_Declarations).
6250         Change name Is_Package to Is_Package_Or_Generic_Package
6251         (Preserve_Full_Attributes): For a synchronized type, the corresponding
6252         record is absent in a generic context, which does not indicate a
6253         compiler error.
6254
6255 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6256
6257         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
6258         not try to rewrite a renamed stream attribute, because the operations
6259         on the type may not have been generated.
6260         Handle properly a renaming_as_body generated for a stream operation
6261         whose default is abstract because the object type itself is abstract.
6262         (Find_Type): If the type is incomplete and appears as the prefix of a
6263         'Class reference, it is tagged, and its list of primitive operations
6264         must be initialized properly.
6265         (Chain_Use_Clauses): When chaining the use clauses that appear in the
6266         private declaration of a parent unit, prior to compiling the private
6267         part of a child unit, find on the scope stack the proper parent entity
6268         on which to link the use clause.
6269         (Note_Redundant_Use): Emit a warning when a redundant use clause is
6270         detected.
6271         (Analyze_Object_Renaming): An attribute reference is not a legal object
6272         if it is not a function call.
6273
6274 2005-11-14  Robert Dewar  <dewar@adacore.com>
6275             Ed Schonberg  <schonberg@adacore.com>
6276
6277         * sem_eval.adb: Implement d.f flag
6278         (Subtype_Statically_Match): A generic actual type has unknown
6279         discriminants when the corresponding actual has a similar partial view.
6280         If the routine is called to validate the signature of an inherited
6281         operation in a child instance, the generic actual matches the full view,
6282
6283 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
6284             Ed Schonberg  <schonberg@adacore.com>
6285             Robert Dewar  <dewar@adacore.com>
6286             Thomas Quinot  <quinot@adacore.com>
6287
6288         * sem_res.adb (Resolve_Call): Provide a better error message whenever
6289         a procedure call is used as a select statement trigger and is not an
6290         entry renaming or a primitive of a limited interface.
6291         (Valid_Conversion): If the operand has a single interpretation do not
6292         remove address operations.
6293         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
6294         statement to inhibit warning.
6295         (Resolve_Unary_Op): Do not produce a warning when
6296         processing an expression of the form -(A mod B)
6297         Use Universal_Real instead of Long_Long_Float when we need a high
6298         precision float type for the generated code (prevents gratuitous
6299         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
6300         (Resolve_Concatenation_Arg): Improve error message when argument is an
6301         ambiguous call to a function that returns an array.
6302         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
6303         there is an implicit operator in the given scope if we are within an
6304         instance: legality check has been performed on the generic.
6305         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
6306         after resolving operand, to avoid false warnings on overloaded calls.
6307
6308 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6309             Javier Miranda  <miranda@adacore.com>
6310
6311         PR ada/15604
6312
6313         * sem_type.adb (Covers): In an inlined body, a composite type matches
6314         a private type whose full view is a composite type.
6315         (Interface_Present_In_Ancestor): Protect the frontend against
6316         previously detected errors to ensure that its compilation
6317         with assertions enabled gives the same output that its
6318         compilation without assertions.
6319         (Interface_Present_In_Ancestor): Add support for private types.
6320         Change name In_Actual to In_Generic_Actual (clean up)
6321         (Disambiguate): New predicate In_Actual, to recognize expressions that
6322         appear in the renaming declaration generated for generic actuals, and
6323         which must be resolved in the outer context.
6324
6325 2005-11-14  Robert Dewar  <dewar@adacore.com>
6326             Thomas Quinot  <quinot@adacore.com>
6327             Hristian Kirtchev  <kirtchev@adacore.com>
6328             Ed Schonberg  <schonberg@adacore.com>
6329
6330         * sem_util.ads, sem_util.adb: Change name Is_Package to
6331         Is_Package_Or_Generic_Package.
6332         (Check_Obsolescent): New procedure.
6333         (Set_Is_Public): Remove obsolete junk test.
6334         (Set_Public_Status): Do not set Is_Public on an object whose declaration
6335         occurs within a handled_sequence_of_statemets.
6336         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
6337         for a parameterless procedure.
6338         (Enter_Name): Recognize renaming declarations created for private
6339         component of a protected type within protected operations, so that
6340         the source name of the component can be used in the debugger.
6341
6342 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6343             Robert Dewar  <dewar@adacore.com>
6344
6345         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
6346         of a generic subprogram are not visible outside the body.
6347         (Set_Warning_Switch): New procedure (code to set warning mode moved
6348         here from Switch.C so that it can be shared by pragma processing.
6349         (Check_References): Special case warning for non-modified non-imported
6350         volatile objects.
6351         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
6352         form with a string literal argument
6353
6354 2005-11-14  Javier Miranda  <miranda@adacore.com>
6355
6356         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
6357         anonymous access.
6358         (Write): Addition of "not null" to the anonymous access.
6359         (Read): Addition of "not null" to the anonymous access.
6360         (Write): Addition of "not null" to the anonymous access.
6361
6362         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
6363         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
6364         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
6365         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
6366         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
6367         "not null" to the anonymous access.
6368
6369 2005-11-14  Robert Dewar  <dewar@adacore.com>
6370
6371         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
6372         offset values
6373
6374 2005-11-14  Vincent Celier  <celier@adacore.com>
6375
6376         * switch.adb (Bad_Switch): New procedure
6377         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
6378         message when in error.
6379
6380         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
6381         Too_Many_Output_Files): Remove declarations, no longer used.
6382         (Scan_Nat): New parameter Switch
6383         (Scan_Pos): Ditto
6384         (Bad_Switch): New procedure
6385
6386         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
6387         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
6388         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
6389         to Osint.Fail. Do not handle any exception.
6390
6391 2005-11-14  Vincent Celier  <celier@adacore.com>
6392
6393         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
6394         designates a non existent directory.
6395
6396 2005-11-14  Robert Dewar  <dewar@adacore.com>
6397
6398         * xgnatugn.adb: Replace invalid membership test by 'Valid
6399
6400 2005-11-14  Vincent Celier  <celier@adacore.com>
6401
6402         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
6403         there is no object directory.
6404
6405 2005-11-14  Robert Dewar  <dewar@adacore.com>
6406
6407         * usage.adb: Minor adjustment to output format, use nn instead of nnn
6408         (so that -gnateInnn does not run into next column)
6409
6410 2005-11-14  Ed Falis  <falis@adacore.com>
6411
6412         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
6413         "constrained"
6414
6415 2005-11-14  Cyrille Comar  <comar@adacore.com>
6416
6417         * s-chepoo.ads: Add comments on Dereference.
6418         Remove unnecessary inherited abstract primitives.
6419         Cosmetic cleanup.
6420
6421 2005-11-14  Robert Dewar  <dewar@adacore.com>
6422
6423         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
6424         node parameter, not needed, since it is available as Declaration_Node.
6425
6426 2005-11-14  Geert Bosch  <bosch@adacore.com>
6427
6428         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
6429         grammatically correct.
6430
6431 2005-11-14  Vincent Celier  <celier@adacore.com>
6432
6433         * s-fileio.ads: Correct spelling error in comment
6434
6435 2005-11-14  Cyrille Comar  <comar@adacore.com>
6436             Robert Dewar  <dewar@adacore.com>
6437             Vincent Celier  <celier@adacore.com>
6438             Ben Brosgol  <brosgol@adacore.com>
6439             Jose Ruiz  <ruiz@adacore.com>
6440             Pascal Obry  <obry@adacore.com>
6441
6442         * gnat_ugn.texi: 
6443         Document that -fstack-check is needed for strict compliance with the
6444         Ada 95 Reference Manual.
6445         Correct reference to VAX systems to meet HP guidelines
6446         Add documentation for new gnatmake switches -vl, -vm and -vh
6447         Replace DEC Ada by HP Ada
6448         Replace DIGITAL by HP
6449         Remove empty section on tools in compatibility section
6450         Clarify the Windows convention semantics.
6451         Document the Win32 calling convention.
6452         The Stdcall, Win32 and DLL convention are synonyms.
6453         Add a note in -gnatR description about zero size record components
6454         Note on new >= and <= warnings for -gnatwc
6455         Document that equal sign after -gnatm is optional.
6456         Note that strip is working fine on DLL built with a Library
6457         Project. The restriction apply only to DLL built with gnatdll.
6458         Update section about the way to debug a DLL.
6459         Update information about the DLL convention.
6460         Document -C switch for gnatprep
6461         Document new attribute Library_ALI_Dir
6462         Update elaboration doc to include implicit Elaborate pragmas now
6463         generated for subprogram instantiations.
6464         Document limitation on executable names that include spaces for --GCC,
6465         --GNATBIND, and --GNATLINK switches.
6466         Document that -w causes -gnatws to be added at start of gcc switches
6467
6468         * gnat_rm.texi: Document that -mieee is needed for generating infinite
6469         and NaN values in case of overflow on machines that are not fully
6470         compliant with the IEEE floating-point standard.
6471         Create a section describing the set of compiler options needed for
6472         strict compliance with the Ada 95 Reference Manual.
6473         Add documentation for pragma Obsolescent applied to a package
6474         Clarify potential issues of mixed language programs related to the
6475         I/O buffering enabling in the elaboration of the GNAT runtime.
6476         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
6477         This documentation only patch adds extra documentsion for pragma
6478         Restrictions (No_Elaboration_Code), explaining why it is not possible
6479         to document this restriction in terms of allowed source constructs.
6480         Document string literal form of pragma Warnings
6481         Document new attribute Library_ALI_Dir
6482         Add documentation on stable attributes in project files that was missing
6483
6484         * gnat-style.texi: Indicate that paragraphs within a single comment
6485         should be separated by empty comment lines
6486
6487         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
6488         /05 respectively)
6489
6490         * bindusg.adb: Minor cleanup, put -m before -M for consistency
6491
6492 2005-11-14  Robert Dewar  <dewar@adacore.com>
6493
6494         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
6495         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
6496         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
6497         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
6498         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
6499         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
6500         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
6501         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
6502         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
6503         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
6504         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
6505         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
6506         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
6507         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
6508         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
6509         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
6510         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
6511         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
6512         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
6513         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
6514         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
6515         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
6516         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
6517         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
6518         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
6519         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
6520         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
6521         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
6522         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
6523         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
6524         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
6525         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
6526         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
6527         system-interix.ads, system-solaris-sparc.ads,
6528         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
6529         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
6530         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
6531         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
6532         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
6533         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
6534         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
6535         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
6536         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
6537         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
6538         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
6539         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
6540         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
6541         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
6542         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
6543         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
6544         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
6545         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
6546         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
6547         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
6548         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
6549         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
6550         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6551         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
6552         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
6553         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
6554         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
6555         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
6556         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
6557         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
6558         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
6559         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
6560         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
6561         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
6562         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
6563         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
6564         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
6565         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
6566         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
6567         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
6568         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
6569         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
6570         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
6571         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
6572         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
6573         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
6574         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
6575         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
6576         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
6577         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
6578         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
6579         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
6580         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
6581         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
6582         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
6583         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
6584         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
6585         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
6586         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
6587         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
6588         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
6589         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
6590         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
6591         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
6592         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
6593         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
6594         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
6595         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
6596         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
6597         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
6598         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
6599         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
6600         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
6601         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
6602         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
6603         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
6604         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
6605         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
6606         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
6607         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
6608         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
6609         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
6610         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
6611         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
6612         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
6613         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
6614         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
6615         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
6616         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
6617         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
6618         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
6619         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
6620         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
6621         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
6622         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
6623         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
6624         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
6625         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
6626         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
6627         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
6628         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
6629         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
6630         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
6631         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
6632         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
6633         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
6634         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
6635         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
6636         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
6637         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
6638         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
6639         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
6640         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
6641         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
6642         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
6643         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
6644         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
6645         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
6646         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
6647         a-numaux-darwin.ads, a-numaux-darwin.adb,
6648         a-swuwha.ads, a-stunha.ads: Minor reformatting
6649
6650 2005-11-14  Robert Dewar  <dewar@adacore.com>
6651
6652         PR ada/18434
6653         * osint-m.adb: Add pragma Elaborate_All for Osint
6654
6655 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
6656
6657         PR ada/23995
6658         * trans.c (call_to_gnu): Restore statement lost in translation.
6659
6660 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6661
6662         * init.c: Use the Linux-specific section for the IA-64/Linux target.
6663         (__gnat_adjust_context_for_raise): Add conditional code so that the
6664         IA-64 is also supported.
6665
6666 2005-11-03  James E Wilson  <wilson@specifix.com>
6667
6668         PR ada/23427
6669         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6670         TREE_OVERFLOW check.
6671
6672 2005-09-21  Olivier Hainque  <hainque@adacore.com>
6673
6674         PR ada/22418
6675         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
6676         as we create them to store a size in bits.
6677
6678 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6679
6680         PR ada/21937
6681         PR ada/22328
6682         PR ada/22381
6683         PR ada/22383
6684         PR ada/22419
6685         PR ada/22420
6686         * utils2.c (build_return_expr): New helper function.
6687         * gigi.h (build_return_expr): Declare it.
6688         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
6689         of manually building the RETURN_EXPR tree.
6690         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
6691         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
6692         build_binary_op for the "target pointer" case.  Use build_return_expr
6693         instead of manually building the RETURN_EXPR tree.
6694
6695 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
6696
6697         PR ada/23788
6698         * s-tpinop.ads: Make this unit Preelaborate.
6699
6700 2005-09-16  Andreas Jaeger  <aj@suse.de>
6701
6702         * socket.c: Add string.h for memcpy.
6703
6704 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
6705
6706         * dec-io.ads, dec-io.adb: Removed, no longer used.
6707
6708 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6709
6710         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
6711
6712         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
6713         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
6714         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
6715         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
6716         dependent units are Preelaborate.
6717         (Initialize): Call Interrupt_Managemeent.Initialize and
6718         OS_Primitives.Initialize to ensure proper initialization of this unit.
6719         Remove use of System.Soft_Links
6720         Make this unit Preelaborate.
6721
6722         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
6723         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
6724         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
6725         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
6726         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
6727         s-tratas.ads, s-tasinf.ads: Minor reformatting.
6728         Add pragma Preelaborate, since these packages are suitable for this
6729         categorization.
6730         Update comments.
6731
6732         * s-traent-vms.ads, s-intman-dummy.adb,
6733         s-taprop-dummy.adb: Make this unit Preelaborate.
6734
6735         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
6736         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
6737         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
6738         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
6739         s-intman-solaris.adb, s-intman-irix-athread.adb,
6740         s-intman-irix.adb: Mark this unit Preelaborate.
6741         (Initialize): New procedure.
6742         Update comments.
6743
6744         * s-taspri-linux.ads: Removed.
6745
6746         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
6747         as done by other implementations (e.g. posix).
6748
6749         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
6750         responsible for deferring abort.
6751         Mark this unit Preelaborate.
6752
6753         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
6754         proper initialization of the tasking run-time.
6755
6756         * s-tasdeb.ads: Mark this unit Preelaborate.
6757         (Known_Tasks): Add explicit default value to avoid elaboration code.
6758
6759         * s-inmaop-vms.adb (Elaboration code): Add call to
6760         Interrupt_Management.Initialize since the elaboration code depends on
6761         proper initialization of this package.
6762
6763         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
6764         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
6765         s-osprim-posix.adb: Make this unit Preelaborate.
6766
6767         * a-calend.adb: Add call to OS_Primitives.Initialize
6768
6769         * a-elchha.adb: Update use of Except.Id.Full_Name.
6770         Minor reformatting.
6771         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
6772
6773         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
6774         Move with clauses outside Warnings Off now that dependent units are
6775         Preelaborate.
6776         Use raise xxx with "..."; Ada 2005 form.
6777
6778         * a-taside.ads, a-taside.adb:
6779         Remove some dependencies, to make it easier to make this unit truly
6780         Preelaborate.
6781         Rewrite some code to be conformant with Preelaborate rules.
6782
6783         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
6784         marked Preelaborate in the future.
6785
6786         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
6787         these units Preelaborate.
6788
6789         * s-exctab.adb: Update use of Except.Id.Full_Name.
6790
6791         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
6792         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
6793         Set_Exc_Stack_Addr): Removed, no longer used.
6794         Remove reference to *Machine_State_Addr*, no longer needed.
6795
6796         * s-stalib.ads: Mark this unit as Preelaborate[_05].
6797         (Exception_Data): Full_Name is now a System.Address so that this unit
6798         can be made Preelaborate.
6799         Clean up/simplify code thanks to Full_Name being a System.Address.
6800         Remove obsolete pragma Suppress (All_Checks), no longer needed.
6801
6802         * s-taskin.ads, s-taskin.adb:
6803         Move with clauses outside Warnings Off now that dependent units are
6804         Preelaborate.
6805         Make this unit Preelaborate.
6806         (Initialize): New proceduure, replace elaboration code and makes the
6807         set up of the tasking run-time cleaner.
6808         (Detect_Blocking): Now a function instead of a deferred boolean, to
6809         obey Preelaborate rules.
6810
6811         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
6812         soft links, no longer used.
6813
6814         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
6815         packages are suitable for this categorization.
6816
6817         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
6818         since we compile run-time sources in Ada 2005 mode.
6819         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
6820         avoid having s-taprop*.adb depend on s-soflin and to avoid code
6821         duplication.
6822         Remove reference to *Machine_State_Addr*, no longer needed.
6823
6824 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6825
6826         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
6827         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6828         Remove reference to System.Exceptions.
6829
6830         * s-mastop-x86.adb: Removed, no longer used.
6831
6832         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
6833
6834         * a-excach.adb: Minor reformatting.
6835
6836         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
6837         instead fix new warnings that were hidden by this change.
6838         (AAA, ZZZ): Removed, replaced by...
6839         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
6840         are used instead of constants, to help make Ada.Exception truly
6841         preelaborate.
6842         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
6843         Raise_Storage_Error): File is now a System.Address, to simplify code.
6844         (Elab code): Removed, no longer used.
6845         (Null_Occurrence): Remove Warnings Off and make this construct
6846         preelaborate.
6847         Remove code related to front-end zero cost exception handling, since
6848         it is no longer used.
6849         Remove -gnatL/-gnatZ switches.
6850
6851         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
6852         Update use of Except.Msg.
6853
6854         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
6855         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
6856         to front-end zero cost exception handling, since it is no longer used.
6857         Remove -gnatL/-gnatZ switches.
6858
6859         * lib-writ.ads: Minor reformatting
6860         Remove doc of UX
6861
6862         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
6863
6864         * Make-lang.in: Remove references to s-except.ads
6865
6866         * s-except.ads: Removed, no longer used.
6867
6868         * s-mastop.ads, s-mastop.adb:
6869         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6870         Remove reference to System.Exceptions.
6871
6872         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
6873         switch-b.adb: Remove code related to front-end zero cost exception
6874         handling, since it is no longer used.
6875         Remove -gnatL/-gnatZ switches.
6876
6877 2005-09-01  Robert Dewar  <dewar@adacore.com>
6878             Gary Dismukes  <dismukes@adacore.com>
6879             Javier Miranda  <miranda@adacore.com>
6880
6881         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
6882         type by valid test and generate warning.
6883         (Tagged_Membership): Generate call to the run-time
6884         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
6885         Change formal name Subtype_Mark to Result_Definition in several calls to
6886         Make_Function_Specification.
6887         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
6888         check for proper accessibility of the operand of a class-wide allocator.
6889         The check can be left out if checks are suppressed or if the expression
6890         has a specific tagged type whose level is known to be safe.
6891
6892         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
6893         generates the run-time check associated with null-excluding entities.
6894         (Expand_N_Return_Statement): Add tests to determine if the accessibility
6895         check on the level of the return expression of a class-wide function
6896         can be elided. The check usually isn't needed if the expression has a
6897         specific type (unless it's a conversion or a formal parameter). Also
6898         add a test for whether accessibility checks are suppressed. Augment
6899         the comments to describe the conditions for performing the check.
6900
6901 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
6902             Javier Miranda  <miranda@adacore.com>
6903             Gary Dismukes  <dismukes@adacore.com>
6904             Ed Schonberg  <schonberg@adacore.com>
6905
6906         * a-tags.adb (IW_Membership): Give support to
6907         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
6908         subprogram has been extended to look for the tag in the ancestors tag
6909         table.
6910         Update the structure of the GNAT Dispatch Table to reflect the
6911         additional two tables used in dispatching selects.
6912         Introduce appropriate array types and record components in
6913         Type_Specific_Data to reflect the two tables.
6914         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
6915         the TSD of a tag, indexed by position.
6916         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
6917         operation kind in the TSD of a tag, indexed by position.
6918
6919         * a-tags.ads: Introduce an enumeration type to capture different
6920         primitive operation kinds. Define a constant reflecting the number of
6921         predefined primitive operations.
6922         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
6923         of an entry wrapper.
6924         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
6925         callable entity of a primitive operation.
6926
6927         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
6928         primitive operations used in dispatching selects for limited
6929         interfaces, limited tagged, task and protected types what implement a
6930         limited interface.
6931         (Freeze_Type): Generate the bodies of the primitive operations used in
6932         dispatching selects for limited tagged, task and protected types that
6933         implement a limited interface. Generate statements to populate the two
6934         auxiliary tables used for dispatching in select statements.
6935         (Freeze_Record_Type): Add call to initialize the dispatch table entries
6936         associated with predefined interface primitive operations.
6937         (Build_Dcheck_Function): Change Set_Subtype_Mark to
6938         Set_Result_Definition.
6939         (Build_Variant_Record_Equality): Change Subtype_Mark to
6940         Result_Definition.
6941         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
6942         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
6943         (Build_Assignment): Simplify the code that adds the run-time-check.
6944         (Expand_N_Object_Declaration): Code cleanup.
6945
6946         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
6947         entries when there is a protected type that implements a limited
6948         interface.
6949
6950         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
6951         common routines used in expansion of dispatching selects.
6952         (Add_Private_Declarations): Select the appropriate protection type when
6953         there is a protected type that implements a limited interface.
6954         (Build_Parameter_Block): Generate a wrapped parameter block.
6955         (Build_Protected_Subprogram_Body): Select the appropriate type for
6956         locking entries when there is a protected type that implements a
6957         limited interface.
6958         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
6959         classified as entry wrappers.
6960         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
6961         asynchronous selects.
6962         (Expand_N_Conditional_Entry_Call): Add support for expansion of
6963         dispatching conditional selects.
6964         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
6965         protection when there is a protected type that implements limited
6966         interfaces.
6967         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
6968         timed selects.
6969         (Extract_Dispatching_Call): Extract the entity of the name of a
6970         dispatching call, the object parameter, actual parameters and
6971         corresponding formals.
6972         (Make_Initialize_Protection): Correct logic of protection initialization
6973         when there is a protected type that implements a limited interface.
6974         (Parameter_Block_Pack): Populate a wrapped parameter block with the
6975         values of actual parameters.
6976         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
6977         block and assign them to the original actual parameters.
6978
6979         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
6980         (Build_Protected_Sub_Specification): Change the type and name of the
6981         last formal to account for the increased variety of protection modes.
6982
6983         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
6984         entities. Used to save the value of the Is_Hidden attribute when the
6985         limited-view is installed.
6986         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
6987         the attribute of procedures classified as entry wrappers.
6988         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
6989         entity of a primitive wrapper.
6990         (Write_Entity_Flags): Output the name and value of the
6991         Is_Primitive_Wrapper attribute.
6992         (Write_Field27_Name): Output the name and entity of the field Wrapped_
6993         Entity.
6994         (Underlying_Type): If we have an incomplete entity that comes from
6995         the limited view then we return the Underlying_Type of its non-limited
6996         view if it is already available.
6997         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
6998         including operators.
6999         (Write_Field26_Name): Add entry for Overridden_Operation
7000         (Overridden_Operation): New attribute of functions and procedures.
7001
7002         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
7003         predefined position in the dispatch table for the primitive operations
7004         used in dispatching selects.
7005         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
7006         predefined primitive operations and replace it with
7007         Default_Prim_Op_Count.
7008         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
7009         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
7010         the names of the generated primitive operations used in dispatching
7011         selects.
7012         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
7013         case of abstract interface types. They will be inherit by the objects
7014         implementing the interface.
7015         (Make_DT): There is no need to inherit the dispatch table of the
7016         ancestor interface for the elaboration of abstract interface types.
7017         The dispatch table will be inherited by the object implementing the
7018         interface.
7019         (Copy_Secondary_DTs): Add documentation.
7020         (Validate_Position): Improve this static check in case of
7021         aliased subprograms because aliased subprograms must have
7022         the same position.
7023         (Init_Predefined_Interface_Primitives): New subprogram that initializes
7024         the entries associated with predefined primitives of all the secondary
7025         dispatch tables.
7026         (Build_Anonymous_Access_Type): Removed.
7027         (Expand_Interface_Actuals): With the previous cleanup there is no need
7028         to build an anonymous access type. This allows further cleanup in the
7029         code generated by the expander.
7030         (Expand_Interface_Conversion): If the actual is an access type then
7031         build an internal function to handle the displacement. If the actual
7032         is null this function returns null because no displacement is
7033         required; otherwise performs a type conversion that will be
7034         expanded in the code that returns the value of the displaced actual.
7035         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
7036         conversions that have no effect in the generated code because no
7037         displacement is required. Code cleanup; use local variables to
7038         avoid repeated calls to the subprogram directly_designated_type().
7039
7040         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
7041         Classify the primitive operations used in dispatching selects as
7042         predefined.
7043         (Implements_Limited_Interface): Determine whether some type either
7044         directly implements a limited interface or extends a type that
7045         implements a limited interface.
7046         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
7047         (Expand_Subtype_From_Expr): Do not build actual subtype if the
7048         expression is limited.
7049         (Find_Interface_Tag): Add code to handle class-wide types and
7050         entities from the limited-view.
7051
7052         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
7053         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
7054         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
7055         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
7056         Set_Prim_Op_Kind.
7057
7058         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
7059         of procedure name or prefix that appears as a trigger in a triggering
7060         alternative.
7061
7062         * uintp.ads: Introduce constants Uint_11 and Uint_13.
7063
7064 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7065
7066         * s-tataat.adb, a-tasatt.adb:
7067         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
7068
7069         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
7070         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
7071         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
7072         longer used.
7073
7074 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7075             Jose Ruiz  <ruiz@adacore.com>
7076
7077         * s-taprop-vxworks.adb:
7078         Move with clauses outside Warnings Off now that dependent units are
7079         Preelaborate.
7080         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
7081         initialization of this unit.
7082         (Specific): Add new procedures Initialize and Delete so that this
7083         package can be used for VxWorks 5.x and 6.x
7084         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
7085         differences between VxWorks 5.x and 6.x
7086         Minor reformatting.
7087         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
7088         caller.
7089         Use only Preelaborate-compatible constructs.
7090
7091         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
7092         Primitives.Operations.
7093         (Delete, Initialize): New procedures.
7094
7095         * s-osinte-vxworks.adb: Body used to handle differences between
7096         VxWorks 5.x and 6.x
7097         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
7098
7099         * s-osinte-vxworks.ads: Minor reformatting.
7100         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
7101         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
7102         and 6.
7103         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
7104         between Vxworks 5 and 6.
7105         (taskLock, taskUnlock): Removeed, no longer used.
7106
7107         * adaint.c: The wait.h header is not located in the sys directory on
7108         VxWorks when using RTPs.
7109         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
7110         using RTPs.
7111         (__gnat_dup): dup is available on Vxworks when using RTPs.
7112         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
7113
7114         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
7115
7116         * expect.c: The wait.h header is not located in the sys directory on
7117         VxWorks when using RTPs.
7118
7119 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7120
7121         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
7122
7123         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
7124
7125         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7126         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7127         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
7128         g-soccon-freebsd.ads: Add new constants:
7129          IP_MULTICAST_IF
7130          SO_RCVTIMEO/SO_SNDTIMEO
7131          IOV_MAX
7132
7133         * gen-soccon.c:
7134         Move all target-specific file inclusions and macro definitions to
7135         gsocket.h, in order to ensure that any C code in socket.c will see a
7136         set of constants that is consistent with the contents of g-soccon.ads.
7137
7138         * gsocket.h: Code imported from gen-soccon.c:
7139         Move all target-specific file inclusions and macro definitions to
7140         gsocket.h, in order to ensure that any C code in socket.c will see a set
7141         of constants that is consistent with the contents of g-soccon.ads.
7142         This change also makes gen-soccon self-contained (removing dependencies
7143         upon GCC internal headers).
7144
7145         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
7146         iovecs at a time.
7147         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
7148
7149         * socket.c: Minor reformatting.
7150
7151 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7152             Thomas Quinot  <quinot@adacore.com>
7153
7154         * fname-sf.adb, mlib-tgt.ads,
7155         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
7156         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
7157         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
7158         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
7159         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
7160         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
7161         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
7162         makegpr.adb: Remove redundant use_clauses.
7163
7164 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7165
7166         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
7167         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
7168         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
7169         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
7170         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
7171         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
7172         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
7173         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
7174         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7175         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
7176         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
7177         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
7178         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
7179         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
7180         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
7181         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7182         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7183         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
7184         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
7185         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7186         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
7187         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
7188         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
7189         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
7190         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
7191         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
7192         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
7193         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
7194         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
7195         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
7196         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
7197         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
7198         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
7199         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
7200         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
7201         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
7202         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
7203         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
7204         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
7205         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
7206         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
7207         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
7208         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
7209         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
7210         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
7211         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
7212         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
7213         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
7214         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
7215         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
7216         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
7217         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
7218         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
7219         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
7220         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
7221         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
7222         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
7223         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
7224         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
7225         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
7226         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
7227         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
7228         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
7229         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
7230         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
7231         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
7232         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
7233         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
7234         and always use the no parameter form for consistency.
7235
7236         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
7237
7238 2005-09-01  Robert Dewar  <dewar@adacore.com>
7239
7240         * binde.adb: Minor reformatting
7241         (Find_Elab_Order): Output warning if -p used with static elab order
7242
7243 2005-09-01  Robert Dewar  <dewar@adacore.com>
7244
7245         * checks.adb (Check_Needed): New procedure, deals with removing checks
7246         based on analysis of short-circuited forms. Also generates warnings for
7247         improper use of non-short-circuited forms.
7248         Code clean ups.
7249
7250 2005-09-01  Robert Dewar  <dewar@adacore.com>
7251
7252         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
7253         with 'Valid tests.
7254
7255 2005-09-01  Robert Dewar  <dewar@adacore.com>
7256
7257         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
7258         spec.
7259         Implement new insertion char < (conditional warning)
7260         * errutil.adb, erroutc.adb: Implement new insertion char <
7261         (conditional warning).
7262         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
7263         (Error_Msg_Warn): New variable for < insertion char.
7264         * prj-nmsc.adb: Implement new errout insertion char < (conditional
7265         warning).
7266         (Check_For_Source): Change value of Source_Id only after the current
7267         source has been dealt with.
7268
7269 2005-09-01  Robert Dewar  <dewar@adacore.com>
7270             Doug Rupp  <rupp@adacore.com>
7271
7272         * exp_attr.adb: Handle vax fpt for 'Valid attribute
7273         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
7274         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
7275         (Valid_D, Valid_F, Valid_G): New functions
7276
7277 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7278             Hristian Kirtchev  <kirtchev@adacore.com>
7279             Javier Miranda  <miranda@adacore.com>
7280
7281         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
7282         from object notation, the original node is unanalyzed and carries no
7283         semantic information, so that accessiblity checks must be performed on
7284         the type of the actual itself.
7285         (Expand_N_Subprogram_Declaration): Change last actual parameter for
7286         compatibility with Build_Protected_Sub_Specification.
7287         (Check_Overriding_Inherited_Interfaces): Add suport to handle
7288         overloaded primitives.
7289         (Register_Interface_DT_Entry): Use the new name of the formal
7290         the the calls to Expand_Interface_Thunk
7291
7292         * exp_dbug.ads: Augment comments on encoding of protected types to
7293         include the generation of dispatching subprograms when the type
7294         implements at least one interface.
7295
7296         * lib.ads: Extend information in Load_Stack to include whether a given
7297         load comes from a Limited_With_Clause.
7298
7299         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
7300         whether a potential circularity is harmless, because it includes units
7301         loaded through a limited_with clause. Extends previous treatment which
7302         did not handle properly arbitrary combinations of limited and
7303         non-limited clauses.
7304
7305 2005-09-01  Nicolas Setton  <setton@adacore.com>
7306
7307         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
7308         to be encoded as typ___XBLU_lowerbound__upperbound instead of
7309         typ___XB_lowerbound__upperbound.
7310
7311 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7312
7313         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
7314         dummy access formal for RACW/RAS TypeCode TSS.
7315         (Build_TypeCode_Call): Do not generate dummy null access actual for
7316         calls to the TypeCode TSS.
7317
7318 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7319
7320         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
7321         fully qualified name, to distinguish instances with the same local name.
7322
7323         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
7324         fully qualified.
7325
7326 2005-09-01  Robert Dewar  <dewar@adacore.com>
7327
7328         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
7329         packed arrays.
7330
7331 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
7332
7333         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
7334         (Free): New deallocation procedure for filter elements
7335         (Close): Deallocate any existing filter for the concerned connection
7336
7337 2005-09-01  Laurent Pautet  <pautet@adacore.com>
7338
7339         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
7340         position set is provided, we compute one in order to reduce the maximum
7341         length of the keys.  This computation first selects a character
7342         position between 1 and the minimum length of the keys in order to
7343         avoid reducing one of the keys to an empty string.
7344         (Initialize, Compute): When the ratio V to K is too low, the algorithm
7345         does not converge. The initialization procedure now comes with a
7346         maximum number of iterations such that when exceeded, an exception is
7347         raised in Compute. The user can initialize this ratio to another value
7348         and try again
7349         Reformating and updated headers.
7350
7351 2005-09-01  Javier Miranda  <miranda@adacore.com>
7352
7353         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
7354         that given an entity T creates and returns an Itype that duplicates the
7355         contents of T. The returned Itype has the null-exclusion
7356         attribute set to True, and its Etype attribute references T
7357         to keep the association between the two entities.
7358         Update copyright notice
7359
7360         * sem_aggr.adb (Check_Can_Never_Be_Null,
7361         Aggregate_Constraint_Checks, Resolve_Aggregate,
7362         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
7363
7364         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
7365
7366 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
7367             Robert Dewar  <dewar@adacore.com>
7368             Hristian Kirtchev  <kirtchev@adacore.com>
7369
7370         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
7371         Result_Definition.
7372
7373         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
7374         function specs.
7375         Call Set_Result_Definition instead of Set_Subtype_Mark.
7376         (P_Subprogram_Specification): Add parsing of anonymous access result
7377         plus null exclusions. Call Set_Result_Definition instead of
7378         Set_Subtype_Mark.
7379
7380         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7381         (P_Access_Type_Definition): Add parsing for an anonymous access result
7382         subtype, plus parsing for null exclusions. Call Set_Result_Definition
7383         instead of Set_Subtype_Mark.
7384
7385         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7386         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
7387         (Result_Definition): New function for N_Function_Specifications.
7388         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
7389         N_Function_Specification.
7390         (Set_Null_Exclusion_Present): Allow this flag for
7391         N_Function_Specification.
7392         (Set_Result_Definition): New procedure for N_Function_Specifications.
7393         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
7394         and N_Function_Specification.
7395
7396         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
7397         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
7398         Add support for LIMITED NEW for Ada 2005 AI-419
7399         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
7400         syntax for anonymous access results.
7401         Replace Subtype_Mark field by Result_Definition in
7402         N_Function_Specification and N_Access_Definition specs.
7403         Add Null_Exclusion_Present to spec of N_Function_Specification.
7404         (Result_Definition): New function for N_Function_Specification and
7405         N_Access_Function_Definition.
7406         (Set_Result_Definition): New procedure for N_Function_Specification and
7407         N_Access_Function_Definition.
7408
7409         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
7410         Result_Definition for cases of N_Access_Function_Definition and
7411         N_Function_Specification.
7412         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
7413
7414 2005-09-01  Vincent Celier  <celier@adacore.com>
7415
7416         * lib-writ.adb: Update Copyright notice
7417         (Write_With_Lines): On platforms where file names are case-insensitive,
7418         record the file names in lower case.
7419         (Write_ALI): For D lines, on platforms where file names are
7420         case-insensitive, record the file names in lower case.
7421
7422 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7423             Emmanuel Briot  <briot@adacore.com>
7424
7425         * lib-xref.adb (Output_Overridden_Op): Display information on
7426         overridden operation.
7427
7428         * lib-xref.ads: Add documentation on overridden operations.
7429
7430         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
7431         information.
7432
7433         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
7434         overriding entity information.
7435
7436 2005-09-01  Vincent Celier  <celier@adacore.com>
7437
7438         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
7439         including those that are inherited.
7440
7441 2005-09-01  Robert Dewar  <dewar@adacore.com>
7442
7443         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
7444
7445         * par-prag.adb: Implement new pragma Debug_Policy
7446
7447         * sem_prag.adb Implement new pragma Debug_Policy
7448         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
7449         Component_Size attribute specification. Give warning for ignored pragma
7450         Pack.
7451
7452         * snames.h, snames.ads, snames.adb: Introduce entries in
7453         Preset_Names for Name_Disp_Asynchronous_Select,
7454         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
7455         Name_Disp_Timed_Select.
7456         New pragma Debug_Policy
7457
7458         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
7459         explicitly.
7460         Switch -gnata also sets Debug_Pragmas_Enabled
7461
7462         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
7463         handle an explicit -gnata when compiling predefined files.
7464
7465 2005-09-01  Vincent Celier  <celier@adacore.com>
7466
7467         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
7468         directories of projects that have no Ada sources.
7469
7470 2005-09-01  Robert Dewar  <dewar@adacore.com>
7471
7472         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
7473         (makes a difference for wide characters)
7474
7475         * widechar.adb, widechar.ads:
7476         Add Wide_Char_Byte_Count feature to count chars vs bytes
7477
7478 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7479             Ed Schonberg  <schonberg@adacore.com>
7480             Robert Dewar  <dewar@adacore.com>
7481
7482         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
7483         'Address attribute reference with an overloaded prefix, use the
7484         location of the prefix (not the location of the attribute reference) as
7485         the error location.
7486         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
7487         a function renaming thereof, is a valid prefix for 'Size (where it is
7488         intepreted as a function call).
7489         (Statically_Denotes_Entity): New predicate to determine whether the
7490         prefix of an array attribute can be considered static.
7491
7492         PR ada/9087
7493         (Eval_Attr): Fix failure to evaluate Component_Size for
7494         unconstrained arrays (resulted in wrong value in packed case, since
7495         back end cannot handle this case)
7496
7497 2005-09-01  Robert Dewar  <dewar@adacore.com>
7498
7499         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
7500         error msgs for most common cases.
7501         Use new errout insertion char < (conditional warning)
7502
7503 2005-09-01  Javier Miranda  <miranda@adacore.com>
7504             Ed Schonberg  <schonberg@adacore.com>
7505
7506         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
7507         become local to the whole package.
7508         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
7509         the package was already analyzed the new algorithm "replaces" the
7510         real entities by the shadow ones. This is required to ensure that
7511         the order of these entities in the homonym chains does not change;
7512         otherwise we can have undefined references at linking time because
7513         in case of conflicts the external name of the entities will have
7514         a suffix that depends on the order of the entities in the chain.
7515         (Remove_Limited_With_Clause): Complementary code that completes the
7516         new algorithm and replaces the shadow entities by the real ones.
7517         (Install_Limited_Withed_Unit): When unchaining entities before the
7518         installation of the shadow entities, only regular entities of the
7519         public part must be taken into account. This is required to
7520         keep this routine in synch with the work done by Remove_Limited_
7521         With_Clause
7522         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
7523         even if unit is analyzed, because the analysis of the unit is
7524         idempotent in any case, and the limited view of the unit may have to
7525         be installed for proper visibility.
7526         (Expand_Limited_With_Clause): Even if the unit in the implicit
7527         with_clause has been analyzed already, a limited view of the package
7528         must be built for the current context, if it does not exist yet.
7529
7530 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7531             Javier Miranda  <miranda@adacore.com>
7532             Gary Dismukes  <dismukes@adacore.com>
7533
7534         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
7535         defining entity for the instance body, make a new defining identifier
7536         rather than copying the entity of the spec, to prevent accidental
7537         sharing of the entity list.
7538         (Check_Private_View): When exchanging views of private types, build the
7539         list of exchanged views as a stack, to ensure that on exit the exchanges
7540         are undone in the proper order.
7541         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
7542         Restore the compilation environment in case of instantiation_error.
7543         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
7544         for an anonymous access result.
7545         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
7546         (Formal_Entity): Handle properly the case of a formal package that
7547         denotes a generic package renaming.
7548
7549 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7550
7551         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
7552         clause if the array aggregate is surrounded by parentheses.
7553
7554 2005-09-01  Cyrille Comar  <comar@adacore.com>
7555             Gary Dismukes  <dismukes@adacore.com>
7556             Ed Schonberg  <schonberg@adacore.com>
7557             Javier Miranda  <miranda@adacore.com>
7558
7559         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
7560         underlying type
7561         to check if a type is Constrained in cases related to code generation
7562         (rather than semantic checking) since otherwise we do not generate
7563         similar code for mutable private types depending if their
7564         discriminants are visible or not.
7565         (Check_Abstract_Overriding): Do not complain about failure to override
7566         the primitive operations used in dispatching selects since they will
7567         always be overriden at the freeze point of the type.
7568         (Access_Definition): Separate out handling for resetting the scope
7569         of an anonymous access function result type. Retrieve the scope
7570         of the associated function rather than using Current_Scope, which
7571         does not have a consistent value (depends on whether we're in the
7572         middle of analyzing formal parameters). Add ??? comment about
7573         finding a cleaner way to handle the special cases of scope setting.
7574         (Process_Incomplete_Dependents): A protected operation is never a
7575         dispatching operation (only its wrapper may be).
7576         (Build_Derived_Record_Type): In case of tagged private types that
7577         implement interfaces add derivation of predefined primitive
7578         operations.
7579         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
7580         by two parameters that are used in case of derivation from abstract
7581         interface types: No_Predefined_Prims is used to avoid the derivation
7582         of predefined primitives from the interface, and Predefined
7583         Prims_Only is used to complete the derivation predefined primitives
7584         in case of private tagged types implementing interfaces.
7585         Fix typo in comments
7586         (Find_Interface_In_Descendant): Protect the frontend against
7587         wrong code with large circularity chains.
7588         (Is_Private_Overriding): Add support for entities overriding interface
7589         subprograms. The test failed because Entities associated with overriden
7590         interface subprograms are always marked as hidden (and used to build
7591         the secondary dispatch table); in this case the overriden entity is
7592         available through the field abstract_interface_alias (cf. override_
7593         dispatching_operation)
7594         (Access_Definition): Set the scope of the type to Current_Scope for the
7595         case of a function with an anonymous access result type.
7596         (Access_Subprogram_Declaration): Handle creation of the type entity for
7597         an access-to-function type with an anonymous access result.
7598         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
7599         in handling for N_Access_Function_Definition.
7600         (Analyze_Subtype_Declaration): Modify the text of error message.
7601         (Derived_Type_Declaration): Modify the text of error message.
7602         (Process_Subtype): Modify the text of error message plus cleanup
7603         of one redundant error message.
7604         (Analyze_Component_Declaration): Code cleanup.
7605         (Analyze_Object_Declaration): Code cleanup.
7606         (Analyze_Subtype_Declaration): Propagate the null-exclusion
7607         attribute in case of access types. Code cleanup.
7608         (Array_Type_Declaration): Code cleanup.
7609         (Process_Discriminants): Create the new null-excluding itype
7610         if required. Code cleanup.
7611         (Process_Subtype): Create the new null-excluding itype if
7612         required. Code cleanup.
7613         (Build_Derived_Record_Type): Code cleanup to avoid calling
7614         twice the subprogram derive_subprograms in case of private
7615         types that implement interfaces. In this particular case the
7616         subprogram Complete_Subprograms_Derivation already does the
7617         job associated with the second call.
7618
7619         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
7620         conversion to the full view when generating an operation for a
7621         discriminant whose type may currently be private.
7622
7623 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7624             Javier Miranda  <miranda@adacore.com>
7625
7626         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
7627         V (Obj.F), the rewriting does not involve the indexed component, but
7628         only the selected component itself.
7629         Do not apply the transformation if the analyzed node is an actual of a
7630         call to another subprogram.
7631         (Complete_Object_Operation): Retain the entity of the
7632         dispatching operation in the selector of the rewritten node. The
7633         entity will be used in the expansion of dispatching selects.
7634         (Analyze_One_Call): Improve location of the error message associated
7635         with interface.
7636         (Analyze_Selected_Component): No need to resolve prefix when it is a
7637         function call, resolution is done when parent node is resolved, as
7638         usual.
7639         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
7640         when attempting to resolve a call transformed from its object notation.
7641         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
7642         of the argument list for each interpretation of the operation.
7643         (Try_Object_Operation): The designated type of an access parameter may
7644         be an incomplete type obtained through a limited_with clause, in which
7645         case the primitive operations of the type are retrieved from its full
7646         view.
7647         (Analyze_Call): If this is an indirect call, and the return type of the
7648         access_to_subprogram is incomplete, use its full view if available.
7649
7650 2005-09-01  Javier Miranda  <miranda@adacore.com>
7651             Gary Dismukes  <dismukes@adacore.com>
7652
7653         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
7654         access types the null-exclusion and access-to-constant attributes must
7655         also match.
7656         (Analyze_Return_Statement): When the result type is an anonymous access
7657         type, apply a conversion of the return expression to the access type
7658         to ensure that appropriate accessibility checks are performed.
7659         (Analyze_Return_Type): For the case of an anonymous access result type,
7660         generate the Itype and set Is_Local_Anonymous_Access on the type.
7661         Add ??? placeholder for check to disallow returning a limited object
7662         in Ada 2005 unless it's an aggregate or a result of a function call.
7663         Change calls from Subtype_Mark to Result_Definition.
7664         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
7665         Result_Definition in call to Make_Function_Specification.
7666         (Build_Body_To_Inline): Change Set_Subtype_Mark to
7667         Set_Result_Definition.
7668         (Make_Inequality_Operator): Change formal Subtype_Mark to
7669         Result_Definition in call to Make_Function_Specification.
7670         (Process_Formals): Create the new null-excluding itype if required.
7671         (New_Overloaded_Entity): For an entity overriding an interface primitive
7672         check if the entity also covers other abstract subprograms in the same
7673         scope. This is required to handle the general case, that is, overriding
7674         other interface primitives and overriding abstract subprograms inherited
7675         from some abstract ancestor type.
7676         (New_Overloaded_Entity): For an overriding entity that comes from
7677         source, note the operation that it overrides.
7678         (Check_Conformance, Type_Conformant): Addition of one new formal
7679         to skip controlling formals in the analysis. This is used to
7680         handle overloading of abstract interfaces.
7681         (Base_Types_Match): Add missing case for types imported from
7682         limited-with clauses
7683         (New_Overloaded_Entity): Add barrier to protect the use of
7684         the "alias" attribute.
7685
7686 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7687
7688         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
7689         verify that the procedure and the entry are mode conformant.
7690         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
7691         as a different operator, which is often a cut-and-paste error.
7692
7693 2005-09-01  Javier Miranda  <miranda@adacore.com>
7694             Ed Schonberg  <schonberg@adacore.com>
7695
7696         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
7697         used in controlling parameters exclude null because it is necessary to
7698         read the tag to dispatch, and null has no tag.
7699         (Override_Dispatching_Operation): If the previous operation is inherited
7700         from an interface, it becomes hidden  and does not participate in later
7701         name resolution.
7702
7703 2005-09-01  Javier Miranda  <miranda@adacore.com>
7704             Ed Schonberg  <schonberg@adacore.com>
7705             Gary Dismukes  <dismukes@adacore.com>
7706
7707         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
7708         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
7709         the expander will generate the corresponding run-time check to evaluate
7710         the expression.
7711         (Resolve_Call): Check for legal type of procedure name or prefix that
7712         appears as a trigger in a triggering alternative.
7713         (Valid_Conversion): If expression is ambiguous and the context involves
7714         an extension of System, remove System.Address interpretations.
7715         (Resolve_Qualified_Expression): Reject the case of a specific-type
7716         qualification applied to a class-wide argument. Enhance comment
7717         to explain checking of Original_Node.
7718         (Resolve_Type_Conversion): The location of the error message was not
7719         general enough to handle the general case and hence it has been removed.
7720         In addition, this patch improves the text of the message.
7721         (Resolve_Type_Conversion): Add missing support for access to interface
7722         types.
7723         (Resolve_Type_Conversion): If the target is a class-wide interface type,
7724         do not expand if the expression is the actual in a call, because proper
7725         expansion will take place when the call itself is expanded.
7726         (Resolve_Allocator): If the context is an unchecked conversion, the
7727         allocator inherits its storage pool, if any, from the target type of
7728         the conversion.
7729
7730 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7731             Javier Miranda  <miranda@adacore.com>
7732
7733         * sem_type.adb (Add_One_Interp): If a candidate operation is an
7734         inherited interface operation that has an implementation, use the
7735         implementation to avoid spurious ambiguities.
7736         (Interface_Present_In_Ancestor): In case of concurrent types we can't
7737         use the Corresponding_Record_Typ attribute to look for the interface
7738         because it is set by the expander (and hence it is not always
7739         available). For this reason we traverse the list of interfaces
7740         (available in the parent of the concurrent type).
7741         (Interface_Present_In_Ancestor): Handle entities from the limited view
7742
7743 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7744
7745         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
7746         from the list of required components.
7747         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
7748         primitive procedure of a limited interface with a controlling first
7749         parameter.
7750         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
7751         of an entry.
7752         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
7753         capture if it is generated in the second operand of a short-circuit
7754         operation.
7755         Do not capture values for variables with address clauses.
7756         (Is_Object_Reference): Treat a function call as an object reference only
7757         if its type is not Standard_Void_Type.
7758
7759 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7760
7761         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
7762         to a variable that is statically known to be constant.
7763
7764 2005-09-01  Geert Bosch  <bosch@adacore.com>
7765             Robert Dewar  <dewar@adacore.com>
7766
7767         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
7768         (VAXGF_Safe_First): Idem.
7769
7770 2005-09-01  Robert Dewar  <dewar@adacore.com>
7771             Arnaud Charlet  <charlet@adacore.com>
7772
7773         * g-dirope.ads: Minor reformatting
7774         Document that bounds of result of Base_Name match the input index
7775         positions.
7776         Add documentation on environment variable syntax for Expand_Path
7777
7778         * gnat_ugn.texi: Update documentation to include mention of -m switches
7779         Document new treatment of wide characters in max line length
7780         style check.
7781         Remove -gnatL/-gnatZ switches, no longer used.
7782         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
7783         of -gnata switch.
7784
7785         * gnat_rm.texi: Add doc for two argument form of pragma
7786         Float_Representation.
7787         Add documentation for pragma No_Strict_Aliasing
7788         Add note that explicit component clause overrides pragma Pack.
7789         Add documentation of pragma Debug_Policy
7790
7791 2005-09-01  Matthew Heaney  <heaney@adacore.com>
7792
7793         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
7794         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
7795         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
7796         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
7797         draft (Draft 13, August 2005) of Ada Amendment 1.
7798
7799 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7800
7801         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
7802         Note that the platform-specific version of g-soccon.ads for VMS is now
7803         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
7804         really is a package spec).
7805         Replace s-taspri-linux.ads by s-taspri-posix.ads
7806         Remove references to s-mastop-x86.adb
7807
7808         * system-vxworks-xscale.ads: Removed, no longer used.
7809         * s-vxwork-xscale.ads: Removed, no longer used.
7810
7811 2005-09-01  Robert Dewar  <dewar@adacore.com>
7812
7813         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
7814         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
7815         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
7816         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
7817         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
7818         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
7819         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
7820         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
7821         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
7822         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
7823         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
7824         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
7825         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
7826         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
7827         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
7828         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
7829         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
7830         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
7831         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
7832         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
7833         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
7834
7835 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7836
7837         PR ada/23187
7838         * adaint.c
7839         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
7840
7841 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7842             Doug Rupp  <rupp@adacore.com>
7843
7844         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
7845         when needed.
7846         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
7847         this code in the GNAT run-time.
7848
7849         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
7850
7851         PR ada/21053
7852         * init.c (__gnat_error_handler [many]): Mark "msg" as const
7853         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
7854
7855         (__gnat_inside_elab_final_code): Moved here from
7856         Standard_Library and only defined for the compiler.
7857         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
7858         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
7859         using RTPs because directly vectored Interrupt routines are not
7860         supported on this configuration.
7861         (getpid): Do not redefine this function on VxWorks when using RTPs
7862         because this primitive is well supported by the RTP libraries.
7863         (copy_msg): Correct the code that checks for buffer overflow.
7864         Discovered during code reading.
7865
7866 2005-08-29  Olivier Hainque  <hainque@adacore.com>
7867
7868         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
7869         a library level mutable variable with an initializer, tell
7870         build_allocator to ignore the initializer's size. It may not be large
7871         enough for all the values that might be assigned to the variable later
7872         on.
7873
7874 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7875             Eric Botcazou  <ebotcazou@adacore.com>
7876
7877         * trans.c: Protect < in error msg with quote
7878         Replace GCC_ZCX by Back_End_Exceptions.
7879         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
7880         has been sufficiently aligned in the record.
7881
7882 2005-08-15  James E. Wilson  <wilson@specifix.com>
7883
7884         * system-linux-alpha.ads: Change ia64 to alpha.
7885
7886 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
7887
7888         * decl.c, utils.c: Fix comment typos.
7889
7890 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
7891
7892         * decl.c, init.c, initialize.c: Fix comment typos.
7893
7894 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
7895
7896         Make CONSTRUCTOR use VEC to store initializers.
7897         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
7898         CONSTRUCTOR_ELTS.
7899         * trans.c (extract_values): Likewise.
7900         * utils.c (convert, remove_conversions): Likewise.
7901         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
7902         gnat_build_constructor): Likewise.
7903
7904 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7905
7906         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
7907         DECL_SECTION_NAME.
7908         (compare_field_bitpos): Likewise.
7909
7910 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7911
7912         * utils.c (create_var_decl): Only set DECL_COMMON on
7913         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
7914         VAR_OR_FUNCTION_DECL_P.
7915
7916 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
7917
7918         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
7919         removed.
7920
7921 2005-07-07  Pascal Obry  <obry@adacore.com>
7922
7923         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
7924         returned type on Windows.
7925
7926         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
7927         routine.
7928
7929         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
7930         exception in this case.
7931         Simplify the code as "Image (Image'Range)" = "Image".
7932
7933 2005-07-07  Vincent Celier  <celier@adacore.com>
7934
7935         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
7936         the destructor/constructor attributes for <lib>final/<lib>init.
7937
7938         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
7939
7940 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7941
7942         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
7943         type if the parameter is not passed by copy but reference by default.
7944
7945 2005-07-07  Javier Miranda  <miranda@adacore.com>
7946
7947         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
7948         Reimplementation of the support for abstract interface types in order
7949         to leave the code more clear and easy to maintain.
7950
7951         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
7952         abstract interface types in order to leave the code clearer and easier
7953         to maintain.
7954
7955         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
7956         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
7957         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
7958         appropriate entry of the secondary dispatch table.
7959         (Make_DT): Add code to inherit the secondary dispatch tables of
7960         the ancestors.
7961
7962         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
7963         implementing both functionalities by means of a common routine, each
7964         routine has its own code.
7965
7966 2005-07-07  Javier Miranda  <miranda@adacore.com>
7967
7968         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
7969
7970         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
7971         types:
7972         --
7973           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7974         --
7975
7976         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
7977         use of tag incomplete types.
7978
7979         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
7980         give support to tagged incomplete types.
7981
7982         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
7983         expression is a discriminant reference and its type is private, as can
7984         happen within a stream operation for a mutable record, use the full
7985         view of the type to resolve the case alternatives.
7986         (Analyze_Assignment): Check wrong dereference of incomplete types.
7987
7988         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
7989         types.
7990
7991         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
7992         incomplete types.
7993
7994         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
7995         N_Incomplete_Type_Declaration nodes.
7996
7997         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
7998         Tag_Present to give support to tagged incomplete types:
7999         --
8000           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
8001         --
8002
8003 2005-07-07  Olivier Hainque  <hainque@adacore.com>
8004
8005         PR ada/22301
8006
8007         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
8008         definitions for the Unwind wrappers in the compiler case.
8009
8010 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
8011             Javier Miranda  <miranda@adacore.com>
8012
8013         * par-load.adb (Load): If a child unit is loaded through a limited_with
8014         clause, each parent must be loaded as a limited unit as well.
8015
8016         * sem_ch10.adb (Previous_Withed_Unit): Better name for
8017         Check_Withed_Unit. Return true if there is a previous with_clause for
8018         this unit, whether limited or not.
8019         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
8020         the current unit.
8021         (Is_Visible_Through_Renamings): New local subprogram of install_limited
8022         _withed_unit that checks if some package installed through normal with
8023         clauses has a renaming declaration of package whose limited-view is
8024         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
8025         of the current Draft document for Ada 2005.
8026         (Analyze_Context): Complete the list of compilation units that
8027         are allowed to contain limited-with clauses. It also contains
8028         checks that were previously done by Install_Limited_Context_Clauses.
8029         This makes the code more clear and easy to maintain.
8030         (Expand_Limited_With_Clause) It is now a local subprogram of
8031         Install_Limited_Context_Clauses, and contains the code that adds
8032         the implicit limited-with clauses for parents of child units.
8033         This functionality was prevously done by Analyze_Context.
8034
8035         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
8036         incomplete type.
8037
8038         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
8039         been erroneously named in a limited-with clause of its own context.
8040         In this case the error has been previously notified by Analyze_Context.
8041
8042 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
8043
8044         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
8045         generic package that contains local declarations with the same name.
8046         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
8047
8048 2005-07-07  Bernard Banner  <banner@adacore.com>
8049
8050         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
8051         ia64 platform only on platforms that you the GCC unwind library
8052         rather than the system unwind library.
8053
8054 2005-07-07  Thomas Quinot  <quinot@adacore.com>
8055
8056         * expect.c: Minor reformatting
8057
8058 2005-07-07  Sergey Rybin  <rybin@adacore.com>
8059
8060         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
8061         --no-separate-is
8062
8063         * gnat_ugn.texi: Add description for new gnatpp option
8064         (--no-separate-is)
8065
8066 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8067
8068         * g-expect-vms.adb, g-expect.ads, g-expect.adb
8069         (Get_Command_Output): New subprogram to launch a process and get its
8070         standard output as a string.
8071
8072 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8073             Olivier Hainque  <hainque@adacore.com>
8074
8075         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
8076         fetch a code-range descriptor associated with the machine state. On
8077         failure set the machine state's PC to 0; on success, pass the
8078         descriptor to exc_virtual_unwind.
8079
8080         * init.c (Tru64 section): New function __gnat_set_code_loc.
8081
8082 2005-07-04  Vincent Celier  <celier@adacore.com>
8083
8084         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
8085         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
8086         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
8087         Remove all auto-initialization code, as this is now done through the
8088         constructor mechanism.
8089
8090         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
8091         __gnat_sals_init_using_constructors): New functions.
8092
8093         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
8094         Linker_Constructor and Linker_Destructor when switch -a is used.
8095
8096         * bindusg.adb: Add line for new switch -a
8097
8098         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
8099         (Gnatbind): When switch -a is used, check if it is allowed
8100
8101         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
8102
8103 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
8104
8105         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
8106         This prevents us from hitting a limitation during the debug info
8107         generation when using stabs.
8108         (Prims_Ptr): Likewise.
8109
8110 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8111             Ed Schonberg  <schonberg@adacore.com>
8112             Javier Miranda  <miranda@adacore.com>
8113
8114         * checks.adb (Null_Exclusion_Static_Checks): In the case of
8115         N_Object_Declaration, only perform the checks if the Object_Definition
8116         is not an Access_Definition.
8117
8118         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
8119         where the parent of an the access definition is an N_Object_Declaration
8120         when determining the Associated_Node_For_Itype and scope of an
8121         anonymous access-to-subprogram type.
8122
8123         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
8124         Corresponding_Spec on the body created for a null procedure. Add ???
8125         comment. Remove New_Copy_Tree call on body argument to
8126         Set_Body_To_Inline.
8127
8128         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
8129         discriminants, use the type of the actual as well, because the
8130         discriminants may be read by the called subprogram.
8131
8132         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
8133         access type we do not need to handle non-limited views.
8134         (Build_Derived_Record_Type): Additional check to check that in case of
8135         private types, interfaces are only allowed in private extensions.
8136
8137 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8138
8139         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
8140         <Pragma_Linker_Destructor>: Likewise.
8141
8142         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
8143         Pragma_Linker_Destructor.
8144
8145         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
8146         ATTR_LINK_DESTRUCTOR.
8147         (static_ctors, static_dtors): New variables.
8148
8149         * misc.c (gnat_expand_body): Output current function as constructor
8150         and destructor if requested.
8151
8152         * par-prag.adb: Add processing for pragma Linker_Constructor and
8153         Linker_Destructor.
8154
8155         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
8156         extracted from Check_Interrupt_Or_Attach_Handler.
8157         (Check_Interrupt_Or_Attach_Handler): Invoke it.
8158         Implement pragma Linker_Constructor and Linker_Destructor with the
8159         help of Find_Unique_Parameterless_Procedure.
8160         Replace Name_Alias with Name_Target for pragma Linker_Alias.
8161
8162         * snames.h, snames.ads, snames.adb:
8163         Add Name_Linker_Constructor and Name_Linker_Destructor.
8164         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
8165         * snames.adb: Remove Name_Alias.
8166
8167         * trans.c: Include cgraph.h.
8168         (build_global_cdtor): New function.
8169         (Compilation_Unit_to_gnu): Build global constructor and destructor if
8170         needed.
8171         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
8172         of objects too.
8173         (addressable_p) <COMPONENT_REF>: Unconditionally test
8174         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
8175
8176         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
8177         variable if it is external.
8178
8179         (static_ctors, static_dtors): New global variables.
8180         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
8181         <ATTR_LINK_DESTRUCTOR>: Likewise.
8182         (end_subprog_body): Chain function as constructor and destructor
8183         if requested.
8184
8185         * exp_util.adb (Force_Evaluation): Unconditionally invoke
8186         Remove_Side_Effects with Variable_Ref set to true.
8187         (Remove_Side_Effects): Handle scalar types first. Use a renaming
8188         for non-scalar types even if Variable_Ref is true and for class-wide
8189         expressions.
8190
8191 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8192
8193         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
8194         to prevent spurious warnings.
8195
8196 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8197
8198         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
8199         Itypes. Itypes are really unexpected there.
8200         (Build_TypeCode_Function): Generalise special processing for Itypes to
8201         handle the case of numeric implicit base types as well as enumerated
8202         ones.
8203
8204 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8205
8206         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
8207         controlled, indicate the expected type of the dereference that is
8208         created for the call to Deep_Finalize, to prevent spurious errors when
8209         the designated type is private and completed with a derivation from
8210         another private type.
8211
8212 2005-07-04  Vincent Celier  <celier@adacore.com>
8213
8214         * make.adb (Change_To_Object_Directory): When unable to change the
8215         current dir to the object directory, output the full path of the
8216         directory.
8217
8218 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8219
8220         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
8221
8222         * indepsw-linux.adb: Replace by...
8223
8224         * indepsw-gnu.adb: ...this new file
8225
8226 2005-07-04  Vincent Celier  <celier@adacore.com>
8227
8228         * mlib-prj.adb (Auto_Initialize): New constant String
8229         (SALs_Use_Constructors): New Boolean function
8230         (Build_Library): Call gnatbind with Auto_Initialize switch when
8231         SALs_Use_Constructors returns True.
8232
8233         * mlib-tgt.ads: Minor reformatting
8234
8235         * mlib-utl.ads: Minor reformatting
8236
8237         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
8238
8239 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8240
8241         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
8242         single protected declarations can have an interface list.
8243         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
8244         with seriously malformed entry declarations, and lead to compilation
8245         abandoned messages.
8246
8247 2005-07-04  Javier Miranda  <miranda@adacore.com>
8248
8249         * par-load.adb: Load the context items in two rounds.
8250
8251 2005-07-04  Robert Dewar  <dewar@adacore.com>
8252
8253         * scng.adb: Do not consider Mod used as an attribute to be a keyword
8254
8255 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8256             Javier Miranda  <miranda@adacore.com>
8257
8258         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
8259         type extension needs a limited view.
8260         Remove previous restriction on private types available through the
8261         limited-view (only tagged private types were previously allowed).
8262         (Install_Withed_Unit): In the code that implements the
8263         legality rule given in AI-377, exclude a child unit with the name
8264         Standard, because it is a homonym of the Standard environment package.
8265
8266 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8267
8268         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
8269         overloaded function call, carry interpretations from the original tree
8270         to the copy.
8271
8272 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8273
8274         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
8275         types check whether some designated type is a limited view, and use
8276         the non-limited view if available.
8277
8278 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8279
8280         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
8281         constraint of full view of a private view T1 if present, when T2 is a
8282         discriminated full view.
8283
8284 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8285
8286         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
8287         actual that is a view conversion of a bit packed array reference.
8288
8289 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8290
8291         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
8292         present before checking whether an interface type covers a synchronized
8293         type.
8294
8295 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8296
8297         * sem_util.adb (Is_Object_Reference): An indexed or selected component
8298         whose prefix is an implicit dereference is an object reference. Removes
8299         spurious errors when compiling with -gnatc.
8300
8301 2005-07-04  Robert Dewar  <dewar@adacore.com>
8302
8303         PR ada/22039
8304
8305         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
8306
8307 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8308
8309         * tracebak.c: Enable tracebacks on ia64 platforms
8310
8311 2005-07-04  Vincent Celier  <celier@adacore.com>
8312
8313         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
8314         the GNAT BIND command, as gnatbind accepts multiples ALI files with
8315         the -L or -n switches.
8316
8317 2005-07-04  Vincent Celier  <celier@adacore.com>
8318
8319         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
8320         correctly computed and the main project data is not modified while
8321         doing so.
8322         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
8323         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
8324         c++linker as this does not work on some platforms.
8325
8326 2005-07-04  Matthew Heaney  <heaney@adacore.com>
8327
8328         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
8329         was changed.
8330         * a-coinve.adb: Perform constraint checks explicitly.
8331
8332 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8333             Thomas Quinot  <quinot@adacore.com>
8334
8335         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
8336         new target gen-soccon.
8337
8338 2005-07-04  Robert Dewar  <dewar@adacore.com>
8339
8340         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
8341
8342 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8343
8344         * g-socket.ads (Check_Selector): Minor rewording of comment.
8345
8346 2005-07-04  Vincent Celier  <celier@adacore.com>
8347
8348         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
8349
8350 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8351
8352         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
8353
8354 2005-07-04  Sergey Rybin  <rybin@adacore.com>
8355
8356         * gnat_ugn.texi: Add description of --eol gnatpp option
8357
8358 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8359             Thomas Quinot  <quinot@adacore.com>
8360
8361         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
8362         if the user wants all calls of a subprogram to be flagged,
8363         independently of whether they are made from within the same unit or
8364         another unit.
8365         Mention restriction for pragma Linker_Alias on some platforms.
8366         Document pragma Linker_Constructor and Linker_Destructor.
8367         Rewrite documentation of Weak_External, Linker_Section and
8368         Linker_Alias pragmas.
8369
8370 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
8371
8372         * s-stausa.ads, s-stausa.adb: New files.
8373
8374 2005-06-30  Kelley Cook
8375
8376         * all files:  Update FSF address in copyright headers.
8377         * gen-soccon.co (main): Output new FSF address in generated files.
8378
8379 2005-06-28  Paul Brook  <paul@codesourcery.com>
8380
8381         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
8382
8383 2005-06-14  Olivier Hainque  <hainque@adacore.com>
8384             Eric Botcazou  <ebotcazou@adacore.com>
8385
8386         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
8387         exc_unwind, now that we are generating proper .debug_frame output for
8388         that target.
8389
8390         * tracebak.c: Remove the mips-irix section, as we are now using the
8391         s-mastop based unwinder again.
8392         Under SPARC/Solaris, take into account the stack bias to compute the
8393         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
8394         ABI.
8395
8396 2005-06-14  Doug Rupp  <rupp@adacore.com>
8397
8398         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
8399
8400         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
8401
8402 2005-06-14  Pascal Obry  <obry@adacore.com>
8403
8404         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
8405         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
8406         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
8407         package name).
8408
8409         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
8410         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
8411         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
8412         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
8413         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
8414         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
8415         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
8416         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
8417         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
8418         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
8419         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
8420         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
8421         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
8422         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
8423         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
8424         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
8425         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
8426         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
8427         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
8428         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
8429         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
8430         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
8431         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
8432         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
8433         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
8434         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
8435         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
8436         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
8437         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
8438         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
8439         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
8440         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
8441         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
8442         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
8443         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
8444         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
8445         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
8446         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
8447         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
8448         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
8449         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
8450         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
8451         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
8452         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
8453         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
8454         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
8455         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
8456         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
8457         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
8458         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
8459         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
8460         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
8461         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
8462         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
8463         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
8464         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
8465         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
8466         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
8467         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
8468         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
8469         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
8470         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
8471         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
8472         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
8473         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
8474         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
8475         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
8476         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
8477         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
8478         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
8479         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
8480         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
8481         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
8482         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
8483         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
8484         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
8485         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8486         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
8487         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
8488         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
8489         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
8490         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
8491         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
8492         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
8493         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
8494         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
8495         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
8496         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
8497         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
8498         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
8499         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
8500         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
8501         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
8502         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
8503         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
8504         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
8505         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
8506         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
8507         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
8508         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
8509         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
8510         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
8511         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
8512         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
8513         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
8514         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
8515         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
8516         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
8517         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
8518         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
8519         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
8520         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
8521         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
8522         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
8523         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
8524         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
8525         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
8526         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
8527         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
8528         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
8529         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
8530         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
8531         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
8532         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
8533         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
8534         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
8535         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
8536         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
8537         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
8538         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
8539         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
8540         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
8541         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
8542
8543 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
8544             Arnaud Charlet  <charlet@adacore.com>
8545
8546         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
8547         longer protected objects. They have been replaced by lower-level
8548         suspension objects made up by a mutex and a condition variable (or
8549         their equivalent given a particular OS) plus some internal data to
8550         reflect the state of the suspension object.
8551         (Initialize, Finalize): Add this initialization procedure for
8552         Suspension_Object, which is a controlled type.
8553         (Finalize): Add the finalization procedure for Suspension_Object,
8554         which is a controlled type.
8555
8556         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
8557         Ada.Synchronous_Task_Control because there is no longer a need for a
8558         VxWorks specific version of this package. Target dependencies
8559         has been moved to System.Task_Primitives.Operations.
8560
8561         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
8562         longer needed.
8563         (InitializeCriticalSection, EnterCriticalSection,
8564         LeaveCriticalSection, DeleteCriticalSection): Replace the type
8565         pCriticalSection by an anonymous access type so that we avoid problems
8566         of accessibility to local objects.
8567
8568         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
8569         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
8570         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
8571         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
8572         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
8573         set the environment task mask here.
8574         (Current_State): Add this function that returns the state of the
8575         suspension object.
8576         (Set_False): Add this procedure that sets the state of the suspension
8577         object to False.
8578         (Set_True): Add this procedure that sets the state of the suspension
8579         object to True, releasing the task that was suspended, if any.
8580         (Suspend_Until_True): Add this procedure that blocks the calling task
8581         until the state of the object is True. Program_Error is raised if
8582         another task is already waiting on that suspension object.
8583         (Initialize): Add this procedure for initializing the suspension
8584         object. It initializes the mutex and the condition variable which are
8585         used for synchronization and queuing, and it sets the internal state
8586         to False.
8587         (Finalize): Add this procedure for finalizing the suspension object,
8588         destroying the mutex and the condition variable.
8589
8590         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
8591         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
8592         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
8593         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
8594         which provides a low-level abstraction (using operating system
8595         primitives) for Ada.Synchronous_Task_Control.
8596         This object is made up by a mutex (for ensuring mutual exclusion), a
8597         condition variable (for queuing threads until the condition is
8598         signaled), a Boolean (State) indicating whether the object is open,
8599         and a Boolean (Waiting) reflecting whether there is a task already
8600         suspended on this object.
8601
8602         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
8603         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
8604         s-intman-vms.ads, s-intman-mingw.adb,
8605         (Initialize_Interrupts): Removed, no longer used.
8606
8607         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
8608         (Setup_Interrupt_Mask): New procedure.
8609
8610         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
8611
8612         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
8613
8614         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
8615         this is no longer done in the body of s-taprop
8616         (Server_Task): Explicitely test for Pending_Action in case
8617         System.Parameters.No_Abort is True.
8618
8619         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
8620         is no longer done in the body of s-taprop
8621
8622 2005-06-14  Robert Dewar  <dewar@adacore.com>
8623
8624         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
8625         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
8626         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
8627         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
8628         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8629         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
8630         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
8631         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
8632         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
8633         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
8634         system-linux-hppa.ads, system-vms_64.ads,
8635         system-vxworks-alpha.ads: Minor comment update for
8636         AI-362 (unit is Pure).
8637
8638         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
8639         Add pragma Pure_05 for AI-362
8640         Make remaining conversion functions obsolescent in Ada 95
8641
8642         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8643         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
8644         Add entries for a-wichun and a-zchuni
8645         Add a-widcha a-zchara for AI-395
8646         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
8647
8648         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8649         Add entries for a-wichun.o and a-zchuni.o
8650         Entries for a-widcha.o and a-zchara.o
8651         Add entry for a-chacon.o
8652
8653         * a-ztenau.adb: Add with of Ada.Characters.Conversions
8654
8655         * a-chacon.ads, a-chacon.adb: New files.
8656
8657         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
8658         categorization violations.
8659
8660         * a-strmap.ads: Add pragma Pure_05 for AI-362
8661         * a-strmap.ads: Add note on implicit categorization for AI-362
8662
8663         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
8664
8665         * par-prag.adb: Dummy entry for pragma Persistent_BSS
8666         Set Ada_Version_Explicit, for implementation of AI-362
8667         Add processing for pragma Pure_05 and Preelaborate_05
8668         Add entry for Assertion_Policy pragma
8669
8670         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
8671         when needed for proper processing of categorization stuff
8672
8673         * sem_cat.adb:
8674         For several cases, make errors in preealborate units warnings,
8675         instead of errors, if GNAT_Mode is set. For AI-362.
8676
8677         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
8678         preelaborate unit is now warning if in GNAT mode
8679
8680         * s-stoele.ads: Document AI-362 for pragma preelaborate
8681
8682 2005-06-14  Doug Rupp  <rupp@adacore.com>
8683
8684         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
8685         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
8686         Default_Exception_Msg_Max_Length: new parameter.
8687
8688         * a-except.ads: (Exception_Msg_Max_Length): Set to
8689         System.Parameters.Default_Exception_Msg_Max_Length
8690         Add pragma Preelaborate_05 for AI-362
8691         Add warnings off to allow categorization violations for AI-362
8692
8693 2005-06-14  Vincent Celier  <celier@adacore.com>
8694
8695         * gnatsym.adb: Adapt to modification of package Symbols: procedure
8696         Process is now in package Processing.
8697
8698         * symbols.ads, symbols.adb:
8699         (Processing): New package, containing procedure Process
8700
8701         * symbols-vms-alpha.adb:
8702         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
8703
8704         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
8705         symbols-processing-vms-ia64.adb: New files.
8706
8707 2005-06-14  Pascal Obry  <obry@adacore.com>
8708
8709         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
8710         implementation. This new version generates the proper DllMain routine
8711         to initialize the SAL. The DllMain is generated in Ada and compiled
8712         before being added as option to the library build command.
8713
8714 2005-06-14  Doug Rupp  <rupp@adacore.com>
8715             Pascal Obry  <obry@adacore.com>
8716
8717         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
8718         call to decc$translate_vms.
8719         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
8720         need to remove those quotes before catenating the filename.
8721         (__gnat_locate_exec_on_path): improvements to the Win32 section:
8722         * avoid allocating the memory twice for better efficiency;
8723         * allocate 32K buffer for environment expansion as suggested by MSDN;
8724         * prepend ".;" to the path so that current directory is searched too.
8725
8726 2005-06-14  Robert Dewar  <dewar@adacore.com>
8727
8728         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
8729         instead of raising CE (AI-241)
8730         Add warnings off to allow categorization violations for AI-362
8731
8732 2005-06-14  Robert Dewar  <dewar@adacore.com>
8733
8734         * ali-util.adb, gnatbind.adb: Remove references to
8735         Force_RM_Elaboration_Order.
8736
8737         * switch-b.adb: Remove recognition of -f switch
8738
8739 2005-06-14  Pascal Obry  <obry@adacore.com>
8740
8741         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
8742         implementation which is slightly more efficient.
8743
8744 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
8745             Javier Miranda  <miranda@adacore.com>
8746             Ed Schonberg  <schonberg@adacore.com>
8747             Hristian Kirtchev  <kirtchev@adacore.com>
8748
8749         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
8750         allocator's designated type is a class-wide type, and compiling for
8751         Ada 2005, emit a run-time check that the accessibility level of the
8752         type given in the allocator's expression is not deeper than the level
8753         of the allocator's access type.
8754
8755         (Tagged_Membership): Modified to gives support to abstract interface
8756         types.
8757
8758         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
8759         Access_Level.
8760         (Descendant_Tag): New predefined function
8761         (Is_Descendant_At_Same_Level): New predefined function
8762         (Get_Access_Level): New private function
8763         (Set_Access_Level): New private procedure
8764         (IW_Membership): New function. Given the tag of an object and the tag
8765         associated with an interface, evaluate if the object implements the
8766         interface.
8767         (Register_Interface_Tag): New procedure used to initialize the table of
8768         interfaces used by the IW_Membership function.
8769         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
8770         of the dispatch table.
8771         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
8772         table of interfaces of the parent.
8773         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
8774         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
8775         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
8776         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
8777         Ada 2005 semantics for the new predefined function.
8778
8779         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
8780         call to Descendant_Tag rather than Internal_Tag.
8781         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
8782         the accessibility level of the attribute's Item parameter is not deeper
8783         than the level of the attribute's prefix type. Tag_Error is raised if
8784         the check fails. The check is only emitted for Ada_05.
8785         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
8786         requested stream attribute, use it.
8787         (Expand_N_Attribute_Reference): If the designated type is an interface
8788         then rewrite the referenced object as a conversion to force the
8789         displacement of the pointer to the secondary dispatch table.
8790         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
8791         is a dereference of an object with a constrained partial view.
8792
8793         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
8794         type is a class-wide type, emit a run-time check that the accessibility
8795         level of the returned object is not deeper than the level of the
8796         function's master (only when compiling for Ada 2005).
8797
8798         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
8799         Action_Nb_Arg): Add entries for new Get_Access_Level and
8800         Set_Access_Level routines in these tables.
8801         (Make_DT): Generate a call to set the accessibility level of the
8802         tagged type in its TSD.
8803         (Make_DT): Code cleanup. The functionality of generating all the
8804         secondary dispatch tables has been moved to freeze_record_type.
8805         (Make_Abstract_Interface_DT): Minor code cleanup.
8806         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
8807         this subprogram implements a new algorithm that provides the
8808         same functionality and it is more clear in case of primitives
8809         associated with abstract interfaces.
8810         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
8811         clean up, the functionality of this subprogram is now provided
8812         by Set_All_DT_Position.
8813         (Write_DT): New subprogram: a debugging procedure designed to be called
8814         within gdb to display the dispatch tables associated with a tagged
8815         type.
8816         (Collect_All_Interfaces): New subprogram that collects the whole list
8817         of interfaces that are directly or indirectly implemented by a tagged
8818         type.
8819         (Default_Prim_Op_Position): New subprogram that returns the fixed
8820         position in the dispatch table of the default primitive operations.
8821         (Expand_Interface_Actuals): New subprogram to generate code that
8822         displaces all the actuals corresponding to class-wide interfaces to
8823         reference the interface tag of the actual object.
8824         (Expand_Interface_Conversion): New subprogram. Reference the base of
8825         the object to give access to the interface tag associated with the
8826         secondary dispatch table.
8827         (Expand_Interface_Thunk): New subprogram that generates the code of the
8828         thunk. This is required for compatibility with the C+ ABI.
8829         (Make_Abstract_Interface_DT): New subprogram that generate the
8830         declarations for the secondary dispatch tables associated with an
8831         abstract interface.
8832         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
8833         attribute for each primitive operation covering interface subprograms
8834         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
8835         These subprograms were upgraded to give support to abstract interfaces
8836
8837         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
8838         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
8839         RE_Set_Access_Level.
8840         (RE_Unit_Table): Add entries for new Ada.Tags operations.
8841         Add support to call the followig new run-time subprograms:
8842         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
8843
8844         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
8845         match its full declaration when both have an access definition with
8846         statically matching designated subtypes.
8847         (Analyze_Component_Declaration): Delete commented out code that was
8848         incorrectly setting the scope of an anonymous access component's type.
8849         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
8850         an access discriminant when the containing type is nonlimited.
8851         (Make_Incomplete_Type_Declaration): Create an incomplete type
8852         declaration for a record type that includes self-referential access
8853         components.
8854         (Check_Anonymous_Access_Types): Before full analysis of a record type
8855         declaration, create anonymous access types for each self-referential
8856         access component.
8857         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
8858         an access component in this context is a Local_Anonymous_Access, for
8859         proper accessibility checks.
8860         (Access_Definition): Set properly the scope of the anonymous access type
8861         created for a stand-alone access object.
8862         (Find_Type_Of_Object): An object declaration may be given with an access
8863         definition.
8864         (Complete_Subprograms_Derivation): New subprogram used to complete
8865         type derivation of private tagged types implementing interfaces.
8866         In this case some interface primitives may have been overriden
8867         with the partial-view and, instead of re-calculating them, they
8868         are included in the list of primitive operations of the full-view.
8869         (Build_Derived_Record_Type): Modified to give support to private
8870         types implemening interfaces.
8871         (Access_Definition): Reject ALL on anonymous access types.
8872         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
8873         type derivation to occur at a deeper accessibility level than the
8874         parent type.
8875         For the case of derivation within a generic body however, disallow the
8876         derivation if the derived type has an ancestor that is a formal type
8877         declared in the formal part of an enclosing generic.
8878         (Analyze_Object_Declaration): For protected objects, remove the check
8879         that they cannot contain interrupt handlers if not declared at library
8880         level.
8881         (Add_Interface_Tag_Components): New subprogram to add the tag components
8882         corresponding to all the abstract interface types implemented by a
8883         record type or a derived record type.
8884         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8885         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8886         Process_Full_View, Record_Type_Declaration): Modified to give
8887         support to abstract interface types
8888         (Collect_Interfaces): New subprogram that collects the list of
8889         interfaces that are not already implemented by the ancestors
8890         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
8891         when partial view has no discriminants and full view has defaults.
8892         (Constrain_Access): Reject a constraint on a general access type
8893         if the discriminants of the designated type have defaults.
8894         (Access_Subprogram_Declaration): Associate the Itype node with the inner
8895         full-type declaration or subprogram spec. This is required to handle
8896         nested anonymous declarations.
8897         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8898         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8899         Process_Full_View, Record_Type_Declaration): Modified to give
8900         support to abstract interface types
8901         (Derive_Subprograms): Addition of a new formal to indicate if
8902         we are in the case of an abstact-interface derivation
8903         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
8904         to the specification because it is requied to analyze all the
8905         identifiers found in a list of interfaces
8906
8907         * debug.adb: Complete documentation of flag "-gnatdZ"
8908
8909         * exp_ch3.adb: Implement config version of persistent_bss pragma
8910         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
8911         testing for TSS presence to properly enforce visibility rules.
8912         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
8913         Make_Abstract_Interfaces_DT to generate the secondary tables
8914         associated with abstract interfaces.
8915         (Build_Init_Procedure): Modified to initialize all the tags
8916         corresponding.
8917         (Component_Needs_Simple_Initialization): Similar to other tags,
8918         interface tags do not need initialization.
8919         (Freeze_Record_Type): Modified to give support to abstract interface
8920         types.
8921         (Expand_N_Object_Declaration): Do not generate an initialization for
8922         a scalar temporary marked as internal.
8923
8924         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
8925         in-out parameter that is a component in an initialization procedure,
8926         whose constraint might depend on discriminants, and that may be
8927         misaligned because of packing or representation clauses.
8928         (Is_Legal_Copy): New predicate to determine whether a possibly
8929         misaligned in-out actual can actually be passed by copy/return. This
8930         is an error in case the type is by_reference, and a warning if this is
8931         the consequence of a DEC import pragma on the subprogram.
8932         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
8933         interface types
8934         (Expand_Inlined_Call): Mark temporary generated for the return value as
8935         internal, so that no useless scalar normalization is generated for it.
8936         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
8937         null procedure can always be inlined.
8938         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
8939         procedure, generate an explicit empty body for it.
8940
8941         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
8942         Given a type implementing an interface, returns the corresponding
8943         access_disp_table value.
8944         (Find_Interface_Tag): New subprogram. Given a type implementing an
8945         interface, returns the record component containing the tag of the
8946         interface.
8947         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
8948         previous ones that return the corresponding tag and access_disp_table
8949         entities.
8950         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
8951         is a predefined primitive operation.
8952         (Expand_Subtype_From_Expr): If the expression is a selected component
8953         within an initialization procedure, compute its actual subtype, because
8954         the component may depend on the discriminants of the enclosing record.
8955
8956         * i-cpp.ads, i-cpp.adb:
8957         This package has been left available for compatibility with previous
8958         versions of the frontend. As part of the new layout this is now a
8959         dummy package that uses declarations available at a-tags.ads
8960
8961         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
8962         "constant access" and "aliased [constant] access" when not compiling
8963         with -gnat05.
8964         Suppress Ada 2005 keyword warning if -gnatwY used
8965         (P_Identifier_Declarations): Add support for object declarations with
8966         access definitions.
8967         (Private_Extension_Declaration): Complete the documentation
8968         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
8969         attribute in case of private extension declaration
8970         (P_Type_Declaration): Mark as "abstract" the type declarations
8971         corresponding with protected, synchronized and task interfaces
8972         (P_Declarative_Items): "not" and "overriding" are overriding indicators
8973         for a subprogram or instance declaration.
8974
8975         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
8976         instantiation that is a dispatching operation has controlling access
8977         parameters that are null excluding.
8978         Save and restore Ada_Version_Explicit, for implementation of AI-362
8979         (Validate_Derived_Type_Instance): Add check for abstract interface
8980         types.
8981         (Analyze_Formal_Package): Establish Instantiation source for the copy of
8982         the generic that is created to represent the formal package.
8983         (Analyze_Package_Instantiation): Instantiate body immediately if the
8984         package is a predefined unit that contains inlined subprograms, and
8985         we are compiling for a Configurable_Run_Time.
8986         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
8987         If the program has a null default, generate an empty body for it.
8988
8989         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
8990         error message condition, null procedures are correctly detected now.
8991         (New_Overloaded_Entity): Bypass trivial overriding indicator check
8992         for subprograms in the context of protected types. Instead, the
8993         indicator is examined in Sem_Ch9 while analysing the subprogram
8994         declaration.
8995         (Check_Overriding_Indicator): Check consistency of overriding indicator
8996         on subprogram stubs as well.
8997         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
8998         the library level.
8999         (Analize_Subprogram_Specification): When analyzing a subprogram in which
9000         the type of the first formal is a concurrent type, replace this type
9001         by the corresponding record type.
9002         (Analyze_Subprogram_Body): Undo the previous work.
9003         (Analyze_Procedure_Call): If the call has the form Object.Op, the
9004         analysis of the prefix ends up analyzing the call itself, after which
9005         we are done.
9006         (Has_Interface_Formals): New subprogram subsidiary to analyze
9007         subprogram_specification that returns true if some non
9008         class-wide interface subprogram is found
9009         (New_Overloaded_Entity): Modified to give support to abstract
9010         interface types
9011         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
9012         access to subprograms must be recursive.
9013         (Is_Unchecked_Conversion): Improve the test that recognizes
9014         instantiations of Unchecked_Conversion, and allows them in bodies that
9015         are to be inlined by the front-end. When the body comes from an
9016         instantiation, a reference to Unchecked_Conversion will be an
9017         Expanded_Name, even though the body has not been analyzed yet.
9018         Replace Is_Overriding and Not_Overriding in subprogram_indication with
9019         Must_Override and Must_Not_Override, to better express intent of AI.
9020         (Analyze_Subprogram_Body): If an overriding indicator is given, check
9021         that it is consistent with the overrinding status of the subprogram
9022         at this point.
9023         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
9024         always inlined.
9025         If the subprogram is a null procedure, indicate that it does not need
9026         a completion.
9027
9028         * sem_disp.adb (Check_Controlling_Type): Give support to entities
9029         available through limited-with clauses.
9030         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
9031         allowed as the last primitive of a tagged type if it has no previous
9032         spec.
9033         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
9034         to give support to abstract interface types
9035
9036         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
9037         in the case where the target type is an anonymous access type of an
9038         object or component (that is, when Is_Local_Anonymous_Access is true).
9039         Prevent the special checks for conversions of access discriminants in
9040         the case where the discriminant belongs to a nonlimited type, since
9041         such discriminants have their accessibility level defined in the same
9042         way as a normal component of an anonymous access type.
9043         (Resolve_Allocator): When an allocator's designated type is a class-wide
9044         type, check that the accessibility level of type given in the
9045         allocator's expression or subtype indication is not statically deeper
9046         than the level of the allocator's access type.
9047         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
9048         name in a discriminant constraint of a record component.
9049         (Resolve_Explicit_Dereference): Do not check whether the type is
9050         incomplete when the dereference is a use of an access discriminant in
9051         an initialization procedure.
9052         (Resolve_Type_Conversion): Handle conversions to abstract interface
9053         types.
9054         (Valid_Tagged_Conversion): The conversion of a tagged type to an
9055         abstract interface type is always valid.
9056         (Valid_Conversion): Modified to give support to abstract interface types
9057         (Resolve_Actuals): Enable full error reporting on view conversions
9058         between unrelated by_reference array types.
9059         The rule for view conversions of arrays with aliased components is
9060         weakened in Ada 2005.
9061         Call to obsolescent subprogram is now considered to be a violation of
9062         pragma Restrictions (No_Obsolescent_Features).
9063         (Check_Direct_Boolean_Operator): If the boolean operation has been
9064         constant-folded, there is nothing to check.
9065         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
9066         check on possible violation of restriction No_Direct_Boolean_Operators
9067         until after expansion of operands, to prevent spurious errors when
9068         operation is constant-folded.
9069
9070         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
9071         Has_Compatible_Type): Modified to give support to abstract interface
9072         types.
9073         (Interface_Present_In_Ancestor): New function to theck if some ancestor
9074         of a given type implements a given interface
9075
9076         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
9077         prefix is a parameterless function that returns an access_to_procedure.
9078         (Transform_Object_Operation): Handle properly function calls of the
9079         form Obj.Op (X), which prior to analysis appear as indexed components.
9080         (Analyze_One_Call): Complete the error notification to help new Ada
9081         2005 users.
9082         (Analyze_Allocator): For an allocator without an initial value, where
9083         the designated type has a constrained partial view, a discriminant
9084         constraint is illegal.
9085
9086 2005-06-14  Robert Dewar  <dewar@adacore.com>
9087
9088         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
9089         do with treatment of Set_Col when positioned at end of line character.
9090
9091 2005-06-14  Robert Dewar  <dewar@adacore.com>
9092
9093         * atree.adb: (Elist*): Protect against uninitialized field
9094
9095 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9096
9097         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
9098         for an attribute reference that returns an access type.
9099         (Apply_Discriminant_Check): No need for check if (designated) type has
9100         constrained partial view.
9101
9102         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
9103         both bound checks, rather than a conjunction.
9104         (Insert_Valid_Check): If the expression is an actual that is an indexed
9105         component of a bit-packed array, force expansion of the packed element
9106         reference, because it is specifically inhibited elsewhere.
9107
9108 2005-06-14  Vincent Celier  <celier@adacore.com>
9109
9110         * clean.adb (Clean_Project): Correctly delete executable specified as
9111         absolute path names.
9112
9113         * make.adb (Gnatmake): Allow relative executable path names with
9114         directory information even when project files are used.
9115         (Change_To_Object_Directory): Fail gracefully when unable to change
9116         current working directory to object directory of a project.
9117         (Gnatmake): Remove exception handler that could no longer be exercized
9118         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
9119         may be deallocated by Normalize_Arguments.
9120         (Collect_Arguments): Eliminate empty arguments
9121
9122         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
9123         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
9124         (Check_Project): Return False when Project is No_Project. Return True
9125         when All_Projects is True.
9126         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
9127         All_Projects to True.
9128         Minor reformatting
9129
9130 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9131             Javier Miranda  <miranda@adacore.com>
9132             Thomas Quinot  <quinot@adacore.com>
9133             Robert Dewar  <dewar@adacore.com>
9134             Hristian Kirtchev  <kirtchev@adacore.com>
9135             Gary Dismukes  <dismukes@adacore.com>
9136
9137         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
9138         anonymous access types, to indicate that the accessibility level of
9139         the type is determined by that of the enclosing declaration.
9140         (Has_Persistent_BSS): New flag
9141         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
9142         of this attribute with functions.
9143         (Is_Primitive_Wrapper): Remove the barrier.
9144         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
9145         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
9146         New subprograms.
9147         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
9148         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
9149         New subprograms.
9150         (Is_Pure_Unit_Access_Type): New flag
9151         (Abstract_Interfaces): Complete the assertion to cover all usages.
9152         (Set_Is_Interface): Complete the assertion to cover all usages.
9153         (Is_Primitive_Wrapper): New attribute.
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 implemente Ada 2005 AI-363,
9157         which solves various problems concerning access subtypes.
9158         (Has_Persistent_BSS): New flag
9159         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
9160         Remove these subprograms because this attribute is currently
9161         not used.
9162         New entity flags:
9163         Has_Specified_Stream_Input (Flag190)
9164         Has_Specified_Stream_Output (Flag191)
9165         Has_Specified_Stream_Read (Flag192)
9166         Has_Specified_Stream_Write (Flag193)
9167         Present in all type and subtype entities. Set for a given view if the
9168         corresponding stream-oriented attribute has been defined by an
9169         attribute definition clause. When such a clause occurs, a TSS is set
9170         on the underlying full view; the flags are used to track visibility of
9171         the attribute definition clause for partial or incomplete views.
9172         (Is_Pure_Unit_Access_Type): New flag
9173         Clarify use of Is_Internal.
9174         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
9175         internally generated to wrap the invocation of tasks and protected
9176         types that implement interfaces.
9177         (Implementation_Base_Type): Documentation correction
9178         (Is_Obsolescent): Now applies to all entities (though it is only set
9179         for subprograms currently)
9180         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
9181         which solves various problems concerning access subtypes.
9182
9183         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
9184         for examined parameters. Identify unequal parameter list lengths as
9185         non-conformant parameters.
9186         (Overriding_Possible): Do not check for "All" qualifier in declaration
9187         of controlling access parameter, following prescription of AI-404.
9188         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
9189         that build the procedure body that wraps an entry invocation
9190         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
9191         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
9192         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
9193         give support to abstract interface types
9194
9195         * freeze.adb (Freeze_Entity): Issue error message if
9196         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
9197         type has no storage pool (Ada 2005) AI-366.
9198         Also modified to give support to abstract interface types
9199         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
9200         Inline_Always pragma.
9201
9202         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
9203         now begin an entry declaration.
9204         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
9205         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
9206         a subprogram declaration preceded by an overriding indicator.
9207         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
9208         declarations or subprogram declarations preceded by reserved words
9209         "not" or "overriding".
9210         (P_Entry_Declaration): Update comment. Parse and check overriding
9211         indicator, set semantic flags of entry declarations.
9212         (P_Task): New error message in case of private applied
9213         to a task type declaration.
9214         (P_Protected): New error message in case of private applied
9215         to a task type declaration.
9216
9217         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
9218         in which the full view of a type implementing an interface is a
9219         concurrent type.
9220         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
9221         Declare_Inherited_Private_Subprograms): If an explicit operation
9222         overrides an operation that is inherited in the private part, mark the
9223         explicit one as overriding, to enable overriding indicator checks.
9224         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
9225         full view to partial view, to simplify handling in back-end.
9226
9227         * sprint.adb: Print interface lists where needed: derived types,
9228         protected types, task types.
9229         output "is null" for null procedures. Part of implementation of
9230
9231         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
9232         relaxation of rules for access types in pure, shared passive partitions.
9233
9234         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
9235         first read discriminants into temporary objects, performing checks on
9236         the read values, then possibly performing discriminant checks on the
9237         actual (if it is constrained), and only finally reading the components
9238         into a constrained temporary object.
9239         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
9240         case of reading discriminants of a mutable record type to recognize
9241         the new form of the code generated by
9242         Build_Mutable_Record_Read_Procedure.
9243
9244         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
9245         of a simple call to Make_TSS_Name.
9246         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
9247         buffer, in order for Is_TSS to work correctly on local TSS names.
9248
9249         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
9250         Is_Local_Anonymous_Access to check legaliy of attributes in the
9251         context of  access components and stand-alone access objects.
9252         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
9253         treated as available for a limited private type if there is an
9254         attribute_definition_clause that applies to its full view, but not in
9255         other cases where the attribute is available for the full view
9256         (specifically, the sole fact that the full view is non-limited does not
9257         make the attribute available for the partial view).
9258         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
9259         non-overloaded intrinsic subprogram.
9260         (Check_Stream_Attribute): Reject an attribute reference for an
9261         unavailable stream attribute even if the prefix is not a limited type
9262         (case of a 'Input attribute reference for an abstract, non-classwide
9263         type)
9264         (Stream_Attribute_Available): New function to determine whether a stream
9265         attribute is available at a place.
9266         (Check_Attribute): Use Stream_Attribute_Available instead of just
9267         testing for TSS presence on the implementation base type.
9268         (Analyze_Attribute): Modified to give support to task interfaces.
9269         (Analyze_Access_Attribute): Add error check for use of an Access (or
9270         Unrestricted_Access) attribute with a subprogram marked as
9271         Inline_Always.
9272         (Analyze_Attribute, case Attribute_Address): Add error check for use of
9273         an Address attribute with a subprogram marked as Inline_Always.
9274         Update Eval_Attribute to handle new value of Width from AI-395
9275
9276         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
9277         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
9278         Factor common code across the stream-oriented attribute circcuits into
9279         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
9280         processing is functionally identical to the previous duplicated one,
9281         except that an expression that denotes an abstract subprogram will now
9282         be rejected, as mandated by AI-195 item 5.
9283
9284         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
9285         Is_Local_Anonymous_Access to apply accessibility checks to access
9286         components and stand-alone access objects.
9287         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
9288         elsewhere.
9289         (Is_Potentially_Persistent_Type): New function
9290         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
9291         a heap-object whose type has a constrained partial view, the object is
9292         unconstrained and the component may depend on a discriminant, making its
9293         renaming illegal.
9294
9295         * sinfo.ads, sinfo.adb
9296         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
9297         (Must_Override): Flag applicable to N_Entry_Declaration.
9298         Indicate that interface_list can appear in single task and single
9299         protected declarations.
9300         Replace Is_Overriding and Not_Overriding with Must_Override and
9301         Must_Not_Override, to better express intent of AI.
9302         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
9303         of an overriding indicator in a subprogram or instance.
9304         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
9305         Add the overriding indicator [[not] overriding] construct to the
9306         following grammar productions:
9307          ENTRY_DECLARATION
9308          GENERIC_INSTANTIATION
9309          SUBPROGRAM_SPECIFICATION
9310
9311         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
9312         can start with an overriding indicator.
9313
9314         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
9315         flags accordingly on subrogram specifications or instances.
9316
9317         * sem_ch8.adb:
9318         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
9319         overriding_indicator, if present, is consistent with status of spec.
9320         Improve error message for null-excluding checks on controlling access
9321         parameters.
9322         (Check_In_Previous_With_Clause): Protect the frontend against
9323         previously reported critical errors in the context clauses.
9324         Save and restore Ada_Version_Explicit, for implementation of AI-362
9325         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
9326         operation verify that controlling formals of the renamed entity that
9327         are access parameters are explicitly non-null.
9328         (Find_Expanded_Name): Improve error message when prefix is an illegal
9329         reference to a private child unit.
9330
9331         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
9332         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
9333         Rewrite to correspond to new wide character names in AI-395
9334
9335         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
9336         default procedures.
9337
9338 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9339             Robert Dewar  <dewar@adacore.com>
9340
9341         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
9342         code, not on the bodies of predefined operations, to cut down on
9343         spurious noise.
9344
9345 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9346
9347         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
9348         be expanded in place. The size computation does not require a
9349         subtraction, which would raise an exception on a compiler built with
9350         assertions when the upper bound is Integer'first.
9351         (Flatten): For an array of composite components, take into account the
9352         size of the components to determine whether it is safe to expand the
9353         array into a purely positional representation.
9354
9355 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9356
9357         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
9358         denoting a formal parameter into account.
9359
9360 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9361
9362         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
9363         the entry_call alternative of a conditional entry call, wrap the
9364         conditional entry call itself.
9365
9366 2005-06-14  Nicolas Setton  <setton@adacore.com>
9367             Ed Schonberg  <schonberg@adacore.com>
9368
9369         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
9370         the "simple_choice" member in a variant record, in accordance with the
9371         description in the package spec: the information output for a constant
9372         should be "S number", not "SS number".
9373         (Get_Encoded_Name): Return at once if not generating code. Avoids name
9374         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
9375
9376 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9377
9378         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
9379         RACW without any primitives, do not generate the if statement for
9380         dispatching by name in the PolyORB/DSA case, as it would be malformed
9381         (it would have an Elsif_Parts list that is not No_List, but with a
9382         length of 0).
9383
9384 2005-06-14  Robert Dewar  <dewar@adacore.com>
9385
9386         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
9387
9388 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
9389
9390         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
9391         can determine whether pragma Suppress_Exception_Locations is in effect.
9392
9393         * utils2.c (build_call_raise): Do not pass the file name to the
9394         exception handler if pragma Suppress_Exception_Locations is in effect.
9395         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
9396
9397 2005-06-14  Emmanuel Briot  <briot@adacore.com>
9398
9399         * g-debpoo.adb (Deallocate, Dereference): Improve output.
9400
9401 2005-06-14  Nicolas Roche  <roche@adacore.com>
9402
9403         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
9404         to ""
9405         (Next_Level): Fix minor bug in handling of ../dir case
9406         (Read): Add dir separator to Directory name so that "" is understood as
9407          "/"
9408
9409 2005-06-14  Pascal Obry  <obry@adacore.com>
9410
9411         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
9412         releasing the items.
9413
9414 2005-06-14  Vincent Celier  <celier@adacore.com>
9415             Cyrille Comar  <comar@adacore.com>
9416
9417         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
9418         with output file descriptor and with output file name.
9419         (Dup, Dup2): Now global procedures as they are used by two subprograms
9420         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
9421
9422 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9423
9424         PR ada/6717
9425
9426         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
9427         broadcast address.
9428         (Create_Selector): Bind listening socket used to create the signalling
9429         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
9430         Set listen backlog to 1 to ensure that we detect socket theft by a
9431         failure of our own connect(2) call.
9432         (Check_Selector): Improve documentation of the selector mechanism.
9433         (Broadcast_Inet_Addr): New constant.
9434
9435 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9436
9437         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
9438         type which turns out to be an incomplete and incorrect fix.
9439         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
9440         of the type is declared in a record (for determination of insertion
9441         type).
9442         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
9443         a private type and ensure that the primary entity is used for the type
9444         of the newly created function's V formal by taking the Etype of the
9445         view.
9446
9447 2005-06-14  Javier Miranda  <miranda@adacore.com>
9448             Jose Ruiz  <ruiz@adacore.com>
9449             Robert Dewar  <dewar@adacore.com>
9450             Ed Schonberg  <schonberg@adacore.com>
9451
9452         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
9453         that indicates if we are parsing a compilation unit found in a
9454         limited-with clause.
9455         It is use to avoid the circularity check.
9456
9457         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
9458         we are parsing a compilation unit found in a limited-with clause. This
9459         is use to avoid the circularity check.
9460
9461         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
9462         unit as a consequence of parsing a limited-with clause. This is used
9463         to avoid the circularity check.
9464
9465         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
9466         (Analyze_Context): Limited-with clauses are now allowed
9467         in more compilation units.
9468         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
9469         againts previously reported critical errors in context clauses
9470         (Install_Limited_Withed_Unit): Code cleanup plus static detection
9471         of two further errors: renamed subprograms and renamed packages
9472         are not allowed in limited with clauses.
9473         (Install_Siblings): Do not install private_with_clauses on the package
9474         declaration for a non-private child unit.
9475         (Re_Install_Parents): When a parent of the subunit is reinstalled,
9476         reset visibility of child units properly.
9477         (Install_Withed_Unit): When a child unit appears in a with_clause of its
9478         parent, it is immediately visible.
9479
9480 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9481             Emmanuel Briot  <briot@adacore.com>
9482
9483         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
9484         declared within an inlined body as referenced, to prevent spurious
9485         warnings.
9486         (Output_One_Ref): If an entity renames an array component, indicate in
9487         the ALI file that this aliases (renames) the array. Capture as well
9488         function renamings that rename predefined operations.
9489         Add information about generic parent for package and subprogram
9490         instances.
9491         (Get_Type_Reference): For a subtype that is the renaming of an actual in
9492         an instantiation, use the first_subtype to ensure that we don't generate
9493         cross-reference information for internal types.
9494         For objects and parameters of a generic private type, retain the '*'
9495         indicator to distinguish such an entity from its type.
9496
9497         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
9498         to store information about instantiated entities.
9499
9500         * ali.adb (Scan_ALI): Add support for parsing the reference to the
9501         generic parent
9502
9503         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
9504         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
9505         information.
9506
9507 2005-06-10  Doug Rupp  <rupp@adacore.com>
9508             Arnaud Charlet  <charlet@adacore.com>
9509             Olivier Hainque  <hainque@adacore.com>
9510             Jose Ruiz  <ruiz@adacore.com>
9511
9512         * Make-lang.in: Add initialize.o when needed.
9513         Remove obsolete references to RT_FLAGS.
9514         Add missing dependencies for sdefault.o
9515
9516         * initialize.c: New file.
9517
9518         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
9519         [VMS] cond_signal_table: Fix problem in declaration.
9520         [VMS] __gnat_error_handler: rewrite.
9521         Move all __gnat_initialize() routines to initialize.c
9522         Specialize the former "hpux" section to "hppa hpux", as this is what the
9523         section really is here for and we now have other hpux ports that need
9524         different contents.
9525         (__gnat_adjust_context_for_raise) i386-linux: First version of this
9526         function for this target. Adjust PC by one in the machine context. This
9527         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
9528         it is more reliable to do that in the signal handler itself.
9529         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
9530         flags, so that the handler is passed the context structure to adjust
9531         prior to the raise.
9532         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
9533         SA_SIGINFO sigaction should look like. Call
9534         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
9535         Machine_State_Operations stuff.
9536         Add conditional code so that the x86_64 is also supported.
9537
9538 2005-06-14  Pascal Obry  <obry@adacore.com>
9539
9540         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
9541         the library name.
9542
9543 2005-06-14  Robert Dewar  <dewar@adacore.com>
9544
9545         * opt.ads, opt.adb: New flags for persistent_bss mode
9546         Add Ada_Version_Explicit, for implementation of AI-362
9547         Add Assertions_Enabled_Config and associated handling
9548         Needed since setting can be changed with Assertion_Policy pragma
9549         Add new flag Warn_On_Ada_2005_Compatibility
9550
9551         * switch-c.adb: Recognize -gnatwy/Y
9552         Set Ada_Version_Explicit, for implementation of AI-362
9553         The -gnatg switch now includes -gnatyu
9554
9555         * usage.adb: Add -gnatwy/Y
9556         Remove wrong asterisk on -gnatwX line
9557         Add line for -gnatyu switch
9558
9559 2005-06-14  Vincent Celier  <celier@adacore.com>
9560
9561         * osint.adb (Add_Default_Search_Dirs): Put source and object
9562         directories of project files before directories coming from
9563         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
9564
9565 2005-06-14  Robert Dewar  <dewar@adacore.com>
9566
9567         PR ada/15613
9568
9569         * par-ch2.adb (Scan_Pragma_Argument): New procedure
9570         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
9571
9572 2005-06-14  Vincent Celier  <celier@adacore.com>
9573
9574         * prep.adb (Preprocess): Ignore error when scanning the first token of
9575         a line.
9576
9577 2005-06-14  Vincent Celier  <celier@adacore.com>
9578
9579         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
9580         (Check_Stand_Alone_Library): If the specified reference symbol file does
9581         not exist, only issue a warning when the symbol policy is not
9582         Controlled. And, when symbol policy is Compliant, set the symbol
9583         policy to Autonomous.
9584
9585 2005-06-14  Vincent Celier  <celier@adacore.com>
9586
9587         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
9588         when the project file in a with clause is not the last one, that is the
9589         project file name is followed by a comma.
9590         * prj-pp.adb: (First_With_In_List): New Boolean global variable
9591         (Print): Issue list of project files separated by commas in with clauses
9592         according to the values returned by Is_Not_Last_In_List.
9593         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
9594         (Set_Is_Not_Last_In_List): New procedure
9595
9596 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9597
9598         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
9599
9600 2005-06-14  Robert Dewar  <dewar@adacore.com>
9601
9602         * scng.adb: Add call to new Check_EOF routine
9603         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
9604         Add some comments regarding wide character handling
9605
9606         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
9607
9608         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
9609
9610         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
9611         characters are now considered graphic characters and hence yield false
9612         in this call.
9613
9614         * nmake.adt: Modify header so that xnmake does not generate output
9615         files with multiple blank lines.
9616
9617         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9618         not have an extra blank line
9619
9620 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9621
9622         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
9623         expression when the component type is an anonymous access type to
9624         ensure that appropriate accessibility checks are done.
9625
9626         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
9627         expression of an assignment when the target object is of an anonymous
9628         access type. This ensures that required accessibility checks are done.
9629         (One_Bound): Move the check for type Universal_Integer to
9630         Process_Bounds.
9631         (Process_Bounds): Check whether the type of the preanalyzed range is
9632         Universal_Integer, and in that case set Typ to Integer_Type prior
9633         to setting the type of the original range and the calls to One_Bound.
9634
9635 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9636
9637         * sem_case.adb (Expand_Others_Choice): Improve warning.
9638
9639 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9640
9641         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
9642         constraint of full view if present, when other type is discriminated.
9643         (Eval_Relational_Op): Recognize tests of pointer values against Null,
9644         when the pointer is known to be non-null, and emit appropriate warning.
9645
9646 2005-06-14  Robert Dewar  <dewar@adacore.com>
9647             Ed Schonberg  <schonberg@adacore.com>
9648
9649         PR ada/10671
9650
9651         * sem_prag.adb: Implement pragma Persistent_BSS
9652         Remove obsolete pragma Persistent_Data, Persistent_Object
9653         Set Ada_Version_Explicit, for implementation of AI-362
9654         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
9655         Add processing for pragma Pure_05 and Preelaborate_05
9656         Add processing for Assertion_Policy pragma
9657         Add pragma identifiers for Assert
9658         (Analyze_Pragma, case Assert): Check number of arguments
9659         (Process_Inline): Additional guard against an illegal program, where the
9660         argument of the pragma is undefined, and warnings on redundant
9661         constructs are enabled.
9662         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
9663         Ada_05 to this pragma, specifying that the pragma is only active in
9664         Ada_05 mode.
9665         (Check_Arg_Order): New procedure
9666         Add appropriate calls to this procedure throughout
9667         Also throughout, check entity name before doing any other checks
9668
9669         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
9670         Remove obsolete pragma Persistent_Data, Persistent_Object
9671         Add entries for pragma Pure_05 and Preelaborate_05
9672         Add entries for Assertion_Policy pragma and associated names
9673         Add some names for pragma argument processing
9674
9675         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
9676
9677 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9678
9679         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
9680         appears within a negation (either from source or as a rewriting of
9681         inequality) adjust text of warning accordingly.
9682
9683 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9684
9685         * s-strxdr.adb: Follow AI95-00132
9686
9687 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9688
9689         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
9690
9691 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9692             Jose Ruiz  <ruiz@adacore.com>
9693
9694         * s-tposen.adb, s-tpobop.adb
9695         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
9696         the exception id.
9697         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
9698         there is no violation of the Max_Entry_Queue_Length restriction (if it
9699         has been set); Program_Error is raised otherwise.
9700         (Requeue_Call): Before requeuing the task on the target entry queue we
9701         check that there is no violation of the Max_Entry_Queue_Length
9702         restriction (if it has been set); Program_Error is raised otherwise.
9703
9704 2005-06-14  Robert Dewar  <dewar@adacore.com>
9705
9706         * styleg.adb: Fix several remaining problems in -gnatyu switch
9707         Blank line count not reset at start
9708         Scanning outside source buffer in some cases
9709         Confusing message for blanks at end of file
9710         Non-empty blank lines not recognized
9711
9712         * nmake.adt: Modify header so that xnmake does not generate output
9713         files with multiple blank lines.
9714
9715         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9716         not have an extra blank line
9717
9718 2005-06-14  Sergey Rybin  <rybin@adacore.com>
9719
9720         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
9721
9722 2005-06-14  Doug Rupp  <rupp@adacore.com>
9723             Vincent Celier  <celier@adacore.com>
9724
9725         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
9726         Update copyright.
9727
9728         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9729         Remove "Library" command.
9730         Change keyword for style check -gnatyd from NOCRLF to
9731         DOS_LINE_ENDINGS.
9732         Remove useless second style check keyword NONE
9733         Remove help documentation for inexistent style check keyword
9734         RM_COLUMN_LAYOUT.
9735         Add help documentation for style check keywords DOS_LINE_ENDINGS,
9736         UNNECESSARY_BLANK_LINES and XTRA_PARENS
9737         Add UNNECESSARY_BLANK_LINES for -gnatyu
9738         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
9739
9740         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9741
9742 2005-06-14  Vincent Celier  <celier@adacore.com>
9743
9744         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
9745         gprmake was invoked with -d.
9746         (Compile_Sources): If -d was used, output the "completed ..." message
9747         for each compilation.
9748         (Scan_Arg): Recognize new switch -d
9749         When -c and at least one main is specified, set
9750         Unique_Compile to True to guarantee that no other sources will be
9751         compiled.
9752
9753 2005-06-14  Matthew Heaney  <heaney@adacore.com>
9754
9755         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
9756         * a-swuwha.ads, a-swuwha.adb: New files
9757
9758         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
9759         * a-szuzha.ads, a-szuzha.adb: New files.
9760
9761         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9762         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
9763         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
9764         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
9765         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
9766         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
9767         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
9768         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
9769         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
9770         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
9771         Ada 2005 RM.
9772
9773 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9774             Olivier Hainque  <hainque@adacore.com>
9775             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9776             Pascal Obry  <obry@adacore.com>
9777
9778         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
9779
9780         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
9781         making a temporary around a procedure call because of non-addressable
9782         actual parameter.
9783         (process_freeze_entity): If entity is a private type, capture size
9784         information that may have been computed for the full view.
9785         (tree_transform, case N_Allocator): If have initializing expression,
9786         check type for Has_Constrained_Partial_View and pass that to
9787         build_allocator.
9788         (tree_transform, case N_Return_Statement): Pass extra arg to
9789         build_allocator.
9790
9791         * decl.c (annotate_value): Remove early return if -gnatR is not
9792         specified.
9793         (gnat_to_gnu_field): Don't make a packable type for a component clause
9794         if the position is byte aligned, the field is aliased, and the clause
9795         size isn't a multiple of the packable alignment. It serves no useful
9796         purpose packing-wise and would be rejected later on.
9797         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
9798
9799         PR ada/20515
9800         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
9801         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
9802         instead.
9803         (create_concat_name): Idem.
9804
9805 2005-06-10  Robert Dewar  <dewar@adacore.com>
9806             Eric Botcazou  <ebotcazou@adacore.com>
9807             Ben Brosgol  <brosgol@adacore.com>
9808             Cyrille Comar  <comar@adacore.com>
9809             Sergey Rybin  <rybin@adacore.com>
9810             Pascal Obry  <obry@adacore.com>
9811
9812         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
9813         Document second argument (Ada_05) of pragma Obsolescent
9814         Add note that call to subprogram marked with pragma Obsolescent
9815         is now considered to be a violation of program Restrictions
9816         (No_Obsolescent_Features).
9817         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
9818         that only machine-dependent attributes are supported.
9819
9820         * gnat_ugn.texi:
9821         Commented out menu lines and empty section for gnatclean examples
9822         Document -gnatwy/Y
9823         Fix some over long lines
9824         Clarify and enhance documentation of ADA_PROJECT_PATH.
9825         Rework section 2.11.2(3) about linking with a non-GNU compiler.
9826         Mention new switch -fcallgraph-info.
9827         Mention new switch -fstack-usage.
9828         For gnatpp, replace '-notab' with '-N' and add this option to Index
9829         Corrected VMS example.
9830         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
9831         Minor reformatting
9832         Add documentation for -gnatyu switch (unnecessary blank lines)
9833         Document new switch -U for GNAT PRETTY and GNAT METRIC
9834         Add note about Stdcall being handled as C convention on non Windows OS.
9835         Remove some junk typo in description of gnatbind -S switch
9836         Remove reference to Extensions_Allowed pragma
9837         Document the new order of the directories to be searched (source and
9838         object directories of project files before directories in ADA_*_PATH
9839         environment variables.
9840
9841         * g-trasym.ads: Document that IRIX is supported
9842
9843 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
9844
9845         * Makefile.in: Add initialize.o when needed.
9846         Adapt to new VMS package body Symbols and subunits
9847         No specialized version of a-sytaco is needed for VxWorks.
9848
9849         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
9850         * a-zchara.ads, a-widcha.ads: New files.
9851
9852         * system-hpux-ia64.ads: New file.
9853
9854         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
9855         is imported from the VxWorks kernel.
9856
9857 2005-06-14  Robert Dewar  <dewar@adacore.com>
9858
9859         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
9860         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
9861         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
9862         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
9863         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
9864         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
9865         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
9866         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
9867         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
9868         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
9869         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
9870         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
9871
9872 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9873
9874         * xeinfo.adb: Fix typo in comment
9875
9876 2005-06-14  Javier Miranda  <miranda@adacore.com>
9877
9878         * repinfo.ads: Fix typo in comment
9879
9880 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9881
9882         * s-finimp.adb (Parent_Tag): Delete this imported function (function
9883         Parent_Tag is now in the visible part of Ada.Tags).
9884         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
9885         using imported function.
9886
9887 2005-06-14  Bernard Banner  <banner@adacore.com>
9888
9889         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
9890         also apply for handling support for VxSim 653.
9891
9892 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9893
9894         * xsnames.adb: Add automatic generation of snames.h.
9895
9896 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9897
9898         * gen-soccon.c: Add IP_MULTICAST_IF constant
9899         Minor reformatting and adjustments to prevent warnings.
9900
9901 2005-06-14  Pascal Obry  <obry@adacore.com>
9902
9903         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
9904
9905 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
9906
9907         * trans.c (gnat_gimplify_expr): Call
9908         recompute_tree_invarant_for_addr_expr when we change
9909         the operand of the ADDR_EXPR.
9910
9911 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9912
9913         * misc.c: Don't include errors.h.
9914
9915 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9916
9917         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
9918
9919 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
9920
9921         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
9922         comment typos.
9923         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
9924
9925 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
9926
9927         PR ada/20270
9928         * Makefile.in: Make TGT_LIB behave correctly.
9929
9930 2005-04-23  DJ Delorie  <dj@redhat.com>
9931
9932         * misc.c: Adjust warning() callers.
9933
9934 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
9935
9936         PR ada/18847
9937         * a-nudira.adb (Value): Check for valid string.
9938         * a-nuflra.adb (Value): Likewise.
9939
9940 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
9941
9942         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
9943
9944 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
9945
9946         * adaint.c, init.c, tracebak.c: Fix comment typos.
9947         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
9948
9949 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
9950             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9951
9952         * Makefile.in: Add make ifeq define for hppa linux tasking support.
9953         * system-hpux.ads: Define Signed_Zeros to be True.
9954         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
9955
9956 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
9957
9958         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
9959         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
9960         typos.
9961
9962 2005-03-30  Tom Tromey  <tromey@redhat.com>
9963
9964         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
9965
9966 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9967
9968         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
9969
9970 2005-03-29  Robert Dewar  <dewar@adacore.com>
9971
9972         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
9973         fixed-point expression has value that is not a multiple of the Small
9974         value.
9975
9976         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
9977
9978         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
9979         nanoseconds.
9980
9981         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
9982
9983 2005-03-29  Vincent Celier  <celier@adacore.com>
9984
9985         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
9986         (Build_Dynamic_Library.Version_String): Return the empty string when
9987         Lib_Version is empty or when the symbol policy is not Autonomous.
9988
9989         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
9990         a symbol is not in the reference symbol file, increase the Major ID
9991         and set the Minor ID to 0.
9992         Use gsmatch=lequal instead of gsmatch=equal
9993
9994 2005-03-29  Doug Rupp  <rupp@adacore.com>
9995
9996         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
9997         name and translate.
9998
9999 2005-03-29  Javier Miranda  <miranda@adacore.com>
10000
10001         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
10002         (Inherit_DT): The first formal has been redefined as a Tag.
10003         This allows us the removal of the subprogram Get_TSD.
10004         (TSD): Replace the call to Get_TSD by the actual code.
10005
10006         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
10007         (Make_DT): Upgrade the call to Inherit_TSD according to the
10008         new interface: the first formal is now a Tag.
10009
10010         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
10011         redefined as a Tag.
10012         This change allows us to remove the subprogram Get_TSD.
10013         (CPP_Get_TSD): Subprogram removed.
10014         (TSD): Replace the call to CPP_Get_TSD by the actual code.
10015
10016         * rtsfind.ads: Remove support to call the run-time
10017         subprogram Get_TSD
10018
10019 2005-03-29  Robert Dewar  <dewar@adacore.com>
10020
10021         * errutil.adb, errout.adb:
10022         Minor comment updates on Line_Terminator references
10023
10024         * par-ch10.adb: Add ??? comment about line terminator
10025
10026         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
10027         (check dos line terminator).
10028         (Check_Line_Max_Length): New procedure, split off from the existing
10029         Check_Line_Terminator routine. Separating this out allows -gnatyf to
10030         be properly recognized.
10031
10032         * styleg.adb: Add ??? comment for line terminator reference
10033
10034         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
10035         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
10036
10037         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
10038         (check dos line terminator).
10039         (Check_Line_Max_Length): New procedure, split off from the existing
10040         Check_Line_Terminator routine. Separating this out allows -gnatyf to
10041         be properly recognized.
10042
10043         * stylesw.ads, stylesw.adb:
10044         Add handling for new -gnatyd switch (check dos line terminator)
10045
10046         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
10047         Recognize -gnatwb/-gnatwB switches
10048         Include Warn_On_Bad_Fixed_Value for -gnatg
10049
10050         * usage.adb:
10051         Add line for new -gnatyd switch (check dos line terminator)
10052
10053         * usage.adb: Add lines for -gnatwb/-gnatwB
10054
10055         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
10056
10057         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
10058
10059         * gnat_ugn.texi: Fix overlong lines
10060         Document new -gnatyd switch
10061         Document new -gnatwb/-gnatwB switches
10062
10063 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10064
10065         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
10066         order to retrieve the component list of the type, before examining
10067         individual components.
10068
10069         * sem_type.adb (Covers): Types are compatible if one is the base type
10070         of the other, even though their base types might differ when private
10071         views are involved.
10072
10073 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10074
10075         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
10076         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
10077         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
10078         analyzed if expansion is disabled (which could otherwise cause spurious
10079         error messages if expansion has been disabled due to previous
10080         (unrelated) errors).
10081
10082         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
10083         is disabled, the entity denoted by the argument is the access type
10084         itself, not an underlying record type, so there is no need to go back
10085         to the Corresponding_Remote_Type.
10086
10087 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
10088             Robert Dewar  <dewar@adacore.com>
10089
10090         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
10091         expand a call to an instance of
10092         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
10093         Constructor actual of the instance. A class-wide membership
10094         check is also generated, to ensure that the tag passed to the instance
10095         denotes a type in the class.
10096         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
10097         of Name_Generic_Dispatching_Constructor.
10098
10099         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
10100         05 unit for AI-260-02).
10101
10102         * a-tgdico.ads: New file.
10103
10104         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
10105         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
10106
10107         * snames.ads, snames.adb (Preset_Names): Add entry for
10108         Generic_Dispatching_Constructor.
10109
10110         PR ada/20300
10111
10112         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
10113         character type cases.
10114         (Analyze_Subprogram_Renaming): Add special handling for
10115         the case of renaming of stream attributes when the renaming denotes a
10116         generic formal subprogram association for an abstract formal subprogram.
10117         Check that the attribute is a primitive stream attribute (and not
10118         a class-wide stream attribute) and then rewrite the attribute name
10119         as the name of the appropriate compiler-generated stream primitive.
10120
10121 2005-03-29  Robert Dewar  <dewar@adacore.com>
10122
10123         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
10124         recursive calls.
10125         (Is_Possibly_Unaligned_Object): Correct typo that
10126         resulted in inaccurate result for unaligned scalars within records.
10127
10128 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10129
10130         * freeze.adb (Freeze_Record_Type): If the type of the component is an
10131         itype whose parent is controlled and not yet frozen, do not create a
10132         freeze node for the itype if expansion is disabled.
10133
10134 2005-03-29  Vincent Celier  <celier@adacore.com>
10135
10136         * make.adb (Gnatmake): Don't fail if the main project file is declared
10137         as having no Ada sources. Do not display message "no sources to
10138         compile" in quiet output.
10139
10140 2005-03-29  Doug Rupp  <rupp@adacore.com>
10141
10142         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
10143         extra tools.
10144
10145 2005-03-29  Robert Dewar  <dewar@adacore.com>
10146
10147         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
10148         child.
10149
10150 2005-03-29  Robert Dewar  <dewar@adacore.com>
10151
10152         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
10153         missing TYPE Improve the error message generated when compiling a
10154         limited interface in Ada83 or Ada95 mode.
10155
10156 2005-03-29  Robert Dewar  <dewar@adacore.com>
10157
10158         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
10159         rather than proceed ahead using a junk attribute name.
10160
10161 2005-03-29  Vincent Celier  <celier@adacore.com>
10162
10163         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
10164
10165         * prj-part.adb (Parse_Single_Project): Set the location of a project
10166         on its defining identifier, rather than on the reserved word "project".
10167
10168         * prj-proc.adb (Expression): Adapt to the fact that default of external
10169         references may be string expressions, not always literal strings.
10170         (Recursive_Process): Set Display_Name equal to Name
10171         when Location is No_Location, that is when there is no actual file.
10172         Get the Display_Name of the project from the source, when it is not a
10173         virtual project.
10174         (Process): Use the Display_Name in error messages
10175
10176         * prj-strt.adb (External_Reference): Allow default to be string
10177         expressions, not only literal strings.
10178
10179 2005-03-29  Vincent Celier  <celier@adacore.com>
10180
10181         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
10182         file and the reference symbol file to be the same file.
10183
10184 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10185
10186         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
10187         forbid conversion of a local access-to-subprogram type to a remote one.
10188
10189         * sem_util.adb (Wrong_Type): For a record type that is the expanded
10190         equivalent type for a remote access-to-subprogram type, go back to the
10191         original RAS entity when displaying an error message, so the casing is
10192         the original source casing.
10193
10194 2005-03-29  Robert Dewar  <dewar@adacore.com>
10195
10196         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
10197         on param update.
10198
10199 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10200
10201         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
10202         subtype if code is being pre-analyzed, to prevent un-expanded
10203         references to protected formals, among others.
10204         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
10205         interpretation that can be a call, include the result of the call as a
10206         possible interpretation of the dereference.
10207
10208         * sem_ch5.adb (Process_Bounds): Determine type of range by
10209         pre-analyzing a copy of the original range, and then analyze the range
10210         with the expected type.
10211
10212         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
10213         with an overloaded prefix where not all interpretations yield an
10214         access to subprogram, do not rewrite node as a call.
10215         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
10216         the node as a call once the context identifies the interpretation of
10217         the prefix whose call yields the context type.
10218         (Valid_Conversion): For the case of a conversion between
10219         local access-to-subprogram types, check subtype conformance using
10220         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
10221         detailed error message.
10222
10223 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10224
10225         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
10226         indicator, indicate that the formal can never be null.
10227         (Process_Formals): If a formal has a non_null indicator, insert the
10228         resulting subtype immediately before the enclosing subprogram decl,
10229         and not at the beginning of the corresponding declarative part, to
10230         prevent access before elaboration (Ada2005).
10231
10232 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10233
10234         PR ada/19956
10235         * utils.c (finish_record_type): Use variable_size when setting sizes.
10236
10237 2005-03-29  Robert Dewar  <dewar@adacore.com>
10238
10239         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
10240         guarantee Unix style line terminators for the output files, even when
10241         running on windows.
10242
10243 2005-03-29  Robert Dewar  <dewar@adacore.com>
10244
10245         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
10246         buffer if an exception is raised.
10247
10248 2005-03-29  Ed Falis  <falis@adacore.com>
10249
10250         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
10251         VxWorks 653 1.4
10252
10253 2005-03-29  Robert Dewar  <dewar@adacore.com>
10254
10255         * sem_util.ads: Minor reformatting
10256         * gnat_rm.texi: Minor editing.
10257
10258 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
10259
10260         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
10261         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
10262
10263 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10264
10265         * adaint.c (__gnat_portable_spawn): Adjust cast.
10266
10267 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
10268
10269         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
10270
10271 2005-03-17  Pascal Obry  <obry@adacore.com>
10272
10273         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
10274         used.
10275
10276         * expect.c (__gnat_waitpid): Moved here from adaint.c.
10277         Reimplement under Win32 using Win32 API.
10278
10279         (__gnat_kill) [Win32]: Properly close the process handle before leaving
10280         this routine.
10281
10282 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
10283
10284         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
10285         (DECL_RENAMED_OBJECT): New accessor macro.
10286         (SET_DECL_RENAMED_OBJECT): New setter macro.
10287
10288         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
10289         object in all cases.  Attach the renamed object to the VAR_DECL.
10290         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
10291         field is not prescribed.
10292
10293         * misc.c (gnat_handle_option): Handle -gnatO separately.
10294         (gnat_print_decl) <VAR_DECL>: New case.
10295         Print the DECL_RENAMED_OBJECT node.
10296
10297         * lang.opt:  Declare separate -gnatO option.
10298
10299         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
10300         pointer, replace it with the renamed object.
10301         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
10302         pointer type if the source is not a fat pointer type whose underlying
10303         array has the same non-zero alias set as that of the destination array.
10304
10305 2005-03-17  Javier Miranda  <miranda@adacore.com>
10306
10307         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
10308         (Get_Inheritance_Depth): Removed.
10309         (Set_Inheritance_Depth): Removed.
10310
10311         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
10312         subprogram Get_Expanded_Name because it is not referenced by the
10313         frontend.
10314
10315         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
10316         (CPP_Get_Inheritance_Depth): Removed.
10317         (CPP_Set_Inheritance_Depth): Removed.
10318
10319         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
10320
10321 2005-03-17  Robert Dewar  <dewar@adacore.com>
10322
10323         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
10324         3, since we now expect GCC 3 to do all the work.
10325
10326 2005-03-17  Javier Miranda  <miranda@adacore.com>
10327
10328         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
10329         of one barrier to avoid wrong usage of this attribute.
10330
10331         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
10332         First_Private_Entity.
10333
10334         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
10335         the subprogram against wrong usage.
10336         Adapt the code to traverse the entities in the
10337         scope of a record_type because in addition to its usage regarding
10338         packages, this subprogram is also called by Expand_N_Freeze_Entity
10339         to install the visible declarations of the enclosing scope of a
10340         record_type_with_private to establish the proper visibility before
10341         freezing the entity and related subprograms.
10342
10343 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10344
10345         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
10346         entry formals.
10347
10348 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10349
10350         * exp_ch3.adb (Check_Attr): New subprogram.
10351         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
10352         into a new Check_Attr subprogram, in order to provide a more
10353         explanatory error message (including the name of the missing attribute).
10354         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
10355         subprogram determines whether a default implementation exists for a
10356         given stream attribute.
10357         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
10358         Determine whether to generate a default implementation for each stream
10359         attribute separately, as this depends on the specific attribute.
10360
10361         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
10362         limited extension where a stream attribute is missing for a limited
10363         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
10364         generate a bogus reference to the missing attribute to prevent
10365         cascaded errors. Instead, generate a null statement.
10366
10367         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
10368         available for a limited type if it has been specified for an ancestor
10369         of the type.
10370
10371 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10372
10373         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
10374         entity is an operator.
10375
10376 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10377
10378         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10379         spec, to make this predicate available to other units.
10380
10381         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
10382         reimplementing it.
10383
10384         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
10385         when no distribution runtime library is available.
10386
10387         * sem_res.adb, sem_dist.adb: Disable expansion of remote
10388         access-to-subprogram types when no distribution runtime library is
10389         available.
10390         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
10391         predicate available to other units.
10392
10393         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10394         spec, to make this predicate available to other units.
10395
10396 2005-03-17  Vincent Celier  <celier@adacore.com>
10397
10398         * make.adb (Insert_Project_Sources): Make sure the Q is always
10399         initialized.
10400
10401         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
10402         the default for the tree, not the global default naming.
10403
10404         * prj-proc.adb (Recursive_Process): No need to put the default naming
10405         in the project data, it's already there.
10406
10407 2005-03-17  Doug Rupp  <rupp@adacore.com>
10408
10409         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
10410
10411         * 5xcrtl.ads: Renamed to...
10412         * s-crtl-vms64.ads: ...this new file
10413
10414 2005-03-17  Robert Dewar  <dewar@adacore.com>
10415
10416         PR ada/19519
10417
10418         * namet.adb (Copy_One_Character): Set proper wide character encoding
10419         for upper half character if we have upper half encoding.
10420
10421 2005-03-17  Robert Dewar  <dewar@adacore.com>
10422
10423         * par.adb (Par): Improved msg for attempt to recompile predefined unit
10424
10425 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10426
10427         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
10428         tagged limited type, the TSS is a newly built renaming declaration:
10429         insert it using Set_TSS, not Copy_TSS.
10430
10431 2005-03-17  Javier Miranda  <miranda@adacore.com>
10432
10433         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
10434         Try_Object_Operation): Analyze the object that is accessible
10435         through the prefix of the subprogram call before we apply
10436         the transformation of the object-operation notation.
10437
10438 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
10439
10440         * s-taprob.adb (Initialize_Protection): Initialize the protected
10441         object's owner to Null_Task.
10442         (Lock): If pragma Detect_Blocking is in effect and the caller of this
10443         procedure is already the protected object's owner then Program_Error
10444         is raised. In addition the protected object's owner is updated.
10445         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
10446         of this procedure is already the protected object's owner then
10447         Program_Error is raised.
10448         In addition the protected object's owner is updated.
10449         (Unlock): Remove the ownership of the protected object.
10450
10451         * s-taprob.ads (Protection): Add the field Owner, used to store the
10452         protected object's owner.
10453         This component is needed for detecting one type of potentially blocking
10454         operations (external calls on a protected subprogram with the same
10455         target object as that of the protected action). Document the rest of
10456         the components.
10457
10458         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
10459         Initialize the protected object's owner to Null_Task.
10460         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
10461         caller of this procedure is already the protected object's owner then
10462         Program_Error is raised.
10463         Do not raise Program_Error when this procedure is called from a
10464         protected action.
10465         (Unlock_Entries): Remove the ownership of the protected object.
10466         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
10467         of this procedure is already the protected object's owner then
10468         Program_Error is raised.
10469         Do not raise Program_Error when this procedure is called from
10470         a protected action.
10471
10472         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
10473         used to store the protected object's owner.
10474
10475         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
10476         effect and this procedure (a potentially blocking operation) is called
10477         from whithin a protected action, Program_Error is raised.
10478         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
10479         and this procedure (a potentially blocking operation) is called from
10480         whithin a protected action, Program_Error is raised.
10481
10482 2005-03-17  Vincent Celier  <celier@adacore.com>
10483             Nicolas Setton  <setton@adacore.com>
10484
10485         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
10486         switch, not supported by the linker on Darwin. Add '_' before
10487         <library>init, as this character is added unconditionally by the
10488         compiler.
10489         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
10490         correct one ".dylib". This fixes detection of the archive files when
10491         building library projects.
10492
10493 2005-03-17  Vincent Celier  <celier@adacore.com>
10494
10495         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
10496         -gnat83, -gnat95 and -gnat05.
10497
10498 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
10499
10500         * gnat_ugn.texi: Document gnatmem restriction
10501
10502 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10503
10504         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
10505         cleanup
10506
10507 2005-03-17  Robert Dewar  <dewar@adacore.com>
10508
10509         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
10510         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
10511         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
10512
10513         * casing.adb: Comment improvements
10514
10515 2005-03-17  Pascal Obry  <obry@adacore.com>
10516
10517         * g-expect.adb: Minor reformatting.
10518
10519 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
10520
10521         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
10522         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
10523         to dependencies.
10524
10525 2005-03-15  Vincent Celier  <celier@adacore.com>
10526
10527         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
10528         Add new parameter In_Tree to specify the project tree: needed
10529         by the project manager. Adapt to changes in project manager
10530         using new parameter In_Tree.
10531
10532 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
10533
10534         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
10535         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
10536         ada/bldtools to avoid make -jN failures.
10537
10538 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10539
10540         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
10541         to NULL_TREE on entry.
10542
10543 2005-03-15  Robert Dewar  <dewar@adacore.com>
10544
10545         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
10546         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
10547         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
10548         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
10549         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10550         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
10551         system-interix.ads, system-solaris-sparc.ads,
10552         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
10553         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
10554         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
10555         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
10556         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
10557         Compiler_System_Version to be False.
10558
10559         * opt.ads: Add new flag Opt.Address_Is_Private
10560
10561         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
10562         Add new parameter Compiler_System_Version to avoid checking for
10563         completeness of parameters when compiler is compiling itself.
10564         Allows old versions of GNAT to be compiled with new compiler.
10565
10566 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10567
10568         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
10569         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
10570         calling thread.
10571         (Stack_Base_Available): New flag.
10572         (Get_Page_Size): New overloaded functions imported from C.
10573         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
10574         PROT_ON, PROT_OFF): New constants.
10575         (mprotect): New function imported from C.
10576         (pthread_teb_t): New record type.
10577
10578         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
10579         (Create_Task): Account for the Yellow Zone and the guard page.
10580
10581 2005-03-15  Vincent Celier  <celier@adacore.com>
10582
10583         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10584         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10585         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
10586         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
10587         Library_File_Name_For): Add new parameter In_Tree
10588         to specify the project tree: needed by the project manager.
10589         Adapt to changes in project manager using new parameter In_Tree.
10590         Remove local imports, use functions in System.CRTL.
10591
10592         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
10593         to use the project manager.
10594
10595         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
10596         In_Tree to designate the project tree. Adapt to changes in the project
10597         manager, using In_Tree.
10598
10599         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
10600         Copy_Interface_Sources): Add new parameter In_Tree to specify the
10601         project tree: needed by the project manager.
10602         (Build_Library): Check that Arg'Length >= 6 before checking if it
10603         contains "--RTS=...".
10604
10605         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
10606         Library_File_Name_For): Add new parameter In_Tree to specify the
10607         project tree: needed by the project manager.
10608
10609         * prj.ads, prj.adb: Major modifications to allow several project trees
10610         in memory at the same time.
10611         Change tables to dynamic tables and hash tables to dynamic hash
10612         tables. Move tables and hash tables from Prj.Com (in the visible part)
10613         and Prj.Env (in the private part). Move some constants from the visible
10614         part to the private part. Make other constants deferred.
10615         (Project_Empty): Make it a variable, not a function
10616         (Empty_Project): Add parameter Tree. Returns the data with the default
10617         naming data of the project tree Tree.
10618         (Initialize): After updating Std_Naming_Data, copy its value to the
10619         component Naming of Project Empty.
10620         (Register_Default_Naming_Scheme): Use and update the default naming
10621         component of the project tree, instead of the global variable
10622         Std_Naming_Data.
10623         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
10624         Tree is not defaulted, return the default naming data of the Tree.
10625         (Initial_Buffer_Size): Constant moved from private part
10626         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
10627         variables initialized in procedure Initialize.
10628         (Add_To_Buffer): Add two in out parameters to replace global variables
10629         Buffer and Buffer_Last.
10630         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
10631         functions.
10632         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
10633         hash tables.
10634         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10635         for the project tree.
10636         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
10637         constant at the beginning of the package spec, so that they cane be used
10638         in subprograms before their full declarations.
10639         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
10640         (Empty_Project): Add parameter of type Project_Node_Ref
10641         (Private_Project_Tree_Data): Add component Default_Naming of type
10642         Naming_Data.
10643         (Buffer, Buffer_Last): remove global variables
10644         (Add_To_Buffer): Add two in out parameters to replace global variables
10645         Buffer and Buffer_Last.
10646         (Current_Packages_To_Check): Remove global variable
10647         (Empty_Name): Move to private part
10648         (No-Symbols): Make it a constant
10649         (Private_Project_Tree_Data): New type for the private part of the
10650         project tree data.
10651         (Project_Tree_Data): New type for the data of a project tree
10652         (Project_Tree_Ref): New type to designate a project tree
10653         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10654         for the project tree.
10655
10656         * prj-attr.ads: Add with Table; needed, as package Prj no longer
10657         imports package Table.
10658
10659         * prj-com.adb: Remove empty, no longer needed body
10660
10661         * prj-com.ads: Move most of the content of this package to package Prj.
10662
10663         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
10664         designate the project node tree and Packages_To_Check to replace
10665         global variable Current_Packages_To_Check.
10666         Add new parameters In_Tree and Packages_To_Check to local subprograms,
10667         when needed. Adapt to changes in project manager with project node tree
10668         In_Tree.
10669
10670         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
10671         project tree to most subprograms. Move tables and hash tables to
10672         private part of package Prj.
10673         Adapt to changes in project manager using project tree In_Tree.
10674
10675         * prj-makr.adb (Tree): New constant to designate the project node tree
10676         Adapt to change in project manager using project node tree Tree
10677
10678         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
10679         display the Library_Src_Dir and the Library_Dir.
10680         Add new parameter In_Tree to designate the project node tree to most
10681         subprograms. Adapt to changes in the project manager, using project tree
10682         In_Tree.
10683         (Check_Naming_Scheme): Do not alter the casing on platforms where
10684         the casing of file names is not significant.
10685         (Check): Add new parameter In_Tree to designate the
10686
10687         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
10688         designate the project tree.
10689         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
10690
10691         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
10692         to replace those that were in the private part of package Prj.
10693         Add new parameter In__Tree to designate the project node tree to most
10694         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10695         (Post_Parse_Context_Clause): When specifying the project node of a with
10696         clause, indicate that it is a limited with only if there is "limited"
10697         in the with clause, not necessarily when In_Limited is True.
10698         (Parse): Add new parameter In_Tree to designate the project node tree
10699
10700         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
10701         designate the project node tree. Adapt to change in Prj.Tree with
10702         project node tree In_Tree.
10703
10704         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
10705         tree In_Tree in the call to function Empty_Process to give its initial
10706         value to the project data Processed_Data.
10707         Add new parameters In_Tree to designate the project tree and
10708         From_Project_Node_Tree to designate the project node tree to several
10709         subprograms. Adapt to change in project manager with project tree
10710         In_Tree and project node tree From_Project_Node_Tree.
10711
10712         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
10713         to replace those that were in the private part of package Prj.
10714         Add new parameter In_Tree to designate the project node tree to most
10715         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10716
10717         * prj-tree.ads, prj-tree.adb: Add new parameter of type
10718         Project_Node_Tree_Ref to most subprograms.
10719         Use this new parameter to store project nodes in the designated project
10720         node tree.
10721         (Project_Node_Tree_Ref): New type to designate a project node tree
10722         (Tree_Private_Part): Change table to dynamic table and hash tables to
10723         dynamic hash tables.
10724
10725         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
10726         the project tree to most subprograms. Adapt to changes in project
10727         manager using project tree In_Tree.
10728
10729         * makegpr.adb (Project_Tree): New constant needed to use project
10730         manager.
10731
10732 2005-03-15  Olivier Hainque  <hainque@adacore.com>
10733
10734         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
10735         for sigactions with SA_SIGINFO set. Call
10736         __gnat_adjust_context_for_raise before raising, to perform the
10737         potentially required adjustments to the machine context for the GCC
10738         unwinder.
10739
10740         * raise.h (__gnat_adjust_context_for_raise): New prototype.
10741
10742         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
10743         Adjust PC by one in the provided machine context.
10744         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
10745         so that the handler is passed the context structure to adjust prior to
10746         the raise.
10747         (__gnat_error_handler) HPUX: Adjust the signature to match what an
10748         SA_SIGINFO sigaction should look like. Call
10749         __gnat_adjust_context_for_raise before actually raising.
10750         (__gnat_adjust_context_for_raise): Default noop to help PC
10751         adjustments before raise from signal handlers.
10752         (__gnat_error_handler): Indirectly call a predicate function to
10753         determine if a condition should be resignaled or not.
10754         (__gnat_set_resignal_predicate): User interface to modify the predicate.
10755         (__gnat_default_resignal_p): Default GNAT predicate.
10756
10757 2005-03-15  Doug Rupp  <rupp@adacore.com>
10758
10759         * adaint.c: Prefix #include of VMS system header files with vms/
10760         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
10761         Do not define a dummy function "convert_addresses" under Darwin,
10762         not needed.
10763
10764         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
10765         with vms/
10766
10767 2005-03-15  Nicolas Setton  <setton@adacore.com>
10768
10769         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
10770         PPC/AIX.
10771
10772 2005-03-15  Robert Dewar  <dewar@adacore.com>
10773
10774         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
10775         AI-386.
10776
10777         * a-retide.ads: Minor comment changes
10778
10779 2005-03-15  Robert Dewar  <dewar@adacore.com>
10780
10781         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
10782         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
10783         Realloc_For_Chunk to private part of package.
10784         New subprograms for AI-301
10785
10786         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
10787         Get_Line procedure.
10788         Avoid unnecessary use of Get/Set_Wide_String
10789
10790 2005-03-15  Robert Dewar  <dewar@adacore.com>
10791
10792         PR ada/13470
10793
10794         * a-stunau.ads, a-stunau.adb:
10795         Change interface to allow efficient (and correct) implementation
10796         The previous changes to allow extra space in unbounded strings had
10797         left this interface a bit broken.
10798
10799         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
10800
10801         * g-spipat.ads, g-spipat.adb: New interface for Get_String
10802         Minor reformatting (function specs)
10803
10804         * g-spitbo.adb: New interface for Get_String
10805
10806         * g-spitbo.ads: Minor reformatting
10807
10808         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
10809
10810         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
10811
10812 2005-03-15  Javier Miranda  <miranda@adacore.com>
10813             Robert Dewar  <dewar@adacore.com>
10814             Thomas Quinot  <quinot@adacore.com>
10815             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10816
10817         * atree.ads, atree.adb: Add support for Elist24 field
10818
10819         * atree.h: Fix wrong definition of Field27
10820         Add support for Elist16 field
10821         Add support for Elist24 field
10822
10823         * einfo.ads, einfo.adb (Abstract_Interfaces,
10824         Set_Abstract_Interfaces): New subprograms.
10825         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
10826         subprograms.
10827         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
10828         entities rather than a single node.
10829         (Is_Interface, Set_Is_Interface): New subprogram
10830         (First_Tag_Component): New syntesized attribute
10831         (Next_Tag_Component): New synthesized attribute
10832         (Write_Entity_Flags): Upgraded to write Is_Interface
10833         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
10834         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
10835         (Task_Body_Procedure): New subprogram to read this attribute.
10836         (Set_Task_Body_Procedure): New subprogram to set this attribute.
10837         (Has_Controlled_Component): Now applies to all entities.
10838         This is only a documentation change, since it always worked to apply
10839         this to other than composite types (yielding false), but now this is
10840         official.
10841         Update documentation on Must_Be_Byte_Aligned for new spec
10842
10843         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
10844         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
10845         uses of the Access_Disp_Table attribute to reference the first dispatch
10846         table associated with a tagged type. As
10847         part of the implementation of abstract interface types,
10848         Access_Disp_Table has been redefined to contain a list of dispatch
10849         tables (rather than a single dispatch table).
10850         Similarly, upgrade all the references to Tag_Component by the
10851         new attribute First_Tag_Component.
10852         (Find_Inherited_TSS): Moved to exp_tss.
10853         Clean up test in Expand_N_Object_Declaration for cases
10854         where we need to do a separate assignment of the initial value.
10855         (Expand_N_Object_Declaration): If the expression in the
10856         declaration of a tagged type is an aggregate, no need to generate an
10857         additional tag assignment.
10858         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
10859         is to be deleted.
10860         Bit packed array ops are only called if operands are known to be
10861         aligned.
10862         (Component_Equality): When returning an N_Raise_Program_Error statement,
10863         ensure that its Etype is set to Empty to avoid confusing GIGI (which
10864         expects that only expressions have a bona fide type).
10865         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
10866         determine the amount of data to be copied.
10867
10868         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
10869         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
10870             INTERFACE_TYPE_DEFINITION ::=
10871               [limited | task | protected | synchronized] interface
10872                 [AND interface_list]
10873
10874         * par-ch3.adb (P_Type_Declaration): Modified to give support to
10875         interfaces.
10876         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
10877         interfaces.
10878         (P_Interface_Type_Definition): New subprogram that parses the new
10879         syntax rule of Ada 2005 interfaces
10880         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
10881         messages by the correct RENAMES (quotes removed).
10882
10883         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
10884         attribute First_Tag_Component.
10885
10886         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
10887         (Interface_List, Set_Interface_List): New subprograms.
10888         (Interface_Present, Set_Interface_Present): New subprograms.
10889         (Limited_Present, Set_Limited_Present): Available also in derived
10890         type definition nodes.
10891         (Protected_Present, Set_Protected_Present): Available also in
10892         record type definition and
10893         derived type definition nodes.
10894         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
10895         (Task_Present, Set_Task_Present): New subprogram.
10896         (Task_Body_Procedure): Removed.
10897         (Set_Task_Body_Procedure): Removed.
10898         These subprogram have been removed because the attribute
10899         Task_Body_Procedure has been moved to the corresponding task type
10900         or task subtype entity to leave a field free to store the list
10901         of interfaces implemented by a task (for AI-345)
10902         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
10903         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
10904         expression flag Do_Range_Check
10905         (Exception_Junk): Change to Flag7 to accomodate above change
10906         (Box_Present, Default_Name, Specification, Set_Box_Present,
10907         Set_Default_Name, Set_Specification): Expand the expression
10908         "X in N_Formal_Subprogram_Declaration" into the corresponding
10909         two comparisons. Required to use the csinfo tool.
10910
10911         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
10912         "with string" given.
10913
10914         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
10915         expression given.
10916
10917         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
10918         in 2005 mode
10919
10920         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
10921         attribute Task_Body_Procedure rather than the old semantic field that
10922         was available in the task_type_declaration node.
10923
10924         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
10925         interface type definitions.
10926         (P_Formal_Derived_Type_Definition): Modified to handle the list of
10927         interfaces.
10928
10929         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
10930         task type declaration.
10931         (P_Protected): Modified to handle the list of interfaces in a
10932         protected type declaration.
10933
10934 2005-03-15  Doug Rupp  <rupp@adacore.com>
10935             Vincent Celier  <celier@adacore.com>
10936
10937         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
10938         (Gen_Output_File_C): Likewise.
10939         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
10940
10941 2005-03-15  Thomas Quinot  <quinot@adacore.com>
10942
10943         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
10944         is an N_Raise_Constraint_Error node, create a new copy of it without
10945         going through a call to Duplicate_Subexpr.
10946
10947 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10948             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10949             Nicolas Setton  <setton@adacore.com>
10950             Ed Schonberg  <schonberg@adacore.com>
10951
10952         PR ada/19900
10953         PR ada/19408
10954         PR ada/19140
10955         PR ada/20255
10956
10957         * decl.c (gnat_to_gnu_field): Reject aliased components with a
10958         representation clause that prescribes a size not equal to the rounded
10959         size of their types.
10960         (gnat_to_gnu_entity, case E_Component): Always look at
10961         Original_Record_Component if Present and not the entity.
10962         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
10963         of tagged extension types by not making field for components that are
10964         inside the parent.
10965         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
10966         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
10967         expression to the type of the object when the object is constant.
10968         Reverse defer_debug_incomplete_list before traversing it, so that trees
10969         are processed in the order at which they were added to the list. This
10970         order is important when using the stabs debug format.
10971         If we are deferring the output of debug information, also defer this
10972         output for a function return type.
10973         When adding fields to a record, prevent emitting debug information
10974         for incomplete records, emit the information only when the record is
10975         complete.
10976         (components_to_record): New parameter defer_debug.
10977         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
10978         (gnat_to_gnu_field_decl): New function.
10979         (substitution_list, annotate_rep): Call it.
10980         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
10981         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
10982         No longer update discriminants to not be a COMPONENT_REF.
10983         (copy_alias_set): Strip padding from input type; also handle
10984         unconstrained arrays properly.
10985
10986         * gigi.h (write_record_type_debug_info): New function.
10987         Convert to use ANSI-style prototypes. Remove unused
10988         declarations for emit_stack_check, elab_all_gnat and
10989         set_second_error_entity.
10990         (gnat_to_gnu_field_decl): New decl.
10991
10992         * utils.c (write_record_type_debug_info): New function.
10993         (finish_record_type): Delegate generation of debug information to
10994         write_record_type_debug_info.
10995         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
10996         (update_pointer_to): Fix pasto.
10997         (convert) <UNION_TYPE>: Accept slight type variations when
10998         converting to an unchecked union type.
10999
11000         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
11001         replace the N_Freeze_Entity with a null statement.
11002
11003         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
11004         within a constrained subcomponent of an enclosing record, place the
11005         freeze nodes in the scope stack entry for the enclosing record.
11006         (Undelay_Type): New Subprogram.
11007         (Set_Small_Size): Pass T, the type to modify; all callers changed.
11008         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
11009         within records; allow them to have freeze nodes if their base types
11010         aren't frozen yet.
11011
11012         * exp_util.adb (Remove_Side_Effects): Properly test for
11013         Expansion_Delayed and handle case when it's inside an
11014         N_Qualified_Expression.
11015
11016         * sem_ch3.adb (Derived_Type_Declaration): New predicate
11017         Comes_From_Generic, to recognize accurately that the parent type in a
11018         derived type declaration can be traced back to a formal type, because
11019         it is one or is derived from one, or because its completion is derived
11020         from one.
11021         (Constrain_Component_Type): If component comes from source and has no
11022         explicit constraint, no need to constrain in in a subtype of the
11023         enclosing record.
11024         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
11025         Minor change to propagate Is_Ada_2005 flag
11026
11027         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
11028         Expansion_Delayed is False.
11029         (assoc_to_constructor): Ignore fields that have a
11030         Corresponding_Discriminant.
11031         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
11032         function returns "by target", dereference the target pointer using the
11033         type of the actual return value.
11034         <all>: Be prepared for a null gnu_result.
11035         (processed_inline_subprograms): Check flag_really_no_inline
11036         instead of flag_no_inline.
11037         (set_second_error_entity): Remove unused function.
11038         (gnat_to_gnu, case N_Selected_Component): Call
11039         gnat_to_gnu_field_decl.
11040         (assoc_to_constructor): Likewise.
11041
11042 2005-03-15  Robert Dewar  <dewar@adacore.com>
11043             Ed Schonberg  <schonberg@adacore.com>
11044             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11045
11046         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
11047         Must_Be_Byte_Aligned for cases where we do not need to use a
11048         System.Pack_nn unit.
11049
11050         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
11051         as procedures.
11052         Needed now that we do some processing for IN parameters as well. This
11053         may well fix some unrelated errors.
11054         (Expand_Call): Handle case of unaligned objects (in particular those
11055         that come from packed arrays).
11056         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
11057         renamed entity is an inherited operation, re-expand the call using the
11058         original operation, which is the one to call.
11059         Detect attempt to inline parameterless recursive subprogram.
11060         (Represented_As_Scalar): Fix to work properly with private types
11061         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
11062         accurate estimate. Yields True in far fewer cases than before,
11063         improving the quality of code that depends on this test.
11064
11065         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
11066         over both visible and private declarations to remove them from tree,
11067         and mark subprograms declared in package as eliminated, to prevent
11068         spurious use in subsequent compilation of generic units in the context.
11069
11070         * exp_util.ads: Minor cleanup in variable names
11071
11072         * sem_eval.ads, sem_eval.adb: Minor reformatting
11073         (Compile_Time_Known_Bounds): New function
11074
11075 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11076
11077         * exp_ch7.adb (Convert_View): Use base types of underlying types when
11078         determining whether an unchecked conversion is needed for the argument
11079         of an initialization call.
11080
11081 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11082
11083         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
11084         that appears in the instantiation rather than the internal subtype
11085         generated in the wrapper package, to avoid anomalies in gigi when the
11086         target is derived from a private type whose full view is an access type.
11087
11088 2005-03-15  Robert Dewar  <dewar@adacore.com>
11089
11090         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
11091         not needed.
11092         Add documentation to replace the use of this flag
11093         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
11094         the x86_64.
11095
11096 2005-03-15  Thomas Quinot  <quinot@adacore.com>
11097
11098         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
11099         here from exp_attr so it can be shared between exp_attr and exp_dist.
11100         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
11101         all TSS names, not a subset thereof, and the previous name introduced
11102         an unnecessarily confusion that a distinction might exist between
11103         "OK" TSS names and some "not OK" TSS names.
11104
11105 2005-03-15  Doug Rupp  <rupp@adacore.com>
11106
11107         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
11108         Command_Name.
11109
11110 2005-03-15  Pascal Obry  <obry@adacore.com>
11111             Eric Botcazou  <ebotcazou@adacore.com>
11112
11113         PR ada/20226
11114         PR ada/20344
11115
11116         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
11117         when IN_RTS. This is to work around a bootstrap path problem.
11118
11119         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
11120         table and pass it to __gnat_install_SEH_handler().
11121         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
11122
11123         * lang.opt: Fix specification of -fRTS=.
11124
11125 2005-03-15  Doug Rupp  <rupp@adacore.com>
11126             Bernard Banner  <banner@adacore.com>
11127             Vincent Celier  <celier@adacore.com>
11128             Arnaud Charlet  <charlet@adacore.com>
11129
11130         PR ada/6852
11131         This change works fine when gnatlib is built from the gcc directory,
11132         but does not work when using the libada Makefile, since GCC_FOR_TARGET
11133         is not passed to ada/Makefile.in, so more work is needed by a
11134         Makefile/configure expert.
11135
11136         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
11137         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
11138         Setup gnatlink switch -M for x86_64 linux, as it is already setup
11139         for Linux x86.
11140         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
11141         Run ranlib on libgccprefix.a
11142         Define PREFIX_OBJS for Darwin, to build libgccprefix.
11143         (ADA_INCLUDE_SRCS): Split Ada packages.
11144
11145 2005-03-15  Robert Dewar  <dewar@adacore.com>
11146
11147         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
11148
11149         * impunit.adb: Add GNAT.UTF_32
11150
11151         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
11152
11153         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
11154         now uses GNAT.UTF_32).
11155
11156         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
11157         capabilities for categorizing characters using Unicode categories
11158
11159 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11160
11161         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
11162         instantiation that has been rewritten as a package body, retrieve spec
11163         to generate proper name for implicit_with_clause.
11164         (Install_Parents): Recognize a parent that is an instantiation but has
11165         been rewritten as a package declaration during analysis.
11166
11167 2005-03-15  Javier Miranda  <miranda@adacore.com>
11168             Ed Schonberg  <schonberg@adacore.com>
11169
11170         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
11171         parameter reported some error we immediately return. This improves the
11172         behaviour of the frontend in case of errors.
11173         (Install_Parent, Remove_Parent): Introduce new flag
11174         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
11175         ancestor of a generic child unit, when the child is being instantiated.
11176         (Inline_Instance_Body): If we are compiling the private
11177         part or the body of a child unit, restore the proper visibility of the
11178         parents after compiling the instance body.
11179
11180 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11181             Javier Miranda  <miranda@adacore.com>
11182
11183         PR ada/15608
11184         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
11185         of a private type, in which case it is underlying_type that denotes
11186         the proper task. Also modified to use the new entity attribute
11187         that is directly available in the task type and task subtype entities
11188         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
11189         arrays when other dimensions than the first are constrained by
11190         discriminants of an enclosing record.
11191         (Insert_Explicit_Dereference): If the prefix is an indexed component or
11192         a combination of indexed and selected components, find ultimate entity
11193         and generate the appropriate reference for it, to suppress spurious
11194         warnings.
11195         (Note_Possible_Modification): If an entity name has no entity, return.
11196         (Is_Variable): A function call never denotes a variable.
11197         (Requires_Transient_Scope): For record types, recurse only on
11198         components, not on internal subtypes that may have been generated for
11199         constrained components.
11200
11201 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11202
11203         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
11204         Eliminated as candidates for resolution. Both efficient, and avoids
11205         anomalies with operators declared in deleted code.
11206         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
11207         expansion is disabled (as when compiling a generic) to prevent spurious
11208         warnings on prefixes of selected components.
11209
11210 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11211
11212         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
11213         attached to a list before checking whether it appears in the private
11214         declarations of the current package.
11215         (Make_Inequality_Operator): Insert declaration in proper declarative
11216         list rather than just setting the Parent field, so that
11217         Is_Private_Declaration can handle it properly.
11218
11219 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11220
11221         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
11222         a renaming a body, check that the renamed subprogram in not intrinsic.
11223         (Find_Direct_Name): If several use_visible entities hide
11224         each other, and the context is a predefined file compiled through
11225         rtsfind, keep only the entity that comes from a predefined file.
11226
11227 2005-03-15  Geert Bosch  <bosch@adacore.com>
11228
11229         * s-fatgen.adb (Valid): Extend special exceptions to account for long
11230         long float padding to also cover AMD64 and IA64.
11231
11232 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
11233
11234         * s-imgwch.adb: Add with and use of Interfaces.
11235         (Img_Wide_Character): Change type of Val to Unsigned_16.
11236         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
11237
11238 2005-03-15  Matthew Gingell  <gingell@adacore.com>
11239
11240         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
11241
11242 2005-03-15  Robert Dewar  <dewar@adacore.com>
11243
11244         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
11245
11246         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
11247
11248         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
11249
11250 2005-03-15  Robert Dewar  <dewar@adacore.com>
11251
11252         * s-bitops.adb, s-bitops.ads,
11253         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
11254         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
11255         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
11256         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
11257         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
11258         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
11259         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
11260         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
11261         reformatting.
11262
11263 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11264
11265         * utils2.c (build_binary_op): Fix typo.
11266
11267 2005-03-15  Doug Rupp  <rupp@adacore.com>
11268
11269         * s-crtl.ads (popen,pclose): New imports.
11270
11271 2005-03-15  Cyrille Comar  <comar@adacore.com>
11272
11273         * comperr.adb (Compiler_Abort): remove references to obsolete
11274         procedures in the bug boxes for various GNAT builds.
11275
11276 2005-03-15  Vincent Celier  <celier@adacore.com>
11277
11278         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
11279
11280 2005-03-15  Geert Bosch  <bosch@adacore.com>
11281             Arnaud Charlet  <charlet@adacore.com>
11282             Robert Dewar  <dewar@adacore.com>
11283             Cyrille Comar  <comar@adacore.com>
11284             Sergey Rybin  <rybin@adacore.com>
11285
11286         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
11287         too specific and long-winded to be appropriate for the GNAT User's
11288         Guide.
11289         Warn about use of GCC switches not documented in the GNAT User's Guide,
11290         as these may cause generated code to not conform to Ada semantics.
11291         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
11292         Add documentation for -gnat95 and -gnat05 switches
11293         Remove paragraph documenting obsolete way to refer to third party
11294         libraries.
11295         Add a few references to Ada_05 that were missing.
11296         Update documentation on -gnatZ/-gnatL.
11297         Document limitation when using -m64 under Solaris.
11298         Change the "Name Casing" subsection of the pretty-printer section
11299         according to the changes in the dictionary processing.
11300
11301         * gnat_rm.texi: Document the Ada_05 pragma.
11302         Section on record representation clauses describes the new more
11303         relaxed rules about placement of large packed bit array components.
11304         Add documentation of GNAT.UTF_32
11305
11306 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
11307
11308         * misc.c (gnat_post_options): Turn off structural
11309         aliasing for now.
11310
11311 2005-03-08  Laurent Guerby <laurent@guerby.net>
11312
11313         * system-linux-sparc.ads: Fix typo in previous commit.
11314
11315 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
11316             Laurent Guerby <laurent@guerby.net>
11317
11318         PR ada/20035
11319         * system-linux-sparc.ads: New.
11320         * Makefile.in: Add sparc linux entry.
11321
11322 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
11323
11324         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
11325         parameters as unused.
11326
11327 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
11328         Partial merge from libada-gnattools-branch:
11329
11330         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11331         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
11332         into code in gnattools/Makefile.in.  Remove direct dependencies on
11333         stamp-tools by tools clauses.
11334         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11335         * config-lang.in: Add gnattools to $lang_dirs.
11336
11337 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
11338
11339         PR ada/19942
11340         * utils.c (gnat_type_for_mode): Return null instead of ICE because
11341         we asked for an unknown mode.
11342
11343 2005-02-12  Richard Henderson  <rth@redhat.com>
11344
11345         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
11346         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
11347
11348 2005-02-10  Andreas Jaeger  <aj@suse.de>
11349
11350         * init.c (__gnat_initialize): Mark parameter as unused.
11351
11352 2005-02-09  Doug Rupp  <rupp@adacore.com>
11353
11354         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
11355         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
11356
11357 2005-02-09  Doug Rupp  <rupp@adacore.com>
11358
11359         * gnatchop.adb (dup, dup2),
11360         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
11361
11362         * gnatlbr.adb (mkdir),
11363         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
11364
11365         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
11366
11367 2005-02-09  Doug Rupp  <rupp@adacore.com>
11368
11369         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
11370
11371 2005-02-09  Robert Dewar  <dewar@adacore.com>
11372             Thomas Quinot  <quinot@adacore.com>
11373             Javier Miranda  <miranda@adacore.com>
11374             Pascal Obry  <obry@adacore.com>
11375             Ed Schonberg  <schonberg@adacore.com>
11376             Doug Rupp  <rupp@adacore.com>
11377             Gary Dismukes  <dismukes@adacore.com>
11378             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11379
11380         * g-zstspl.ads: New file.
11381
11382         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
11383
11384         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
11385         Ada 95 mode
11386         Add definition of Wide_Wide_Space for AI-285
11387
11388         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
11389         interface (to support Ada 95 and Ada 2005 units).
11390         Add Unbounded_IO files
11391         Add entries for Wide_Wide packages for AI-285
11392         Add list of containers packages to Ada 2005 unit list
11393
11394         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
11395         support new Unbounded_IO package cleanly.
11396
11397         * g-utf_32.ads, g-utf_32.adb: New files.
11398
11399         * Makefile.rtl: Add entry for g-utf_32
11400         Add new files for Unbounded_IO
11401         Adjust make file for new AI-285 wide wide packages
11402         Add AI-302 containers to the run time.
11403
11404         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
11405         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
11406         subprograms for AI-301.
11407
11408         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
11409
11410         * a-stunau.ads: Minor comment correction
11411
11412         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
11413         etc.
11414         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
11415         (Check_RPC): Update to match changes in expanded code.
11416         Clean up unused entity.
11417
11418         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
11419         was not taken into account.
11420         This includes proper initialization with Normalize_Scalars.
11421         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
11422         normalize scalars cases (particularly the latter) to do a better job
11423         of finding invalid representations.
11424
11425         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
11426
11427         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
11428         used
11429
11430         * exp_dist.adb: Add support for wide wide character type
11431         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
11432         private part, generate stub bodies at the end of the private part,
11433         not the visible part.
11434         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
11435         PolyORB support.
11436         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
11437         generic wrapper to execute final processing after completing the
11438         expansion of the RPC receiver for an RACW.
11439
11440         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
11441         packages and attributes.
11442         (Preset_Names): Addition of the new reserved words of Ada 2005,
11443         that is interface, overriding and synchronized.
11444         (Get_Pragma_Id): Give support to the use of the new reserved word
11445         "interface" as a pragma name.
11446         (Is_Pragma_Name): Give support to the use of the new reserved word
11447         "interface" as a pragma name.
11448         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
11449         attribute implementation.
11450
11451         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
11452         checks to entities that are output parameters of Asm operations.
11453         Handle the Stream_Size attribute.
11454         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
11455
11456         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
11457
11458         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
11459         for second parameter being 0.0.
11460         Add support for wide wide character type.
11461         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
11462
11463         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
11464         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
11465         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
11466         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
11467         for wide wide character cases.
11468
11469         * cstand.adb: Create entities for Wide_Wide_Character and
11470         Wide_Wide_String.
11471
11472         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
11473         accordance with AI-258.
11474         Add new declarations for 16/32 bit C character types (Part of AI285)
11475
11476         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
11477         (Obsolescent_Warning): New field
11478         (Rep_Clause): New local subprogram used to share code. Returns the rep
11479         clause for which the name is given in parameter.
11480         (Has_Stream_Size_Clause): New routine.
11481         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
11482         (Address_Clause): Implementation is now using Rep_Clause.
11483         (Alignment_Clause): Idem.
11484         (Size_Clause): Idem.
11485
11486         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
11487         entity in non-Ada 2005 mode and generate warning.
11488
11489         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
11490         (Prag): Code cleanup. Remove old gnat pragma "overriding"
11491
11492         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
11493         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
11494         on the named unit if the pragma is not in the current compilation unit,
11495         so that elaboration calls in the current unit can set up an elaboration
11496         dependency on the named unit, as needed.
11497         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
11498         subprogram as well as for subprograms declared within a package.
11499         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
11500         pragma overriding.
11501
11502         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
11503         to z) to avoid some instances of duplication for Wide_Wide packages.
11504
11505         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
11506         characters.
11507
11508         * scn.adb: Char_Literal_Value field is now a Uint
11509
11510         * scng.adb: Significant rewrite to handle new Ada 2005 features
11511         allowing wide and wide wide characters in program text, e.g. for
11512         identifiers, as described in AI-285.
11513         (Set_Reserved): New procedure, makes setting up keywords cleaner.
11514         (Initialize_Scanner): Register the new reserved words of Ada 2005.
11515         (Scan): Give support to the new reserved words.
11516
11517         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
11518         warning notifying that interface, overriding, and synchronized are
11519         new reserved words.
11520         (P_Pragma): Allow the use of the new reserved word "interface" as
11521         a pragma name.
11522
11523         * gnatls.adb, gnatbind.adb,
11524         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
11525         identifiers named "interface" to "SAL_Interface".
11526
11527         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
11528         (Structured Exception handling).
11529         (Gen_Main_C): Idem.
11530
11531         * bindgen.adb:
11532         (Gen_Main_Ada): Set the default exit code if specified.
11533         (Gen_Main_C): Likewise.
11534         Part of *DC20-006.
11535         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
11536         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
11537
11538         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
11539         new -Xnnn switch.
11540
11541         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
11542         has a collision with the new Ada 2005 "interface" reserved word.
11543
11544         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
11545         generate a warning notifying that interface, overriding, and
11546         synchronized are new reserved words.
11547
11548         * scans.ads (Token_Type): Addition of the tokens corresponding to the
11549         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
11550         and Tok_Synchronized.
11551
11552         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
11553         "dispatching" rather than "primitive" operations, since dispatching
11554         calls are now allowed to abstract formal subprograms (which are not
11555         primitive).
11556         Char_Literal_Value field is now a Uint
11557         (Resolve_Slice): If the prefix is an access to an unconstrained array,
11558         compute the actual subtype of the designated object to impose the proper
11559         index constraints.
11560         (Resolve_Selected_Component): Do not insert an access check if the
11561         prefix is an access type: such a node is expanded into an explicit
11562         dereference, on which the access check is performed anyway. Removes
11563         expensive duplicate checks.
11564         (Resolve_Call): Use new flag Is_Obsolescent and field
11565         Obsolescent_Warning so that pragma Obsolescent works on library
11566         subprograms.
11567         Add support for wide wide character type
11568         (Resolve_Allocator): Replace the error message on wrong null-exclusion
11569         value by a warning message.
11570         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
11571         as fixed-point, and one of the operands is non-static and universal, it
11572         can only be an illegal exponentiation operation, in which case there is
11573         no real value to retrieve.
11574
11575         * exp_strm.adb: Add support for wide wide character type
11576         (Build_Elementary_Input_Call): Compute the size of the stream element by
11577         querying the rep chain to find the Stream_Attribute attribute value.
11578         (Build_Elementary_Write_Call): Ditto.
11579
11580         * sem_aggr.adb: Char_Literal_Value field is now a Uint
11581         Add support for wide wide character type
11582         Replace the error messages on wrong null-exclusion value by warnings
11583         as described in Ada 2005.
11584         (Resolve_Extension_Aggregate): Document the fact that the error
11585         message on class-wide expressions in extensions aggregates.
11586
11587         * sem_case.adb: Add support for wide wide character type
11588
11589         * sem_ch13.adb: Add support for wide wide character type
11590         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
11591
11592         * sem_ch3.adb: Add support for wide wide character type
11593         (Process_Subtype): If constraint is illegal for the type, set Ekind of
11594         now-useless Itype, to prevent cascaded errors on a compiler built
11595         without -gnatp.
11596
11597         * sem_ch8.adb: Add with and use of Sem_Disp.
11598         (Analyze_Subprogram_Renaming): Replace unclean uses of
11599         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
11600         of Corresponding_Spec to Empty).
11601         (Attribute_Renaming): Replace use of Corresponding_Spec with
11602         Corresponding_ Formal_Spec and simplify condition.
11603         (Use_One_Package): Check that scope of homonym of identifier is defined,
11604         before checking whether it is a wrapper package.
11605         Add support for wide wide character type
11606
11607         * sem_eval.adb: Add support for wide wide character type.
11608         (Eval_Arithmetic_Op): Check for compile time known signed integer
11609         overflow in the non-static case.
11610         (Subtypes_Statically_Match): A formal scalar type and its base type do
11611         not statically match.
11612
11613         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
11614         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
11615         subtype).
11616         (Unit_Declaration_Node): Ditto.
11617         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
11618         has a packed array type, the prefix has been rewritten into a type
11619         conversion. Determine variable-ness from the converted expression.
11620         Handle wide wide character cases.
11621
11622         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
11623
11624         * stringt.ads, stringt.adb: Handle full UTF-32 range.
11625         Remove ["0A"] from comment, since it can look like a line terminator.
11626         Currently we don't permit this, but this is under discussion by the
11627         ARG, and it is easy enough to use a different example.
11628
11629         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
11630         handling UTF-32 encoding for wide wide character.
11631         Implement new brackets coding ["hhhhhhhh"]
11632         Add UTF-8 encodings for full UTF-32 range
11633
11634         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
11635
11636         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
11637         bit range Add full UTF-32 support.
11638         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
11639         notify that constraint error will be raised at run-time
11640         because a null value is assigned to a null-excluding object.
11641         Remove some obsolete declarations and make Char_Code
11642         unsigned.
11643
11644         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
11645         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
11646         Rcheck subprograms.
11647
11648         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
11649         wrong null-exclusion value by a warning message.
11650         (Enable_Range_Check): Do range check if the prefix is an
11651         explicit dereference whose designated object is an unconstrained array.
11652         Current algorithm for removing duplicate checks is over-eager in this
11653         case.
11654
11655         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
11656         null-exclusion value by a warning message
11657
11658         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
11659         completely. Add support for Uint2 field
11660
11661         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
11662         exp_prag.adb: Char_Literal_Value field is now a Uint.
11663
11664         * exp_util.adb (Insert_Actions): Replace
11665         N_Formal_Subprogram_Declaration by
11666         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
11667         Char_Literal_Value field is now a Uint.
11668
11669         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
11670         defined for subprogram renaming declarations. When set, the field
11671         indicates the defining entity of a corresponding formal subprogram
11672         when the renaming corresponds to a formal subprogram association in an
11673         instantiation.
11674         (Set_Corresponding_Formal_Spec): New procedure to return
11675         Corresponding_Formal_Spec field.
11676         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
11677         (which is now a subtype).
11678         Char_Literal_Value field is now a Uint
11679
11680         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
11681         pointer to the base of the dispatch table.
11682         Minor changes to comments.
11683         (Controlling_Type): New function for determining the tagged type
11684         associated with a tagged primitive subprogram.
11685         (Expand_Dispatching_Call): Add support for a controlling actual that is
11686         directly a value of type Ada.Tag rather than a tagged object.
11687
11688         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
11689         describing the new layout.
11690         (Dispatch_Table): The expander computes the actual array size, allocates
11691         the Dispatch_Table record accordingly, and generates code that displaces
11692         the base of the record after the Typeinfo_Ptr component. The access to
11693         these components is done by means of local functions.
11694         (Offset_To_Top): New function.
11695         (Typeinfo_Ptr): New function.
11696         (Get_TSD): Modified to access the new position of the TSD.
11697         (Set_TSD): Modified to save the TSD in its new position.
11698
11699         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
11700         case of formal abstract subprograms. Add check and message for -gnat05.
11701         Update comments.
11702
11703         * sem_ch12.adb: Add with and use for Sem_Disp.
11704         (Analyze_Associations): Minor change from "=" to "in" for use of
11705         N_Formal_Subtype_Declaration (which is now a subtype).
11706         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
11707         N_Formal_Subtype_Declaration (which is now a subtype).
11708         (Analyze_Formal_Subprogram): Add handling for
11709         N_Formal_Abstract_Subprogram, marking the formal as abstract and
11710         dispatching, setting the controlling status of the formal parameters
11711         and result, and issuing an error if there is no controlling type for
11712         the formal subprogram.
11713         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
11714         which is an unclean use of that field, we set the new field
11715         Corresponding_Formal_Spec to make the formal subprogram available to
11716         processing in Analyze_Subprogram_Declaration.
11717         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
11718         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
11719         Constrained, so that it is is does not statically match its anonymous
11720         base type.
11721
11722         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
11723         abstract formal subprograms in error check for functions returning
11724         abstract types. Set scope of new designator for
11725         a parameterless subprogram, so that it is available when checking the
11726         body for nested subprograms, before full analysis of said body.
11727         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
11728         subprogram only if inner one comes from source.
11729         (Analyze_Function_Call): If the call is given in object notation, the
11730         analysis of the name rewrites the node and analyzes it with the proper
11731         argument list. After analyzing the name, if the call has been rewritten
11732         and the result type is set, no further analysis is needed.
11733         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
11734         mark in function specification, in a context where the formals are
11735         visible and hide outer homographs.
11736
11737         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
11738         as the tagged type for the cases of abstract formal subprograms and
11739         renamings of those.  Clean up spec comments.
11740         (Check_Dispatching_Context): Add error message to indicate "abstract
11741         procedure", covering the case of a call to a formal abstract procedure
11742         that has statically tagged operands.
11743         (Check_Dispatching_Call): Check for the case of an actual given by
11744         a tag-indeterminate function call whose type is an ancestor of the
11745         containing call's associated tagged type. This situation can occur
11746         for inherited primitives with function defaults. In this case we
11747         use the tagged type's tag directly as the controlling argument for
11748         the calls.
11749         (Expand_Call): Name change on call to Expand_Dispatch_Call.
11750
11751         * sprint.adb (Sprint_Node_Actual): Split
11752         N_Formal_Subprogram_Declaration into two alternatives for the new
11753         cases N_Formal_Abstract_Subprogram_Declaration and
11754         N_Formal_Concrete_Subprogram_Declaration.
11755         Char_Literal_Value field is now a Uint.
11756
11757         * trans.c: Get rid of junk Uint2 reference.
11758         Char_Literal_Value field is now a Uint.
11759         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
11760         (gigi): Correct third arg to gimplify_body.
11761
11762         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
11763         (TYPE_LANG_FLAG_0): Check for record or union.
11764
11765         * treepr.adb: Char_Literal_Value field is now a Uint
11766
11767         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
11768         UI_From_CC.
11769
11770         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
11771         Add full UTF-32 support
11772         Char_Code is now 32 bits
11773
11774         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
11775         wide character UTF_32 line terminators.
11776         Initialize Main_Source_File to avoid error when no main
11777         source is loaded.
11778
11779         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
11780         (Main_Source_File) when no main source has been loaded, to avoid
11781         potential crash.
11782
11783 2005-02-09  Robert Dewar  <dewar@adacore.com>
11784
11785         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
11786         Fix name of Set routine
11787
11788         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
11789         fixed packages.
11790
11791         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
11792         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
11793         fixed packages
11794
11795         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
11796         forms of Get_Line subprograms for AI-301.
11797
11798         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
11799         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
11800         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
11801         a-stwima.ads: Minor reformatting.
11802
11803 2005-02-09  Doug Rupp  <rupp@adacore.com>
11804             Thomas Quinot  <quinot@adacore.com>
11805
11806         * adaint.c, adaint.h
11807         [VMS] (to_ptr32): New function.
11808         (MAYBE_TO_PTR32): New macro.
11809         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
11810         for pointer size.
11811         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
11812         [VMS] (#define fork()): Remove since unneccessary.
11813         (__gnat_set_close_on_exec): New routine to support
11814         GNAT.OS_Lib.Set_Close_On_Exec.
11815
11816         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
11817         the parent side as close-on-exec so that they are not inherited by the
11818         child.
11819
11820         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
11821         set or clear the FD_CLOEXEC flag on a file descriptor.
11822
11823 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
11824             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11825
11826         Fix for c330001 - PR ada/19386
11827
11828         * decl.c:
11829         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
11830         on the field if Pragma Component_Alignment (Storage_Unit).
11831         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
11832         side-effects as if it were a constant; also make SAVE_EXPR to protect
11833         side-effects.
11834         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
11835         UNION_TYPE.
11836         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
11837         (components_to_record): Test it.
11838         Fix improper usage of REFERENCE_CLASS_P.
11839
11840         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
11841         RECORD_TYPE.
11842
11843         * utils2.c: Minor reformatting.
11844
11845         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
11846         handle other cases like RECORD_TYPE.
11847
11848         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
11849
11850 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11851
11852         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
11853         component of an array of arrays in an assignment context, and the
11854         aggregate has component associations that require sliding on
11855         assignment, force reanalysis of the aggregate to generate a temporary
11856         before the assignment.
11857         (Must_Slide): Make global to the package, for use in Gen_Assign.
11858
11859 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11860
11861         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
11862         unchecked union with no inferable discriminants, return a
11863         Raise_Program_Error node, rather than inserting it at the point the
11864         type is frozen.
11865         (Expand_Record_Equality, Component_Equality): Handle properly the case
11866         where some subcomponent is an unchecked union whose generated equality
11867         code raises program error.
11868
11869 2005-02-09  Doug Rupp  <rupp@adacore.com>
11870
11871         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
11872         [VMS] (#define exit hack): Remove.
11873
11874 2005-02-09  Pascal Obry  <obry@adacore.com>
11875             Arnaud Charlet <charlet@adacore.com>
11876
11877         * init.c (__gnat_initialize): Add a new parameter eh which contains the
11878         address of the exception registration. The Win32 version of this
11879         routine calls __gnat_install_SEH_handler() to initialize the SEH
11880         (Structured Exception Handling) handler.
11881         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
11882         SEH (Structured Exception Handling) now.
11883         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
11884         (__gnat_initialize for ppc-vxworks): Adjust comments and the
11885         preprocessor condition protecting the call to the extra eh setup
11886         subprogram, which is only available for the ppc target.
11887         (__gnat_clear_exception_count): replaced reference to
11888         variable taskIdCurrent by call to taskIdSelf(), cleaner.
11889
11890         * seh_init.c: New file.
11891
11892         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
11893         (GNATBIND_OBJS): Idem.
11894
11895         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
11896         routine takes a new parameter (a pointer to the exception registration
11897         for the SEH (Structured Exception Handling) support.
11898
11899         * raise.h: (__gnat_install_SEH_handler): New prototype.
11900         Update copyright notice.
11901
11902         * s-tassta.adb (Task_Wrapper): Declare the exception registration
11903         record and initialize it by calling __gnat_install_SEH_handler.
11904
11905 2005-02-09  Vincent Celier  <celier@adacore.com>
11906
11907         * make.adb (Gnatmake): Do not fail when the main project has no object
11908         directory.
11909
11910 2005-02-09  Doug Rupp  <rupp@adacore.com>
11911
11912         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
11913         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
11914         [VMS]: Add translations for g-enblsp.adb.
11915
11916         * s-asthan-vms.adb: Removed.
11917         * s-asthan-vms-alpha.adb: Added.
11918
11919 2005-02-09  Pascal Obry  <obry@adacore.com>
11920
11921         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
11922         (LIBGNAT_OBJS): Add seh_init.o.
11923
11924 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11925
11926         PR ada/16592
11927
11928         * Makefile.in: Link all gnat tools with -static-libgcc, since
11929         -shared-libgcc is now used by default on some systems (e.g. linux with
11930         recent binutils).
11931         Remove references to Makefile.prolog/generic, no longer used.
11932
11933 2005-02-09  Vincent Celier  <celier@adacore.com>
11934
11935         * prj-makr.adb (Process_Directory): Put file name in canonical case
11936         before matching against the patterns.
11937         If gnatname has been invoked as <prefix>-gnatname
11938         then invoke the compiler as <prefix>-gcc, not just "gcc".
11939
11940 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11941
11942         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
11943         with expansion disabled. The actual subtype is needed among other
11944         places when the selected component appears in the context of a loop
11945         bound, and denotes a packed array.
11946         (Operator_Check): Always use the first subtype in the
11947         error message, to avoid the appearance of internal base types.
11948         (Transform_Object_Operation): Copy each actual in full
11949         to the parameter associations of the constructed call, rather than
11950         using the shallow copy mechanism of New_Copy_List. This ensures that
11951         the chaining of named associations is done properly.
11952         (Complete_Object_Operation): Rewrite node, rather than
11953         replacing it, so that we can trace back to the original selected
11954         component.
11955
11956         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
11957         and calls that use object notation, if the called function is not
11958         declared  in a withed unit, place the elaboration constraint on the
11959         unit in the context that makes the function accessible.
11960         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
11961         imposes an elaboration constraint between two packages.
11962
11963 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11964
11965         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
11966         views of a private type after handling its private dependents, to
11967         maintain proper stack discipline between entry and exit from the
11968         package.
11969
11970 2005-02-09  Cyrille Comar  <comar@adacore.com>
11971
11972         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
11973         Minor reformatting.
11974
11975 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11976
11977         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
11978         fields for foreign threads.
11979
11980 2005-02-09  Doug Rupp  <rupp@adacore.com>
11981
11982         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
11983         recursion warnings when compiled with -gnatdm.
11984
11985 2005-02-09  Robert Dewar  <dewar@adacore.com>
11986
11987         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
11988         Slight fix to documentation of -gnaty with no parameters
11989
11990         * xr_tabls.ads: Add ??? comment for missing overall comment
11991
11992         * xsinfo.adb: Make default file name be sinfo.h, since this is what
11993         we now use by default.
11994
11995         * xsnames.adb: Adjust end of file test to look for five space followed
11996         by '#' instead of six spaces. The format of xsnames.adb was modified
11997         in the last update.
11998
11999         * a-numeri.ads: Add reference to AI-388 for greek letter pi
12000         identifier.
12001
12002         * clean.adb: Minor reformatting.
12003
12004         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
12005         gnatname.adb: Minor reformatting
12006         Add 2005 to copyright output when utility is run
12007
12008         * csets.adb: Eliminate obsolete comment
12009
12010         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
12011         Update comments.
12012
12013         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
12014
12015 2005-02-09  Sergey Rybin  <rybin@adacore.com>
12016
12017         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
12018         the difference between compact and incompact layout and add the record
12019         representation clause to the example illustrating different layouts.
12020         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
12021         component clauses").
12022
12023 2005-02-09  Florian Villoing  <villoing@adacore.com>
12024
12025         * gnat_ugn.texi: Fix typos.
12026         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
12027         @file.
12028         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
12029         in the generated documentation.
12030
12031 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12032
12033         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
12034         longer supported.
12035         Update linker wrapper when linking with non GNU C++.
12036
12037 2005-02-09  Pascal Obry  <obry@adacore.com>
12038
12039         * gnat_ugn.texi:
12040         Document the procedure to debug the DllMain routine on Windows.
12041         Add note about -funwind-tables and mixed Ada and C/C++ programming in
12042         ZCX mode.
12043         Document new BIND qualifer /RETURN_CODES=VMS.
12044
12045 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
12046
12047         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
12048         Edited gnatmetric chapter
12049
12050 2005-02-09  Robert Dewar  <dewar@adacore.com>
12051
12052         * gnat_rm.texi:
12053         Changes to document new wide wide character support
12054         For AI-285
12055         Update documentation on Normalize_Scalars and Initialize_Scalars
12056
12057 2005-02-09  Pascal Obry  <obry@adacore.com>
12058
12059         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
12060
12061 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
12062
12063         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
12064         from the VxWorks kernel) that is needed for getting the active
12065         priority of the different tasks.
12066
12067         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
12068         Use a pragma Elaborate_Body in the spec file instead.
12069         Noticed by code reading.
12070
12071 2005-02-09  Thomas Quinot  <quinot@adacore.com>
12072
12073         * exp_util.ads: Minor correction in comment.
12074
12075 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12076
12077         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
12078         since this procedure is now too complex to be worth inlining.
12079
12080 2005-02-09  Richard Henderson  <rth@redhat.com>
12081
12082         * utils.c (gnat_define_builtin): Remove.
12083         (gnat_install_builtins): Use build_common_builtin_nodes.
12084
12085 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12086
12087         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
12088         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
12089         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
12090         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
12091         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
12092         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
12093         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
12094         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
12095         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
12096         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12097         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
12098         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
12099         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
12100         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
12101         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
12102         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
12103         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
12104         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
12105         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
12106         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
12107         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
12108         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
12109         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
12110         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
12111         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
12112         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
12113         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
12114         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
12115         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
12116         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
12117         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
12118         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
12119         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
12120         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
12121         library.
12122
12123 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12124
12125         * Makefile.in: Fix a-intnam.ads from previous commit,
12126         add 2005 to copyright.
12127         * a-intman-rtems.ads: Renamed to...
12128         * a-intnam-rtems.ads:
12129
12130 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12131
12132         * Makefile.in: Rename GNAT RTEMS specific files.
12133         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
12134         5rosinte.ads, 5rparame.adb: Replaced by files below.
12135         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
12136         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
12137
12138 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
12139             Laurent GUERBY <laurent@guerby.net>
12140
12141         PR ada/19488
12142         * 5rosinte.ads: Add No_Key constant.
12143         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
12144         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
12145
12146 2005-01-26  Laurent GUERBY <laurent@guerby.net>
12147
12148         PR ada/19414
12149         * i-cobol.adb (Valid_Numeric): Handle zero length case.
12150
12151 2005-01-20  Richard Henderson  <rth@redhat.com>
12152
12153         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
12154         a-intnam-linux.ads and system-linux-alpha.ads.
12155         * a-intnam-linux-alpha.ads: Remove file.
12156         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
12157         * system-linux-alpha.ads: New file.
12158
12159 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
12160
12161         PR ada/13470
12162         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
12163         set to the new string.
12164
12165 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12166
12167         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
12168         to True.
12169
12170 2005-01-18  Richard Henderson  <rth@redhat.com>
12171
12172         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
12173         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
12174         for alpha-linux.
12175         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
12176
12177 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
12178
12179         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
12180         (GCC_ZCX_Support): Likewise.
12181
12182 2005-01-11  Bastian Blank  <waldi@debian.org>
12183
12184         * system-linux-s390.ads: Define Preallocated_Stacks.
12185         * system-linux-s390x.ads: Likewise.
12186
12187 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
12188
12189         * gnat_ugn.texi: Fix texi errors with null variables.
12190
12191 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12192
12193         * gen-soccon.c: New utility program to generate g-soccon.ads
12194         automatically.
12195
12196         * socket.c, gsocket.h: Split inclusion of system header files into a
12197         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
12198
12199         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
12200         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12201         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
12202         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
12203         should not be edited by hand anymore, but should be regenerated using
12204         gen-soccon.
12205
12206 2005-01-03  Robert Dewar  <dewar@adacore.com>
12207             Ed Schonberg  <schonberg@adacore.com>
12208             Vincent Celier  <celier@adacore.com>
12209
12210         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
12211         on/off, since this is an obsolescent feature, for which we now generate
12212         a warning.
12213
12214         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
12215         warning mode is set and obsolescent usage of this attribute occurs.
12216         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
12217         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
12218         predates, and partly motivates, the adoption of the AI.
12219         Implement new Ada 2005 attribute Mod
12220
12221         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
12222         attribute Mod.
12223
12224         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
12225
12226         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
12227         pragma restrictions.
12228         New entry for Ada 2005 attribute Mod.
12229
12230         * par-prag.adb:
12231         Add recognition of new pragma Restrictions No_Dependence
12232         Recognize restriction No_Obsolescent_Features at parse time
12233
12234         * bcheck.adb: Add circuitry for checking for consistency of
12235         No_Dependence restrictions.
12236
12237         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
12238         restrictions.
12239
12240         * restrict.ads, restrict.adb: Add subprograms to deal with
12241         No_Dependence restrictions.
12242
12243         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
12244         restrictions.
12245
12246         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
12247         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
12248
12249         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
12250         dummy parameter to scng instantiation.
12251         Needed for new restriction No_Obsolescent_Features
12252
12253         * scn.adb: (Obsolescent_Check): New procedure
12254         Needed for new restriction No_Obsolescent_Features
12255
12256         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
12257         specified by AI-285, needed for implementation of AI-388 (adding greek
12258         pi to Ada.Numerics).
12259         Add new generic formal to scng, needed for new restriction
12260         No_Obsolescent_Features.
12261
12262         * s-rident.ads: Add new restriction No_Obsolescent_Features.
12263
12264         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
12265         restrictions lines.
12266         (Scan_ALI): When finding an unexpected character on an R line, raise
12267         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
12268         Ignore_Errors is True, default restrictions are set and scanning of the
12269         ALI file continues with the next line. Also, when Bad_R_Line is raised
12270         and Ignore_Errors is True, skip to the end of le line.
12271
12272         * sem_ch10.adb: Check that explicit with's do not violate
12273         No_Dependence restrictions.
12274         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
12275         illegal context clauses containing child units of instance.
12276
12277         * sem_prag.adb: Processing and checking for new No_Dependence
12278         restrictions.
12279         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
12280         analyze and check the External argument.
12281
12282         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
12283
12284 2005-01-03  Robert Dewar  <dewar@adacore.com>
12285
12286         * atree.adb: Add a fifth component to entities
12287         This allows us to add 32 flags and four new fields
12288
12289         * atree.ads: Add a fifth component to entities
12290         This allows us to add 32 flags and four new fields
12291
12292         * einfo.ads, einfo.adb: Document new fields and new flags now available
12293         Add routines for printing new fields
12294
12295         * treepr.adb: Call routines to print out additional fields if present
12296
12297 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12298
12299         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
12300         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
12301
12302         * Makefile.in: Add support to build shared Ada libraries on solaris x86
12303         Remove gpr2make, replaced by gprmake.
12304         Remove references to gnatmem and libaddr2line.
12305         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
12306         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
12307         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
12308         a-numaux-darwin.ads and a-numaux-darwin.adb
12309         Enable mlib-tgt-lynxos.adb on lynxos.
12310
12311         * Make-lang.in: Remove rules for gpr2make.
12312         When generating sdefault.adb, do not call Relocate_Path
12313         on S3 for function Target_Name, as it is not a path.
12314         Remove references to gnatmem and libaddr2line.
12315
12316         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
12317         files.
12318
12319 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
12320
12321         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
12322         address is incompatible with its base type alignment constraints when
12323         this can be decided statically.
12324
12325 2005-01-03  Olivier Hainque  <hainque@adacore.com>
12326
12327         * decl.c (compatible_signatures_p): New function. The intended purpose
12328         is to check if two function signatures for a call-site and a callee are
12329         compatible enough for the call to be valid. The underlying purpose is
12330         to check if a call to a mapped builtin is using the right interface.
12331         The current code actually does not check antyhing - this a placeholder
12332         for future refinements.
12333         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
12334         builtin calls for convention Intrinsic.
12335
12336         * gigi.h (builtin_decl_for): Declare (new function).
12337
12338         * utils.c (gnat_install_builtins): Install the target specific builtins.
12339         (builtin_decl_for): New function, provide a dummy body for now.
12340
12341 2005-01-03  Geert Bosch  <bosch@adacore.com>
12342
12343         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
12344         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
12345         (Pred): Implement in terms of Succ.
12346
12347         * trans.c (convert_with_check): Reimplement conversion of float to
12348         integer.
12349
12350 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12351             Vincent Celier  <celier@adacore.com>
12352
12353         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
12354         bounds can be negative, and must be declared Int, not Nat.
12355
12356         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
12357         array is checked after using the index in the array.
12358
12359         * makegpr.adb (Add_Switches): Check if there is a package for the
12360         processor. If there is no package, do not look for switches.
12361
12362 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12363
12364         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
12365         generation of predefined stream operations (specs and bodies) should
12366         proceed. Under various restrictions these subprograms must not be
12367         generated.
12368
12369 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12370
12371         * exp_dist.adb:
12372         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
12373         amount of PCS-specific code in RACW stubs generation.
12374         (Copy_Specification): Set Etype on copied formal parameter entities, as
12375         this information is needed for PolyORB stubs generation.
12376         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
12377         variable Dynamic_Async.
12378         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
12379         (Build_RPC_Receiver_Specification): Make generic again, as recent
12380         changes have allowed RPC receivers to have the same profile for both
12381         variants of the PCS.
12382         Reorganise RPC receiver generation to reduce differences between the
12383         structure of GARLIC and PolyORB RPC receivers.
12384         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
12385         PCS-specific.
12386         Simplify elaboration code for RCI packages.
12387
12388         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
12389         generation to reduce differences between the structure of GARLIC and
12390         PolyORB RPC receivers.
12391
12392         * s-stratt.adb: Fix typo in comment.
12393
12394 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12395
12396         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
12397         copied from Make_Init_Call).
12398
12399         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
12400         reads and assignments on a temporary variable declared with appropriate
12401         discriminants.
12402
12403 2005-01-03  Robert Dewar  <dewar@adacore.com>
12404
12405         * i-c.adb (To_C): Raise CE if string is null and Append_Null
12406
12407 2005-01-03  Robert Dewar  <dewar@adacore.com>
12408
12409         * i-cstrin.adb (Update): Do not append a null in form called with a
12410         String. This avoids unintended behavior.
12411
12412 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12413
12414         PR ada/17527
12415         * init.c: Fix warnings on Free BSD section.
12416
12417 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12418
12419         PR ada/16949
12420         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
12421         xsinfo.adb).
12422
12423 2005-01-03  Vincent Celier  <celier@adacore.com>
12424
12425         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
12426         libraries when Unique_Compile is True (-u switch).
12427         (Gnatmake): ditto.
12428
12429 2005-01-03  Robert Dewar  <dewar@adacore.com>
12430
12431         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
12432         upper case letter or underscore after W, as allowed by spec.
12433
12434 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12435
12436         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
12437         darwin port by using proper type definitions from header files.
12438         Use SIGTERM instead of SIGABRT for SIGADAABORT.
12439
12440 2005-01-03  Robert Dewar  <dewar@adacore.com>
12441
12442         * par.adb: Enhance error message handling for configuration file
12443         pragmas.
12444
12445 2005-01-03  Robert Dewar  <dewar@adacore.com>
12446
12447         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
12448         removed during the previous update (test properly for case of dividing
12449         largest negative number by -1, which generates overflow).
12450
12451 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12452             Sergey Rybin  <rybin@adacore.com>
12453
12454         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
12455         to use as the defining identifier for a formal package.
12456         (Remove_Parent): If the instance takes place within (an instance of)
12457         a sibling, preserve private declarations of common parent.
12458
12459 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12460
12461         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
12462         to determine whether one of the operands is a fixed-point type for
12463         which a user-defined multiplication or division operation might be
12464         defined.
12465
12466         * sem_res.adb (Valid_Conversion): The legality rules for conversions
12467         of access types are symmetric in Ada 2005: either designated type can
12468         be unconstrained.
12469
12470 2005-01-03  Vincent Celier  <celier@adacore.com>
12471
12472         * s-fileio.adb (Temp_File_Record): Change length of string component
12473         Name from L_tmpnam + 1 to max_path_len + 1.
12474
12475 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12476
12477         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
12478         Self_Id.Deferral_Level = 0.
12479         (Do_Pending_Action): Move this function to the spec.
12480
12481         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
12482         Do_Pending_Action explicitely when needed, in case we're using
12483         No_Abort restrictions.
12484
12485         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
12486         deferral level since it will not get changed by the generated code.
12487         Keeping a default value of 1 would prevent some operations (e.g.
12488         select or delay) to proceed successfully.
12489
12490 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
12491             Robert Dewar  <dewar@adacore.com>
12492             Cyrille Comar  <comar@adacore.com>
12493
12494         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
12495         porting guide chapter (vms version).
12496         Revised doc title (removed "for native platforms") and subtitle.
12497         Add discussion on warning flag for obsolescent features. First we
12498         note that it applies to obsolete GNAT features, which was previously
12499         omitted. Second we contrast the behavior with that of the new
12500         Ada 2005 AI-368 restriction No_Obsolescent_Features.
12501         Preliminary rewriting of GNAT & libraries chapter in order to take
12502         into account default project locations & new project manager
12503         capabilities.
12504
12505 2005-01-03  Robert Dewar  <dewar@adacore.com>
12506
12507         * cstand.adb (Create_Operators): Clean up format and documentation of
12508         unary and binary operator result tables. No change in code, just
12509         reformatting and addition of comments.
12510
12511         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
12512         sem_ch2.adb: Minor reformatting
12513
12514         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
12515         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
12516         comments for Tree_Read and Tree_Write.
12517
12518 2005-01-03  Pascal Obry  <obry@adacore.com>
12519
12520         * exp_attr.ads: Minor reformatting.
12521
12522 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
12523
12524         * comperr.adb (Compiler_Abort): Add specialized message for GAP
12525         versions.
12526
12527 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12528
12529         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
12530         whether the ancestor type is private, as may be the case with nested
12531         instantiations.
12532
12533 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
12534
12535         PR ada/19128
12536         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
12537
12538 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12539
12540         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
12541         * utils2.c (build_unary_op): Likewise.
12542
12543 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12544
12545         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
12546
12547 2004-12-19  Richard Henderson  <rth@redhat.com>
12548
12549         * trans.c (gigi): Update gimplify_body call.
12550
12551 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
12552
12553         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
12554
12555 2004-12-07  Ed Falis  <falis@adacore.com>
12556
12557         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
12558         current task being suspended.
12559
12560         * init.c (__gnat_clear_exception): added to reset VxWorks exception
12561         count.
12562         (__gnat_map_signal): removed test for current task being suspended.
12563
12564 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12565
12566         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
12567         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
12568         targets (such as AAMP).
12569
12570 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12571
12572         * atree.adb (Visit_Itype): Create a new name for the generated itype,
12573         because the back-end may otherwise treat it as a redefinition of the
12574         old symbol.
12575
12576 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
12577
12578         * back_end.adb (Scan_Back_End_Switches): Accept --param.
12579
12580         * lang-specs.h: Accept --param.
12581
12582 2004-12-07  Vincent Celier  <celier@adacore.com>
12583
12584         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
12585         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
12586         Current_Body_Suffix => Ada_Body_Suffix).
12587         Take into account Externally_Built attribute.
12588
12589         * clean.adb (In_Extension_Chain): Always return False when one of the
12590         parameter is No_Project.
12591         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
12592         Ada_Language_Index).
12593         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
12594         Process_Languages for procedure Parse).
12595
12596         * gnatcmd.adb (Carg_Switches): New table.
12597         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
12598         Adapt to name changes in package Prj (Current_Spec_Suffix =>
12599         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
12600
12601         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
12602         Header_Num and function Hash are now declared in package Prj,
12603         not Prj.Com.
12604
12605         * prj.adb (Suffix_Of): New function.
12606         (Set (Suffix)): New procedure.
12607         (Hash): One function moved from Prj.Com
12608         (Is_Present, Language_Processing_Data_Of): New functions
12609         (Set): Two new procedures
12610         (Add_Language_Name, Display_Language_Name): New procedures
12611
12612         * prj.ads: (Suffix_Of): New function
12613         (Set (Suffix)): New procedure
12614         Add several types and tables for multi-language support.
12615         (Header_Num): Type moved from Prj.Com
12616         (Hash): Two functions moved from Prj.Com
12617         (Is_Present, Language_Processing_Data_Of): New functions
12618         (Set): Two new procedures
12619         (Add_Language_Name, Display_Language_Name): New procedures
12620         (Naming): Component name changes:
12621         Current_Spec_Suffix => Ada_Spec_Suffix,
12622         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
12623         Impl_Suffixes, Supp_Suffixes.
12624         (Project_Data): New components: Externally_Built, Supp_Languages,
12625         First_Language_Processing, Supp_Language_Processing, Default_Linker,
12626         Default_Linker_Path.
12627
12628         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
12629         new package Language_Processing with its attributes (Compiler_Driver,
12630         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
12631         Binder_Driver, Default_Linker).
12632
12633         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
12634         (Header_Num): Type moved to package Prj
12635
12636         * prj-env.adb: Adapt to name changes in package Prj
12637         (Current_Spec_Suffix => Ada_Spec_Suffix,
12638         Current_Body_Suffix => Ada_Body_Suffix).
12639
12640         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
12641         default to the project path, except the "-" is one of the directories
12642         in env var ADA_PROJECT_PATH.
12643         (Current_Project_Path): Global variable, replacing Project_Path
12644         that was in the body of Prj.Part.
12645         (Project_Path): New function
12646         (Set_Project_Path): New procedure
12647         Initialize Current_Project_Path during elaboration of the package
12648         Remove dependency on Prj.Com, no longer needed
12649
12650         * prj-ext.ads (Project_Path): New function
12651         (Set_Project_Path): New procedure
12652
12653         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
12654         suffix is defined for language <lang>.
12655         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
12656         accessing directly the components of Naming.
12657         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
12658         Reorganise of this package.
12659         Break procedure Check in several procedures.
12660
12661         * prj-nmsc.ads: Replace all procedures (Ada_Check,
12662         Other_Languages_Check and Language_Independent_Check) with a single
12663         procedure Check.
12664
12665         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
12666         Process_Languages, no longer needed.
12667
12668         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
12669         Current_Project_Path.
12670         Remove elaboration code, moved to the body of Prj.Ext
12671         Use new function Prj.Ext.Project_Path instead of old variable
12672         Project_Path.
12673         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
12674         When comparing with project paths on the stack, first put the resolved
12675         path in canonical case.
12676         (Parse_Single_Project): Set the path name of the project file in the
12677         tree to the normalized path.
12678
12679         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
12680         parameter Process_Languages, no longer needed.
12681         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
12682         Other_Languages_Check.
12683
12684         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
12685         to store the resolved canonical path of the project file.
12686         Remove dependency to Prj.Com, no longer needed
12687
12688         * prj-util.adb: Adapt to name changes in package Prj
12689         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
12690         Ada_Body_Suffix).
12691
12692         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
12693         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
12694         Externally_Built, Include_Option, Language_Processing.
12695
12696         * makegpr.adb: Numerous changes due to changes in packages
12697         Prj and Prj.Nmsc.
12698
12699         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
12700         default to the project path, except whe "-" is one of the directories
12701         in env var ADA_PROJECT_PATH.
12702         (Gnatls): In verbose mode, add the new section "Project Search Path:"
12703
12704 2004-12-07  Robert Dewar  <dewar@adacore.com>
12705
12706         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
12707
12708         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
12709         set -gnatR3m mode.
12710
12711         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
12712         flag. No longer needed now that we handle this in gnat1drv.adb.
12713
12714         * repinfo.ads: Minor reformatting
12715
12716 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12717             Olivier Hainque  <hainque@adacore.com>
12718             Eric Botcazou  <ebotcazou@adacore.com>
12719
12720         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
12721         TYPE_SIZE_UNIT of result type if SIZE is not specified.
12722         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
12723         of a bitfield, which we know is useless and causes trouble because of
12724         alignment implications.
12725
12726         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
12727         BSS sections.
12728         (process_attributes): Clear DECL_COMMON again when a section attribute
12729         is present.
12730         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
12731         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
12732         (create_field_decl): Special case ADDRESSABLE negative to mean
12733         "no bitfield creation", to be used by make_aligning_type. Don't
12734         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
12735         fields claimed addressable still have to be bitfields. Use
12736         value_factor_p instead of a raw binop construction to check for the
12737         position's alignment.
12738
12739 2004-12-07  Geert Bosch  <bosch@adacore.com>
12740
12741         * eval_fat.adb: Revert previous change.
12742
12743 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12744             Ed Schonberg  <schonberg@adacore.com>
12745
12746         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
12747         with an implicit dereference as its prefix, use
12748         Insert_Explicit_Dereference instead of merely rewriting the prefix into
12749         an explicit dereference. This ensures that a reference to the original
12750         prefix is generated, if appropriate.
12751
12752         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
12753         dereference is rewritten to an explicit one, generate a reference to
12754         the entity denoted by its prefix using the original prefix node, so
12755         the dereference can be properly recorded as a read of the denoted
12756         access value, if appropriate.
12757
12758         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
12759         emitting 'assigned but never read' warning on a variable on the basis
12760         that it has an access type.
12761         (Check_References): Emit unreferenced warning when the scope is a
12762         subprogram body.
12763
12764 2004-12-07  Robert Dewar  <dewar@adacore.com>
12765             Ed Schonberg  <schonberg@adacore.com>
12766
12767         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
12768         intrinsic
12769
12770         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
12771         leaving call unchanged.
12772         This deals with the case where the pragma Import specified
12773         an external name, to be handled by the back end.
12774
12775         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
12776         subprogram which is Imported with convention Intrinsic if an
12777         External_Name argument is specified.
12778         (Process_Import_Or_Interface): Properly diagnose link name argument.
12779         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
12780         with Sem_Ch6.Cannot_Inline.
12781         (Process_Inline): Provide separate warning for inapplicable inline
12782         pragma.
12783         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
12784         treatment is uniform on different targets.
12785
12786 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12787
12788         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
12789         construct is rewritten, preserve end label to permit source navigation.
12790
12791 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12792
12793         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
12794         Specific_Build_Stub_Target): New subprograms.
12795         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
12796         the PCS implementation used, using the above PCS-customized subprograms.
12797         Minor reformatting.
12798         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
12799         for generation of DSA code targeted to the PolyORB PCS.
12800         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
12801         implementation of the partition communication subsystem in ancillary
12802         subprograms.
12803         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
12804         PolyORB_Support.Build_Stub_Type): New subrograms containing the
12805         PCS-specific part of Add_Stub_Type.
12806         (Insert_Partition_Check): Use runtime library function to perform
12807         E.4(19) check.
12808
12809         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
12810         (RE_Same_Partition): New entity, from s-parint.
12811
12812         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
12813
12814 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12815
12816         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
12817         Output the copyright message on a separate line from the version
12818         message.
12819
12820 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
12821
12822         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
12823         compile-time warning.
12824
12825 2004-12-07  Robert Dewar  <dewar@adacore.com>
12826
12827         * g-regpat.adb: (Match): Change a misuse of or to or else
12828
12829 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12830
12831         * lib-xref.adb:
12832         (Generate_Reference): Handle properly a reference to an entry formal,
12833          when an accept statement has a pragma Unreferenced for it.
12834
12835         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
12836         and the Has_Pragma_Unreferenced flag for each formal before analyzing
12837         the body, to ensure that warnings are properly emitted for each accept
12838         statement of a given task entry.
12839
12840 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
12841
12842         * Makefile.in: Add support for foreign threads on VMS.
12843
12844 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12845
12846         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
12847         Remove.
12848         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
12849
12850         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
12851
12852         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
12853         exception.
12854         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
12855
12856 2004-12-07  Robert Dewar  <dewar@adacore.com>
12857
12858         * nlists.adb (Prepend_Debug): Remove parameters and nest within
12859         Prepend.
12860         (Remove_Next_Debug): Same fix
12861
12862         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
12863         maintain back pointers now, though we did not used to, and comments
12864         were out of date).
12865         (Prepend): Remove pragma Inline.
12866         (Remove_Next): Same cleanup
12867
12868 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12869
12870         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
12871         used to record an implicit dereference as a read operation on its
12872         prefix when operating under -gnatc. Necessary to avoid spurious
12873         'variable assigned but never read' warnings in that mode.
12874         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
12875         is a non-overloaded implicit dereference, call the above subprogram to
12876         ensure proper recording of references.
12877
12878 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12879
12880         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
12881         to be resolved later as part of Analyze_Iteration_Scheme's call to
12882         Make_Index.
12883
12884 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12885
12886         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
12887         prefix is not a scalar type, place error message on prefix, not on
12888         type entity.
12889
12890 2004-12-07  Bernard Banner  <banner@adacore.com>
12891
12892         * vxaddr2line.adb: Add support for x86 vxworks
12893
12894 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12895
12896         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
12897         documentation of the behaviour of these functions when passed an IP
12898         address that has no record in the system hosts database and no reverse
12899         record in the DNS.
12900
12901         * cstand.adb, a-tags.ads: Fix typos in comment.
12902
12903 2004-12-07  Robert Dewar  <dewar@adacore.com>
12904
12905         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
12906         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
12907         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
12908         s-poosiz.ads: Minor reformatting
12909
12910         * make.adb: Minor reformatting
12911         Add some ??? comments asking for more comments
12912
12913         * s-poosiz.adb: Minor reformatting
12914         Add comments on alignment requirement
12915
12916         * sinfo.ads: Remove obsolete comment and fix typo.
12917
12918 2004-12-07  Vincent Celier  <celier@adacore.com>
12919             Sergey Rybin  <rybin@adacore.com>
12920
12921         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
12922         Files" with the new tool and package names.
12923         Reformatting to suppress most of the warnings for line too long
12924         Document the new section "Project Search Path:" in the output of
12925         gnatls -v.
12926         Add gnatmetric section
12927
12928 2004-12-07  Vincent Celier  <celier@adacore.com>
12929
12930         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
12931         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
12932         and -eit to -ept. Added qualifier
12933         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
12934
12935 2004-11-27  Andreas Schwab  <schwab@suse.de>
12936
12937         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
12938
12939 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12940
12941         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
12942         internal implementation unit GNAT.Sockets.Thin,
12943         as their usage for sockets is non-portable (using the read and write
12944         functions from the system runtime library is fine on UNIX but won't
12945         work under Windows).
12946
12947         * mingw32.h: Update copyright notice.
12948
12949 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12950
12951         * ada-tree.h: Minor reformatting of previous change to avoid lines
12952         longer than 79 characters.
12953
12954 2004-11-25  Olivier Hainque  <hainque@adacore.com>
12955
12956         * tb-gcc.c: GCC infrastructure based implementation of
12957         __gnat_backtrace.
12958
12959 2004-11-24  Steven Bosscher  <stevenb@suse.de>
12960
12961         * misc.c (gnat_post_options): Don't clear
12962         flag_inline_functions.
12963
12964 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
12965
12966         PR ada/17986
12967         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
12968         tree.
12969
12970 2004-11-21  Andreas Jaeger  <aj@suse.de>
12971
12972         * stylesw.adb: Change Style_Check_Subprogram_Order to
12973         Style_Check_Order_Subprograms.
12974
12975 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
12976
12977         * adaint.h, adaint.c
12978         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
12979         to avoid warnings.
12980         Add also a cast to kill another warning.
12981         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
12982         parameter with the priority class of the parent process instead of
12983         always using the NORMAL_PRIORITY_CLASS.
12984         (__gnat_dup): New function.
12985         (__gnat_dup2): New function.
12986         (__gnat_is_symbolic_link): Enable the effective body of this
12987         function when __APPLE__ is defined.
12988
12989         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
12990         Update comments.
12991
12992 2004-11-18  Olivier Hainque  <hainque@adacore.com>
12993
12994         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
12995         address of which may be used to represent "others" and "all others"
12996         choices in exception tables, instead of the current harcoded
12997         (void *)0 and (void *)1.
12998         (Setup_Exception): Do nothing in the GNAT SJLJ case.
12999
13000         * gigi.h (others_decl, all_others_decl): New decls representing the
13001         new Others_Value and All_Others_Value objects.
13002         (struct attrib): Rename "arg" component as "args", since GCC expects a
13003         list of arguments in there.
13004
13005         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
13006         corresponding objects exported by a-exexpr, instead of hardcoded dummy
13007         addresses.
13008
13009         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
13010         others_decl and all_others_decl instead of hardcoded dummy addresses
13011         to represent "others" and "all others" choices, which is cleaner and
13012         more flexible with respect to the possible eh pointer encoding policies.
13013
13014         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
13015         (process_attributes): Account for the naming change of the "args"
13016         attribute list entry component.
13017
13018         * decl.c (build_attr_list): Rename into prepend_attributes to allow
13019         cumulating attributes for different entities into a single list.
13020         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
13021         attributes for the current entity and propagate first subtype
13022         attributes to other subtypes.
13023         <E_Procedure>: Attribute arguments are attr->args and not
13024         attr->arg any more.
13025         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
13026         argument provided, as this is what GCC expects. Use NULL_TREE instead
13027         of 0 for trees.
13028
13029 2004-11-18  Robert Dewar  <dewar@adacore.com>
13030
13031         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
13032         Minor reformatting througout (including new function specs)
13033         Add ??? comments asking for clarification.
13034
13035 2004-11-18  Thomas Quinot  <quinot@adacore.com>
13036
13037         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
13038         incomplete duplicate implementation of this subprogram from butil.
13039
13040 2004-11-18  Thomas Quinot  <quinot@adacore.com>
13041
13042         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
13043         procedures factors the common processing for building an RPC receiver
13044         for an RCI package or an RACW type.
13045         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
13046         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
13047         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
13048         in use.
13049         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
13050         Add_RACW_Features.
13051         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
13052         Add_RAST_Features.
13053         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
13054         distribution subprogram identifiers that are either subprogram numbers
13055         or strings.
13056         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
13057         string distribution identifiers assigned to a given subprogram.
13058         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
13059         (Add_RAS_Dereference_TSS): Add comments.
13060         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
13061         is not referenced yet because it will be used by the PolyORB DSA
13062         implementation.
13063         (Insert_Partition_Check): Remove fossile code.
13064         (First_RCI_Subprogram_Id): Document this constant.
13065         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
13066         RAS_Access TSS.
13067         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
13068         replaced with calls to Get_Library_Unit_Name_String. Previously there
13069         were several instances of the same code in different locations in the
13070         compiler; this checkin completes the replacement of all of these
13071         instances with calls to a common subprogram.
13072         Minor reformatting.
13073
13074         * sem_dist.adb: Remove comment noting that RPC receiver generation
13075         should be disabled for RACWs that implement RASs.
13076         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
13077
13078         * sem_util.ads, sem_util.adb (Has_Stream): New function
13079         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
13080         qualified name of a library unit into the name buffer.
13081         (Note_Possible_Modification): Generate a reference only
13082         if the context comes from source.
13083
13084         * snames.ads (PCS_Names): New subtype corresponding to names of
13085         supported implementations of the Partition Communication Subsystem
13086         (PCS) (i.e. the runtime library support modules for the distributed
13087         systems annex).
13088
13089 2004-11-18  Robert Dewar  <dewar@adacore.com>
13090             Ed Schonberg  <schonberg@adacore.com>
13091
13092         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
13093         (Has_Rep_Pragma): New function
13094         (Has_Attribute_Definition_Clause): New function
13095         (Record_Rep_Pragma): Moved here from sem_ch13.adb
13096         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
13097
13098         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
13099
13100         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
13101         (Expand_Pragma_Psect_Object): New procedure
13102         These procedures contain the revised and cleaned up processing for
13103         these two pragmas. This processing was formerly in Sem_Prag, but
13104         is more appropriately moved here. The cleanup involves making sure
13105         that the pragmas are properly attached to the tree, and that no
13106         nodes are improperly shared.
13107
13108         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
13109         pragmas to Exp_Prag, which is more appropriate.
13110         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
13111         check for duplicates Remove use of Is_Psected flag, no longer needed.
13112         Use new Make_String_Literal function with string.
13113
13114         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
13115         that are functions return universal values, that have to be converted
13116         to the context type.
13117         Use new Make_String_Literal function with string.
13118         (Get_Stream_Convert_Pragma): New function, replaces the use of
13119         Get_Rep_Pragma, which had to be kludged to work in this case.
13120
13121         * freeze.adb: Use new Has_Rep_Pragma function
13122
13123         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
13124         function with string.
13125         Use new Has_Rep_Pragma function.
13126
13127         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
13128         string argument.
13129
13130 2004-11-18  Robert Dewar  <dewar@adacore.com>
13131
13132         * errout.ads, errout.adb: (First_Sloc): New function
13133
13134         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
13135         check (-gnatyx) instead of being included as a redundant construct
13136         warning.
13137
13138         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
13139         Style_Check_Order_Subprograms.
13140
13141         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
13142         stylesw.adb: Add Style_Check_Xtra_Parens
13143
13144         * usage.adb: Add line for -gnatyx (check extra parens)
13145
13146         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
13147
13148 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13149             Robert Dewar  <dewar@adacore.com>
13150
13151         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
13152         discriminant of a constrained subtype, analyze the copy of the
13153         corresponding constraint, because in some cases it may be only
13154         partially analyzed.
13155         Removes long-lived ??? comments.
13156
13157         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
13158         handled controlled or secondary-stack expressions within the
13159         iteration_scheme of a loop.
13160
13161         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
13162         bounds that may contain functions calls, to prevent memory leaks when
13163         the bound contains a call to a function that uses the secondary stack.
13164         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
13165         generate temporaries for loop bounds that might contain function calls
13166         that require secondary stack and/or finalization actions.
13167
13168         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
13169         selected component and the selector is overloadable (not just a
13170         function) treat as function call, Analyze_Call will disambiguate if
13171         necessary.
13172         (Analyze_Selected_Component): Do not generate an actual subtype for the
13173         selected component if expansion is disabled. The actual subtype is only
13174         needed for constraint checks.
13175         (Analyze_Allocator): If restriction No_Streams is set, then do
13176         not permit objects to be declared of a stream type, or of a
13177         composite type containing a stream.
13178
13179         * restrict.ads: Remove the a-stream entry from Unit_Array, since
13180         No_Streams no longer prohibits with'ing this package.
13181
13182         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
13183         discriminants, but the parent base has unknown discriminants, there is
13184         no discriminant constraint to inherit. Such a discrepancy can arise
13185         when the actual for a formal type with unknown discriminants is a
13186         similar private type whose full view has discriminants.
13187         (Analyze_Object_Declaration): If restriction No_Streams is set, then
13188         do not permit objects to be declared of a stream type, or of a
13189         composite type containing a stream.
13190
13191 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13192
13193         * exp_dbug.ads: Update documentation to reflect simpler encoding for
13194         protected operations.
13195
13196         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
13197         generated name, it complicates decoding in gdb and hinders debugging
13198         of protected operations.
13199         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
13200         flag for the protected entry barrier function.
13201         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
13202         flag for the protected entry function.
13203
13204 2004-11-18  Nicolas Setton  <setton@adacore.com>
13205
13206         * expect.c: Define __unix__ when __APPLE__ is defined.
13207
13208         * Makefile.in: Inform the value of the variable GMEM_LIB in the
13209         Darwin-specific section.
13210
13211         * lang-specs.h: Change the placement of the %1 marker.
13212         Works around the fact that gcc adds -fPIC by default under Darwin.
13213
13214 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13215
13216         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
13217         type of the object with the packed array type, set the Analyzed flag
13218         on the object if it is an entity or simple indexed component, to avoid
13219         spurious type errors.
13220
13221 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
13222
13223         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
13224         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
13225         separate line from the version message.
13226
13227 2004-11-18  Ed Falis  <falis@adacore.com>
13228
13229         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
13230         vthreads.
13231         (init_float): Eliminate initialization of floating point status for
13232         AE653. The instructions have no effect for vThreads.
13233
13234 2004-11-18  Vincent Celier  <celier@adacore.com>
13235
13236         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
13237         gnatbind is invoked with -shared.
13238
13239 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
13240
13241         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
13242         for Detect_Blocking which is redundant with the check done within the
13243         procedure Protected_Single_Entry_Call.
13244         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
13245         Detect_Blocking which is redundant with the check done within the
13246         procedure Protected_Single_Entry_Call.
13247
13248 2004-11-18  Vincent Celier  <celier@adacore.com>
13249
13250         * makegpr.adb (Compile): Put the compiling switches (in package
13251         Compiler and on the command line) immediately after "-c", instead of
13252         at the end of the command line invocation of the compiler, when
13253         compiling a non-Ada file.
13254         (Build_Global_Archive): When there is no need to rebuild the archive,
13255         set Global_Archive_Exists, so that the archive is passed to the linker
13256         if one is needed.
13257
13258 2004-11-18  Robert Dewar  <dewar@adacore.com>
13259             Sergey Rybin  <rybin@adacore.com>
13260
13261         * gnat_ugn.texi:
13262         Remove extra paren check from list of checks for redundant constructs
13263         Add documentation of new -gnatyx style check (check extra parens)
13264         Remove paragraph about gnatelim debug options.
13265
13266         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
13267         objects rather than forbidding dependencies on the package Ada.Streams.
13268
13269         * sinfo.ads: Add ??? note that we should document pragmas passed to
13270         back end.
13271
13272         * g-expect.ads: Fix a few typos in the comments.
13273
13274 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
13275
13276         * misc.c (gnat_handle_option): Use %< and %> for quoting in
13277         warning message.
13278
13279 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13280
13281         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
13282
13283 2004-11-07  Andreas Schwab  <schwab@suse.de>
13284
13285         * Makefile.in (install-gnatlib): Remove spurious hyphen.
13286
13287 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
13288
13289         PR ada/18228
13290         * Makefile.in (darwin): Set soext to .dylib.
13291
13292 2004-10-26  Vincent Celier  <celier@gnat.com>
13293             Thomas Quinot   <quinot@act-europe.fr>
13294
13295         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
13296         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
13297         there is no use of GNAT.Sockets.Constants.
13298         Remove remaining pragma Import for C_Write
13299         Remove C_Read and C_Write from internal implementation unit
13300         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
13301         the read and write functions from the system runtime library is fine
13302         on UNIX but won't work under Windows).
13303
13304         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
13305         (Check_Selector): Use C_Recv instead of C_Read.
13306         Selectors are the GNAT.Sockets abstraction to perform a select()
13307         call on a set of descriptors. To allow abortion of an ongoing
13308         select operation, some data is written to a dedicated socket that
13309         is always monitored.
13310         Under Windows, the write and read library functions cannot operate
13311         on sockets, so we need to use send and recv instead, which is portable
13312         across all supported platforms.
13313
13314         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
13315         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
13316         (using the read and write functions from the system runtime library is
13317         fine on UNIX but won't work under Windows).
13318
13319 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
13320
13321         * mlib-tgt-darwin.adb: New file.
13322
13323         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13324         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13325         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
13326         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
13327         subprogram body.
13328
13329         * Makefile.in: Add support for building shared libraries under Darwin.
13330         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
13331         the low level EH init subprogram to be called from __gnat_initialize.
13332
13333         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
13334         indicates which options to pass to the archive indexer.
13335
13336         * mlib-utl.adb: Add support for calling ranlib with additional
13337         options. This is needed for instance under Mac OS X.
13338         (Ranlib_Options): New global variable, used to store the potential
13339         options to pass to ranlib.
13340         (Ar): Use Ranlib_Options when spawning ranlib.
13341         (Initialize): Set the value of ranlib option.
13342
13343 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13344
13345         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
13346         instead of 8K, to reflect the real potential needs for stack-checking
13347         in the ZCX case.
13348
13349 2004-10-26  Pascal Obry  <obry@gnat.com>
13350
13351         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
13352
13353         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
13354         Windows only the initial thread stack size can be set so it is good to
13355         start we a low stack size.
13356         The OS will adjust the size as needed.
13357
13358 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13359             Nicolas Setton  <setton@act-europe.fr>
13360
13361         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
13362         "__unix__" instead of "unix".
13363         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
13364         sections were just mistakenly ignored. The former is
13365         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
13366         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
13367         of hpux. This prevents an unwanted definition of the symbol
13368         convert_addresses in adaint.o.
13369
13370 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13371
13372         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
13373         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
13374
13375 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13376
13377         * a-filico.ads, a-filico.adb: fix incorrect header.
13378
13379 2004-10-26  Javier Miranda  <miranda@gnat.com>
13380
13381         * a-ststio.ads: Fix typo in identifier
13382
13383 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13384
13385         * sem_ch4.adb: Minor reformatting.
13386
13387 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13388
13389         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
13390         enabled, check the result of unary and binary operations when the
13391         expression is the right-hand side of an assignment.
13392
13393 2004-10-26  Vincent Celier  <celier@gnat.com>
13394
13395         * clean.adb (Delete): Do not output warnings when in quiet output and
13396         not in verbose mode.
13397         (Force_Deletions): New Boolean flag, defaulted to False
13398         (Delete): Only delete a file if it is writable, and when
13399         Force_Deletions is True.
13400         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
13401         (Usage): Line for new switch -f
13402         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
13403         own.
13404
13405 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13406
13407         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
13408         JM type only if its size matches that of the wrapper.  When a size is
13409         prescribed and the field is not aliased, remove the wrapper of a JM
13410         type only if the size is not greater than that of the packed array.
13411         (gnat_to_gnu_entity): Change the extension of packed array wrappers
13412         from LJM to JM.
13413
13414 2004-10-26  Geert Bosch  <bosch@gnat.com>
13415
13416         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
13417         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
13418         (Pred): Implement in terms of Succ.
13419
13420 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13421
13422         * exp_aggr.adb (Safe_Component): An aggregate component that is an
13423         unchecked conversion is safe for in-place use if the expression of the
13424         conversion is safe.
13425         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
13426         be expandable in place even if the aggregate does not come from source.
13427         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
13428         designated object of an allocator in place, rather than building it
13429         first on the stack. The previous scheme forces a full copy of the array,
13430         and may be altogether unsusable if the size of the array is too large
13431         for stack allocation.
13432
13433 2004-10-26  Robert Dewar  <dewar@gnat.com>
13434
13435         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
13436         compares if the component is atomic.
13437
13438         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
13439         array assignment if the component type is atomic.
13440
13441 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13442             Eric Botcazou  <ebotcazou@act-europe.fr>
13443
13444         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
13445         is aliased and is a by_reference type, do not pass by copy.
13446         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
13447         detect whether the call is in the right side of an assignment or
13448         the expression of an object declaration.  Recurse on component
13449         association within aggregates.
13450         Call it in the condition that determines whether the temporary is
13451         necessary for correct stack-checking.
13452
13453 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13454
13455         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
13456         RACW_Type, used in the PolyORB version.
13457         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
13458         version and the GARLIC version.
13459
13460         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
13461         Rename RCI_Info to RCI_Locator for better consistency between the
13462         GARLIC and PolyORB versions of the distributed systems annex.
13463         (DSA_Implementation_Name): This enumeration lists the possible
13464         implementations of the Partition Communication Subsystem for the
13465         Distributed Systems Annex (DSA). The three available implementations
13466         are the dummy stub implementation (No_DSA), and two versions based on
13467         two different distribution runtime libraries: GARLIC and PolyORB. Both
13468         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
13469         technology.
13470         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
13471         that organization.
13472
13473         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
13474         between the GARLIC and PolyORB versions of the distributed systems
13475         annex.
13476         Remove RE_Unbounded_Reclaim_Pool since it is unused.
13477
13478 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13479
13480         * gnat1drv.adb: Suppress calling the back end when
13481         Frontend_Layout_On_Target is true.
13482
13483 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13484
13485         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
13486         Set_Read_Only): New subprograms.
13487         These new routines allow the user to set or unset the Owner execute
13488         and Owner write permission flags on a file.
13489
13490         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
13491         GNAT.OS_Lib.Set_Executable instead of rolling our own.
13492
13493 2004-10-26  Matthew Gingell  <gingell@gnat.com>
13494
13495         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
13496
13497 2004-10-26  Pascal Obry  <obry@gnat.com>
13498
13499         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
13500         memory before the faulting page we properly test the process read
13501         access for this address using appropriate Win32 routine.
13502         (HPUX sections): guard with "__hpux__" instead of "hpux".
13503
13504 2004-10-26  Robert Dewar  <dewar@gnat.com>
13505
13506         * lib-xref.adb (Generate_Reference): Don't complain about reference to
13507         entry parameter if pragma Unreferenced set, since we do not properly
13508         handle the case of multiple parameters.
13509
13510 2004-10-26  Vincent Celier  <celier@gnat.com>
13511
13512         * prj-env.adb: (Contains_ALI_Files): New Boolean function
13513         (Ada_Objects_Path.Add): For a library project, add to the object path
13514         the library directory only if there is no object directory or if the
13515         library directory contains ALI files.
13516         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13517
13518 2004-10-26  Vincent Celier  <celier@gnat.com>
13519
13520         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
13521         extension of library projects.
13522
13523         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
13524         path defaults to ".:<prefix>/lib/gnat".
13525         (Parse): For an extending all project, allow direct import of a project
13526         that is virtually extended.
13527
13528         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
13529         the specified name is directly imported, return its ID. Otherwise, if
13530         an extension of this project is imported, return the ID of the
13531         extension.
13532
13533 2004-10-26  Robert Dewar  <dewar@gnat.com>
13534
13535         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
13536         (Sub3): New procedure, used by Scaled_Divide
13537         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
13538         correct more than one instance of failure to propagate carries
13539         correctly.
13540         (Double_Divide): Handle overflow case of largest negative number
13541         divided by minus one.
13542
13543         * s-arit64.ads (Double_Divide): Document that overflow can occur in
13544         the case of a quotient value out of range.
13545         Fix comments.
13546
13547 2004-10-26  Robert Dewar  <dewar@gnat.com>
13548
13549         * s-bitops.adb (Bit_Eq): Remove redundant check.
13550
13551         * s-bitops.ads: Minor comment updates
13552         Change some occurrences of Address to System.Address
13553
13554         * s-carsi8.ads: Fix minor cut-and-paste error in comments
13555
13556 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13557
13558         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
13559         accessibility check to prefix that is a protected operation.
13560
13561 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13562
13563         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
13564         empty, post message on stub.
13565
13566 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13567             Javier Miranda  <miranda@gnat.com>
13568
13569         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
13570         current instance appears within a unit that is directly in the context
13571         of the main unit.
13572         Used to determine whether the body of the instance should be analyzed
13573         immediately after its spec, to make its subprogram bodies available
13574         for front-end inlining.
13575         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
13576         constraint is not allowed on the component type (AARM 12.5.3(3))
13577
13578 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13579
13580         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
13581         'Storage_Pool): enhance, document & limit detection of non-sharable
13582         internal pools.
13583
13584         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
13585
13586         * s-pooglo.ads: Add more documentation now that this pool is properly
13587         documented.
13588
13589 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13590
13591         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
13592         or protected type with discriminants, do not constrain the
13593         corresponding record type if the subtype declaration has no
13594         discriminant constraints. This can be the case in source code, or in
13595         the subtype declaration created to rename an actual type within an
13596         instantiation.
13597
13598 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13599
13600         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
13601         different kind of stub (possibly wrong name for file), do not check
13602         for conformance.
13603         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
13604         includes call to some function that returns an unconstrained type, do
13605         not inline.
13606
13607 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13608
13609         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
13610         appear in the code for the main unit. Dependencies among units in the
13611         context of the main unit are established when those other units are
13612         compiled. Otherwise spurious elaboration constraints can generate
13613         incorrect elaboration circularities.
13614
13615 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13616             Ed Schonberg   <schonberg@gnat.com>
13617
13618         * sem_util.adb (Is_Aliased_View): Defend against the case where this
13619         subprogram is called with a parameter that is not an object name. This
13620         situation arises for some cases of illegal code, which is diagnosed
13621         later, and in this case it is wrong to call Is_Aliased, as that might
13622         cause a compiler crash.
13623         (Explain_Limited_Type): Refine previous fix to include
13624         inherited components of derived types, to provide complete information.
13625
13626         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
13627         is the prival for a protected object.
13628         It is necessary to mark this entity as a variable, in addition to
13629         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
13630         modified to avoid checking the Aliased flag on entities that are not
13631         objects. (Checking that flag for non-objects is erroneous and could
13632         lead to a compiler crash).
13633
13634 2004-10-26  Robert Dewar  <dewar@gnat.com>
13635
13636         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
13637         X_Frac = 0.5, then we know that the number X must be positive.
13638         (Succ): Remove the same redundant test, and also fix the primary test
13639         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
13640         Minor reformatting
13641         (Decompose): Add fuller comments to spec
13642
13643 2004-10-26  Pascal Obry  <obry@gnat.com>
13644
13645         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
13646         validity (process must have read access). Set to 0 in all other cases.
13647         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
13648         violation on Win32.
13649         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
13650         segmentation violation.
13651
13652 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13653
13654         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
13655         whose type is a constructed subtype of an aliased object with an
13656         unconstrained nominal subtype, convert the actual to the constructed
13657         subtype before taking its address.
13658
13659 2004-10-26  Vincent Celier  <celier@gnat.com>
13660
13661         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
13662         (Is_Path_Name_Case_Sensitive): New function
13663
13664         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
13665         (Base_Name, Simple_Name, Current_Directory, Compose,
13666         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
13667         the result.
13668
13669 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
13670             Vasiliy Fofanov  <fofanov@act-europe.fr>
13671             Vincent Celier   <celier@gnat.com>
13672
13673         * gnat_ugn.texi: Generalize "finding memory problems" section into a
13674         "memory management issues" section and document some of the useful
13675         memory pools provided as part of the GNAT library.
13676         Remove "virtual" from declaration of A::method2 in
13677         the simple example of Ada/C++ mixed system.
13678         Library Projects may be virtually extended: their virtual extensions
13679         are not Library Projects.
13680         Added section on extending project hierarchies.
13681
13682 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13683
13684         * adaint.c (__gnat_get_libraries_from_registry): Cast value
13685         to LPBYTE.
13686         (__gnat_portable_spawn): Remove const.
13687
13688         * mingw32.h (MAXPATHLEN): Check for previous definition.
13689
13690 2004-10-17  Matthias Klose  <doko@debian.org>
13691
13692         * gnatvsn.ads: Set gnat library version to 4.0.
13693
13694 2004-10-05  Vincent Celier  <celier@gnat.com>
13695
13696         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
13697
13698 2004-10-04  Laurent GUERBY <laurent@guerby.net>
13699
13700         PR ada/15156
13701         * Makefile.in: Define and use RANLIB_FLAGS.
13702
13703 2004-10-04  Pascal Obry  <obry@gnat.com>
13704
13705         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
13706         other x86 platforms).
13707
13708 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13709
13710         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
13711         in general and triggers stack alignment adjustment for thread entry
13712         points on targets where this is necessary.
13713
13714 2004-10-04  Bernard Banner  <banner@gnat.com>
13715
13716         PR ada/13897
13717
13718         * Makefile.in: Add section for powerpc linux
13719         Add variant i-vxwork-x86.ads
13720
13721         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
13722
13723 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13724
13725         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
13726         table registration calls when need be. Ensures no reference to the crt
13727         ctors symbol are issued in the SJLJ case, which avoids possible
13728         undefined symbol errors in the case of modules to be statically linked
13729         with the kernel.
13730
13731 2004-10-04  Javier Miranda  <miranda@gnat.com>
13732
13733         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
13734         in-line the code corresponding to subprogram Analyze_Actuals. In
13735         addition, analyze the actuals only in case of subprogram call.
13736
13737 2004-10-04  Ed Falis  <falis@gnat.com>
13738
13739         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
13740
13741 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
13742
13743         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
13744         in the documentation.
13745
13746 2004-10-04  Robert Dewar  <dewar@gnat.com>
13747
13748         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
13749         IF and CASE.
13750         (Analyze_Block_Statement): Add circuitry to detect following dead code
13751         (Check_Unreachable_Code): Handle case of block exit
13752
13753 2004-10-04  Robert Dewar  <dewar@gnat.com>
13754
13755         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
13756         (XMatchD): Avoid warning for Logic_Error call
13757
13758 2004-10-04  Robert Dewar  <dewar@gnat.com>
13759
13760         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
13761         consider expressions buried within a procedure actual to be an actual.
13762         This caused some blowups with uses of packed slices within a procedure
13763         actual.
13764
13765 2004-10-04  Robert Dewar  <dewar@gnat.com>
13766
13767         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
13768         longer need to be initialized to zero.
13769         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
13770         initialized to zero.
13771
13772         * checks.adb (Expr_Known_Valid): Packed arrays are now always
13773         considered valid, even if the representation is modular. That's correct
13774         now that we no longer initialize packed modular arrays to zero.
13775
13776         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
13777         suffixes. These are now documented as the only cases in which the
13778         debugger ignores outer records.
13779         Previously, the spec allowed arbitrary suffixes for this purpose.
13780         Change name of LJM to JM for packed array pad records
13781         Create separate section on packed array handling, and add a whole new
13782         set of comments to this section describing the situation with packed
13783         modular types and justification requirements depending on endianness.
13784
13785 2004-10-04  Robert Dewar  <dewar@gnat.com>
13786
13787         * a-except.adb: Add a comment for last change
13788
13789         * einfo.ads: Minor spelling correction in comment
13790
13791         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
13792
13793         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
13794         messages.
13795
13796         * sem_util.ads: Minor comment update
13797
13798 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13799
13800         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
13801         Inline_Always when in Configurable_Run_Time mode.
13802
13803         * sem_prag.adb (Process_Convention): If entity is an inherited
13804         subprogram, apply convention to parent subprogram if in same scope.
13805         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
13806         when in Configurable_Run_Time mode.
13807
13808 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13809
13810         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
13811         class_wide type after component list has been inherited.
13812
13813 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13814
13815         * sem_ch12.adb (Check_Generic_Actuals): New predicate
13816         Denotes_Previous_Actual, to handle properly the case of a private
13817         actual that is also the component type of a subsequent array actual.
13818         The visibility status of the first actual is not affected when the
13819         second is installed.
13820         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
13821         make fully recursive the treatment of formals of packages declared
13822         with a box.
13823         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
13824         the above on exit from an instantiation.
13825         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
13826         current instantiation which is now complete.
13827         (Analyze_Package_Instantiation): No instantiated body is needed if the
13828         main unit is generic. Efficient, and avoid anomalies when a instance
13829         appears in a package accessed through rtsfind.
13830
13831 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13832
13833         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
13834         do not generate a declaration for a temporary if the call is part of a
13835         library-level instantiation.
13836
13837 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13838
13839         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
13840         searching for a limited component to flag.
13841
13842         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
13843         expansion of Input, to account for the fact that the implicit call
13844         generated by the attribute reference must freeze the user-defined
13845         stream subprogram. This is only relevant to 'Input, because it can
13846         appear in an object declaration, prior to the body of the subprogram.
13847
13848         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
13849         expansion can proceed and further errors uncovered.
13850         (Minor clean up): Fix cases of using | instead of \ for continuation
13851         messages.
13852
13853 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13854
13855         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
13856
13857         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
13858         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
13859         Use gcc_assert and gcc_unreachable.
13860
13861         * decl.c (gnat_to_gnu_entity, case object): Check and process a
13862         specified alignment before validating size.
13863         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
13864         stripped-down declaration for the type of the inner field when making
13865         a JM type.
13866
13867         * utils.c (finish_record_type): Do not compute the size in units
13868         incrementally. Instead compute it once for the rep clause case.
13869         Use gcc_assert and gcc_unreachable.
13870
13871 2004-10-04  Vincent Celier  <celier@gnat.com>
13872
13873         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
13874         in file name.
13875         (Is_Valid_Path_Name): Take '/' as a directory separator.
13876
13877 2004-10-04  Vincent Celier  <celier@gnat.com>
13878
13879         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
13880         (Extended_Project) only if Extended_Project is defined, to avoid
13881         assertion error.
13882         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
13883         resolved path.
13884         (Parse_Single_Project): Ditto.
13885
13886         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
13887         Add_To_Project_Path for virtual projects.
13888
13889 2004-10-04  Vincent Celier  <celier@gnat.com>
13890
13891         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13892         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13893         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
13894         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
13895         parameter Options_2.
13896
13897         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
13898         Build_Dynamic_Library with an empty Options_2.
13899
13900         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
13901         default anymore.
13902
13903         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
13904         directory separator, if any.
13905         (Gprmake): Do not allow mains on the command line for library projects.
13906         Do not attempt to link when the project is a library project.
13907         (Library_Opts): New table to store Library_Options.
13908         (Build_Library): If Library_Options is specified, pass these options
13909         when building a shared library.
13910
13911 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13912
13913         * s-tposen.adb (Service_Entry): The object must be always unlocked at
13914         the end of this procedure now that the unlock operation was inserted
13915         by the expander.
13916
13917 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13918
13919         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
13920         corresponding to the Preallocated_Stacks flags in System.
13921         (Get_Target_Parameters): Including the processing for
13922         Preallocated_Stacks.
13923
13924         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
13925         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
13926         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
13927         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
13928         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
13929         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
13930         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
13931         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
13932         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
13933         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
13934         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
13935         used to signal whether the compiler creates the required stacks and
13936         descriptors for the different tasks (when True) or it is done by the
13937         underlying operating system at run time (when False).
13938         It is initially set to False in all targets.
13939
13940         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
13941         if it is supported by the target.
13942         (Make_Task_Create_Call): Pass the stack address if it has been
13943         previously created. Otherwise pass a Null_Address.
13944
13945         * snames.adb: Add _stack.
13946
13947         * snames.ads: Add Name_uStack. Required to allow the expander to
13948         statically allocated task stacks.
13949
13950         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
13951         Stack_Address argument.
13952         Check that its value is equal to Null_Address because this target does
13953         not support the static stack allocation.
13954
13955 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13956
13957         * usage.adb: Change "pragma inline" to "pragma Inline" in information
13958         and error messages
13959
13960 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13961
13962         * exp_dist.adb: Split declaration of asynchronous flag out of
13963         Add_RACW_Read_Attribute.
13964         Minor reformatting for better alignment with PolyORB version.
13965         Store the entity for the asynchronous flag of an RACW, rather than the
13966         expression, in the asynchronous flags table. This will allow this flag
13967         to be used in other subprograms beside Add_RACW_Read_Attribute.
13968
13969 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13970
13971         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
13972         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
13973         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
13974         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
13975         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
13976         sockets constant MSG_NOSIGNAL (Linux-specific).
13977         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
13978         all Send operations.
13979         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
13980         from trigerring SIGPIPE.
13981         Rename components to avoid clash with Ada 2005 possible reserved
13982         word 'interface'.
13983         (Check_Selector): When the select system call returns with an error
13984         condition, propagate Socket_Error to the caller.
13985
13986 2004-10-01  Jan Hubicka  <jh@suse.cz>
13987
13988         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
13989
13990 2004-09-23  Robert Dewar  <dewar@gnat.com>
13991
13992         PR ada/17540
13993
13994         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
13995         instead do this at freeze time (we won't do it if there is an address
13996         clause).
13997         Change "pragma inline" to "pragma Inline" in information and error
13998         messages.
13999         Minor reformatting.
14000
14001         * freeze.adb (Check_Address_Clause): Remove previous change, not the
14002         right way of doing things after all.
14003         (Freeze_Entity): For object, set Is_Public for imported entities
14004         unless there is an address clause present.
14005
14006 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
14007
14008         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
14009         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
14010         ensures proper handling of types with rep clauses, which might have
14011         their TYPE_SIZE set already.
14012
14013 2004-09-21  Robert Dewar  <dewar@gnat.com>
14014
14015         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
14016         packed array types in both little- and big-endian cases. This change
14017         ensures that we no longer count on the unused bits being initialized
14018         for such types (and in particular ensures that equality testing will
14019         only read the relevant bits).
14020         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
14021         These changes mean that we no longer need to initialize small packed
14022         arrays.
14023         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
14024         optimization to an LJM field as to its parent field.
14025
14026         * ada-tree.h, trans.c, utils.c, utils2.c:
14027         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
14028
14029 2004-09-20  Jan Hubicka  <jh@suse.cz>
14030
14031         * utils.c (gnat_finalize): Remove.
14032         (end_subprog_body): Directly call cgraph_finalize_function;
14033         do not lower the nested functions.
14034
14035 2004-09-20  Robert Dewar  <dewar@gnat.com>
14036
14037         PR ada/17540
14038
14039         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
14040         if an address clause is present, since that means that the Import
14041         should be ignored.
14042
14043 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
14044
14045         * 5tsystem.ads: Removed, no longer used.
14046
14047 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
14048             Zack Weinberg  <zack@codesourcery.com>
14049
14050         * ada-tree.def: Use tree_code_class enumeration constants
14051         instead of code letters.
14052         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
14053         Update for new tree-class enumeration constants.
14054
14055 2004-09-17  Vincent Celier  <celier@gnat.com>
14056
14057         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
14058         capabilities of the general project manager.
14059
14060 2004-09-09  Vincent Celier  <celier@gnat.com>
14061
14062         * a-direct.ads: Add pragma Ada_05
14063         (Directory_Entry_Type): Give default value to component Kind to avoid
14064         not initialized warnings.
14065
14066         * a-direct.adb (Current_Directory): Remove directory separator at the
14067         end.
14068         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
14069         an existing directory.
14070         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
14071         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
14072         Convert the result to File_Size.
14073
14074         * prj.ads: (Project_Error): New exception
14075
14076         * prj-attr.adb: Except in procedure Initialize, Fail comes from
14077         Prj.Com, not from Osint.
14078         (Attrs, Package_Attributes): Tables moved to private part of spec
14079         (Add_Attribute, Add_Unknown_Package): Moved to new child package
14080         Prj.Attr.PM.
14081         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
14082         Prj.Project_Error after call to Fail.
14083         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
14084         Fail. Check that package name is not already in use.
14085
14086         * prj-attr.ads: Comment updates to indicate that all subprograms may be
14087         used by tools, not only by the project manager, and to indicate that
14088         exception Prj.Prj_Error may be raised in case of problem.
14089         (Add_Unknown_Package, Add_Attribute): Moved to new child package
14090         Prj.Attr.PM.
14091         (Attrs, Package_Attributes): Table instantiations moved from the body to
14092         the private part to be accessible from Prj.Attr.PM body.
14093
14094         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
14095         from new package Prj.Attr.PM.
14096         (Parse_Attribute_Declaration): Call Add_Attribute from new package
14097         Prj.Attr.PM.
14098
14099         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
14100
14101         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
14102         instead of Elaboration_Checks).
14103
14104         * a-calend.adb: Minor reformatting
14105
14106 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14107
14108         * gigi.h (maybe_pad_type): New declaration.
14109         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
14110
14111         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
14112
14113         * cuintp.c: Convert to use buildN.
14114
14115         * decl.c (maybe_pad_type): No longer static.
14116         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
14117         target pointer.
14118         Convert to use buildN.
14119
14120         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
14121         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
14122         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
14123         RHS.
14124         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
14125         (gnat_gimplify_expr, case ADDR_EXPR): New case.
14126         Convert to use buildN.
14127
14128         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
14129         TREE_READONLY for const.
14130         Convert to use buildN.
14131
14132         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
14133         (create_var_decl): Refine when TREE_STATIC is set.
14134         Convert to use buildN.
14135
14136 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
14137
14138         * gnat_ugn.texi: Delete text relating to checking of ali and object
14139         consistency.
14140
14141         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
14142         routines.
14143
14144 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
14145
14146         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
14147         pragmas recognized by GNAT.
14148
14149         * gnat_rm.texi: Document pragma Detect_Blocking.
14150
14151         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
14152         raise Program_Error if called from a protected operation.
14153
14154         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
14155         the protected action nesting level.
14156         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
14157         protected action nesting level.
14158         (Unlock): When pragma Detect_Blocking is active decrease the protected
14159         action nesting level.
14160
14161         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
14162         Protected_Action_Nesting.
14163
14164         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
14165         Common_ATCB record. It contains the dynamic level of protected action
14166         nesting for each task. It is needed for checking whether potentially
14167         blocking operations are called from protected operations.
14168         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
14169         Detect_Blocking is active or not in the partition.
14170
14171         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
14172         raise Program_Error if called from a protected operation.
14173         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
14174         Program_Error if called from a protected operation.
14175         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
14176         Program_Error if called from a protected operation.
14177
14178         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
14179         raise Program_Error if called from a protected operation.
14180
14181         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
14182         raise Program_Error if called from a protected operation, and increase
14183         the protected action nesting level.
14184         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
14185         Program_Error if called from a protected operation, and increase the
14186         protected action nesting level.
14187         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
14188         protected action nesting level.
14189
14190         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
14191         raise Program_Error if called from a protected operation, and increase
14192         the protected action nesting level.
14193         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
14194         Program_Error if called from a protected operation, and increase the
14195         protected action nesting level.
14196         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
14197         raise Program_Error if called from a protected operation.
14198         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
14199         active, raise Program_Error if called from a protected operation.
14200         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
14201         protected action nesting level.
14202
14203         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
14204         insertion of the statement raising Program_Error. The run time
14205         contains the required machinery for handling that.
14206
14207         * sem_util.ads: Change comment associated to procedure
14208         Check_Potentially_Blocking_Operation.
14209         This procedure does not insert a call for raising the exception because
14210         that is currently done by the run time.
14211
14212         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
14213
14214         * init.c: Add the global variable __gl_detect_blocking that indicates
14215         whether pragma Detect_Blocking is active (1) or not (0). Needed for
14216         making the pragma available at run time.
14217         (__gnat_set_globals): Pass and update the detect_blocking parameter.
14218
14219         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
14220         pragma Detect_Blocking is active.
14221
14222         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
14223
14224         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
14225         DB is found in the ali file. Any unit compiled with pragma
14226         Detect_Blocking active forces its effect in the whole partition.
14227
14228         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
14229         Detect_Blocking is active and delay is called from a protected
14230         operation.
14231
14232         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
14233         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
14234         Detect_Blocking is active (0 otherwise).
14235         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
14236         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
14237         otherwise).
14238
14239 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
14240
14241         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
14242         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
14243         package.
14244
14245         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
14246         (Register_Receiving_Stub): Add Subp_Info formal parameter.
14247         Update API in placeholder implemetation of s-parint to reflect changes
14248         in distribution runtime library.
14249
14250         * sem_ch3.adb (Expand_Derived_Record): Rename to
14251         Expand_Record_Extension.
14252
14253         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
14254         primitive operations of potentially distributed object types that have
14255         non-controlling anonymous access formals.
14256
14257         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
14258         subprogram.
14259         New implementation of expansion for remote access-to-subprogram types,
14260         based on the RACW infrastructure.
14261         This version of sem_dist is compatible with PolyORB/DSA as well as
14262         GLADE.
14263
14264         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
14265         Asynchrronous that applies to a remote access-to-subprogram type, mark
14266         the underlying RACW type as asynchronous.
14267
14268         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
14269          __gnat_using_gnu_linker to 1.
14270
14271         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
14272         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
14273         GNAT.Perfect_Hash_Generators, and remove the empty
14274         GNAT.Perfect_Hash package.
14275
14276         * atree.adb: Minor reformatting
14277
14278         * exp_ch3.adb (Expand_Derived_Record): Rename to
14279         Expand_Record_Extension.
14280         (Build_Record_Init_Proc.Build_Assignment): The default expression in
14281         a component declaration must remain attached at that point in the
14282         tree so New_Copy_Tree copies it if the enclosing record type is derived.
14283         It is therefore necessary to take a copy of the expression when building
14284         the corresponding assignment statement in the init proc.
14285         As a side effect, in the case of a derived record type, we now see the
14286         original expression, without any rewriting that could have occurred
14287         during expansion of the ancestor type's init proc, and we do not need
14288         to go back to Original_Node.
14289
14290         * exp_ch3.ads (Expand_Derived_Record): Rename to
14291         Expand_Record_Extension.
14292
14293         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
14294         Returns the RACW type used to implement a remote access-to-subprogram
14295         type.
14296         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
14297         New subprograms. Used to create a proxy tagged object for a remote
14298         subprogram. The proxy object is used as the designated object
14299         for RAS values on the same partition (unless All_Calls_Remote applies).
14300         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
14301         System.Partition_Interface.Get_Unique_Remote_Pointer.
14302         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
14303         Renamed from Add_RAS_*_Attribute.
14304         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
14305         subprograms.
14306         New implementation of expansion for remote access-to-subprogram types,
14307         based on the RACW infrastructure.
14308
14309         * exp_dist.ads (Copy_Specification): Update comment to note that this
14310         function can copy the specification from either a subprogram
14311         specification or an access-to-subprogram type definition.
14312
14313 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
14314
14315         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
14316         in an instance, between an explicit subprogram an one inherited from a
14317         type derived from an actual.
14318
14319         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
14320         add a polling call if the subprogram is to be inlined by the back-end,
14321         to avoid repeated calls with multiple inlinings.
14322
14323         * checks.adb (Apply_Alignment_Check): If the expression in the address
14324         clause is a call whose name is not a static entity (e.g. a dispatching
14325         call), treat as dynamic.
14326
14327 2004-09-09  Robert Dewar  <dewar@gnat.com>
14328
14329         * g-trasym.ads: Minor reformatting
14330
14331         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
14332         packed arrays, since unused bits are expected to be zero for a
14333         comparison.
14334
14335 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
14336
14337         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
14338         comment.
14339
14340 2004-09-09  Pascal Obry  <obry@gnat.com>
14341
14342         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
14343         enable map file generation. Add the right option to generate the map
14344         file if Map_File is set to True.
14345
14346         * gnatdll.adb (Gen_Map_File): New variable.
14347         (Syntax): Add info about new -m (Map_File) option.
14348         (Parse_Command_Line): Add support for -m option.
14349         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
14350         Minor reformatting.
14351
14352 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
14353
14354         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
14355         new gnatdist implementation.
14356         Define a subpackage isolating the output routines specific to this
14357         verbose mode.
14358
14359 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
14360
14361         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
14362
14363         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
14364
14365 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
14366
14367         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
14368         internal unit.
14369
14370         * opt.ads: Add Ada_Version_Runtime constant used to decide which
14371         version of the language is used to compile the run time.
14372
14373 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
14374
14375         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
14376         of variable length temporaries for function return now that the
14377         back-end and gigi support it.
14378
14379 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14380
14381         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
14382
14383         * trans.c (struct stmt_group): Delete field GLOBAL.
14384         (gnat_init_stmt_group): Do not initialize it.
14385         (call_to_gnu): Use save_expr, not protect_multiple_eval.
14386         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
14387         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
14388         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
14389         (start_stmt_group): Likewise.
14390         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
14391
14392         * utils2.c (ggc.h): Include.
14393         (build_call_raise): Call build_int_cst, not build_int_2.
14394
14395         * utils.c (gnat_init_decl_processing): Fix arg to
14396         build_common_tree_nodes.
14397         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
14398         (gnat_define_builtin): Set built_in_decls.
14399         (init_gigi_decls): Call build_int_cst, not build_int_2.
14400
14401         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
14402         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
14403         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
14404         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
14405         SET_TYPE_MODULE): Use them.
14406         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
14407         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
14408         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
14409         SET_TYPE_ADA_SIZE): Likewise.
14410         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
14411         (DECL_CONST_CORRESPONDING_VAR,
14412         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
14413         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
14414         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
14415         (TYPE_RM_SIZE_NUM): New macro.
14416         (TYPE_RM_SIZE): Modified to use above.
14417
14418         * cuintp.c: (build_cst_from_int): New function.
14419         (UI_To_gnu): Use it.
14420
14421         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
14422         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
14423         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
14424         MIN_EXPR for the size, copy it into new.
14425
14426 2004-09-01  Robert Dewar  <dewar@gnat.com>
14427
14428         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
14429         packed indexed component where array is an IN OUT formal. This
14430         generated garbage code previously.
14431
14432         * gnat_ugn.texi: Document -fverbose-asm
14433
14434         * gnat-style.texi: Minor updates (note that boolean constants and
14435         variables are joined with AND/OR rather than short circuit forms).
14436
14437 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
14438
14439         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
14440         it is an upward conversion of an untagged type with no representation
14441         change.
14442
14443 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
14444
14445         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
14446         System.Partition_Interface.
14447
14448         * checks.adb (Apply_Access_Checks): Do not generate checks when
14449         expander is not active (but check for unset reference to prefix of
14450         dereference).
14451
14452         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
14453         pragma Debug as an if statement with a constant condition, for
14454         consistent treatment of entity references contained within the
14455         enclosed procedure call.
14456
14457 2004-09-01  Vincent Celier  <celier@gnat.com>
14458
14459         * bindgen.adb: (Set_EA_Last): New procedure
14460         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
14461         Set_EA_Last.
14462         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
14463         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
14464         linked without errors.
14465         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
14466         ST and EA.
14467         (Gen_Exception_Table_C): Correct same bugs
14468
14469         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
14470
14471         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
14472         on Windows, make sure that the drive letter is in upper case.
14473
14474         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
14475         Windows, when the drive letter is added and Case_Sensitive is True, the
14476         drive letter is forced to upper case.
14477
14478         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
14479         to Options_2 for the call to MLib.Utl.Gcc.
14480
14481         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
14482         directory separator when defining BASE_DIR.
14483
14484 2004-09-01  Pascal Obry  <obry@gnat.com>
14485
14486         * gprcmd.adb (Extend): Do not output trailing directory separator. This
14487         is not needed and it confuses Windows GNU/make which does not report
14488         directory terminated by a slash as a directory.
14489         (gprcmd): Idem for "pwd" internal command.
14490
14491         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
14492         target names rewrite to fix regressions with recent version of
14493         GNU/make. Starting with GNU/make 3.80 the pipe character was not
14494         handled properly anymore.
14495
14496 2004-09-01  Andreas Schwab  <schwab@suse.de>
14497
14498         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
14499         * raise.c [!IN_RTS]: Undef abort.
14500
14501 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14502
14503         * utils2.c (build_allocator): Use ssize_int.
14504
14505         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
14506
14507 2004-08-27  Andreas Schwab  <schwab@suse.de>
14508
14509         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
14510
14511 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14512             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14513
14514         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
14515
14516 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14517
14518         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
14519         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14520         * utils.c (init_gigi_decls): Likewise.
14521         * utils2.c (build_call_raise, build_allocator): Likewise.
14522
14523 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14524
14525         * utils.c (gnat_init_decl_processing): Adjust
14526         build_common_tree_nodes call.
14527
14528 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
14529
14530         * utils2.c (build_allocator): Use build_int_cst for negative
14531         size types.
14532
14533 2004-08-18  Richard Henderson  <rth@redhat.com>
14534
14535         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
14536
14537 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
14538
14539         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
14540         call.s
14541         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
14542         (gnat_to_gnu): Likewise.
14543
14544 2004-08-16  Pascal Obry  <obry@gnat.com>
14545
14546         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
14547         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
14548         option and not mdll anymore. Update comment.
14549
14550 2004-08-16  Pascal Obry  <obry@gnat.com>
14551
14552         * bld.adb (Put_Include_Project): Properly handle directory separators
14553         on Windows.
14554
14555 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
14556
14557         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
14558         decreasing the number of allocated junk nodes while searching for the
14559         appropriate subprogram.
14560
14561 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
14562
14563         * cuintp.c (UI_To_gnu): Use build_int_cst..
14564         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14565         * utils.c (init_gigi_decls): Likewise.
14566         * utils2.c (build_call_raise): Likewise.
14567
14568 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
14569
14570         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
14571         for a global aliased object with a variable size and an unconstrained
14572         nominal subtype, pretend there is no initializer if the one we have is
14573         incomplete, and avoid referencing an inexistant component in there. The
14574         part we have will be rebuilt anyway and the reference may confuse
14575         further operations.
14576
14577 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
14578
14579         * einfo.ads: Minor reformatting
14580
14581         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
14582         restrictions in the ALI if we only want to warn about violations.
14583
14584 2004-08-13  Vincent Celier  <celier@gnat.com>
14585
14586         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
14587         when creating a new Unit_Record in table Units.
14588
14589         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
14590         that are violated, if any.
14591
14592         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
14593         add directory separator if path already ends with a directory separator.
14594
14595 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14596
14597         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
14598         unit, this is an attempt to inline a construct that is not available in
14599         the current restricted mode, so abort rather than trying to continue.
14600
14601         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
14602         discriminants that rename those of the parent, recover names of
14603         original discriminants for the constraint on the full view of the
14604         parent.
14605         (Complete_Private_Subtype): Do not create a subtype declaration if the
14606         subtype is an itype.
14607
14608         * gnat_rm.texi: Added section on implementation of discriminated
14609         records with default values for discriminants.
14610
14611 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14612
14613         PR ada/15601
14614         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
14615         the second operand is overloaded.
14616
14617 2004-08-10  Richard Henderson  <rth@redhat.com>
14618
14619         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
14620         add __builtin_alloca.
14621
14622 2004-08-10  Richard Henderson  <rth@redhat.com>
14623
14624         * config-lang.in (boot_language): Yes.
14625
14626 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
14627
14628         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
14629         from complaining on potential uninitialized reference.
14630         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
14631         new specification and test explicitly for non-zero return value.
14632
14633         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
14634         returning C.int, to avoid using a derived boolean type.
14635
14636         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
14637         Duplicate_Subexpr_No_Checks in preference to direct use of
14638         Remove_Side_Effects and New_Copy_Tree.
14639         Clear Comes_From_Source on prefix of 'Size attribute reference.
14640
14641         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
14642         g-socthi-vxworks.adb: Change calls to
14643         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
14644         and test explicitly for non-zero return value.
14645
14646         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
14647         (Is_Socket_In_Set): Declare imported function as returning C.int, to
14648         avoid using a derived boolean type.
14649
14650 2004-08-09  Albert Lee  <lee@gnat.com>
14651
14652         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
14653
14654 2004-08-09  Pascal Obry  <obry@gnat.com>
14655
14656         * gnat_ugn.texi: Document new way to build DLLs on Windows using
14657         GCC's -shared option.
14658
14659         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
14660         Options_2 parameter (options put after object files).
14661
14662 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
14663
14664         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
14665         ignore overflows on low and high bounds of an index to also account for
14666         differences in signedness between sizetype and gnu_index_subtype.
14667         These are as legitimate as the ones caused by a lower TYPE_PRECISION
14668         on sizetype.
14669
14670 2004-08-09  Robert Dewar  <dewar@gnat.com>
14671
14672         * s-solita.ads, s-solita.adb: Minor reformatting
14673
14674         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
14675         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
14676         obsolescent section
14677         Add note that No_Implicit_Conditionals does not suppress
14678         run time constraint checks.
14679
14680         * vms_conv.ads: Minor reformatting
14681
14682         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
14683         and necessary for following change).
14684         (Mark): Return new format Mark_Id containing sec stack address
14685         (Release): Use sec stack address from Mark_Id avoiding Self call
14686
14687         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
14688         pointer (cleanup and necessary for following change).
14689         Define Mark_Id as record containing address of secondary stack, that way
14690         Release does not need to find the stack again, decreasing the number of
14691         calls to Self and improving efficiency.
14692
14693         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
14694
14695         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
14696         case variable into the individual case branches when possible.
14697
14698         * sem_ch11.adb: Minor reformatting
14699
14700         * prj.ads: Correct spelling of suffixs
14701
14702         * prj-nmsc.adb: Minor reformatting
14703         Correct spelling suffixs throughout (also in identifiers)
14704
14705         * freeze.adb: Minor spelling correction
14706
14707         * exp_ch2.adb: Cleanups to handling of Current_Value
14708         (no functional effect).
14709
14710         * bld.adb: Correct spelling of suffixs
14711
14712         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
14713
14714 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14715
14716         PR ada/15408
14717
14718         * sem_ch7.adb (Install_Private_Declarations): In the body of the
14719         package or of a child, private entities are both immediately_visible
14720         and not hidden.
14721
14722 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14723
14724         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
14725         there are no range checks on the value of the literal.
14726
14727         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
14728         wrapped is the triggering alternative of an asynchronous select, action
14729         statements mustbe inserted before the select itself.
14730
14731         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
14732         case where the prefix is a protected function call.
14733         (Resolve_Attribute, case 'Access): The attribute reference on a
14734         subprogram is legal in a generic body if the subprogram is declared
14735         elsewhere.
14736
14737 2004-08-09  Vincent Celier  <celier@gnat.com>
14738
14739         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
14740         languages, otherwise building the library may fail with unresolved
14741         symbols.
14742         (Compile_Sources): Do not build libraries if -c switch is used
14743
14744         * gnatlink.adb (Process_Args): New switches -M and -Mmap
14745         (Write_Usage): If map file creation is supported, output new switches
14746         -M and -Mmap.
14747         (Gnatlink): When -M is specified, add the necessary switch(es) to the
14748         gcc call, when supported.
14749
14750         * Makefile.in: Added indepsw.o to the object list for gnatlink
14751         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
14752
14753         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
14754         indepsw.adb, indepsw.ads: New files.
14755
14756 2004-08-09  Bernard Banner  <banner@gnat.com>
14757
14758         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
14759
14760         * Makefile.in: add section for vxworks x86
14761
14762 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
14763
14764         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
14765         per-object constrained components where the discriminant is of an
14766         Access type.
14767         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
14768         the parent initialization procedure for derived Unchecked_Unions.
14769         Instead, derived Unchecked_Unions build their own initialization
14770         procedure.
14771         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
14772         Check the body of the subprogram for details.
14773         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
14774         functions for derived Unchecked_Union types by introducing a condition.
14775         Allow the creation of TSS equality functions for Unchecked_Unions.
14776         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
14777         Add formal parameter Discr to function signature. Discr is used to
14778         control the generated case statement for Unchecked_Union types.
14779         (Make_Eq_If): Rename formal parameter Node to E in function signature.
14780
14781         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
14782         Unchecked_Unions.
14783         Check the body of the subprogram for details.
14784         (Expand_Composite_Equality): Augment composite type equality to include
14785         correct handling of Unchecked_Union components.
14786         (Expand_N_In): Add condition to detect illegal membership tests when the
14787         subtype mark is a constrained Unchecked_Union and the expression lacks
14788         inferable discriminants, and build a Raise_Program_Error node.
14789         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
14790         to detect types that contain components of unconstrained Unchecked_Union
14791         subtype. Add condition to detect equality between types that have an
14792         unconstrained Unchecked_Union component, and build a Raise_Program_Error
14793         node. Add condition to detect equality between Unchecked_Union types
14794         that lack inferable discriminants, and build a Raise_Program_Error node.
14795         Otherwise build a TSS equality function call.
14796         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
14797         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
14798         with the operand lacking inferable discriminants, and build a Raise_
14799         Program_Error node.
14800         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
14801         composite equality.
14802         (Has_Inferable_Discriminants): Implement new predicate for objects and
14803         expressions of Unchecked_Union type. Check the body of subprogram for
14804         details.
14805         (Has_Unconstrained_UU_Components): Add function
14806         Component_Is_Unconstrained_UU. It is used to detect whether a single
14807         component is of an unconstrained Unchecked_Union subtype. Add function
14808         Variant_Is_Unconstrained_UU. It is used to detect whether a single
14809         component inside a variant is of an unconstrained Unchecked_Union type.
14810
14811         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
14812         inferred discriminant values. Add condition to generate a case
14813         statement with an inferred discriminant as the switch.
14814         (Make_Component_List_Assign): Introduce a Boolean flag that determines
14815         the behaviour of the subprogram in the presence of an Unchecked_Union.
14816         Add condition to trigger the usage of the inferred discriminant value
14817         as the generated case statement switch.
14818         (Make_Field_Assign): Introduce a Boolean flag that determines the
14819         behaviour of the subprogram in the presence of an Unchecked_Union. Add
14820         condition to trigger the usage of the inferred discriminant value as
14821         the right-hand side of the generated assignment.
14822
14823         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
14824         parameter generation when dealing with Unchecked_Unions.
14825
14826         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
14827         checks for Unchecked_Unions.
14828
14829         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
14830
14831         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
14832         Raise_Program_Error nodes for the execution of Read and Write
14833         attributes of Unchecked_Union types and the execution of Input and
14834         Output attributes of Unchecked_Union types that lack default
14835         discriminant values.
14836
14837         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
14838         Unchecked_Union. Add procedure Check_Component. It is used to inspect
14839         per-object constrained components of Unchecked_Unions for being
14840         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
14841         check individual components withing a variant.
14842
14843         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
14844         comparison of Unchecked_Unions.
14845         (Resolve_Equality_OP): Remove guard that prevents equality between
14846         Unchecked_Unions.
14847
14848         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
14849         of component subtypes for Unchecked_Union components.
14850         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
14851         since it is the actual subtype.
14852
14853         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
14854         pass of Unchecked_Union subtypes as generic actuals to formal types
14855         that lack known_discriminant_parts or that are derived Unchecked_Union
14856         types, and do nothing. In any other case, produce an error message.
14857
14858         * sem_ch3.adb (Analyze_Component_Declaration): Add function
14859         Contains_POC. It determines whether a constraint uses the discriminant
14860         of an enclosing record type.
14861         Add condition to detect per-object constrained component and set the
14862         appropriate flag.
14863         (Derived_Type_Declaration): Remove guard that prevents derivation from
14864         Unchecked_Union types.
14865         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
14866         Union subtypes.
14867
14868         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
14869         references to Unchecked_Union discriminants.
14870
14871         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
14872         formal generation when dealing with Unchecked_Unions.
14873         (Set_Actual_Subtypes): Add condition to prevent generation of actual
14874         subtypes for Unchecked_Unions.
14875
14876         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
14877         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
14878         completions of discriminated partial views by Unchecked_Unions and
14879         produce an error message.
14880
14881 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14882
14883         * trans.c (struct stmt_group): New field, GLOBAL.
14884         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
14885         (struct elab_info): New struct.
14886         (elab_info_list, gnu_elab_proc_stack): New variables.
14887         (Compilation_Unit_to_gnu): New procedure.
14888         (gigi): Call it and also handle elaboration procs we've saved.
14889         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
14890         global field from parent.
14891         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
14892         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
14893         (start_stmt_group): Initialize global field from parent.
14894         (add_decl_expr): Set to global for current statement group.
14895         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
14896         post.
14897
14898         * utils.c (global_bindings_p): True when no current_function_decl; no
14899         longer check current_binding_level.
14900
14901 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
14902
14903         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
14904         choice.
14905
14906         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
14907
14908 2004-08-06  Andreas Schwab  <schwab@suse.de>
14909
14910         * utils.c (gnat_define_builtin): Remove second parameter of
14911         make_decl_rtl.
14912         (begin_subprog_body): Likewise.
14913
14914 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
14915
14916         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
14917         optimization, not supported by the tree-ssa back-end.
14918
14919 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
14920
14921         * s-mastop-irix.adb: Update comments.
14922
14923         * a-except.adb (Exception_Information): Raise Constraint_Error if
14924         exception Id is Null_Id.
14925         This is required behavior, which is more reliably and clearly checked
14926         at the top level interface level.
14927
14928 2004-07-26  Javier Miranda  <miranda@gnat.com>
14929
14930         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
14931         call if a component has no default_expression and the box is used.
14932
14933         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
14934         default_expression and you use box, it behaves as if you had declared a
14935         stand-alone object.
14936         (Resolve_Record_Aggregate): If a component has no default_expression and
14937         you use box, it behaves as if you had declared a stand-alone object.
14938
14939         * sem_ch10.adb (Install_Siblings): Do not make visible the private
14940         entities of private-with siblings.
14941
14942 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14943
14944         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
14945         for a component of an itype, set the parent pointer for analysis,
14946         there is no list in which to insert it.
14947
14948         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
14949         bona-fide renamings, not for inherited operations.
14950
14951         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
14952         actual for a formal that is an access parameter, create local
14953         finalization list even if the expression is not an aggregate.
14954
14955 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14956
14957         PR ada/16213
14958         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
14959         Diagnose properly illegal subprogram renamings that are library units.
14960
14961 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14962
14963         PR ada/15588
14964         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
14965         conversion rewritten as an unchecked conversion, check that original
14966         expression is a variable.
14967
14968         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
14969         unchecked_conversion, create new node rather than rewriting in place,
14970         to preserve original construct.
14971
14972 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14973
14974         * gigi.h (gnat_expand_body): Deleted.
14975
14976         * Make-lang.in: (trans.o): Depends on function.h.
14977
14978         * misc.c: (gnat_expand_body): Moved to here.
14979
14980         * trans.c (gnat_expand_body_1): Deleted.
14981         (gnat_expand_body): Moved from here.
14982         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
14983         (add_stmt): Check for marked visited with global_bindings_p.
14984         (gnat_gimplify_expr, case COMPONENT_REF): New case.
14985         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
14986
14987         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
14988         VIEW_CONVERT_EXPR if not operation type.
14989
14990         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
14991         fat pointer.
14992
14993         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
14994         changes: reformatting of negation operators, removing unneeded
14995         inequality comparison with zero, converting equality comparisons with
14996         zero to negations, changing int/0/1 to bool/false/true, replace calls
14997         to gigi_abort with abort, and various other similar changes.
14998
14999 2004-07-26  Vincent Celier  <celier@gnat.com>
15000
15001         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
15002         "setup".
15003
15004         * make.adb (Gnatmake): Fail when a library is not present and there is
15005         no object directory.
15006
15007         * mlib-prj.adb (Check_Library): No need to check if the library needs
15008         to be rebuilt if there is no object directory, hence no object files
15009         to build the library.
15010
15011         * opt.ads (Setup_Projects): New Boolean flag.
15012
15013         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
15014         Location.
15015         Create directory when Kind /= "" and in "gnat setup". Report error if
15016         directory cannot be created.
15017         (Ada_Check): Create library interface copy dir if it does not exist
15018         and we are in "gnat setup".
15019         (Find_Sources): No error if in "gnat setup" and no Ada sources were
15020         found.
15021         (Language_Independent_Check): Create object directory, exec directory
15022         and/or library directory if they do not exist and we are in
15023         "gnat setup".
15024
15025         * vms_conv.ads: (Command_Type): New command Setup.
15026
15027         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
15028
15029         * vms_data.ads: Add qualifiers/switches for new built-in command
15030         "setup".
15031
15032 2004-07-25  Richard Henderson  <rth@redhat.com>
15033
15034         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
15035         DECL_IGNORED_P on RESULT_DECL.
15036
15037 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
15038
15039         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
15040         allocation and potentially overflowing update with
15041         Tailored_Exception_Information. Use the sec-stack free procedural
15042         interface to output Exception_Information instead.
15043
15044         * a-except.adb (To_Stderr): New subprogram for character, and string
15045         version moved from a-exextr to be visible from other separate units.
15046         (Tailored_Exception_Information): Remove the procedural version,
15047         previously used by the default Last_Chance_Handler and not any more.
15048         Adjust various comments.
15049
15050         * a-exexda.adb: Generalize the exception information procedural
15051         interface, to minimize the use of secondary stack and the need for
15052         local buffers when the info is to be output to stderr:
15053         (Address_Image): Removed.
15054         (Append_Info_Character): New subprogram, checking for overflows and
15055         outputing to stderr if buffer to fill is of length 0.
15056         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
15057         (Append_Info_Address, Append_Info_Exception_Name,
15058         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
15059         Append_Info_Basic_Exception_Traceback,
15060         Append_Info_Exception_Information): New subprograms.
15061         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
15062         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
15063         Exception_Info_Maxlength, Exception_Name_Length,
15064         Exception_Message_Length): New subprograms.
15065         (Exception_Information): Use Append_Info_Exception_Information.
15066         (Tailored_Exception_Information): Use
15067         Append_Info_Basic_Exception_Information.
15068         Export services for the default Last_Chance_Handler.
15069
15070         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
15071         other separate units.
15072
15073 2004-07-20  Vincent Celier  <celier@gnat.com>
15074
15075         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
15076
15077 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15078
15079         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
15080         emit itype references for the designated types of component types that
15081         are declared outside of the full record declaration, and that may
15082         denote a partial view of that record type.
15083
15084 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15085
15086         PR ada/15607
15087         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
15088         which is the designated type in an access component declaration, to the
15089         list of incomplete dependents of the parent type, to avoid elaboration
15090         issues with out-of-scope subtypes.
15091         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
15092         full view of the parent.
15093
15094 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15095
15096         PR ada/15610
15097         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
15098         entities that are hidden, such as references to generic actuals
15099         outside an instance.
15100
15101 2004-07-20  Javier Miranda  <miranda@gnat.com>
15102
15103         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
15104         support to the new notation.
15105         (Analyze_Selected_Component): Add call to Try_Object_Operation.
15106
15107 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
15108
15109         * s-taprob.adb: Adding the elaboration code required for initializing
15110         the tasking soft links that are common to the full and the restricted
15111         run times.
15112
15113         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
15114         restricted run time has been moved to the package
15115         System.Soft_Links.Tasking.
15116
15117         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
15118         restricted run time has been moved to the package
15119         System.Soft_Links.Tasking.
15120
15121         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
15122
15123         * s-solita.ads, s-solita.adb: New files.
15124
15125 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15126
15127         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
15128         Case_Statement_to_gnu): Split off from gnat_to_gnu.
15129         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
15130         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
15131         Exception_Handler_to_gnu_zcx): Likewise.
15132
15133 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15134
15135         * gigi.h (builtin_function): Declare.
15136
15137 2004-07-15  Robert Dewar  <dewar@gnat.com>
15138
15139         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
15140         reformatting
15141
15142         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
15143         access values as an example of a warning.
15144
15145         * gnat_rm.texi: Document new attribute Has_Access_Values
15146
15147         * gnat-style.texi: Document that box comments belong on nested
15148         subprograms
15149
15150         * sem_util.ads (Has_Access_Values): Improved documentation
15151
15152         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
15153
15154         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
15155         (Process_Interface_Name): Call to this new procedure
15156         (Set_Extended_Import_Export_External_Name): Call to this new procedure
15157
15158         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
15159
15160         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
15161
15162         * einfo.ads: Minor comment typo fixed
15163
15164 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
15165
15166         * snames.adb: Add _atcb.
15167
15168         * snames.ads: Add Name_uATCB.
15169
15170         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
15171         (in the expanded code) when using the restricted run time.
15172
15173         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
15174         a in parameter in order to allow ATCBs to be preallocated (in the
15175         expanded code).
15176
15177         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
15178         order to allow ATCBs to be preallocated. In case of error, the ATCB is
15179         deallocated in System.Tasking.Stages.
15180
15181         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
15182         order to allow ATCBs to be preallocated.
15183
15184         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
15185         here. It was previously done in Initialize_ATCB.
15186
15187         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
15188
15189         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
15190         Restricted run time.
15191
15192         * exp_ch3.adb: When using the Restricted run time, pass the
15193         preallocated Ada_Task_Control_Block when creating a task.
15194
15195 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
15196
15197         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
15198         function call that is itself an actual in an enclosing call, diagnose
15199         problem here rather than assuming that resolution will catch it.
15200
15201         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
15202         the local copy of a generic unit for a formal package, and the generic
15203         is a child unit, install private part of ancestors before compiling
15204         private part of spec.
15205
15206         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
15207         use scope entities rather than tree structures, to handle properly
15208         parent units that are instances rewritten as bodies for inlining
15209         purposes.
15210
15211         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
15212         Remove_Parents): Handle properly a parent unit that is an
15213         instantiation, when the unit has been rewritten as a body for inlining
15214         purposes.
15215
15216         * par.adb (Goto_List): Global variable to collect goto statements in a
15217         given unit, for use in detecting natural loops.
15218
15219         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
15220         use in detecting natural loops.
15221
15222         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
15223         backwards goto's, and rewrite as a infinite loop, to improve locality
15224         of temporaries.
15225
15226         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
15227         subcomponent that includes an indexed reference, to prevent the
15228         generation of copies that would miscompile the desired assignment
15229         statement.
15230         (Build_Task_Image_Decls): Add a numeric suffix to
15231         generated name for string variable, to avoid spurious conflicts with
15232         the name of the type of a single protected object.
15233
15234         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
15235         loop with an explicit exit statement, to avoid generating an
15236         out-of-range value with 'Succ leading to spurious constraint_errors
15237         when compiling with -gnatVo.
15238
15239 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
15240
15241         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
15242         might not be analyzed yet, even if its Etype is already set (case of an
15243         unchecked conversion built using Unchecked_Convert_To, for example).
15244         If the prefix has already been analyzed, this will be a nop anyway.
15245
15246         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
15247         controller type, or an assignment of a record type with controlled
15248         components, copy only user data, and leave the finalization chain
15249         pointers untouched.
15250
15251 2004-07-15  Vincent Celier  <celier@gnat.com>
15252
15253         * make.adb (Collect_Arguments): Improve error message when attempting
15254         to compile a source not part of any project, when -x is not used.
15255
15256         * prj.ads: (Defined_Variable_Kind): New subtype
15257
15258         * prj-attr.adb (Register_New_Package): Two new procedures to register
15259         a package with or without its attributes.
15260         (Register_New_Attribute): Mew procedure to register a new attribute in a
15261         package.
15262         New attribute oriented subprograms: Attribute_Node_Id_Of,
15263         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15264         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15265         Next_Attribute.
15266         New package oriented subprograms: Package_Node_Id_Of,
15267         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15268
15269         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
15270         type.
15271         (Package_Node_Id): Now a private, self initialized type
15272         (Register_New_Package): New procedure to register a package with its
15273         attributes.
15274         New attribute oriented subprograms: Attribute_Node_Id_Of,
15275         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15276         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15277         Next_Attribute.
15278         New package oriented subprograms: Package_Node_Id_Of,
15279         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15280
15281         * prj-dect.adb (Parse_Attribute_Declaration,
15282         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
15283
15284         * prj-makr.adb (Make): Parse existing project file before creating
15285         other files. Fail if there was an error during parsing.
15286
15287         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
15288         new spec of Prj.Attr.
15289
15290         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
15291         to new spec of Prj.Attr.
15292
15293 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15294
15295         * utils2.c: Fix typo in comment.
15296
15297 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15298
15299         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
15300         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
15301
15302 2004-07-14  Andreas Schwab  <schwab@suse.de>
15303
15304         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
15305
15306 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15307
15308         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
15309         object type.
15310         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
15311         TYPE_STUB_DECL.
15312
15313         * misc.c (gnat_types_compatible_p): New function.
15314         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
15315         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
15316
15317         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
15318         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
15319         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
15320         (mark_visited): Don't mark dummy type.
15321         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
15322         parameter, we must remove any LJM building from GNU_NAME.
15323         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
15324         (pos_to_constructor): Use int_const_binop.
15325         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
15326         PARM_DECL.
15327
15328         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
15329         (gnat_pushlevel): Set TREE_USE on BLOCK node.
15330         (gnat_install_builtins): Add __builtin_memset.
15331
15332 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
15333
15334         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
15335         for a renaming, stabilize the initialization expression if we are at a
15336         local level.  At the local level, uses of the renaming may be performed
15337         by a direct dereference of the initializing expression, and we don't
15338         want possible variables there to be evaluated for every use.
15339
15340         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
15341         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
15342         them on the way.  Account for the fact that we may introduce side
15343         effects in the process.
15344
15345 2004-07-13  Richard Henderson  <rth@redhat.com>
15346
15347         * misc.c (default_pass_by_ref): Use pass_by_reference.
15348
15349 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15350
15351         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
15352         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
15353
15354 2004-07-08  Richard Henderson  <rth@redhat.com>
15355
15356         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
15357         commentary.
15358
15359 2004-07-06  Vincent Celier  <celier@gnat.com>
15360
15361         * vms_conv.ads: Minor reformatting.
15362         Alphabetical order for enumerated values of type Command_Type, to have
15363         the command in alphabetical order for the usage.
15364
15365         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
15366         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
15367
15368         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
15369
15370         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
15371         (Add_Archive_Path): Only add the global archive if there is one.
15372         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
15373         or not any object file to put in the global archive, and don't build
15374         a global archive if there is none.
15375         (X_Switches): New table
15376         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
15377         in the X_Switches table, if any.
15378         (Initialize): Make sure the X_Switches table is empty
15379         (Scan_Arg): Record -X switches in table X_Switches
15380
15381         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
15382
15383         * make.adb: Minor comment fix
15384
15385         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
15386         invoked with directory information, add the directory in front of the
15387         path.
15388
15389         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
15390         invoked with directory information, add the directory in front of the
15391         path.
15392
15393         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
15394         when Keep_Temporary_Files is False.
15395         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
15396         directory information, add the directory in front of the path.
15397         When not on VMS, handle new switch -dn before the command to set
15398         Keep_Temporary_Files to True.
15399         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
15400         everywhere.
15401
15402         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
15403         invoked with directory information, add the directory in front of the
15404         path.
15405
15406 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
15407
15408         * snames.ads, snames.adb (Name_Stub): New name for the distributed
15409         systems annex.
15410
15411         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
15412         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
15413
15414         * g-socket.adb (To_Timeval): Fix incorrect conversion of
15415         Selector_Duration to Timeval for the case of 0.0.
15416
15417         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
15418         documentation from Evolve_And_Then.
15419
15420 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
15421
15422         * s-taprop-tru64.adb, s-taprop-os2.adb,
15423         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
15424
15425 2004-07-06  Robert Dewar  <dewar@gnat.com>
15426
15427         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
15428         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
15429         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
15430         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
15431         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
15432         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
15433         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
15434         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
15435         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
15436         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
15437         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
15438         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
15439         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
15440         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
15441         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
15442         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
15443         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
15444         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
15445         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
15446         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
15447         vms_data.ads: Minor reformatting,
15448         Fix bad box comment format.
15449
15450         * gnat_rm.texi: Fix minor grammatical error
15451
15452         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
15453
15454         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
15455         more cases of discriminated records to be recognized as not needing a
15456         secondary stack.
15457         (Has_Access_Values): New function.
15458
15459         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
15460
15461         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
15462         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
15463         with LRM terminology).
15464         Change terminology in comments primitive type => elementary type.
15465
15466 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15467
15468         PR ada/15602
15469         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
15470         parameters do not impose any requirements on the presence of a body.
15471
15472 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15473
15474         PR ada/15593
15475         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
15476         compilation unit and is in an open scope at the point of instantiation,
15477         assume that a body may be present later.
15478
15479 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15480
15481         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
15482         Improve error message when specified size is not supported.
15483
15484         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
15485         is never a primitive operation.
15486
15487 2004-07-05  Andreas Schwab  <schwab@suse.de>
15488
15489         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
15490         RECORD_OR_UNION_CHECK.
15491         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
15492
15493 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
15494
15495         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
15496         dependency on xgnatugn, instead build it via a submake.
15497         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
15498
15499 2004-07-04  Richard Henderson  <rth@redhat.com>
15500
15501         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
15502
15503 2004-07-01  Richard Henderson  <rth@redhat.com>
15504
15505         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
15506         * utils.c (max_size): Likewise.
15507
15508 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15509
15510         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
15511         and rest_of_type_compilation; add arg to create_*_decl.
15512         (annotate_decl_with_node): Deleted.
15513         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
15514         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
15515         (get_current_block_context, gnat_pushdecl): New declarations.
15516         (gnat_init_stmt_group): Likewise.
15517         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
15518         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
15519         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
15520         (gnat_init): Call gnat_init_stmt_group.
15521         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
15522         (gnu_pending_elaboration_list): Deleted.
15523         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
15524         (gigi): Rearrange initialization calls and move some to last above.
15525         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
15526         Delete calls to add_decl_expr; add arg to create_*_decl.
15527         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
15528         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
15529         begin_subprog_body and call it.
15530         Don't push and pop ggc context.
15531         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
15532         (add_stmt): Remove handling of DECL_EXPR from here.
15533         If not in function, mark visited.
15534         (add_decl_expr): Put global at top level.
15535         Check for cases of DECL_INITIAL we have to handle here.
15536         (process_type): Add extra arg to create_type_decl.
15537         (build_unit_elab): Rework to just gimplify.
15538         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
15539         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
15540         (get_pending_elaborations, pending_elaborations_p): Likewise.
15541         (push_pending_elaborations, pop_pending_elaborations): Likewise.
15542         (get_elaboration_location, insert_elaboration_list): Likewise.
15543         (gnat_binding_level): Renamed from ada_binding_level.
15544         (init_gnat_to_gnu): Don't clear pending_elaborations.
15545         (global_bindings_p): Treat as global if no current_binding_level.
15546         (set_current_block_context): New function.
15547         (gnat_pushdecl): Renamed from pushdecl; major rework.
15548         All callers changed.
15549         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
15550         (finish_record_type): Call call pushdecl for stub decl.
15551         (function_nesting_depth): Deleted.
15552         (begin_subprog_body): Delete obsolete code.
15553         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
15554
15555 2004-06-28  Robert Dewar  <dewar@gnat.com>
15556
15557         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15558         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15559         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
15560         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
15561         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
15562
15563         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
15564         deal with problem of inefficient slices on machines with strict
15565         alignment, when the slice is a component of a composite.
15566
15567         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
15568         machines, we need the check there as well.
15569
15570 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15571
15572         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
15573         determine safe copying direction for overlapping slice assignments
15574         when component is controlled.
15575
15576         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
15577         formal derived type in the actual for a formal package are visible in
15578         the enclosing instance.
15579
15580 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15581
15582         PR ada/15600
15583         * sem_util.adb (Trace_Components): Diagnose properly an illegal
15584         circularity involving a private type whose completion includes a
15585         self-referential component.
15586         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
15587         renaming or an instantiation from an implicit derived operation.
15588
15589 2004-06-28  Pascal Obry  <obry@gnat.com>
15590
15591         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
15592         DLL.
15593         (Library_File_Name_For): Idem.
15594
15595 2004-06-28  Matthew Gingell  <gingell@gnat.com>
15596
15597         * g-traceb.ads: Add explanatory note on the format of addresses
15598         expected by addr2line.
15599
15600 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
15601
15602         * Makefile.in: Force debugging information on s-tasdeb.adb,
15603         a-except.adb and s-assert.adb needed by the debugger.
15604
15605 2004-06-28  Vincent Celier  <celier@gnat.com>
15606
15607         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
15608         Need_To_Build_Lib.
15609         (Gnatmake): Ditto.
15610
15611         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
15612
15613         * prj.adb: Minor reformatting
15614         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
15615
15616         * prj.ads: Comment updates
15617         Minor reformatting
15618         (Project_Data): Change Flag1 to Need_To_Build_Lib.
15619         Remove Flag2: not used.
15620
15621         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
15622         declaration.
15623
15624         * gnat_ugn.texi: Put a "null;" declaration in one project file example
15625
15626         * gnat_rm.texi: Document Empty declarations "null;".
15627
15628         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
15629         front of the linker options.
15630         (Link_Foreign): Put the global archives and the libraries in front of
15631         the linker options.
15632
15633 2004-06-28  Javier Miranda  <miranda@gnat.com>
15634
15635         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
15636         (RTU_Loaded): Code cleanup
15637         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
15638         withed predefined units.
15639
15640         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
15641         explicitly withed predefined units.
15642         Fix typo in comment
15643
15644         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
15645         explicitly withed predefined units.
15646
15647 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15648
15649         * ada-tree.def (DECL_STMT): Deleted.
15650         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
15651         (DECL_STMT_VAR): Deleted.
15652         * decl.c: add_decl_stmt now add_decl_expr.
15653         * gigi.h: Likewise.
15654         * trans.c: Likewise.
15655         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
15656         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
15657         (add_stmt): Only handle padded type here.
15658         (add_stmt_with_node): Allow gnat_node to not be present.
15659         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
15660         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
15661         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
15662         make a SAVE_EXPR for the entire fat pointer.
15663         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
15664         (create_index_type): Make a DECL_EXPR.
15665         (end_subprog_body): Don't call allocate_struct_function here but
15666         do clear cfun.
15667
15668 2004-06-25  Pascal Obry  <obry@gnat.com>
15669
15670         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
15671         Relocatable from Build_Dynamic_Library call.
15672
15673         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
15674         Relocatable are now synonym.
15675
15676         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
15677
15678         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
15679         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
15680         call.
15681
15682         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
15683         Lib_Address and Relocatable.
15684         (Default_DLL_Address): Removed.
15685
15686         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15687         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15688         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
15689         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
15690         (Default_DLL_Address): Removed.
15691
15692         * mlib-tgt-mingw.adb: Ditto.
15693         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
15694
15695         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
15696         the initial thread stack size.
15697
15698         * a-strmap.ads: Move package L to private part as it is not used in
15699         the spec. Found while reading code.
15700
15701 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
15702
15703         * tracebak.c: Introduce support for a GCC infrastructure based
15704         implementation of __gnat_backtrace.
15705
15706         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
15707         any more. Use accessors instead. This eases maintenance and relaxes
15708         some alignment constraints.
15709         (_GNAT_Exception structure): Remove the Ada specific fields
15710         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
15711         a-exexpr.adb.
15712         (is_handled_by, __gnat_eh_personality): Replace component references to
15713         exception structure by use of the new accessors.
15714
15715         * init.c (__gnat_initialize): Adjust comments to match the just
15716         reverted meaning of the -static link-time option.
15717
15718         * adaint.c (convert_addresses): Arrange not to define a stub for
15719         mips-irix any more, as we now want to rely on a real version from a
15720         recent libaddr2line.
15721
15722         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
15723         the personality routine can use them and not have to rely on a C
15724         counterpart of the record anymore. This simplifies maintenance and
15725         relaxes the constraint of having Standard'Maximum_Alignment match
15726         BIGGEST_ALIGNMENT.
15727         Update comments, and add a section on the common header alignment issue.
15728
15729 2004-06-25  Geert Bosch  <bosch@gnat.com>
15730
15731         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
15732         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
15733
15734 2004-06-25  Robert Dewar  <dewar@gnat.com>
15735
15736         * gnat_rm.texi: Fix section on component clauses to indicate that the
15737         restriction on byte boundary placement still applies for bit packed
15738         arrays.
15739         Add comment on stack usage from Initialize_Scalars
15740
15741         * gnat_ugn.texi: Add documentation for -gnatyLnnn
15742
15743         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
15744         limiting nesting level.
15745
15746         * usage.adb: Add line for -gnatyLnnn switch
15747
15748         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
15749         sem_ch13.adb, exp_aggr.adb: Minor reformatting
15750
15751         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
15752         type as well as on the subtype. This corrects a problem in freeze in
15753         setting alignments of atomic types.
15754
15755         * sem_eval.ads: Minor comment typo fixed
15756
15757         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
15758         level.  Minor reformatting.
15759
15760         * fname.adb (Is_Predefined_File_Name): Require a letter after the
15761         minus sign. This means that file names like a--b.adb will not be
15762         considered predefined.
15763
15764         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
15765         record Test new flag and give diagnostic for bad component clause.
15766         (Freeze_Entity): Set alignment of array from component alignment in
15767         cases where this is safe to do.
15768
15769         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
15770         arrays.
15771
15772         * cstand.adb: (Create_Standard): Set alignment of String to 1
15773
15774         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
15775
15776         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
15777         code in the common constrained array cases.
15778
15779         * a-storio.adb: Change implementation to avoid possible alignment
15780         problems on machines requiring strict alignment (data should be moved
15781         as type Buffer, not type Elmt).
15782
15783         * checks.adb (Apply_Array_Size_Check): Improve these checks by
15784         killing the overflow checks which we really do not need (64-bits is
15785         enough).
15786
15787 2004-06-25  Vincent Celier  <celier@gnat.com>
15788
15789         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
15790         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
15791         inconditionally for the main project.
15792         (Recursive_Add_Archives.Add_Archive_Path): New procedure
15793         (Link_Executables.Check_Time_Stamps): New procedure
15794         (Link_Executables.Link_Foreign): New procedure
15795         Changes made to reduce nesting level of this package
15796         (Check): New procedure
15797         (Add_Switches): When not in quiet output, check that a switch is not
15798         the concatenation of several valid switches. If it is, issue a warning.
15799         (Build_Global_Archive): If the global archive is rebuilt, linking need
15800         to be done.
15801         (Compile_Sources): Rebuilding a library archive does not imply
15802         rebuilding the global archive.
15803         (Build_Global_Archive): New procedure
15804         (Build_Library): New name for Build_Archive, now only for library
15805         project
15806         (Check_Archive_Builder): New procedure
15807         (Create_Global_Archive_Dependency_File): New procedure
15808         (Gprmake): Call Build_Global_Archive before linking
15809         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
15810         throughout.
15811         (Scan_Arg): Display the Copyright notice when -v is used
15812
15813         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
15814         for gnatls.
15815
15816         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
15817         COMPILE.
15818         Add new GNAT LIST qualifier /FILES=
15819         Added qualifier /DIRECTORY= to GNAT METRIC
15820         Added qualifier /FILES= to GNAT METRIC
15821         Added qualifier /FILES to GNAT PRETTY
15822
15823         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
15824         to take into account both versions of the switch.
15825
15826         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
15827         always be the last switch to the gcc driver. Disable switch storing so
15828         that switches automatically added by the gcc driver are not put in the
15829         ALI file.
15830
15831         * prj.adb (Project_Empty): Take into account changes in components of
15832         Project_Data.
15833
15834         * prj.ads (Languages_Processed): New enumaration value All_Languages.
15835
15836         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
15837         used. Split Boolean component Ada_Sources_Present in two Boolean
15838         components Ada_Sources_Present and Other_Sources_Present.
15839         Minor reformatting
15840
15841         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
15842         instead of Sources_Present.
15843         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15844
15845         * prj-nmsc.adb: Minor reformatting
15846         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
15847         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
15848         Check_Ada_Naming_Scheme.
15849         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
15850         throughout.
15851
15852         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
15853         In_Limited.
15854         Make sure that all cycles where there is at least one "limited with"
15855         are detected.
15856         (Parse_Single_Project): New Boolean parameter In_Limited
15857
15858         * prj-proc.adb (Recursive_Check): When Process_Languages is
15859         All_Languages, call first Prj.Nmsc.Ada_Check, then
15860         Prj.Nmsc.Other_Languages_Check.
15861
15862         * prj-proc.adb (Process): Use Ada_Sources_Present or
15863         Other_Sources_Present (instead of Sources_Present) depending on
15864         Process_Languages.
15865
15866         * lang-specs.h: Keep -g and -m switches in the same order, and as the
15867         last switches.
15868
15869         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
15870         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
15871         False.
15872         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
15873         False.
15874
15875         * lib.ads (Disable_Switch_Storing): New procedure.
15876
15877         * make.adb: Modifications to reduce nesting level of this package.
15878         (Check_Standard_Library): New procedure
15879         (Gnatmake.Check_Mains): New procedure
15880         (Gnatmake.Create_Binder_Mapping_File): New procedure
15881         (Compile_Sources.Compile): Add switch -gnatez as the last option
15882         (Display): Never display -gnatez
15883
15884         * Makefile.generic:
15885         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
15886
15887         * gnatcmd.adb (Check_Project): New function
15888         (Process_Link): New procedure to reduce nesting depth
15889         (Check_Files): New procedure to reduce the nesting depth.
15890         For GNAT METRIC, include the inherited sources in extending projects.
15891         (GNATCmd): When GNAT LS is invoked with a project file and no files,
15892         add the list of files from the sources of the project file. If this list
15893         is too long, put it in a temp text files and use switch -files=
15894         (Delete_Temp_Config_Files): Delete the temp text file that contains
15895         a list of source for gnatpp or gnatmetric, if one has been created.
15896         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
15897         in the project file is too large, create a temporary text file that
15898         list them and pass it to the tool with "-files=<temp text file>".
15899         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
15900
15901         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
15902         generated file is in not in Ada.
15903
15904         * gnatls.adb: Remove all parameters And_Save that are no longer used.
15905         (Scan_Ls_Arg): Add processing for -files=
15906         (Usage): Add line for -files=
15907
15908         * g-os_lib.adb (On_Windows): New global constant Boolean flag
15909         (Normalize_Pathname): When on Windows and the path starts with a
15910         directory separator, make sure that the resulting path will start with
15911         a drive letter.
15912
15913         * clean.adb (Clean_Archive): New procedure
15914         (Clean_Project): When there is non-Ada code, delete the global archive,
15915         the archive dependency files, the object files and their dependency
15916         files, if they exist.
15917         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
15918
15919 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
15920
15921         * sinfo.ads: Fix typo in comment.
15922
15923         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
15924         the TSS for remote access-to-subprogram types, since these TSS are
15925         always present once the type has been analyzed.
15926         (RAS_E_Dereference): Same.
15927
15928         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
15929         reference raises Bad_Attribute, mark the reference as analyzed so the
15930         node (and any children resulting from rewrites that could have occurred
15931         during the analysis that ultimately failed) is not analyzed again.
15932
15933         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
15934
15935         * exp_dist.adb: Minor comment fix.
15936
15937         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
15938         type is an anonymous access type, no unchecked deallocation of the
15939         allocated object can occur. If the object is controlled, attach it with
15940         a count of 1. This allows attachment to the Global_Final_List, if
15941         no other relevant list is available.
15942         (Get_Allocator_Final_List): For an anonymous access type that is
15943         the type of a discriminant or record component, the corresponding
15944         finalisation list is the one of the scope of the type.
15945
15946 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15947
15948         * sem_ch3.adb (Replace_Type): When computing the signature of an
15949         inherited subprogram, use the first subtype if the derived type
15950         declaration has no constraint.
15951
15952         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
15953         before applying previous optimization. Minor code cleanup.
15954
15955         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
15956         placed at the beginning of an unpacked record without explicit
15957         alignment, a slice of it will be aligned and does not need a copy when
15958         used as an actual.
15959
15960 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15961
15962         PR ada/15591
15963         PR ada/15592
15964         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
15965         reference is written with expressions mimicking parameters.
15966
15967 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
15968
15969         PR ada/15589
15970         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
15971         STEP 2a. The constraints of a full type declaration of a derived record
15972         type are checked for conformance with those declared in the
15973         corresponding private extension declaration. The message
15974         "not conformant with previous declaration" is emitted if an error is
15975         detected.
15976
15977 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
15978
15979         * g-traceb.ads: Document the need for -E binder switch in the spec.
15980
15981         * g-trasym.ads: Document the need for -E binder switch in the spec.
15982
15983 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
15984
15985         * sem_prag.adb: Add handling of pragma Detect_Blocking.
15986
15987         * snames.h, snames.ads, snames.adb: Add entry for pragma
15988         Detect_Blocking.
15989
15990         * s-rident.ads: Change reference to pragma Detect_Blocking.
15991
15992         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
15993         system.ads.
15994
15995         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
15996         to indicate whether pragma Detect_Blocking is active.
15997
15998         * par-prag.adb: Add entry for pragma Detect_Blocking.
15999
16000         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
16001         of not handling WITH.
16002         Note that this replaces the previous update which was incorrect.
16003
16004 2004-06-25  Javier Miranda  <miranda@gnat.com>
16005
16006         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
16007         use-clauses to have a clean environment.
16008
16009         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
16010         the installation of the use-clauses to stablish a clean environment in
16011         case of compilation of a separate unit; otherwise the call to
16012         use_one_package is protected by the barrier Applicable_Use.
16013
16014         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
16015         the installation of the use-clauses to stablish a clean environment in
16016         case of compilation of a separate unit.
16017         (End_Use_Clauses): Minor comment cleanup.
16018
16019 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
16020
16021         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
16022
16023 2004-06-23  Richard Henderson  <rth@redhat.com>
16024
16025         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
16026
16027 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16028
16029         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
16030         now bool instead of int.
16031         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
16032         * trans.c (gnu_switch_label_stack): New function.
16033         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
16034         elaboration of renamed entity returns.
16035         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
16036         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
16037         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
16038         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
16039         DECL_SIZE_UNIT and simplify variable-sized case.
16040         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
16041         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
16042         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
16043         (build_unit_elab): Disable for now.
16044         * utils.c (mark_visited): New function.
16045         (pushdecl): Walk tree to call it for global decl.
16046         (update_pointer_to): Update all variants of pointer and ref types.
16047         Add arg to COMPONENT_REF.
16048         (convert): Likewise.
16049         Move check for converting between variants lower down.
16050         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
16051         (build_allocator): Don't force type of MODIFY_EXPR.
16052         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
16053         put_var_into_stack.
16054
16055 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16056
16057         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
16058         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
16059         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
16060         subprograms.
16061         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
16062         all callers changed.
16063         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
16064         the way that EXIT_STMT finds the loop label.
16065         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
16066         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
16067         (add_stmt): Use annotate_with_locus insted of setting directly.
16068         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
16069         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
16070         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
16071         (build_vms_descriptor): Add extra args to ARRAY_REF.
16072         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
16073         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
16074         New cases.
16075         (build_binary_op): Don't make explicit CONVERT_EXPR.
16076         Add extra rgs to ARRAY_REF.
16077
16078 2004-06-14  Pascal Obry  <obry@gnat.com>
16079
16080         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
16081         Windows.  Fix minor typo.
16082
16083         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
16084         which is now supported on Windows. With this implementation using the
16085         Library Project feature is no different on Windows than on UNIX.
16086
16087 2004-06-14  Vincent Celier  <celier@gnat.com>
16088
16089         * makegpr.adb (Compile_Sources): Nothing to do when there are no
16090         non-Ada sources.
16091
16092         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
16093
16094         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
16095         found, show the project name and the path of the previously parsed
16096         project file.
16097
16098 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
16099
16100         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
16101         array, avoid copying the actual before the call.
16102
16103 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
16104
16105         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
16106         Instead, allocate memory on worst-case alignment assumptions, and then
16107         return an aligned address within the allocated zone.
16108
16109 2004-06-14  Robert Dewar  <dewar@gnat.com>
16110
16111         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
16112         elab entities in predefined units in No_Run_Time_Mode.
16113         (Gen_Adainit_C): Same fix
16114         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
16115         units in No_Run_Time_Mode
16116         (Gen_Elab_Calls_C): Same fix
16117
16118         * symbols-vms-alpha.adb: Minor reformatting
16119
16120         * g-debpoo.ads: Minor reformatting
16121
16122         * lib.adb (In_Same_Extended_Unit): Version working on node id's
16123
16124         * lib.ads (In_Same_Extended_Unit): Version working on node id's
16125
16126         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
16127         working on nodes.
16128
16129         * make.adb: Minor reformatting
16130
16131         * par-ch12.adb: Minor reformatting
16132
16133         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
16134
16135         * prj-strt.adb: Minor reformatting
16136
16137         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
16138         be more general.
16139
16140         * sem_attr.adb: Minor reformatting
16141
16142         * sem_ch7.adb: Minor reformatting
16143
16144         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
16145         for type in the same unit as the object declaration.
16146
16147         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
16148         static string expressions and not just string literals.
16149         Minor reformatting
16150         (Set_Warning): Reset restriction warning flag for restriction pragma
16151         Implement pragma Profile_Warnings
16152         Implement pragma Profile (Restricted)
16153         Give obolescent messages for old restrictions and pragmas
16154
16155         * snames.h, snames.ads, snames.adb: Add new entry for pragma
16156         Profile_Warnings.
16157
16158         * s-rident.ads: Add declarations for restrictions required by profile
16159         Restricted and profile Ravenscar.
16160
16161         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
16162
16163         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
16164         configuration pragmas.
16165
16166 2004-06-11  Vincent Celier  <celier@gnat.com>
16167
16168         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
16169         gnatsym, when symbol policy is Restricted.
16170
16171         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
16172         gnatsym, when symbol policy is Restricted.
16173
16174         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
16175         read the symbol file.
16176         (Finalize): Fail in symbol policy Restricted if a symbol in the original
16177         symbol file is not in the object files. Do not create a new symbol file
16178         when symbol policy is Restricted.
16179
16180         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
16181         in Scng.
16182
16183         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
16184         Restricted.
16185         (Usage): Line for new switch -R
16186
16187         * make.adb (Initialize): When the platform is not VMS, add the
16188         directory where gnatmake is invoked in the front of the path, if
16189         gnatmake is invoked with directory information.  Change the Scan_Args
16190         while loop to a for loop.
16191         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
16192         if Depth is equal or greater than the proposed depth, there is nothing
16193         to do.
16194         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
16195         instead of 0.
16196
16197         * prj.ads: Add new symbol policy Restricted.
16198
16199         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
16200         with the new parameters Check_All_Labels and Case_Location.
16201
16202         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
16203         (Library_Symbol_File needs to be defined).
16204
16205         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
16206         and Case_Location If Check_All_Labels is True, check that all values of
16207         the string type are used, and output warning(s) if they are not.
16208
16209         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
16210         and Case_Location.
16211
16212         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
16213
16214         * gnat_ugn.texi: Update documentation about the library directory in
16215         Library Projects.
16216
16217         * makegpr.adb (Display_Command): In verbose mode, also display the
16218         value of the CPATH env var, when the compiler is gcc.
16219         (Initialize): Change the Scan_Args while loop to a for loop
16220         (Compile_Individual_Sources): Change directory to object directory
16221         before compilations.
16222
16223         * symbols.ads: New symbol policy Restricted.
16224
16225 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
16226
16227         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
16228         is now taken care of internally in the Exception_Propagation package
16229         and does not require clients assistance any more.
16230
16231         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
16232         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
16233         functions. Helpers to maintain a predicate required in the handling of
16234         occurrence transfer between tasks.
16235         This is now handled internally and does not require clients assistance
16236         for the setup/propagate separation anymore.
16237         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
16238         allocation strategy, handle the Setup_And_Not_Propagated predicate and
16239         document.
16240
16241         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
16242         raise_after_setup, now that everything is handled internally within the
16243         setup/propagation engine.
16244
16245 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16246
16247         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
16248         Add additional conditions for the case of an actual being a simple
16249         name or literal. Improve inlining by preventing the generation
16250         of temporaries with a short lifetime (one use).
16251
16252 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16253
16254         PR ada/15587
16255
16256         * einfo.ads: Minor comment updates for Has_Completion and
16257         E_Constant list of flags.
16258
16259         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
16260         and constant redeclarations now set the Has_Completion flag of their
16261         defining identifiers.
16262
16263         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
16264         Inspect_Deferred_Constant_Completion.
16265         Used to detect private deferred constants that have not been completed
16266         either by a constant redeclaration or pragma Import. Emits error message
16267         "constant declaration requires initialization expression".
16268
16269         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
16270         completes a deferred constant.
16271
16272 2004-06-11  Geert Bosch  <bosch@gnat.com>
16273
16274         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
16275
16276         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
16277         calculating exponent for scaling denormal numbers.
16278         (Leading_Part): Properly raise Constraint_Error for zero or negative
16279         Adjustment.
16280         (Remainder): Properly raise Constraint_Error for zero divisor.
16281
16282 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
16283
16284         * sem_util.adb: Minor reformatting.
16285
16286         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
16287         dereference when accessing the entry parameter record.
16288         (Check_Array_Type): Always check for possible implicit dereference.
16289         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16290         Abort if a pointer is still present (denoting that an implicit
16291         dereference was left in the tree by the front-end).
16292
16293         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
16294         dereference when accessing the entry parameter record.
16295         (Check_Array_Type): Always check for possible implicit dereference.
16296         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16297         Abort if a pointer is still present (denoting that an implicit
16298         dereference was left in the tree by the front-end).
16299
16300 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
16301
16302         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
16303         message, like the compiler itself does. Easier to parse the output.
16304
16305         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
16306
16307         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
16308         be base names, and not includes directories.
16309
16310 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16311
16312         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
16313         so that dependencies are properly taken into account by make.
16314
16315 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16316
16317         PR ada/15622
16318         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
16319         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
16320
16321 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
16322
16323         * Makefile.in (install-gnatlib): install target-specific run-time files.
16324
16325         * Make-lang.in: Remove obsolete targets.
16326
16327 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16328
16329         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
16330         specification, to catch misuses of program unit names.
16331
16332         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
16333         superfluous conversions in an instance.
16334
16335 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16336
16337         PR ada/15403
16338
16339         * sem_ch12.adb (Save_References): If operator node has been folded to
16340         enumeration literal, associated_node must be discarded.
16341
16342 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
16343
16344         * s-stchop-vxworks.adb: Add required pragma Convention to
16345         Task_Descriptor because it is updated by a C function.
16346
16347 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
16348
16349         PR ada/15568
16350
16351         * Makefile.in: Remove target specific SO_OPT on IRIX
16352
16353 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16354
16355         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
16356         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
16357         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
16358         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
16359         (STMT_STMT, USE_STMT): New statement codes.
16360         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
16361         * ada-tree.h: Reflect above changes.
16362         (struct tree_loop_id): Deleted.
16363         (union lang_tree_node, struct lang_decl, struct lang_type):
16364         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
16365         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
16366         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
16367         (IS_ADA_STMT): New macro.
16368         * decl.c (annotate_decl_with_node): New function.
16369         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
16370         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
16371         Call add_stmt_with_node to do needed assignments.
16372         Add call to update setjmp buffer directly, not via EXPR_STMT.
16373         (maybe_variable): Argment GNAT_NODE deleted.
16374         * gigi.h (maybe_variable): Likewise.
16375         (make_transform, add_stmt_with_node, set_block_for_group): New.
16376         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
16377         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
16378         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
16379         (set_lineno, set_lineno_from_sloc): Likewise.
16380         (record_code_position, insert_code_for): Likewise.
16381         (gnat_poplevel): Now returns void.
16382         (end_subprog_body): Now takes argument.
16383         * misc.c (cgraph.h, tree-inline.h): New includes.
16384         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
16385         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
16386         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
16387         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
16388         (gnat_parse_file): Don't set immediate_size_expand.
16389         Call cgraph functions.
16390         (gnat_expand_expr): Remove most cases.
16391         (record_code_position, insert_code_for): Remove from here.
16392         * trans.c (toplev.h, tree-gimple.h): Now included.
16393         (discard_file_names): Deleted.
16394         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
16395         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
16396         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
16397         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
16398         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
16399         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
16400         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
16401         (set_block_for_group, add_stmt_list): Likewise.
16402         (start_stmt_group): Renamed from start_block_stmt.
16403         (end_stmt_group): Likewise, from end_block_stmt.
16404         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
16405         (gigi): Don't set discard_file_names or call set_lineno.
16406         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
16407         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
16408         Numerous changes throughout to reflect new names and complete
16409         function-at-a-time implementation.
16410         (gnat_expand_stmt): Delete or comment out all cases.
16411         (process_inlined_subprograms): Use add_stmt.
16412         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
16413         call set_lineno; also remove unneeded block handling.
16414         (process_type): Remove unneeded block handling.
16415         (build_unit_elab): Remove calls to deleted functions.
16416         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
16417         (tree-dump.h): Likewise.
16418         (struct ada_binding_level): Add field jmpbuf_decl.
16419         (gnat_define_builtin, gnat_install_builtins): New.
16420         (gnat_gimplify_function, gnat_finalize): Likewise.
16421         (gnat_poplevel): No longer return BLOCK, set it instead.
16422         Remove code dealing with nested functions.
16423         (gnat_init_decl_processing): Also set size_type_node.
16424         Call gnat_install_builtins.
16425         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
16426         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
16427         Remove special-case for "main".
16428         (end_subprog_body): Add arg and rework for tree-ssa.
16429         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
16430         Add case for BOOLEAN_TYPE.
16431         * utils2.c (rtl.h): Now include.
16432         (build_call_raise): Test Debug_Flag_NN directly.
16433         (build_call_alloc_dealloc): Don't use local stack allocation for now.
16434         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
16435         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
16436
16437 2004-06-07  Robert Dewar  <dewar@gnat.com>
16438
16439         * a-direct.ads, einfo.ads: Minor comment updates
16440
16441         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
16442         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16443         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
16444         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
16445         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
16446
16447         * s-interr-sigaction.adb: Remove unreferenced variable
16448         (Attached_Interrupts).  Minor reformatting.
16449         Avoid use of variable I (replace by J).
16450
16451         * par-ch10.adb: Fix text of one error message
16452
16453         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
16454         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
16455         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
16456         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
16457         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
16458         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
16459         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
16460         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
16461         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
16462         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
16463         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
16464         2005 support.
16465
16466 2004-06-07  Doug Rupp  <rupp@gnat.com>
16467
16468         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
16469
16470         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
16471
16472         * mlib-tgt-vms-ia64.adb: New file.
16473
16474         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
16475         Add mlib-tgt-vms-ia64.adb
16476         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
16477         Move to alpha specific ifeq section.
16478         Add VMS specific versions of symbols.adb
16479         Renaming of 5q vms files.
16480
16481         * 5qsystem.ads renamed to system-vms_64.ads.
16482
16483 2004-06-07  Vincent Celier  <celier@gnat.com>
16484
16485         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
16486         explain that when a time of day corresponding to the non existing hour
16487         on the day switching to DST is specified, Split may return a different
16488         value for Seconds.
16489
16490         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
16491         to GNAT PRETTY.
16492
16493         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
16494         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
16495
16496         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
16497         to False.
16498         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
16499         the linking options.
16500         (Build_Library.Check_Libs): On VMS, if there is a dependency on
16501         g-trasym.ads, set Gtrasymobj_Needed to True.
16502
16503         * prj-attr.adb: Add new package Metrics for gnatmetric
16504
16505         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
16506         canonical case to take into account files with upper case characters on
16507         Windows.
16508         (Ada_Check): Load the reference symbol file name in the name buffer to
16509         check it, not the symbol file name.
16510
16511         * snames.ads, snames.adb: Add standard name Metrics (name of project
16512         file package for gnatmetric).
16513
16514         * vms_conv.ads: Add Metric to Comment_Type
16515
16516         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
16517
16518         * vms_data.ads: Add qualifiers for GNAT METRIC
16519
16520         * makegpr.adb (Link_Executables): Take into account the switches
16521         specified in package Linker of the main project.
16522
16523 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
16524
16525         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
16526         the index of the last element is Units.Last, not Units.Table'Last
16527         (which is usually not a valid index within the actually allocated
16528         storage for the table).
16529
16530         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
16531         determines whether to generate a call to a checked storage pool
16532         Dereference action.
16533         Generate such a call only for a dereference that either comes from
16534         source, or is the result of rewriting a dereference that comes from
16535         source.
16536
16537 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
16538
16539         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
16540
16541 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
16542
16543         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
16544         file level, elaborate the stride for inner dimensions in alignment
16545         units, not bytes.
16546
16547         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
16548         in a comment.
16549
16550 2004-06-07  Javier Miranda  <miranda@gnat.com>
16551
16552         * exp_ch6.adb: Correct wrong modification in previous patch
16553
16554 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
16555
16556         * g-trasym.ads: Corrected comment to properly reflect level of support
16557         on VMS.
16558
16559 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
16560
16561         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
16562         includes case of a variable referenced on the left hand side of an
16563         assignment, therefore remove redundant code. Variables and prefixes of
16564         indexed or selected components are now marked as referenced on left
16565         hand side. Warnings are now properly emitted when variables or prefixes
16566         are assigned but not read.
16567
16568         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
16569         left hand side referenced variables. Private access types do not
16570         produce the warning "variable ... is assigned but never read".
16571         Add also additional checks to left hand side referenced variables.
16572         Aliased, renamed objects and access types do not produce the warning
16573         "variable ... is assigned but never read" since other entities may read
16574         the memory location.
16575
16576 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
16577
16578         * Makefile.in: In the powerpc/vxworks-specific section, restore
16579         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
16580         by mistake).
16581
16582 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
16583
16584         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
16585         predefined operators.
16586         Removes spurious type errors from g-trasym-vms.adb.
16587
16588         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
16589         distinct from the operator appearing in the source, call appropriate
16590         routine to insert conversions when needed, and complete resolution of
16591         node.
16592         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
16593         interpretations for rewritten right operand.
16594         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
16595         the other operand is overloaded and the context is a type conversion.
16596
16597 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16598
16599         * ada-tree.def (BLOCK_STMT): Now has two operands.
16600         (BREAK_STMT): New.
16601
16602         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
16603
16604         * gigi.h: (gnat_poplevel): Now returns a tree.
16605
16606         * trans.c (end_block_stmt): Add arg; all callers changed.
16607         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
16608         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
16609         (add_stmt): Set TREE_TYPE.
16610         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
16611         (gnat_expand_stmt, case BREAK_STMT): New case.
16612
16613         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
16614
16615 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
16616
16617         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
16618         procedure Set_Stack_Size that is not needed.
16619
16620 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
16621
16622         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
16623         used for gnatpp input file and for the files upon which it depends
16624
16625 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
16626
16627         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
16628
16629 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
16630
16631         * gnatvsn.ads: Bump version numbers appropriately.
16632         Add new build type.
16633
16634 2004-06-07  Pascal Obry  <obry@gnat.com>
16635
16636         * gnat_ugn.texi: Improve comments about imported names and link names
16637         on Windows. Add a note about the requirement to use -k gnatdll's option
16638         when working with a DLL which has stripped stdcall symbols (no @nn
16639         suffix).
16640
16641 2004-05-27  Vincent Celier  <celier@gnat.com>
16642
16643         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
16644         COMMENTS_LAYOUT=UNTOUCHED
16645
16646         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
16647         symbols-vms-alpha.adb
16648
16649 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
16650
16651         * sem.ads: Clarify documentation on checks suppression.
16652
16653         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
16654
16655 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
16656
16657         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
16658         the case of multiple derivations.
16659         (Is_Object_Reference): For a selected component, verify that the prefix
16660         is itself an object and not a value.
16661
16662         * sem_ch12.adb (Same_Instantiated_Constant): New name for
16663         Same_Instantiated_Entity.
16664         (Same_Instantiated_Variable): Subsidiary to
16665         Check_Formal_Package_Instance, to recognize actuals for in-out generic
16666         formals that are obtained from a previous formal package.
16667         (Instantiate_Subprogram_Body): Emit proper error when
16668         generating code and the proper body of a stub is missing.
16669
16670         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
16671         has a universal interpretation, do the disambiguation here.
16672
16673         * exp_ch4.adb (Expand_N_Type_Conversion,
16674         Expand_N_Unchecked_Type_Conversion): Special handling when target type
16675         is Address, to avoid typing anomalies when Address is a visible integer
16676         type.
16677
16678         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
16679         to determine whether a subprogram should not be marked Pure, even when
16680         declared in a pure package.
16681
16682 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
16683
16684         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
16685
16686         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
16687         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
16688         Update the documentation about the Ravenscar profile, following the
16689         definition found in AI-249.
16690
16691         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
16692         setting the Profile (Ravenscar). This must be done in addition to
16693         setting the required restrictions.
16694
16695         * rtsfind.ads: Add the set of operations defined in package
16696         Ada.Interrupts.
16697
16698         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
16699         restriction.
16700
16701 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
16702
16703         lang-specs.h: Always require -c or -S and always redirect to /dev/null
16704         if -gnatc or -gnats is passed.
16705
16706 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
16707
16708         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
16709         a significant reference. Warnings are now properly emitted when a
16710         discriminated type is not referenced.
16711
16712         * lib-xref.adb (Generate_Reference): A deferred constant completion,
16713         record representation clause or record type discriminant does not
16714         produce a reference to its corresponding entity. Warnings are now
16715         properly emitted when deferred constants and record types are not
16716         referenced.
16717
16718 2004-05-27  Geert Bosch  <bosch@gnat.com>
16719
16720         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
16721         Fixes ACATS Annex G tests.
16722
16723 2004-05-27  Robert Dewar  <dewar@gnat.com>
16724
16725         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
16726         handling WITH
16727
16728 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
16729
16730         * s-interr.adb (Server_Task): Take into account case of early return
16731         from sigwait under e.g. linux.
16732
16733 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
16734
16735         * gnat_ugn.texi: Add description for the new gnatpp options:
16736          -rnb - replace the original source without creating its backup copy
16737          -c0 - do not format comments
16738
16739 2004-05-24  Geert Bosch  <bosch@gnat.com>
16740
16741         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
16742         with 192 bits of precision, sufficient to reduce a double-extended
16743         arguments X with a maximum relative error of T'Machine_Epsilon, for X
16744         in -2.0**32 .. 2.0**32.
16745         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
16746         reduction by the processor, which only uses a 68-bit approximation of
16747         Pi.
16748         (Tan): Always reduce arguments and compute function either using
16749         the processor's fptan instruction, or by dividing sin and cos as needed.
16750
16751 2004-05-24  Doug Rupp  <rupp@gnat.com>
16752
16753         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
16754         gcc error on 32/64 bit VMS.
16755
16756 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
16757
16758         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
16759         since this is what we get for stack overflows although not documented
16760         as such.
16761         Document the issues which may require adjustments to our signal
16762         handlers.
16763
16764 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
16765
16766         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
16767         enclosing dynamic scope if the instantiation is within a generic unit.
16768
16769 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16770
16771         * exp_dbug.ads: Fix typo.
16772
16773         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
16774         Rename it to its proper name: system-linux-ia64.ads
16775         (stamp-gnatlib1): Remove extra target specific run time files when
16776         setting up the rts directory.
16777
16778 2004-05-24  Javier Miranda  <miranda@gnat.com>
16779
16780         * einfo.ads, einfo.adb (Limited_Views): Removed.
16781         (Limited_View): New attribute that replaces the previous one. It is
16782         now a bona fide package with the limited-view list through the
16783         first_entity and first_private attributes.
16784
16785         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
16786         limited-private-with clause.
16787         (Install_Limited_Withed_Unit): Install the private declarations of a
16788         limited-private-withed package. Update the installation of the shadow
16789         entities according to the new structure (see Build_Limited_Views)
16790         (Build_Limited_Views): Replace the previous implementation of the
16791         limited view by a package entity that references the first shadow
16792         entity plus the first shadow private entity (required for limited-
16793         private-with clause)
16794         (New_Internal_Shadow_Entity): Code cleanup.
16795         (Remove_Limited_With_Clause): Update the implementation to undo the
16796         new work carried out by Build_Limited_Views.
16797         (Build_Chain): Complete documentation.
16798         Replace Ada0Y by Ada 0Y in comments
16799         Minor reformating
16800
16801         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
16802         types the level of accessibility depends on the enclosing type
16803         declaration.
16804
16805         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
16806         entities. Complete documentation of previous change.
16807
16808 2004-05-24  Robert Dewar  <dewar@gnat.com>
16809
16810         * namet.adb: Minor reformatting
16811         Avoid use of name I (replace by J)
16812         Minor code restructuring
16813
16814         * sem_ch6.adb: Minor reformatting
16815
16816         * lib-writ.adb: Do not set restriction as active if this is a
16817         Restriction_Warning case.
16818
16819         * sem_prag.adb: Reset restriction warning flag if real pragma
16820         restriction encountered.
16821
16822         * s-htable.adb: Minor reformatting
16823         Change rotate count to 3 in Hash (improves hash for small strings)
16824
16825         * 5qsystem.ads: Add comments for type Address (no literals allowed).
16826
16827         * gnat_ugn.texi: Add new section of documentation "Code Generation
16828         Control", which describes the use of -m switches.
16829
16830 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
16831
16832         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
16833         through the DECL_INITIAL for renamed variables.
16834
16835 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16836
16837         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
16838
16839 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
16840
16841         * exp_dbug.ads: Correct comments concerning handling of overloading,
16842         since we no longer use $ anymore.
16843
16844 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
16845
16846         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
16847         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
16848         with illegal subunits.
16849
16850 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
16851
16852         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
16853         body with front-end inlining enabled, check whether an inline pragma
16854         appears immediately after the body and applies to it.
16855
16856         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
16857         enabled and the pragma appears after the body of the subprogram.
16858
16859 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16860
16861         Part of function-at-a-time conversion
16862
16863         * misc.c (adjust_decl_rtl): Deleted.
16864         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16865         Define.
16866
16867         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
16868         (add_decl_stmt, add_stmt, block_has_vars): New functions.
16869         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
16870
16871         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
16872         when making a decl.
16873         (gnat_to_gnu_entity): Likewise.
16874         Use add_stmt to update setjmp buffer.
16875         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
16876         flush_addressof.
16877         No longer call adjust_decl_rtl.
16878         (DECL_INIT_BY_ASSIGN_P): New macro.
16879         (DECL_STMT_VAR): Likewise.
16880
16881         * trans.c (gigi): Call start_block_stmt to make the outermost
16882         BLOCK_STMT.
16883         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
16884         Call start_block_stmt and end_block_stmt temporarily.
16885         Use gnat_expand_stmt instead of expand_expr_stmt.
16886         (add_decl_stmt): New function.
16887         (tree_transform): Call it.
16888         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
16889         (end_block_stmt): Set type and NULL_STMT.
16890         (gnat_expand_stmt): Make recursize call instead of calling
16891         expand_expr_stmt.
16892         (gnat_expand_stmt, case DECL_STMT): New case.
16893         (set_lineno_from_sloc): Do nothing if global.
16894         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
16895         (start_block_stmt, add_stmt, end_block_stmt): New functions.
16896         (build_block_stmt): Call them.
16897         (gnat_to_code): Don't expand NULL_STMT.
16898         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
16899         args.
16900         (tree_transform): Likewise.
16901         (tree_transform, case N_Null_Statement): Return NULL_STMT.
16902         (gnat_expand_stmt, case NULL_STMT): New case.
16903         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
16904         IF_STMT_TRUE.
16905
16906         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
16907         TREE_ADDRESSABLE.
16908
16909         * utils.c (create_var_decl): Do not call expand_decl or
16910         expand_decl_init.
16911         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
16912         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
16913         here.
16914         (struct e_stack): Add chain_next to GTY.
16915         (struct binding_level): Deleted.
16916         (struct ada_binding_level): New struct.
16917         (free_block_chain): New.
16918         (global_binding_level, clear_binding_level): Deleted.
16919         (global_bindings_p): Rework to see if no chain.
16920         (kept_level_p, set_block): Deleted.
16921         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
16922         new data structure and work directly on BLOCK node.
16923         (gnat_poplevel): Similarly.
16924         (get_decls): Look at BLOCK_VARS.
16925         (insert_block): Work directly on BLOCK node.
16926         (block_has_var): New function.
16927         (pushdecl): Rework for new binding structures.
16928         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
16929         poplevel.
16930         (build_subprog_body): Likewise.
16931         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
16932
16933         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
16934
16935         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
16936         (DECL_STMT_VAR): Likewise.
16937
16938 2004-05-17  Robert Dewar  <dewar@gnat.com>
16939
16940         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
16941         procedure
16942
16943         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
16944         of restriction synonyums by using
16945         Restrict.Process_Restriction_Synonyms.
16946
16947         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
16948
16949         * s-restri.ads (Tasking_Allowed): Correct missing comment
16950
16951         * s-rident.ads: Add entries for restriction synonyms
16952
16953         * ali.adb: Fix some problems with badly formatted ALI files that can
16954         result in infinite loops.
16955
16956         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
16957         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
16958         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16959         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
16960         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
16961         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
16962         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
16963         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
16964         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
16965         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
16966         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
16967         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
16968         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
16969         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
16970         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
16971         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
16972         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
16973         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16974         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
16975         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
16976         to Task_Id (minor cleanup).
16977
16978 2004-05-17  Vincent Celier  <celier@gnat.com>
16979
16980         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
16981         directory separator.
16982
16983         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
16984         project being extended, if Languages is not declared in extending
16985         project.
16986
16987 2004-05-17  Javier Miranda  <miranda@gnat.com>
16988
16989         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
16990         limited view of a visible sibling.
16991
16992 2004-05-14  Robert Dewar  <dewar@gnat.com>
16993
16994         * gnat_ugn.texi: Minor change to -gnatS documentation
16995
16996         * sprint.adb: Remove some instances of Assert (False) and for this
16997         purpose replace them by output of a ??? string.
16998
16999         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
17000         Assert (False).
17001
17002         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
17003         flag processing. This was suppressing required dependencies in
17004         No_Run_Time mode and is not needed since the binder does not generate
17005         references for things in libgnat anyway.
17006
17007         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
17008         warning.
17009
17010 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
17011
17012         * gnat_ugn.texi: Document AIX-specific issue with initialization of
17013         resolver library.
17014
17015         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
17016         action for the case of an actual parameter in an init proc call.
17017
17018 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
17019
17020         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
17021         subtype, check visible entities in base type.
17022
17023         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
17024         actions if the object is a renaming.
17025
17026         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
17027         Check_Formal_Package_Instance, to determine more precisely when the
17028         formal and the actual denote the same entity.
17029
17030 2004-05-14  Javier Miranda  <miranda@gnat.com>
17031
17032         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
17033
17034         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
17035         corresponding to a private_with must be removed from visibility; it
17036         will be made visible later, just before we analyze the private part of
17037         the package.
17038         (Check_Private_Child_Unit): Allow private_with clauses in public
17039         siblings.
17040         (Install_Siblings): Make visible the private entities of private-withed
17041         siblings.
17042         (Install_Withed_Unit): Do not install the private withed unit if we
17043         are compiling a package declaration and the Private_With_OK flag was
17044         not set by the caller. These declarations will be installed later,
17045         just before we analyze the private part of the package.
17046
17047         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
17048         during the evaluation of the expression that initializes the object,
17049         decorate it with the expected type to avoid cascade errors.
17050         Code cleanup.
17051
17052         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
17053         subprogram we have to install the private_with clauses after its
17054         specification has been analyzed (as documented in AI-262.TXT).
17055
17056         * sem_ch8.adb (Has_Private_With): New function. Determines if the
17057         current compilation unit has a private with on a given entity.
17058         (Find_Direct_Name): Detect the Beaujolais problem described in
17059         AI-262.TXT
17060
17061         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
17062         provides the functionality of the function Is_Ancestor that was
17063         previously available in sem_ch10. It has been renamed to avoid
17064         overloading.
17065
17066         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
17067
17068 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17069
17070         * utils.c (build_vms_descriptor): Use SImode pointers.
17071
17072 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
17073
17074         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
17075
17076 2004-05-14  GNAT Script  <nobody@gnat.com>
17077
17078         * Make-lang.in: Makefile automatically updated
17079
17080 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
17081
17082         Renaming of target specific files for clarity
17083
17084         * Makefile.in: Rename GNAT target specific files.
17085
17086         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
17087         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
17088         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
17089         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
17090         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
17091         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
17092         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
17093         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
17094         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
17095         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
17096         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
17097         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
17098         51osinte.adb, 51osinte.ads, 51system.ads,
17099         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
17100         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
17101         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
17102         56tpopsp.adb, 57system.ads, 58system.ads,
17103         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
17104         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
17105         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
17106         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
17107         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
17108         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
17109         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
17110         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
17111         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
17112         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
17113         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
17114         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
17115         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
17116         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
17117         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
17118         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
17119         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
17120         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
17121         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
17122         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
17123         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
17124         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
17125         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
17126         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
17127         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
17128         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
17129         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
17130         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
17131         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
17132         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
17133         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
17134         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
17135         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
17136         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
17137         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
17138         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
17139         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
17140         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
17141         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
17142         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
17143
17144         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
17145         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
17146         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
17147         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
17148         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
17149         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
17150         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
17151         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
17152         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
17153         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
17154         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
17155         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
17156         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
17157         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
17158         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
17159         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
17160         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
17161         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
17162         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
17163         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
17164         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
17165         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
17166         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
17167         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
17168         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
17169         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
17170         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
17171         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
17172         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
17173         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
17174         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
17175         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
17176         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
17177         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
17178         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
17179         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
17180         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
17181         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
17182         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
17183         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
17184         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
17185         s-osinte-vms.ads, s-osinte-vxworks.adb,
17186         s-osinte-vxworks.ads, s-osprim-mingw.adb,
17187         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
17188         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
17189         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
17190         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
17191         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
17192         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
17193         s-stchop-vxworks.adb, s-taprop-dummy.adb,
17194         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
17195         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
17196         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
17197         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
17198         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
17199         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
17200         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
17201         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
17202         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
17203         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
17204         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
17205         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
17206         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
17207         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
17208         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
17209         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
17210         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
17211         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
17212         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
17213         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
17214         system-irix-o32.ads, system-linux-x86_64.ads,
17215         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
17216         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
17217         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
17218         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
17219         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
17220         system-vxworks-mips.ads, system-vxworks-ppc.ads,
17221         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
17222         above.
17223
17224 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
17225
17226         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
17227
17228 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
17229
17230         Merge from tree-ssa-20020619-branch.
17231
17232         * config-lang.in (boot_language, build_by_default): Set
17233         to no.
17234         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
17235         (max_size): Add static chain op for call_expr.
17236
17237 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
17238
17239         PR target/15331
17240         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
17241
17242 2004-05-11  Roger Sayle  <roger@eyesopen.com>
17243
17244         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
17245         COND_EXPR.
17246
17247 2004-05-10  Doug Rupp  <rupp@gnat.com>
17248
17249         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
17250         system.aux_dec.
17251
17252         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
17253
17254         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
17255
17256         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
17257         Fixes undefined symbols in IA64 gnatlib.
17258
17259         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
17260
17261         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
17262         Short_Address). This will be moved to system.auxdec.
17263
17264 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
17265
17266         * sem_util.adb: Replace test for presence of a node that is always
17267         present with a call to Discard_Node.
17268
17269         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
17270         Analyze on the library unit node after generation of distribution stub
17271         constructs.  The call was a no-op because Unit_Node has already been
17272         Analyzed, and the tree fragments for the distribution stubs are
17273         analyzed as they are inserted in Exp_Dist.
17274         Update comment regarding to distribution stubs to reflect that we
17275         do not generate stub in separate files anymore.
17276
17277         * einfo.ads: Clarify the fact that a tagged private type has the
17278         E_Record_Type_With_Private Ekind.
17279
17280         * erroutc.adb: Minor reformatting
17281
17282         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
17283         values if line length is increased using -gnatyM (noticed during code
17284         reading).
17285
17286         * eval_fat.adb: Minor reformatting
17287         Put spaces around exponentiation operator
17288
17289 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17290
17291         PR ada/15005
17292         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
17293         has been rewritten as an explicit dereference, retrieve type of
17294         original node to check for possibly unconstrained record type.
17295
17296 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17297
17298         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
17299         overriding, use the operation of the parent unconditionally.
17300
17301         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
17302         operation when either operand is a literal, to avoid further
17303         ambiguities.
17304
17305         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
17306         overridden by a previous explicit declaration, mark the previous entity
17307         as overriding.
17308
17309         * sem_disp.adb (Check_Dispatching_Operation): New predicate
17310         Is_Visibly_Controlled, to determine whether a declaration of a
17311         primitive control operation for a derived type overrides an inherited
17312         one. Add warning if the explicit declaration does not override.
17313
17314 2004-05-10  Vincent Celier  <celier@gnat.com>
17315
17316         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
17317         some cases when the sources are no longer present.
17318
17319         * make.adb (Collect_Arguments): Fail if an external source, not part
17320         of any project need to be compiled, when switch -x has not been
17321         specified.
17322
17323         * makeusg.adb: Document new switch -x
17324
17325         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
17326         defaulted to False.
17327
17328         * switch-m.adb (Scan_Make_Switches): New switch -x
17329
17330         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
17331         gnatmake switch -x.
17332
17333         * gnat_ugn.texi: Document new gnatmake switch -x
17334
17335 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
17336
17337         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
17338
17339         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
17340         (process_attributes): Likewise.
17341
17342 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
17343
17344         * s-inmaop.ads: Fix spelling mistake in one of the comments.
17345
17346 2004-05-10  Robert Dewar  <dewar@gnat.com>
17347
17348         * gnat_ugn.texi: Document that for config pragma files, the maximum
17349         line length is always 32767.
17350
17351         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
17352         literals is now allowed.
17353
17354         * gnat-style.texi: Remove statement about splitting long lines before
17355         an operator rather than after, since we do not follow this rule at all.
17356         Clarify rule (really lack of rule) for spaces around exponentiation
17357
17358         * sem_elim.adb: Allow concatenation of string literals as well as a
17359         single string literal for pragma arguments.
17360
17361         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
17362
17363         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
17364         written for append case.
17365
17366         * frontend.adb: Changes to avoid checking max line length in config
17367         pragma files.
17368
17369         * g-os_lib.ads: Minor reformatting
17370
17371         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
17372         wrong in any case. Instead use standard value. Noticed during code
17373         reading.
17374
17375         * opt.ads (Max_Line_Length): New field, used to implement removal of
17376         limitation on length of lines when scanning config pragma files.
17377
17378         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
17379         makeutl.ads, makeutl.adb: Minor reformatting
17380
17381         * scn.adb: Do not check line length while scanning config pragma files
17382         Do not check line length while scanning out license information
17383
17384         * scng.adb: Changes to avoid line length checks while parsing config
17385         pragma files.
17386
17387 2004-05-10  GNAT Script  <nobody@gnat.com>
17388
17389         * Make-lang.in: Makefile automatically updated
17390
17391 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
17392
17393         * osint.adb (Find_Program_Name): Fix handling of VMS version
17394         number.
17395
17396 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
17397
17398         * g-os_lib.ads (Invalid_Time): New constant
17399
17400         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
17401         return OS_Time instead of time_t to match what is imported by Ada.
17402         Now return -1 if the file doesn't exist, instead of a random value
17403
17404 2004-05-05  Robert Dewar  <dewar@gnat.com>
17405
17406         * usage.adb: Add line for -gnatR?s switch
17407
17408         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
17409
17410         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
17411         and for Match (Data_First, Data_last)
17412
17413         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
17414         written when we are dealing with multi-unit files.
17415
17416 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
17417
17418         * Makefile.in: Remove unused targets and variables.
17419
17420 2004-05-05  Vincent Celier  <celier@gnat.com>
17421
17422         * switch-m.adb: New gnatmake switch -eI
17423
17424         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
17425         of new gnatmake switch -eInnn.
17426
17427         * makegpr.adb: Take into account new parameters Index and Src_Index in
17428         Prj.Util.
17429
17430         * clean.adb: Implement support for multi-unit sources, including new
17431         switch -i.
17432
17433         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
17434         Src_Index.
17435
17436         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
17437         (Extract_From_Q): New out parameter Index
17438         (Mark, Is_Marked): Subprograms moved to Makeutl
17439         (Switches_Of): New parameter Source_Index
17440         (Add_Switch): New parameter Index
17441         (Check): New parameter Source_Index
17442         (Collect_Arguments): New parameter Source_Index
17443         (Collect_Arguments_And_Compile): New parameter Source_Index
17444         (Compile): New parameter Source_Index
17445         Put subprograms in alphabetical order
17446         Add support for multi-source sources, including in project files.
17447
17448         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
17449         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
17450         Make.
17451
17452         * makeusg.adb: New gnatmake switch -eInnn
17453
17454         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
17455         Prj.Util.Value_Of.
17456
17457         * opt.ads (Main_Index): New variable, defaulted to 0.
17458
17459         * osint.ads, osinte.adb (Add_File): New parameter Index
17460         (Current_Source_Index): New function
17461
17462         * prj.adb: Take into account new components Index and Src_Index
17463
17464         * prj.ads (String_Element): New component Index
17465         (Variable_Value): New component Index
17466         (Array_Element): New component Src_Index
17467
17468         * prj-attr.adb: Indicate that optional index may be specified for
17469         attributes Main, Executable, Spec, Body and some of Switches.
17470
17471         * prj-attr.ads (Attribute_Kind): New values for optional indexes
17472         (Attribute_Record): New component Optional_Index
17473
17474         * prj-com.ads (File_Name_Data): New component Index
17475
17476         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
17477
17478         * prj-env.adb (Put): Output optional index
17479
17480         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
17481         attributes Spec and Body.
17482
17483         * prj-nmsc.adb: Process optional indexes
17484
17485         * prj-pp.adb: Ouput "at" for optional indexes
17486
17487         * prj-proc.adb: Take into account optional indexes
17488
17489         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
17490         Optional_Index. For string literal,
17491         process optional index when Optional_Index is True.
17492         (Parse_Expresion): New Boolean parameter Optional_Index
17493
17494         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
17495         (Set_Source_Index_Of): New procedure
17496
17497         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
17498         index.
17499
17500         * prj-util.ads (Executable_Of): New parameter Index
17501         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
17502         New parameter Src_Index, defaulted to 0.
17503
17504 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17505
17506         PR ada/15257
17507         * sem_ch3.adb (Access_Definition): If this is an access parameter
17508         whose designated type is imported through a limited_with clause, do
17509         not add the enclosing subprogram to the list of private dependents of
17510         the type.
17511
17512 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17513
17514         PR ada/15258
17515         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
17516         a limited_with clause, and the other is its non-limited view.
17517
17518 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
17519
17520         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
17521
17522         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
17523         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
17524         Stand.Boolean_Literals to produce references to entities
17525         Standard_False and Standard_True from compile-time computed boolean
17526         values.
17527
17528         * stand.ads (Boolean_Literals): New variable, provides the entity
17529         values for False and True, for use by the expander.
17530
17531 2004-05-05  Doug Rupp  <rupp@gnat.com>
17532
17533         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
17534         5vinmaop.adb: Unchecked convert Short_Address vice Address
17535
17536         * adaint.c, raise.c: Caste CRTL function return value
17537         to avoid gcc error on 32/64 bit IVMS.
17538
17539         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
17540         target = IA64/VMS.
17541
17542         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
17543
17544         * 5qsystem.ads (Address): Declare as Long_Integer
17545         (Short_Address): Declare as 32 bit subtype of Address
17546         Declare  abstract address operations to avoid gratuitous ambiguities.
17547
17548 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
17549
17550         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
17551         instead of the old Boolean_Entry_Barriers.
17552         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
17553
17554 2004-05-05  GNAT Script  <nobody@gnat.com>
17555
17556         * Make-lang.in: Makefile automatically updated
17557
17558 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17559
17560         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
17561
17562 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
17563
17564         PR ada/15152
17565
17566         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
17567         alone. Replacing object references by literals is inappropriate in a
17568         so low level context.
17569
17570 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17571
17572         * a-exexpr.adb: Add comments
17573
17574 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
17575
17576         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
17577         declare the Ancestor_Tags array in Type_Specific_Data with a small size
17578         without risking a bounds check error when accessing one of its
17579         components.
17580         (Type_Specific_Data): Define Ancestor_Tags as a small array.
17581         This prevents us from hitting a limitation during the debug info
17582         generation when using stabs.
17583
17584         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
17585         small array.
17586         This prevents us from hitting a limitation during the debug info
17587         generation when using stabs.
17588
17589 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
17590
17591         lang-specs.h: Remove -gnatz* from specs.
17592
17593 2004-05-03  Vincent Celier  <celier@gnat.com>
17594
17595         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
17596
17597         * Make-lang.in, Makefile.in: Add gprmake
17598
17599 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
17600
17601         * sem_aggr.adb: Fix typo in comment.
17602
17603 2004-05-03  Robert Dewar  <dewar@gnat.com>
17604
17605         * make.adb: Minor reformatting
17606
17607         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
17608
17609         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
17610         so that it works when address is not a private type.
17611
17612         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
17613         properly with rewritten unchecked conversions. This prevents
17614         order-of-elaboration issues that can otherwise arise.
17615         (Minimum_Size): Don't check size of access types under VMS
17616
17617         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
17618         interpretations of integer literals as type System.Address.
17619
17620         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
17621         (Is_Descendent_Of): New function
17622
17623 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
17624
17625         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17626         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
17627         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
17628
17629         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
17630         of the old Max_Entry_Queue_Depth.
17631
17632         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17633         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
17634         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
17635
17636         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
17637         New entry for proper handling of Max_Entry_Queue_Depth.
17638         New entry for proper handling of No_Dynamic_Interrupts.
17639
17640         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
17641         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17642         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
17643         the GNAT specific restriction Max_Entry_Queue_Depth.
17644         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
17645         the GNAT specific restriction No_Dynamic_Interrupts.
17646
17647         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
17648         instead of the old Boolean_Entry_Barriers.
17649         Use the new restriction No_Dynamic_Attachment instead of the old
17650         No_Dynamic_Interrupts.
17651
17652         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
17653         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17654
17655         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
17656         of the old Max_Entry_Queue_Depth.
17657
17658 2004-05-03  GNAT Script  <nobody@gnat.com>
17659
17660         * Make-lang.in: Makefile automatically updated
17661
17662 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
17663
17664         * checks.adb (Enable_Range_Check): If the prefix of an index component
17665         is an access to an unconstrained array, perform check unconditionally.
17666
17667 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17668
17669         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
17670         Component_Clause.
17671
17672 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
17673
17674         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
17675         alternate stack setting. There was no support for the tasking cases
17676         and the changes eventually caused a number of side-effect failures in
17677         the non-tasking case too.
17678
17679 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
17680
17681         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
17682         -gnats is passed.
17683
17684 2004-04-29  Vincent Celier  <celier@gnat.com>
17685
17686         * make.adb (Gnatmake): Increase max size of argument array for
17687         gnatbind for the potential addition of -F.
17688         If there are Stand-Alone Library projects, invoke gnatbind with -F to
17689         be sure that elaboration flags will be checked.
17690
17691         * switch-c.adb: Correct call to Scan_Pos for -gnateI
17692
17693 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
17694
17695         * sem_warn.adb (Check_References): Move '<access-variable> may be
17696         null' warning out of under Warn_On_No_Value_Assigned.
17697
17698 2004-04-29  Ed Falis  <falis@gnat.com>
17699
17700         * gnat_ugn.texi: Fixed texi error
17701
17702 2004-04-29  Robert Dewar  <dewar@gnat.com>
17703
17704         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
17705         abstract operations if they come from predefined files.
17706
17707         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
17708         Dynamic, not RM).
17709
17710         * s-addope.adb: Correct obvious error in mod function
17711
17712 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
17713
17714         * Makefile.in: Add target pairs for powerpc darwin*
17715         tasking support.
17716
17717         * a-intnam-darwin.ads, s-osinte-darwin.adb,
17718         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
17719
17720 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17721
17722         * Makefile.in: Add target macro definitions for s390*-linux*.
17723         * system-linux-s390.ads: New file.
17724         * system-linux-s390x.ads: New file.
17725
17726 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
17727
17728         * gnat_ugn.texi: Correct argument to @setfilename.
17729
17730 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17731
17732         * a-exexpr.adb (Unwind_Word): New data type.
17733         (Unwind_Exception): Use it as type of Private1 and Private2.
17734
17735         * raise.c (db_action_for): Fix debug printf.
17736
17737 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
17738
17739         * a-wtmoio.ads: Formal type must be a modular type, not a signed
17740         integer type.
17741
17742 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17743
17744         * decl.c (gnat_to_gnu_entity, case object): Call
17745         __builtin_update_setjmp_buf.
17746
17747         * gigi.h (update_setjmp_buf): Deleted.
17748         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
17749
17750         * misc.c: (update_setjmp_buf): Deleted.
17751
17752         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
17753         around block of RTL.
17754
17755         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
17756
17757 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
17758
17759         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
17760         subprogram for which no pragma All_Calls_Remote applies, store the
17761         address of the real subprogram in the underlying record type, so local
17762         dereferences do not go through the PCS.
17763
17764 2004-04-26  Robert Dewar  <dewar@gnat.com>
17765
17766         * i-c.ads: Add some type qualifications to avoid ambiguities when
17767         compiling with s-auxdec.ads and a non-private address type.
17768
17769 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
17770
17771         * Makefile.rtl: Fix error in previous check-in:
17772         Add s-addope.o to non tasking object list (rather than tasking object
17773         list).
17774
17775 2004-04-26  Javier Miranda  <miranda@gnat.com>
17776
17777         * sem_aggr.adb: Fix typo in comments
17778         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
17779         Required to check the null-exclusion attribute.
17780
17781         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
17782         case of anonymous access types in record and array components. For a
17783         component definition the level is the same of the enclosing composite
17784         type.
17785
17786         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
17787         that are anonymous access types the level of accessibility depends on
17788         the enclosing type declaration. In order to have this information, set
17789         the scope of the anonymous access type to the enclosing record type
17790         declaration.
17791         (Array_Type_Declaration): In case of components that are anonymous
17792         access types the level of accessibility depends on the enclosing type
17793         declaration. In order to have this information, set the scope of the
17794         anonymous access type to the enclosing array type declaration.
17795
17796         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
17797         access type.
17798
17799         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
17800         renaming of anonymous access-to-constant types allowed if and only if
17801         the renamed object is access-to-constant.
17802
17803         * sem_util.adb (Type_Access_Level): In case of anonymous access types
17804         that are component_definition or discriminants of a nonlimited type,
17805         the level is the same as that of the enclosing component type.
17806
17807 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
17808
17809         * sem_elim.adb: Some minor code reorganization from code reading. Fix
17810         misprint in the function name (File_Name_Match).
17811
17812 2004-04-23  Laurent GUERBY <laurent@guerby.net>
17813
17814         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
17815         install.
17816
17817 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17818
17819         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
17820
17821 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
17822
17823         * adaint.c (__gnat_try_lock): No longer requires that the parent
17824         directory be writable, the directory itself is enough.
17825         (gnat_is_absolute_path): Change profile, so that the call from
17826         GNAT.OS_Lib can be made more efficient.
17827
17828         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
17829         from GNAT.OS_Lib can be made more efficient.
17830
17831         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
17832         one copy of the file name. Found by code reading.
17833
17834 2004-04-23  Vincent Celier  <celier@gnat.com>
17835
17836         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
17837         Correct documentation on gnatmake switches transmitted to the compiler
17838
17839         * ali.ads: Minor comment fix
17840
17841 2004-04-23  Javier Miranda  <miranda@gnat.com>
17842
17843         * sem_ch6.adb: (Confirming Types): Code cleanup
17844
17845         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
17846         subprogram types: E_Anonymous_Access_Subprogram_Type and
17847         E_Anonymous_Access_Protected_Subprogram_Type.
17848
17849 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
17850
17851         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17852         whether a pragma All_Calls_Remote applies to the subprogram on which
17853         'Access is taken.
17854         No functional change is introduced by this revision; the new parameter
17855         will be used to allow calls to local RCI subprograms to be optimized
17856         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17857         as is already done in the PolyORB implementation of the DSA.
17858
17859         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17860         whether a pragma All_Calls_Remote applies to the subprogram on which
17861         'Access is taken.
17862         No functional change is introduced by this revision; the new parameter
17863         will be used to allow calls to local RCI subprograms to be optimized
17864         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17865         as is already done in the PolyORB implementation of the DSA.
17866
17867 2004-04-23  Robert Dewar  <dewar@gnat.com>
17868
17869         * Makefile.rtl: Add entry for s-addope.o in run time library list
17870         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
17871         * s-addope.ads, s-addope.adb: New files.
17872
17873         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
17874         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
17875         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
17876         System.Address to be non-private and signed.
17877
17878         * sem_elim.adb: Minor reformatting (fairly extensive)
17879         Some minor code reorganization from code reading
17880         Add a couple of ??? comments
17881
17882 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17883
17884         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
17885         (tree_transform, case N_If_Statement): Remove non-determinism.
17886
17887         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
17888
17889 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
17890
17891         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
17892         Eliminate' section.
17893
17894         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
17895         no longer used as a parameter name for Eliminate pragma).
17896
17897 2004-04-22  Laurent GUERBY <laurent@guerby.net>
17898
17899         PR optimization/14984
17900         PR optimization/14985
17901         * trans.c (gigi): Fix non determinism leading to bootstrap
17902         comparison failures.
17903
17904 2004-04-21  Pascal Obry  <obry@gnat.com>
17905
17906         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
17907         passed to spawnvp() to properly handle program pathname with spaces on
17908         Win32.
17909
17910 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
17911
17912         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
17913         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
17914         unlocked in case of exceptions.
17915
17916 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17917
17918         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
17919         This function does not exist anymore.
17920
17921 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17922
17923         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
17924
17925         * link.c: Move variables to the __gnat name space.
17926
17927         * Makefile.in: list link.o explicitly when needed.
17928
17929         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
17930
17931 2004-04-21  Javier Miranda  <miranda@gnat.com>
17932
17933         * einfo.adb (Original_Access_Type): New subprogram
17934         (Set_Original_Access_Type): New subprogram
17935         (Write_Field21_Name): Write the name of the new field
17936
17937         * einfo.ads (Original_Access_Type): New field present in access to
17938         subprogram types.
17939         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
17940         E_Anonymous_Access_Protected_Subprogram_Type.
17941
17942         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
17943         subprogram types.
17944
17945         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
17946         to anonymous access to subprogram types.
17947
17948         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
17949         to subprogram types.
17950
17951         * sem_ch3.adb (Access_Definition): Complete decoration of entities
17952         corresponding to anonymous access to subprogram types.
17953         (Analyze_Component_Declaration): Add new actual to the call to
17954         subprogram replace_anonymous_access_to_protected_subprogram.
17955         (Array_Type_Declaration): Add new actual to the call to subprogram
17956         replace_anonymous_access_to_protected_subprogram.
17957         (Process_Discriminants): Add new actual to the call to subprogram
17958         replace_anonymous_access_to_protected_subprogram.
17959         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
17960
17961         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
17962         formal.
17963
17964         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
17965         access to subprogram types.
17966
17967         * sem_util.adb (Has_Declarations): Addition of package_specification
17968         nodes.
17969
17970 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
17971
17972         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
17973         inlined flags to renamed entity only if in current unit.
17974
17975 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17976
17977         * s-parint.ads: Add DSA implementation marker.
17978
17979         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
17980         value of System.Partition_Interface.DSA_Implementation to determine
17981         what version of the distributed systems annex is available (no
17982         implementation, GLADE, or PolyORB).
17983
17984 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17985
17986         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
17987
17988 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17989
17990         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
17991         with new type if alias sets differ.
17992         Fixes ACATS c41103b.
17993
17994 2004-04-21  Vincent Celier  <celier@gnat.com>
17995
17996         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
17997         Add array Lang_Args for the language specific compiling argument
17998         switches.
17999
18000         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
18001
18002 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
18003
18004         * gnat_rm.texi: Update the descripton of the Eliminate pragma
18005         according to the recent changes in the format of the parameters of the
18006         pragma (replacing Homonym_Number with Source_Location).
18007
18008 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
18009
18010         * 5isystem.ads: Removed, unused.
18011
18012         * gnat_rm.texi: Redo 1.13 change.
18013
18014 2004-04-19  Robert Dewar  <dewar@gnat.com>
18015
18016         * s-stoele.ads: Clean up definition of Storage_Offset (the new
18017         definition is cleaner, avoids the kludge of explicit Standard operator
18018         references, and also is consistent with a visible System.Address with
18019         no visible operations.
18020
18021         * s-geveop.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         * sem_eval.adb: Minor reformatting
18027
18028         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
18029         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
18030         reformatting (new function spec format).
18031
18032         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
18033         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
18034         s-caun64.adb: Add declarations to avoid assumption of visible
18035         operations on type System.Address (since these might not be available
18036         if Address is a non-private type for which the operations are made
18037         abstract).
18038
18039         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
18040
18041         * exp_intr.adb: Minor comment update
18042
18043         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
18044
18045         * 5omastop.adb: Add declarations to avoid assumption of visible
18046         operations on type System.Address (since these might not be available
18047         if Address is a non-private type for which the operations
18048         are made abstract).
18049
18050 2004-04-19  Vincent Celier  <celier@gnat.com>
18051
18052         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
18053
18054         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
18055         defaulted to Ada.
18056
18057         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
18058         defaulted to Ada.
18059         Call Check with Process_Languages.
18060         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
18061         with Process_Languages.
18062         (Recursive_Check): New Boolean parameter Process_Languages. Call
18063         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
18064         Process_Languages.
18065
18066         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
18067
18068         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
18069         parameter Ada_Main, defaulted to True.
18070         Check for Ada specific characteristics only when Ada_Main is True.
18071
18072         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
18073
18074         * prj.adb: (Project_Empty): Add new Project_Data components.
18075
18076         * prj.ads: New types and tables for non Ada languages.
18077         (Project_Data): New components Languages, Impl_Suffixes,
18078         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
18079         Include_Path, Include_Data_Set.
18080
18081         * prj-env.ads, prj-env.adb: Minor reformatting
18082
18083         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
18084         Put subprograms in alphabetical order
18085
18086         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
18087         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
18088         Opt.Follow_Links.
18089
18090         * mlib-prj.adb: Back out modification in last version, as they are
18091         incorrect.
18092         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
18093
18094         * make.adb: (Mains): Moved to package Makeutl
18095         (Linker_Opts): Moved to package Makeutl
18096         (Is_External_Assignment): Moved to package Makeutl
18097         (Test_If_Relative_Path): Moved to package Makeutl
18098         (Gnatmake): Move sorting of linker options to function
18099         Makeutl.Linker_Options_Switches.
18100
18101         * makeutl.ads, makeutl.adb: New files.
18102
18103         * Makefile.in: Add makeutl.o to the object files for gnatmake
18104
18105         * makeusg.adb: Add line for new switch -eL.
18106
18107         * gnatls.adb (Image): New function.
18108         (Output_Unit): If in verbose mode, output the list of restrictions
18109         specified by pragmas Restrictions.
18110
18111         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
18112         Text_IO.
18113
18114         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
18115         needed, to put it in the range 1970 (included) - 2026 (excluded).
18116         (Time_Of): Do not shift Unix_Min_Year (1970).
18117         Shift the date by multiple of 56 years, if needed, to put it in the
18118         range 1970 (included) - 2026 (excluded).
18119
18120         * adaint.h, adaint.c (__gnat_set_executable): New function.
18121
18122 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18123
18124         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
18125         and pop GC context.
18126         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
18127         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
18128         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
18129         (tree_transform, case N_Code_Statement): Likewise.
18130         (gnat_expand_stmt, case LABEL_STMT): Don't look at
18131         LABEL_STMT_FIRST_IN_EH.
18132         (gnat_expand_stmt, case ASM_STMT): New case.
18133
18134         * utils2.c (build_unary_op): Properly set TREE_READONLY of
18135         UNCONSTRAINED_ARRAY_REF.
18136
18137         * utils.c (poplevel): Temporarily push/pop GC context around inline
18138         function expansion.
18139
18140         * decl.c (maybe_variable): Properly set TREE_READONLY of
18141         UNCONSTRAINED_ARRAY_REF.
18142         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
18143
18144         * ada-tree.def: (ASM_STMT): New.
18145
18146         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
18147         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
18148         ASM_STMT_INPUT): New.
18149         (ASM_STMT_CLOBBER): Likewise.
18150
18151 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
18152
18153         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
18154         general rcheck mechanism to raise Program_Error for E.4(18), instead
18155         of a custom raiser in System.Partition_Interface.
18156         Part of general cleanup work before PolyORB integration.
18157
18158         * snames.ads, snames.adb: Add new runtime library entities and names
18159         for PolyORB DSA.
18160
18161         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18162         exp_dist.
18163         (Build_Subprogram_Id): New subprogram provided by exp_dist
18164         Code reorganisation in preparation for PolyORB integration.
18165
18166         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18167         exp_dist.
18168         (Build_Subprogram_Id): New subprogram provided by exp_dist
18169
18170         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
18171         actual parameter types for call to dereference of an
18172         access-to-subprogram type.
18173
18174         * rtsfind.ads: Add new runtime library entities and names for PolyORB
18175         DSA.
18176
18177         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
18178         instead, which has the same behaviour here since we never pass it a
18179         NULL pointer.
18180
18181         * link.c (run_path_option, Solaris case): Use -Wl, as for other
18182         platforms.
18183
18184         * Makefile.in: adjust object file lists for gnatlink and gnatmake
18185         to account for new dependency upon Interfaces.C.Strings + link.o
18186         For x86 FreeBSD, use 86numaux.
18187
18188         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
18189         from Mlib.Tgt to Mlib.
18190
18191         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
18192         target-independent.
18193
18194         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
18195         target-specific versions of this subprogram, now implemented as a
18196         target-independent function in Mlib.
18197
18198         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
18199         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
18200         (Linker_Library_Path_Option): Remove target-specific versions of this
18201         subprogram, now implemented as a target-independent function in Mlib.
18202
18203         * atree.adb: (Allocate_Initialize_Node): New subprogram.
18204         Factors out node table slots allocation.
18205         (Fix_Parents): New subprogram.
18206         Encapsulate the pattern of fixing up parent pointers for syntactic
18207         children of a rewritten node.
18208         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
18209         (Rewrite): Use New_Copy when creating saved copy of original node.
18210         (Replace): Use Copy_Node to copy nodes.
18211
18212 2004-04-19  Javier Miranda  <miranda@gnat.com>
18213
18214         * sprint.adb (Sprint_Node_Actual): Give support to the new
18215         Access_To_Subprogram node available in Access_Definition nodes. In
18216         addition, give support to the AI-231 node fields: null-exclusion,
18217         all-present, constant-present.
18218
18219         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
18220
18221         * sinfo.ads, sinfo.adb:
18222         New field Access_To_Subprogram_Definition in Access_Definition nodes
18223
18224         * sem_ch6.adb (Process_Formals): Move here the code that creates and
18225         decorates internal subtype declaration corresponding to the
18226         null-excluding formal. This code was previously in Set_Actual_Subtypes.
18227         In addition, carry out some code cleanup on this code. In case of
18228         access to protected subprogram call
18229         Replace_Anonymous_Access_To_Protected_Subprogram.
18230         (Set_Actual_Subtypes): Code cleanup.
18231
18232         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
18233         Find_Type in case of anonymous access renamings. Add warning in case of
18234         null-excluding attribute used in anonymous access renaming.
18235
18236         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
18237         subprogram
18238
18239         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
18240         subprogram.
18241         (Access_Definition): In case of anonymous access to subprograms call
18242         the corresponding semantic routine to decorate the node.
18243         (Access_Subprogram_Declaration): Addition of some comments indicating
18244         some code that probably should be added here. Detected by comparison
18245         with the access_definition subprogram.
18246         (Analyze_Component_Declaration): In case of access to protected
18247         subprogram call Replace_Anonymous_Access_To_Protected.
18248         (Array_Type_Declaration): In case of access to protected subprogram call
18249         Replace_Anonymous_Access_To_Protected_Subprogram.
18250         (Process_Discriminants): In case of access to protected subprogram call
18251         Replace_Anonymous_Access_To_Protected_Subprogram.
18252
18253         * par.adb (P_Access_Definition): New formal that indicates if the
18254         null-exclusion part was present.
18255         (P_Access_Type_Definition): New formal that indicates if the caller has
18256         already parsed the null-excluding part.
18257
18258         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
18259         (P_Identifier_Declarations): Code cleanup and give support to renamings
18260         of anonymous access to subprogram types.
18261         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
18262         (P_Array_Type_Definition): Give support to AI-254.
18263         (P_Component_Items): Give support to AI-254.
18264         (P_Access_Definition): New formal that indicates if the header was
18265         already parsed by the caller.
18266         (P_Access_Type_Definition): New formal that indicates if the caller has
18267         already parsed the null-excluding part.
18268
18269         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
18270         call to P_Access_Definition.
18271
18272 2004-04-19  Geert Bosch  <bosch@gnat.com>
18273
18274         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
18275         the delicate semantics of floating-point to integer conversion.
18276         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
18277
18278         * eval_fat.adb (Machine_Mantissa): Moved to spec.
18279         (Machine_Radix): New function.
18280
18281         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
18282         conversion checks.
18283         (Machine_Radix): New function also for use in conversion checks.
18284
18285 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
18286
18287         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
18288
18289         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
18290         to decorate the access-to-protected subprogram and the equivalent type.
18291
18292         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
18293         to anonymous access to subprogram types.
18294
18295         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
18296         constant-folding, for legality checks in contexts that require an RM
18297         static expression.
18298
18299         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
18300         temporary but stack checking is not enabled, increment serial number
18301         to so that symbol generation is consistent with and without stack
18302         checking.
18303
18304         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
18305         independent on whether stack checking is enabled, caller must check
18306         the corresponding flag.
18307
18308         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
18309         range checks.
18310         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
18311         parent if it has discriminants.
18312         (Build_Derived_Private_Type): Constructed full view does
18313         not come from source.
18314         (Process_Discriminants): Default discriminants on a tagged type are
18315         legal if this is the internal completion of a private untagged
18316         derivation.
18317
18318         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
18319         no constraint checks, because it corresponds to an existing object.
18320
18321         * sem_prag.adb (Process_Convention): Pragma applies
18322         only to subprograms in the same declarative part, i.e. the same unit,
18323         not the same scope.
18324
18325         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
18326         ignore type mismatch on a numeric conversion if expression comes from
18327         expansion.
18328
18329 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
18330
18331         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
18332         Homonym_Number parameter, add processing for Source_Location parameter
18333         corresponding.
18334         (Check_Eliminated): Remove the check for homonym numbers, add the check
18335         for source location traces.
18336
18337         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
18338         with Arg_Source_Location corresponding to the changes in the format of
18339         the pragma.
18340
18341         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
18342         Eliminate pragma corresponding to the changes in the format of the
18343         pragma: Homonym_Number is replaced with Source_Location, two ways of
18344         distinguishing homonyms are mutially-exclusive.
18345
18346 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
18347
18348         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
18349
18350         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
18351         No_Dollar_In_Label, no longer necessary, as it is always True.
18352         (Strip_Suffixes): Likewise.
18353
18354 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
18355
18356         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
18357         modulus for compatibility with size clause on targets with 16-bit
18358         Integer.
18359
18360         * layout.adb (Discrimify): In the case of private types, set Vtyp to
18361         full type to fix type mismatches on calls to size functions for
18362         discriminant-dependent array components.
18363
18364 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
18365
18366         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
18367         lib.
18368
18369 2004-04-19  Pascal Obry  <obry@gnat.com>
18370
18371         * mdll-utl.adb (Locate): New version is idempotent.
18372
18373 2004-04-17  Laurent Guerby <laurent@guerby.net>
18374
18375         PR ada/14988 (partial)
18376         * impunit.adb: Fix typo.
18377
18378 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
18379
18380         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
18381         and install-rts-cert targets.  Remove all gnatlib and gnattools
18382         targets and all other rts-* targets (moved to libada).  Remove (now)
18383         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
18384         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
18385
18386 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18387
18388         * trans.c (tree_transform): Shortcut returning error_mark_node for
18389         statements in annotate_only_mode.
18390         (tree_transform, case N_Label, case N_Return_Statement,
18391         N_Goto_Statement): Make statement tree instead of generating code.
18392         (tree_transform, case N_Assignment_Statement): No longer check
18393         type_annotate_only.
18394         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
18395         RETURN_STMT): New.
18396         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
18397         New fcns.
18398         (gnat_to_gnu): Collect any RTL generated and deal with it.
18399         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
18400         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
18401         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
18402
18403         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
18404
18405         * ada-tree.def (EXPR_STMT): Fix typo in name.
18406         (BLOCK_STMT, IF_STMT): New nodes.
18407
18408         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
18409         LABEL_STMT_FIRST_IN_EH): New macros.
18410         (RETURN_STMT_EXPR): Likewise.
18411
18412         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
18413         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
18414
18415 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18416
18417         * atree.ads: Correct documentation on extended nodes.
18418
18419         * link.c: Set run_path_option for FreeBSD.
18420
18421 2004-04-08  Vincent Celier  <celier@gnat.com>
18422
18423         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
18424         one of the ALI file, do not link with DEC lib.
18425
18426         * par.adb Remove the last two characters ("%s" or "%b") when checking
18427         if a language defined unit may be recompiled.
18428
18429 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
18430
18431         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
18432         removal of abstract operation leaves no possible interpretation for
18433         expression.
18434
18435         * sem_eval.adb (Eval_Qualified_Expression): Use
18436         Set_Raises_Constraint_Error on node when needed, so that it does not
18437         get optimized away by subsequent optimizations.
18438
18439         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
18440         operands even when they are not wrapped in a type conversion.
18441
18442 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
18443
18444         * sem_prag.adb (Set_Exported): Warn about making static as result of
18445         export only when the export is coming from source. This may be not
18446         be true e.g. on VMS where we expand export pragmas for exception codes
18447         together with imported or exported exceptions, and we don't want the
18448         user to be warned about something he didn't write.
18449
18450 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18451
18452         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
18453         duplication between normal entities and those declared as renamings.
18454         No functional change.
18455
18456         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
18457         inline functions returning an unconstrained result.
18458
18459 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
18460
18461         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
18462         conform to what other front-ends do.
18463
18464 2004-04-08  Doug Rupp  <rupp@gnat.com>
18465
18466         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
18467         libraries.
18468
18469 2004-04-06  Pascal Obry  <obry@gnat.com>
18470
18471         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
18472
18473         * osint.adb (Program_Name): Do not look past a directory separator.
18474
18475 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
18476
18477         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
18478
18479         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
18480         requirement for preserving a copy of the original assignment node.
18481
18482         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
18483
18484 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
18485
18486         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
18487         when supported.
18488
18489 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
18490
18491         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
18492         operator calls in functional notation, and apply
18493         Universal_Interpretation to operands, not to their type.
18494
18495 2004-04-06  Robert Dewar  <dewar@gnat.com>
18496
18497         * 5wdirval.adb: Minor reformatting
18498
18499 2004-04-06  Ed Falis  <falis@gnat.com>
18500
18501         * gnat_rm.texi: Improve a reference to the GCC manual
18502
18503 2004-04-05  Vincent Celier  <celier@gnat.com>
18504
18505         * adaint.h, adaint.c: Add function __gnat_named_file_length
18506
18507         * impunit.adb: Add Ada.Directories to the list
18508
18509         * Makefile.in: Add VMS and Windows versions of
18510         Ada.Directories.Validity package body.
18511
18512         * Makefile.rtl: Add a-direct and a-dirval
18513
18514         * mlib-tgt.ads: Minor comment update.
18515
18516         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
18517         a-direct.ads, a-direct.adb: New files.
18518
18519 2004-04-05  Vincent Celier  <celier@gnat.com>
18520
18521         PR ada/13620
18522         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
18523         just to the compiler.
18524
18525 2004-04-05  Robert Dewar  <dewar@gnat.com>
18526
18527         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
18528         returned string is 1.
18529
18530         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
18531
18532         * eval_fat.ads: Minor reformatting
18533
18534         * g-curexc.ads: Document that lower bound of returned string values
18535         is always one.
18536
18537         * gnatlink.adb: Add ??? comment for previous change
18538         (need to document why this is VMS specific)
18539
18540         * s-stoele.ads: Minor reformatting
18541
18542         * tbuild.ads: Minor reformatting throughout (new function specs)
18543
18544         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
18545         after WITH.
18546
18547         * scng.adb: Minor reformatting
18548
18549 2004-04-05  Geert Bosch  <bosch@gnat.com>
18550
18551         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
18552         (Leading_Part): Still perform truncation to machine number if the
18553         specified radix_digits is greater or equal to machine_mantissa.
18554
18555 2004-04-05  Javier Miranda  <miranda@gnat.com>
18556
18557         * par-ch3.adb: Complete documentation of previous change
18558         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
18559         (aliased must appear before constant).
18560
18561         * par-ch4.adb: Complete documentation of previous change.
18562
18563         * par-ch6.adb: Complete documentation of previous change.
18564
18565         * sinfo.ads: Fix typo in commment.
18566
18567 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
18568
18569         * sem_ch3.adb (Inherit_Components): If derived type is private and has
18570         stored discriminants, use its discriminants to constrain parent type,
18571         as is done for non-private derived record types.
18572
18573         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
18574         Ada 2005 AI-310: an abstract non-dispatching operation is not a
18575         candidate interpretation in an overloaded call.
18576
18577         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
18578         expression is Null and target type is not an access type (e.g. a
18579         non-private address type).
18580
18581 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
18582
18583         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
18584         statement whose right-hand side is an inlined call, save a copy of the
18585         original assignment subtree to preserve enough consistency for
18586         Analyze_Assignment to proceed.
18587
18588         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
18589         complete assignment subtree which is now unnecessary, as the expansion
18590         of inlined call has been improved to preserve a consistent assignment
18591         tree.  Note_Possible_Modification must be called only
18592         after checks have been applied, or else unnecessary checks will
18593         be generated.
18594
18595         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
18596         of explicit dereferences that do not Come_From_Source:
18597          - be selective on cases where we must go back to the dereferenced
18598            pointer (an assignment to an implicit dereference must not be
18599            recorded as modifying the pointer);
18600          - do not rely on Original_Node being present (Analyze_Assignment
18601            calls Note_Possible_Modification on a copied tree).
18602
18603         * sem_warn.adb (Check_References): When an unset reference to a pointer
18604         that is never assigned is encountered, prefer '<pointer> may be null'
18605         warning over '<pointer> is never assigned a value'.
18606
18607 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
18608
18609         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
18610         the ABI.
18611
18612 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
18613
18614         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
18615         libexc. We currently don't reference anything in this library and
18616         linking it in triggers linker warnings we don't want to see.
18617
18618         * init.c: Update comments.
18619
18620 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18621
18622         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
18623         * utils.c (create_field_decl): Likewise.
18624         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
18625
18626 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
18627
18628         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
18629         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
18630         Add info directory entry and category.
18631
18632 2004-04-02  Jan Hubicka  <jh@suse.cz>
18633
18634         * utils.c: Include function.h
18635         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
18636
18637 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18638
18639         PR ada/14150
18640         * Make-lang.in: Clean up generation of documentation
18641
18642         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
18643
18644         * xgnatug.adb: Removed, replaced by xgnatugn.adb
18645
18646         * xgnatugn.adb: Replaces xgnatug.adb
18647
18648         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
18649
18650         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
18651
18652         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
18653         gnat_ug_wnt.texi: Removed.
18654
18655 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18656
18657         * utils2.c: Update copyright notice.
18658
18659 2004-04-01  Robert Dewar  <dewar@gnat.com>
18660
18661         * checks.adb: Minor reformatting throughout
18662         Note that prev checkin added RM reference to alignment warning
18663
18664 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
18665
18666         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
18667         non-static when building aggregate for bit-packed array.
18668
18669         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
18670         function call that is itself the actual in a procedure call, build
18671         temporary for it.
18672
18673         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
18674         a string literal, create a temporary for it, constant folding only
18675         handles scalars here.
18676
18677 2004-04-01  Vincent Celier  <celier@gnat.com>
18678
18679         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
18680         Error_Msg_SP): New empty procedures to instantiate the Scanner.
18681         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
18682         tokens.
18683         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
18684         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
18685         and get the checksum.
18686
18687         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
18688         already in the Q.
18689         Increase the Marking_Label at the end of the Multiple_Main_Loop,
18690         instead of at the beginning.
18691
18692         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
18693         directly.
18694         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
18695         on VMS.
18696
18697         * osint.ads (Multi_Unit_Index_Character): New Character global variable
18698
18699         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
18700         not '~' directly.
18701
18702         * par.adb: Remove test on file name to detect language defined units.
18703         Add test on unit name, after parsing, to detect language defined units
18704         that are not compiled with -gnatg (except System.RPC and its children)
18705
18706         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
18707         following units without style checking.
18708
18709         * switch-c.adb: Change -gnatC to -gnateI
18710
18711         * usage.adb: Document new switch -gnateInnn
18712
18713         * scng.adb (Accumulate_Token_Checksum): New procedure
18714         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
18715         word or literal number.
18716         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
18717         numbers.
18718
18719 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
18720
18721         * a-tasatt.adb,
18722         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
18723         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
18724         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
18725         5vtpopde.adb: Add missing 'constant' keywords.
18726
18727 2004-04-01  Javier Miranda  <miranda@gnat.com>
18728
18729         * par-ch4.adb: (P_Allocator): Code cleanup
18730
18731         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
18732         attribute.
18733
18734         * sinfo.ads: Complete documentation of previous change
18735
18736 2004-04-01  Pascal Obry  <obry@gnat.com>
18737
18738         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
18739         only on VMS.  This special handling was done because an old GNU/ld bug
18740         on Windows which has been fixed.
18741
18742 2004-04-01  GNAT Script  <nobody@gnat.com>
18743
18744         * Make-lang.in: Makefile automatically updated
18745
18746 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18747
18748         * decl.c (gnat_to_gnu_entity, make_type_from_size):
18749         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
18750         * trans.c (tree_transform, convert_with_check): Likewise.
18751         * utils.c (gnat_signed_or_unsigned_type): Likewise.
18752         (build_vms_descriptor, unchecked_convert): Likewise.
18753         * utils2.c (nonbinary_modular_operation): Likewise.
18754
18755 2004-03-29  Javier Miranda  <miranda@gnat.com>
18756
18757         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
18758         (Install_Null_Excluding_Check): Local subprogram that determines whether
18759         an access node requires a runtime access check and if so inserts the
18760         appropriate run-time check.
18761         (Apply_Access_Check): Call Install_Null_Excluding check if required
18762         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
18763
18764         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
18765
18766         * einfo.ads: Fix typo in comment
18767
18768         * exp_ch3.adb (Build_Assignment): Generate conversion to the
18769         null-excluding type to force the corresponding run-time check.
18770         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
18771         type to force the corresponding run-time check.
18772
18773         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
18774         the null-excluding type to force the corresponding run-time check.
18775
18776         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
18777         case of access types unless they have the null-excluding attribute.
18778
18779         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
18780         part.
18781
18782         * exp_util.ads: Fix typo in comment
18783
18784         * par.adb (P_Null_Exclusion): New subprogram
18785         (P_Subtype_Indication): New formal that indicates if the null-excluding
18786         part has been scanned-out and it was present
18787
18788         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
18789
18790         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
18791         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
18792         type to force the corresponding run-time check
18793         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
18794         components
18795         (Resolve_Array_Aggregate): Carry out some static checks
18796         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
18797
18798         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
18799         attribute must be set only if specified by means of the null-excluding
18800         part. In addition, we must also propagate the access-constant attribute
18801         if present.
18802         (Access_Subprogram_Declaration, Access_Type_Declaration,
18803         Analyze_Component_Declaration, Analyze_Object_Declaration,
18804         Array_Type_Declaration, Process_Discriminants,
18805         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
18806         and carry out some static checks.
18807         (Build_Derived_Access_Type): Set the null-excluding attribute
18808         (Derived_Type_Declaration, Process_Subtype): Carry out some static
18809         checks.
18810
18811         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
18812
18813         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
18814
18815         * sem_ch6.adb (Process_Formals): Carry out some static checks.
18816         (Set_Actual_Subtypes): Generate null-excluding subtype if the
18817         null-excluding part was present; it is not required to be done here in
18818         case of anonymous access types.
18819         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
18820         value.
18821
18822         * sem_res.adb (Resolve_Actuals): Carry out some static check
18823         (Resolve_Null): Allow null in anonymous access
18824
18825         * sinfo.adb: New subprogram Null_Exclusion_Present
18826         All_Present and Constant_Present available on access_definition nodes
18827
18828         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
18829         object_declaration, derived_type_definition, component_definition,
18830         discriminant_specification, access_to_object_definition,
18831         access_function_definition, allocator, access_procedure_definition,
18832         access_definition, parameter_specification, All_Present and
18833         Constant_Present flags available on access_definition nodes.
18834
18835 2004-03-29  Robert Dewar  <dewar@gnat.com>
18836
18837         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
18838         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
18839         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
18840         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
18841         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
18842         sem_prag.adb: Updates to handle multiple units/file
18843
18844         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
18845
18846         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
18847         sem_util.adb: Minor reformatting
18848
18849         * sem_ch12.adb: Add comment for previous change
18850
18851 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
18852
18853         * osint.adb (Executable_Prefix): Set Exec_Name to the current
18854         executable name when not initialized. Otherwise, use its current value.
18855
18856         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
18857         initialize it to another executable name than the current one. This
18858         allows to configure paths for an executable name (gnatmake) different
18859         from the current one (gnatdist).
18860
18861 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
18862
18863         * exp_ch6.adb (Expand_Call): A call to a function declared in the
18864         current unit cannot be inlined if it appears in the body of a withed
18865         unit, to avoid order of elaboration problems in gigi.
18866
18867         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
18868         information for protected (wrapper) operation as well, to simplify gdb
18869         use.
18870
18871         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
18872         protected body, indicate that the entity for the generated spec comes
18873         from source, to ensure that references are properly generated for it.
18874         (Build_Body_To_Inline): Do not inline a function that returns a
18875         controlled type.
18876
18877         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
18878         apply convention to homonyms that are declared explicitly.
18879
18880         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
18881         that renames an equality operator and the operands are overloaded,
18882         resolve them with the declared formal types, before rewriting as an
18883         operator.
18884
18885 2004-03-29  GNAT Script  <nobody@gnat.com>
18886
18887         * Make-lang.in: Makefile automatically updated
18888
18889 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
18890
18891         * memtrack.adb: Log realloc calls, which are treated as free followed
18892         by alloc.
18893
18894 2004-03-25  Vincent Celier  <celier@gnat.com>
18895
18896         * prj-makr.adb (Process_Directories): Detect when a file contains
18897         several units. Do not include such files in the config pragmas or
18898         in the naming scheme.
18899
18900         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
18901         Resolve links only when not in Trusted_Mode.
18902         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
18903         Do not resolve links for the display names.
18904
18905         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
18906         resolve links when computing the display names.
18907
18908 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
18909
18910         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
18911         attribute reference does not denote a subtype, it can be any
18912         expression that has a classwide type, potentially after an implicit
18913         dereference.  In particular, the prefix can be a view conversion for
18914         a classwide type (for which Is_Object_Reference holds), but it can
18915         also be a value conversion for an access-to-classwide type. In the
18916         latter case, there is an implicit dereference, and the original node
18917         for the prefix does not verify Is_Object_Reference.
18918
18919         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
18920         conversion of a discriminant-dependent component of a mutable object
18921         is one itself.
18922
18923 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
18924
18925         * freeze.adb (Freeze_Entity): When an inherited subprogram is
18926         inherited, has convention C, and has unconstrained array parameters,
18927         place the corresponding warning on the derived type declaration rather
18928         than the original subprogram.
18929
18930         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
18931         indication on renaming declaration, if formal has a box and actual
18932         is absent.
18933
18934         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
18935         determine whether to generate an implicit or explicit reference to
18936         the renamed entity.
18937
18938         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
18939         subprogram renaming comes from a defaulted formal subprogram in an
18940         instance.
18941
18942 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
18943
18944         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
18945         value expressions to ensure that calls within a component definition
18946         will be checked (since those are evaluated during the record type's
18947         elaboration).
18948
18949 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
18950
18951         * s-tpobop.adb: Code clean up:
18952         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
18953         code.
18954         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
18955
18956 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
18957
18958         * Makefile.in: Clean up in the ravenscar run time.
18959
18960 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18961
18962         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
18963         of No_Strict_Aliasing to build_pointer_type_for_mode.
18964         * utils.c (update_pointer_to): Walk pointer and ref chains.
18965
18966 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
18967
18968         * ali.ads: Fix Comment about Dynamic_Elab.
18969
18970         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
18971         Has_RACW, Is_Generic, etc.)
18972         (Output_Object, Gnatls): Take into account ALI files not attached to
18973         an object.
18974
18975 2004-03-22  Vincent Celier  <celier@gnat.com>
18976
18977         * gprep.adb: Change all String_Access to Name_Id
18978         (Is_ASCII_Letter): new function
18979         (Double_File_Name_Buffer): New procedure
18980         (Preprocess_Infile_Name): New procedure
18981         (Process_Files): New procedure
18982         (Gnatprep): Check if output and input are existing directories.
18983         Call Process_Files to do the real job.
18984
18985 2004-03-22  Robert Dewar  <dewar@gnat.com>
18986
18987         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
18988         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
18989
18990 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
18991
18992         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
18993         case when the source contains only comments.
18994
18995 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
18996
18997         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
18998         declaration for a child subprogram body that acts as a spec, indicate
18999         that the entity in the declaration needs debugging information.
19000
19001         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
19002         full view if the subtype is created for a constrained record component;
19003         gigi has enough information to construct the record, and there is no
19004         place in the tree for the declaration.
19005
19006         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
19007         serial number for the dummy body that is built for analysis, to avoid
19008         inconsistencies in the generation of internal names when compiling
19009         with -gnatN.
19010
19011 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
19012
19013         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
19014         object.
19015
19016 2004-03-22  GNAT Script  <nobody@gnat.com>
19017
19018         * Make-lang.in: Makefile automatically updated
19019
19020 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19021
19022         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
19023         * trans.c (tree_transform, emit_index_check): Likewise.
19024         * utils.c (build_template): Likewise.
19025         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
19026         (maybe_unconstrained_array, unchecked_convert): Likewise.
19027         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
19028         (build_unary_op): Likewise.
19029         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
19030         (fill_vms_descriptor): Likewise.
19031         (build_call_alloc_dealloc): Likewise.
19032         ALIGN is unsigned.
19033         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
19034
19035 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
19036
19037         PR other/14630
19038         * gnat_ug.texi: Add info directory category and entry.
19039         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
19040         gnat_ug_wnt.texi: Regenerate.
19041
19042 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
19043
19044         * ada-tree.h: Update copyright notice.
19045         Minor reformatting.
19046
19047 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
19048
19049         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
19050         as regular exception objects and not as mere integers representing the
19051         condition code.  The latter approach required some dynamics to mask off
19052         severity bits, which did not fit well into the GCC table based model.
19053         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
19054         exception data objects. We don't it and it would conflict with the other
19055         external symbol we have to generate for such exceptions.
19056
19057         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
19058         the special code for VMS exceptions, since these are now represented
19059         as regular exceptions objects.
19060
19061 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19062
19063         * decl.c (debug_no_type_hash): Remove.
19064         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
19065         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
19066
19067 2004-03-19  Laurent Guerby <laurent@guerby.net>
19068
19069         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
19070         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
19071
19072 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19073
19074         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
19075         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
19076         (TYPE_RM_SIZE_INT): Directly use type.values.
19077         (TREE_LOOP_ID): Clean up check.
19078         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
19079         TYPE_VALUES, not TYPE_FIELDS.
19080         * trans.c (convert_with_check): Delay access of bounds of basetype
19081         until sure is numeric.
19082
19083 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
19084
19085         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
19086
19087         Code clean up:
19088         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
19089         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
19090         Specific.Set instead of direct call to e.g pthread_setspecific.
19091
19092 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
19093
19094         * adaint.c: Update comments.
19095
19096         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
19097         GNATLIB_SHARED for FreeBSD.
19098
19099 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
19100
19101         * init.c [VxWorks]: Do not fix the stack size for the environment task.
19102         When needed (stack checking) the stack size is retrieved
19103         from the VxWorks kernel.
19104
19105         * Makefile.in: Flag -nostdinc is required when building the run time
19106         for avoiding looking for files in the base compiler.
19107         Add the VxWorks specific version of the package body for
19108         System.Stack_checking.Operations (5zstchop.adb).
19109
19110         * Make-lang.in: Add the object file for
19111         System.Stack_Checking.Operations.
19112
19113         * Makefile.rtl: Add object file for the package
19114         System.Stack_Checking.Operations.
19115
19116         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
19117
19118         * s-stache.ads, s-stache.adb: Move the operations related to stack
19119         checking from this package to package System.Stack_Checking.Operations.
19120         This way, stack checking operations are only linked in the final
19121         executable when using the -fstack-check flag.
19122
19123 2004-03-18  Doug Rupp  <rupp@gnat.com>
19124
19125         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
19126         Reorganize ifeq's.
19127
19128         * 5qsystem.ads, 5xcrtl.ads: New files.
19129
19130 2004-03-18  Vincent Celier  <celier@gnat.com>
19131
19132         * prj.adb (Reset): Reset hash table Files_Htable
19133
19134         * prj-env.adb (Source_Paths, Object_Paths): New tables.
19135         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
19136         the procedures Add_To_Path_File.
19137         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
19138         making sure that each directory is present only once and, for object
19139         dirs, when a directory already present is added, the duplicate is
19140         removed and the directory is always put as the last in the table.
19141         Write the path files at the end of these accumulations.
19142
19143         * prj-nmsc.adb (Record_Source): Add source file name in hash table
19144         Files_Htable for all sources.
19145
19146         * prj-proc.adb (Process): Remove restrictions between not directly
19147         related extending projects.
19148
19149 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
19150
19151         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
19152         (Find_Sources): Minor speed optimization.
19153
19154         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
19155         parameter Trusted_Mode.
19156
19157 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
19158
19159         * scn.adb (Determine_License): Take into account a degenerated case
19160         when the source contains only comments.
19161
19162 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
19163
19164         * sem_warn.adb (Check_References): For a warning on a selected
19165         component that does not come from source, locate an uninitialized
19166         component of the record type to produce a more precise error message.
19167
19168 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
19169
19170         * 3zsoccon.ads: Fix multicast options.
19171
19172         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
19173         in the spec.
19174
19175 2004-03-15  Robert Dewar  <dewar@gnat.com>
19176
19177         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
19178         pragma used for a private type.
19179
19180         * lib-xref.adb (Generate_Reference): Do not generate warning if
19181         reference is in a different unit from the pragma Unreferenced.
19182
19183         * 5vtpopde.adb: Minor reformatting
19184         Fix casing of To_Task_ID
19185
19186         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
19187         flag if we have an unchecked conversion to an access type in the same
19188         unit.
19189
19190 2004-03-15  Geert Bosch  <bosch@gnat.com>
19191
19192         * a-ngcoty.adb (Modulus): In alternate formula for large real or
19193         imaginary parts, use Double precision throughout.
19194
19195         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
19196         we want to be able to compile run-time with -gnata for testing, but
19197         this may also be instantiated in user code that is compiled with -gnata.
19198
19199 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
19200
19201         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
19202         codes. Having a separate type for this is useful to enforce consistency
19203         throughout the various run-time units.
19204         (Exception_Data): Use Exception_Code for Import_Code.
19205
19206         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
19207         Natural and Integer in various places.
19208         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
19209         with the severity bits masked off.
19210         (Register_VMS_Exception): Handle the additional exception data pointer
19211         argument.
19212
19213         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
19214         component, now reflected by an exported accessor.
19215         (is_handled_by): New routine to compute whether the propagated
19216         occurrence matches some handler choice specification. Extracted out of
19217         get_action_description_for, and expanded to take care of the VMS
19218         specifities.
19219         (get_action_description_for): Use is_handled_by instead of an explicit
19220         complex condition to decide if the current choice at hand catches the
19221         propagated occurrence.
19222
19223         * raise.h (Exception_Code): New type for C.
19224
19225         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
19226         System.Standard_Library.Exception_Code, to allow references from the
19227         pragma import/export expander.
19228
19229         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
19230         New accessors to allow easy access to GNAT exception data
19231         characteristics.
19232         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
19233         redundant Handled_By_Others component, helper for the personality
19234         routine which will now be able to call the appropriate exception data
19235         accessor instead.
19236
19237         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
19238         component of Standard_Exception_Type to be the closest possible to
19239         Exception_Code in System.Standard_Library, that we cannot get at this
19240         point. Expand a ??? comment to notify that this type node should
19241         probably be rewritten later on.
19242
19243         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
19244         registration call to include a pointer to the exception object in the
19245         arguments.
19246
19247         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
19248         instead of int and explicit bitmasks.
19249
19250 2004-03-15  Vincent Celier  <celier@gnat.com>
19251
19252         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
19253         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
19254
19255         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
19256         longer needed now that it is in the spec of
19257         System.Tasking.Task_Attributes.
19258
19259         * adaint.h, adaint.c: (__gnat_create_output_file): New function
19260
19261         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
19262
19263         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
19264
19265         * make.adb (Gnatmake): Do not check the executable suffix; it is being
19266         taken care of in Scan_Make_Arg.
19267         (Scan_Make_Arg): Add the executable suffix only if the argument
19268         following -o, in canonical case, does not end with the executable
19269         suffix.  When in verbose mode and executable file name does not end
19270         with executable suffix, output the executable name, in canonical case.
19271
19272         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
19273         to avoid warnings when instantiating Ada.Task_Attributes.
19274         Minor reformating.
19275
19276         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
19277         in the correct order.
19278
19279         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
19280         redirect standard output and error to a file for the invocation of the
19281         compiler, then read the file.
19282
19283         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
19284         directory, instead of the Value.
19285         (Find_Source_Dirs): Remove useless code & comments.
19286
19287 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
19288
19289         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
19290         tagged type is inherited, and the parent operation is not frozen yet,
19291         force generation of a freeze node for the inherited operation, so the
19292         corresponding dispatch entry is properly initialized.
19293         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
19294         when looking for user-defined equality operation.
19295
19296         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
19297         boolean when locating primitive equality of tagged component.
19298
19299         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
19300         bit-aligned field and the right-hand side a string literal, introduce
19301         a temporary before expanding assignment into a loop.
19302
19303         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
19304         priority in full, to ensure that any expanded subepxressions of it are
19305         elaborated in the scope of the init_proc.
19306
19307         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
19308         after object declaration, skipping over code that may have been
19309         generated for validity checks.
19310
19311         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
19312         discriminants, ignore the known discriminants of its full view, if
19313         any, to check legality.
19314
19315         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
19316         component if type has unknown discriminants.
19317         (Analyze_Private_Extension_Declaration): Discriminant constraint is
19318         null if type has unknown discriminants.
19319
19320         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
19321         for end label when present.
19322
19323         * s-fileio.adb (Open): When called with a C_Stream, use given name for
19324         temporary file, rather than an empty string.
19325
19326 2004-03-15  Ed Falis  <falis@gnat.com>
19327
19328         * s-thread.adb: Removed, no longer used.
19329
19330 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19331
19332         * decl.c (target.h): Now include.
19333         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
19334         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
19335         (validate_size): For POINTER_TYPE, get smallest size permitted on
19336         machine.
19337
19338         * fe.h: Sort Einfo decls and add Set_Mechanism.
19339
19340         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
19341         (ada/decl.o): Depends on target.h.
19342
19343         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
19344         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
19345
19346 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
19347
19348         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
19349
19350         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
19351         Insert_Dereference_Action when rewriting an implicit dereference into
19352         an explicit one, this will be taken care of during expansion of the
19353         explicit dereference.
19354         (Expand_N_Slice): Same. Always do the rewriting, even for the case
19355         of non-packed slices, since the dereference action generated by
19356         expansion of the explicit dereference is needed in any case.
19357         (Expand_N_Selected_Component): When rewriting an implicit dereference,
19358         analyze and resolve the rewritten explicit dereference so it is seen
19359         by the expander.
19360         (Insert_Dereference_Action): This procedure is now called only for the
19361         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
19362         dereferences that do not come from source (including explicit
19363         dereferences resulting from rewriting implicit ones), but do not
19364         recursively insert a check for the dereference nodes contained within
19365         the check.
19366         (Insert_Dereference_Action): Clarify and correct comment.
19367
19368 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
19369
19370         PR ada/14131
19371         Move language detection to the top level.
19372         * config-lang.in: Build by default.
19373
19374 2004-03-05  Robert Dewar  <dewar@gnat.com>
19375
19376         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
19377
19378         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
19379         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
19380         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
19381         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
19382         unchecked conversion to spec to avoid warnings.
19383
19384         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
19385         to Task_ID
19386
19387         * 7stpopsp.adb: Correct casing in To_Task_ID call
19388
19389         * a-strsea.ads, a-strsea.adb: Minor reformatting
19390
19391         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
19392
19393         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
19394         Adjust Max_Msg_Length to be clearly large enough.
19395
19396         * fe.h: Define In_Same_Source_Unit
19397
19398         * osint.adb: Add pragma Warnings Off to suppress warnings
19399         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
19400         aliasing warnings.
19401
19402         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
19403
19404         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
19405
19406         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
19407
19408         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
19409
19410         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
19411
19412         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
19413         node. We now do generate them for gcc back end.
19414
19415         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
19416         warning.
19417
19418         * sinput-c.adb: Fix bad name in header.
19419         Add pragma Warnings Off to suppress aliasing warning.
19420
19421         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
19422
19423         * snames.h, snames.ads, snames.adb: Add entry for pragma
19424         No_Strict_Aliasing.
19425
19426 2004-03-05  Vincent Celier  <celier@gnat.com>
19427
19428         * prj-com.ads: Add hash table Files_Htable to check when a file name
19429         is already a source of another project.
19430
19431         * prj-nmsc.adb (Record_Source): Before recording a new source, check
19432         if its file name is not already a source of another project. Report an
19433         error if it is.
19434
19435         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
19436         source file name, call gnatpp with all the sources of the main project.
19437
19438         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
19439         of file names.
19440
19441         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
19442         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
19443         /RUNTIME_SYSTEM=, converted to --RTS=
19444         /NOTABS, converted to -notabs
19445
19446 2004-03-05  Pascal Obry  <obry@gnat.com>
19447
19448         * make.adb: Minor reformatting.
19449
19450 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
19451
19452         Part of implemention of AI-262.
19453         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
19454
19455         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
19456         procedure.
19457
19458         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
19459         when component type is a partially constrained class-wide subtype.
19460         (Constrain_Discriminated_Type): If parent type has unknown
19461         discriminants, a constraint is illegal, even if full view has
19462         discriminants.
19463         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
19464         with unknown discriminants whose full view is a discriminated record.
19465
19466         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
19467         flag, to handle properly derivations of tagged types with unknown
19468         discriminants.
19469         (Analyze_Package_Spec, Analyze_Package_Body): Install
19470         Private_With_Clauses before analyzing private part or body.
19471
19472         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
19473         Has_Discriminants can be true for a given type (documentation).
19474
19475 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
19476
19477         * s-restri.ads: Fix license (GPL->GMGPL).
19478
19479         * s-tassta.adb: Minor reformatting.
19480
19481         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19482         by calls to Exit_One_ATC_Level, since additional clean up is performed
19483         by this function.
19484
19485         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19486         by calls to Exit_One_ATC_Level, since additional clean up is performed
19487         by this function.
19488
19489 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19490
19491         * trans.c: Reflect GCC changes to fix bootstrap problem.
19492         Add warning for suspicious aliasing unchecked conversion.
19493
19494 2004-03-05  GNAT Script  <nobody@gnat.com>
19495
19496         * Make-lang.in: Makefile automatically updated
19497
19498 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
19499
19500         * ali.adb (Read_Instantiation_Instance): Do not modify the
19501         current_file_num when reading information about instantiations, since
19502         this corrupts files in later references.
19503
19504 2004-03-02  Vincent Celier  <celier@gnat.com>
19505
19506         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
19507         before checking if it is read-only.
19508
19509         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
19510         of SRC_DIRS and eliminate duplicates.
19511
19512         * gprcmd.adb: Replace command "path" with command "path_sep" to return
19513         the path separator.
19514         (Usage): Document path_sep
19515
19516         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
19517         C++ compiler. No need for a script.
19518         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
19519         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
19520         subst.
19521
19522         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
19523         where there are Ada sources.
19524         (Set_Ada_Paths): Only add to the include path the source dirs of project
19525         with Ada sources.
19526         (Add_To_Path): Add the Display_Values of the directories, not their
19527         Values.
19528
19529         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
19530         data.
19531
19532         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
19533         is not No_Name.
19534         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
19535         Value is canonicalized.
19536         (Language_Independent_Check): Do not copy Value to Display_Value when
19537         canonicalizing Value.
19538
19539         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
19540         path to find limited with cycles.
19541         (Parse_Single_Project): Use canonical cased path to find the end of a
19542         with cycle.
19543
19544 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
19545
19546         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
19547         and not a child unit.
19548
19549         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
19550         appear in a with_clause.
19551
19552         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
19553         only happen in type_annotate mode, do not try to elaborate it.
19554
19555         * exp_util.adb (Force_Evaluation): If expression is a selected
19556         component on the left of an assignment, use a renaming rather than a
19557         temporary to remove side effects.
19558
19559         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
19560         inlined instance body, which is analyzed before the end of the
19561         enclosing scope.
19562
19563 2004-03-02  Robert Dewar  <dewar@gnat.com>
19564
19565         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
19566         sem_ch4.adb: Use new feature for substitution of keywords in VMS
19567
19568         * errout.ads, errout.adb: Implement new circuit for substitution of
19569         keywords in VMS.
19570
19571         * sem_case.adb (Analyze_Choices): Place message properly when case is
19572         a subtype reference rather than an explicit range.
19573
19574         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
19575
19576 2004-03-02  Doug Rupp  <rupp@gnat.com>
19577
19578         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
19579
19580 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
19581
19582         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
19583
19584 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19585
19586         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
19587         BLKmode bitfield.
19588
19589 2004-02-25  Robert Dewar  <dewar@gnat.com>
19590
19591         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
19592         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
19593         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
19594         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
19595         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
19596         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
19597         the defining instance of the type to avoid aliasing problems.
19598         Fix copyright header.  Fix bad comments in package header.
19599
19600         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
19601
19602 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
19603
19604         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
19605         rewritten as references when aliased through an address clause.
19606
19607         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
19608         whether call can be interpreted as an indirect call to the result of a
19609         parameterless function call returning an access subprogram.
19610
19611 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
19612
19613         Code clean up:
19614         * exp_ch7.adb (Make_Clean): Remove generation of calls to
19615         Unlock[_Entries], since this is now done by Service_Entries directly.
19616
19617         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
19618
19619         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
19620         Requeue_Call for better code readability. Change spec and update calls:
19621         PO_Service_Entries now unlock the PO on exit.
19622         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
19623         PO_Service_Entries.
19624
19625         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
19626
19627         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
19628
19629 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
19630
19631         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
19632         protected subprogram call and analyzing the result of such expanding
19633         in case when the called protected subprogram is eliminated.
19634
19635         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
19636         names.
19637
19638 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
19639
19640         * Makefile.in: Clean ups.
19641
19642 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
19643
19644         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
19645         protected operations if original subprogram is flagged as eliminated.
19646         (Expand_N_Subprogram_Body): For a protected operation, create
19647         discriminals for next operation before checking whether the operation
19648         is eliminated.
19649
19650         * exp_ch9.adb (Expand_N_Protected_Body,
19651         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
19652         for internal protected operations if the original subprogram is
19653         eliminated.
19654
19655         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
19656         declared in a single protected object.
19657
19658 2004-02-23  Vincent Celier  <celier@gnat.com>
19659
19660         * prj-attr.adb: Make attribute Builder'Executable an associative array,
19661         case insensitive if file names are case insensitive, instead of a
19662         standard associative array.
19663
19664         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
19665         them as case insensitive on platforms where the file names are case
19666         sensitive.
19667
19668         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
19669         project file has already been parsed that canonical path are compared.
19670
19671 2004-02-23  Robert Dewar  <dewar@gnat.com>
19672
19673         * sinput-c.ads: Correct bad unit title in header
19674
19675         * freeze.adb: Minor reformatting
19676
19677 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19678
19679         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
19680         nonaddressable COMPONENT_REF that is removing padding that we are
19681         taking the address of, take the address of the padded record instead
19682         if item is variable size.
19683
19684 2004-02-20  Robert Dewar  <dewar@gnat.com>
19685
19686         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
19687
19688 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
19689
19690         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
19691         itype references for the constrained designated type of a component
19692         whose base type is already frozen.
19693
19694 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
19695
19696         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
19697         avoid GCC warnings.
19698
19699 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
19700
19701         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
19702         identifier for a phantom package that rewrites the formal package
19703         declaration with a box. The Add semantic decorations for the defining
19704         identifier from the original node (that represents the formal package).
19705
19706 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
19707
19708         * Make-lang.in (ada/stamp-sdefault): Use the top level
19709         move-if-change.
19710
19711 2004-02-19  Richard Henderson  <rth@redhat.com>
19712
19713         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
19714
19715 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
19716
19717         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
19718         Scan_ALI can be used for multiple ALI files without reinitializing
19719         between calls.
19720
19721 2004-02-18  Robert Dewar  <dewar@gnat.com>
19722
19723         * debug.adb: Minor reformatting.
19724
19725 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19726
19727         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
19728         to zero if there is an address clause.
19729
19730 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
19731
19732         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
19733
19734 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
19735
19736         * layout.adb (Layout_Component_List): Revise generation of call to
19737         discriminant-checking function to pass selections of all of the type's
19738         discriminants rather than just the variant-controlling discriminant.
19739
19740 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
19741
19742         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
19743         fail in the current setup and triggers spurious system error messages.
19744         Pretend it occurred and failed instead.
19745
19746 2004-02-18  Vincent Celier  <celier@gnat.com>
19747
19748         * bld.adb: Mark FLDFLAGS as saved
19749         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
19750         it is not the root project.  Put each directory to be
19751         extended between double quotes to prevent it to be expanded on Windows.
19752         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
19753         the project file. Set them back to their initial values if they have not
19754         been set in the project file.
19755
19756         * gprcmd.adb: (Gprdebug, Debug): New global variables
19757         (Display_Command): New procedure
19758         (Usage): Document new command "linkopts"
19759         Call Display_Command when env var GPRDEBUG has the value "TRUE"
19760         Implement new command "linkopts"
19761         Remove quotes that may be around arguments for "extend"
19762         Always call Normalize_Pathname with arguments formatted for the platform
19763
19764         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
19765         Change @echo to @$(display) in target clean to be able to clean silently
19766
19767         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
19768
19769         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
19770         canonical case.
19771
19772         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
19773         = Extending_All when current project is an extending all project.
19774
19775         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
19776         set to True only for LINK command, after Unix switch -o.
19777         (Process_Arguments): Set Output_File_Expected to True for LINK command
19778         after Unix switch -o. When Output_File_Expected is True, never add an
19779         extension to a file name.
19780
19781         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
19782         option file name, only to the --for-linker= switch.
19783         (Option_File_Name): If option file name do not end with ".opt", append
19784         "/OPTIONS".
19785
19786 2004-02-18  GNAT Script  <nobody@gnat.com>
19787
19788         * Make-lang.in: Makefile automatically updated
19789
19790 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
19791
19792         * Make-lang.in (stamp-sdefault): Do not depend on
19793         move-if-change.
19794
19795 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
19796
19797         * config-lang.in: Disable Ada by default until probe logic for
19798         a bootstrap Ada compiler can be moved to the top level configure
19799         script.
19800
19801 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
19802
19803         * decl.c (components_to_record): Don't claim that the internal fields
19804         we make to hold the variant parts are semantically addressable, because
19805         they are not.
19806
19807         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
19808         adjust the comment describing the modular type form when we can use it.
19809         (Install_PAT): Account for the Esiz renaming.
19810
19811         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
19812         sc_onstack context indication before raising the exception to which
19813         the signal is mapped. Allows better handling of later signals possibly
19814         triggered by the resumed user code if the exception is handled.
19815
19816 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
19817
19818         * 5zinit.adb: Removed, no longer used.
19819
19820 2004-02-12  Robert Dewar  <dewar@gnat.com>
19821
19822         * ali.adb: Remove separating space between parameters on R line. Makes
19823         format consistent with format used by the binder for Set_Globals call.
19824
19825         * atree.ads, atree.adb: Minor reformatting (new function header format)
19826
19827         * bindgen.adb: Add Run-Time Globals documentation section containing
19828         detailed documentation of the globals passed from the binder file to
19829         the run time.
19830
19831         * gnatls.adb: Minor reformatting
19832
19833         * init.c (__gnat_set_globals): Add note pointing to documentation in
19834         bindgen.
19835
19836         * lib-writ.ads, lib-writ.adb: Remove separating space between
19837         parameters on R line.
19838         Makes format consistent with format used by the binder for Set_Globals
19839         call.
19840
19841         * osint.ads: Add 2004 to copyright notice
19842         Minor reformatting
19843
19844         * snames.ads: Correct capitalization of FIFO_Within_Priorities
19845         Noticed during code reading, documentation issue only
19846
19847         * usage.adb: Remove junk line for obsolete C switch
19848         Noticed during code reading
19849
19850 2004-02-12  Vincent Celier  <celier@gnat.com>
19851
19852         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
19853         extend for each directory, so that multiple /** directories are
19854         extended individually.
19855         (Recursive_Process): Set the default for LANGUAGES to ada
19856
19857         * gprcmd.adb: Define new command "ignore", to do nothing.
19858         Implement new comment "path".
19859
19860         * Makefile.generic: Suppress output when SILENT is set
19861         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
19862         used, so that the correct compiler is invoked.
19863         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
19864         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
19865
19866 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
19867
19868         * Makefile.in: Clean ups and remove obsolete targets.
19869
19870 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
19871
19872         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
19873         predicate declared in exp_util.
19874
19875         * exp_util.adb: Add comments.
19876
19877         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
19878         visibility before compiling context of the subunit.
19879
19880         * sem_res.adb (Check_Parameterless_Call): If the context expects a
19881         value but the name is a procedure, do not attempt to analyze as a call,
19882         in order to obtain more telling diagnostics.
19883
19884         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
19885         'Access on parameterless function calls.
19886         (Normalize_Actuals): For a parameterless function call with missing
19887         actuals, defer diagnostic until resolution of enclosing call.
19888
19889         * sem_util.adb (Wrong_Type): If the context type is an access to
19890         subprogram and the expression is a procedure name, suggest a missing
19891         'attribute.
19892
19893 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
19894             Nathanael Nerode  <neroden@gcc.gnu.org>
19895
19896         PR ada/6637, PR ada/5911
19897         Merge with libada-branch:
19898         * config-lang.in: Build libada only when ada is built.
19899
19900 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19901
19902         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
19903         for a tagged type, verify that both formals have the same type.
19904
19905         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
19906         temporary when the formal is an in-parameter and the actual a possibly
19907         unaligned slice.
19908
19909         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
19910         when expansion is disabled, to ensure proper name capture with
19911         overloaded literals.  Condition can be of any boolean type, resolve
19912         accordingly.
19913
19914         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
19915         renaming is for a formal subprogram with a default operator name, and
19916         there is a usable operator that is visible at the point of
19917         instantiation.
19918
19919 2004-02-09  Robert Dewar  <dewar@gnat.com>
19920
19921         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
19922         rewrite to ignore errors in ali files, intended to allow tools downward
19923         compatibility with new versions of ali files.
19924
19925         * ali.ads: Add new parameter Ignore_Errors
19926
19927         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
19928         duplicating the error message giving the file with restrictions.
19929
19930         * debug.adb: Add debug flag I for gnatbind
19931
19932         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
19933         operators for the case where the operator is a defining operator.
19934
19935         * exp_ch3.adb: Minor reformatting (new function spec format).
19936
19937         * exp_ch4.adb: Add comment for previous change, and make minor
19938         adjustment to loop to always check for improper loop termination.
19939         Minor reformatting throughout (new function spec format).
19940
19941         * gnatbind.adb: Implement -di debug flag for gnatbind
19942
19943         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
19944
19945         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
19946
19947         * lib-load.adb: Fix bad assertion.
19948         Found by testing and code reading.
19949         Minor reformatting.
19950
19951         * lib-load.ads: Minor reformatting.
19952
19953         * lib-writ.adb: There is only one R line now.
19954
19955         * lib-writ.ads: Add documentation on making downward compatible changes
19956         to ali files so old tools work with new ali files.
19957         There is only one R line now.
19958         Add documentation on format incompatibilities (with special GPS note)
19959
19960         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
19961
19962         * par-load.adb: Minor reformatting
19963
19964         * sem_ch8.adb: Fix to error message from last update
19965         Minor reformatting and restructuring of code from last update
19966
19967         * par-prag.adb, snames.adb, snames.ads, snames.h,
19968         sem_prag.adb: Implement pragma Profile.
19969
19970         * stylesw.adb: Implement -gnatyN switch to turn off all style check
19971         options.
19972
19973         * usage.adb: Add line for -gnatyN switch
19974
19975         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
19976
19977 2004-02-09  Albert Lee  <lee@gnat.com>
19978
19979         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
19980
19981 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19982
19983         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
19984         slices.
19985
19986         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
19987         is nested in an instance that is not frozen yet, to avoid
19988         order-of-elaboration problems in gigi.
19989
19990         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
19991         body the attribute is legal.
19992
19993 2004-02-09  Robert Dewar  <dewar@gnat.com>
19994
19995         * s-rident.ads: Minor comment correction
19996
19997         * targparm.adb: Remove dependence on uintp completely. There was
19998         always a bug in Make in that it called Targparm before initializing
19999         the Uint package. The old code appeared to get away with this, but
20000         the new code did not! This caused an assertion error in gnatmake.
20001
20002         * targparm.ads: Fix bad comment, restriction pragmas with parameters
20003         are indeed fully supported.
20004
20005 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
20006
20007         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
20008
20009 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
20010
20011         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
20012         with targetm.calls.promote_prototypes.
20013
20014 2004-02-04  Robert Dewar  <dewar@gnat.com>
20015
20016         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
20017         ali.ads, gprcmd.adb: Minor reformatting
20018
20019         * bindgen.adb: Output restrictions string for new style restrictions
20020         handling
20021
20022         * impunit.adb: Add s-rident.ads (System.Rident) and
20023         s-restri (System.Restrictions)
20024
20025         * lib-writ.adb: Fix bug in writing restrictions string (last few
20026         entries wrong)
20027
20028         * s-restri.ads, s-restri.adb: Change name Restrictions to
20029         Run_Time_Restrictions to avoid conflict with package name.
20030         Add circuit to read and acquire run time restrictions.
20031
20032 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
20033
20034         * restrict.ads, restrict.adb: Use the new restriction
20035         No_Task_Attributes_Package instead of the old No_Task_Attributes.
20036
20037         * sem_prag.adb: No_Task_Attributes is a synonym of
20038         No_Task_Attributes_Package.
20039
20040         * snames.ads, snames.adb: New entry for proper handling of
20041         No_Task_Attributes.
20042
20043         * s-rident.ads: Adding restriction No_Task_Attributes_Package
20044         (AI-00249) that supersedes the GNAT specific restriction
20045         No_Task_Attributes.
20046
20047 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
20048
20049         * sem_prag.adb:
20050         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
20051          body, an identifier may be wrapped in an unchecked conversion.
20052
20053 2004-02-04  Vincent Celier  <celier@gnat.com>
20054
20055         * lib-writ.ads: Comment update for the W lines
20056
20057         * bld.adb: (Expression): An empty string list is static
20058
20059         * fname-uf.adb: Minor comment update
20060
20061         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
20062
20063         * gnatbind.adb: Initialize Cumulative_Restrictions with the
20064         restrictions on the target.
20065
20066 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
20067
20068         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
20069         gen_rtx.
20070
20071 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
20072
20073         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
20074
20075 2004-02-02  Vincent Celier  <celier@gnat.com>
20076
20077         * gprcmd.adb (Check_Args): If condition is false, print the invoked
20078         comment before the usage.
20079         Gprcmd: Fail when command is not recognized.
20080         (Usage): Document command "prefix"
20081
20082         * g-md5.adb (Digest): Process last block.
20083         (Update): Do not process last block. Store remaining characters and
20084         length in Context.
20085
20086         * g-md5.ads (Update): Document that several call to update are
20087         equivalent to one call with the concatenated string.
20088         (Context): Add fields to allow new Update behaviour.
20089
20090         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
20091         defaulted to False.
20092         When May_Fail is True and no existing file can be found, return No_File.
20093
20094         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
20095         functions.
20096
20097         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
20098         spec file name instead on the W line.
20099
20100 2004-02-02  Robert Dewar  <dewar@gnat.com>
20101
20102         * ali.adb: Read and acquire info from new format restrictions lines
20103
20104         * bcheck.adb: Add circuits for checking restrictions with parameters
20105
20106         * bindgen.adb: Output dummy restrictions data
20107         To be changed later
20108
20109         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
20110         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
20111         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
20112         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
20113         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
20114
20115         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
20116         the warning message on access to possibly uninitialized variable S)
20117         Minor changes for new restrictions handling.
20118
20119         * gnatbind.adb: Minor reformatting
20120         Minor changes for new restrictions handling
20121         Move circuit for -r processing here from bcheck (cleaner)
20122
20123         * gnatcmd.adb, gnatlink.adb: Minor reformatting
20124
20125         * lib-writ.adb: Output new format restrictions lines
20126
20127         * lib-writ.ads: Document new R format lines for new restrictions
20128         handling.
20129
20130         * s-restri.ads/adb: New files
20131
20132         * Makefile.rtl: Add entry for s-restri.ads/adb
20133
20134         * par-ch3.adb: Fix bad error messages starting with upper case letter
20135         Minor reformatting
20136
20137         * restrict.adb: Major rewrite throughout for new restrictions handling
20138         Major point is to handle restrictions with parameters
20139
20140         * restrict.ads: Major changes in interface to handle restrictions with
20141         parameters. Also generally simplifies setting of restrictions.
20142
20143         * snames.ads/adb: New entry for proper handling of No_Requeue
20144
20145         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
20146         restriction counting.
20147         Other minor changes for new restrictions handling
20148
20149         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
20150         Restriction_Warnings now allows full parameter notation
20151         Major rewrite of Restrictions for new restrictions handling
20152
20153 2004-02-02  Javier Miranda  <miranda@gnat.com>
20154
20155         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
20156         syntax rule for object renaming declarations.
20157         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
20158         component definitions.
20159
20160         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
20161         components.
20162         (Array_Type_Declaration): Give support to access components. In addition
20163         it was also modified to reflect the name of the object in anonymous
20164         array types. The old code did not take into account that it is possible
20165         to have an unconstrained anonymous array with an initial value.
20166         (Check_Or_Process_Discriminants): Allow access discriminant in
20167         non-limited types.
20168         (Process_Discriminants): Allow access discriminant in non-limited types
20169         Initialize the new Access_Definition field in N_Object_Renaming_Decl
20170         node.  Change Ada0Y to Ada 0Y in comments
20171
20172         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
20173         equality operators.
20174         Change Ada0Y to Ada 0Y in comments
20175
20176         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
20177         renamings Change Ada0Y to Ada 0Y in comments
20178
20179         * sem_type.adb (Find_Unique_Type): Give support to the equality
20180         operators for universal access types
20181         Change Ada0Y to Ada 0Y in comments
20182
20183         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
20184
20185         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
20186         field.
20187         (N_Object_Renaming_Declaration): Addition of Access_Definition field
20188         Change Ada0Y to Ada 0Y in comments
20189
20190         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
20191         component definition and object renaming nodes
20192         Change Ada0Y to Ada 0Y in comments
20193
20194 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
20195
20196         * restrict.adb: Use the new restriction identifier
20197         No_Requeue_Statements instead of the old No_Requeue for defining the
20198         restricted profile.
20199
20200         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
20201         No_Requeue_Statements.
20202
20203         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
20204         that supersedes the GNAT specific restriction No_Requeue. The later is
20205         kept for backward compatibility.
20206
20207 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
20208
20209         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
20210         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
20211         pragma and fix incorrect ones.
20212
20213         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
20214         warning if the pragma is redundant.
20215
20216 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
20217
20218         * 5staprop.adb: Add missing 'constant' keywords.
20219
20220         * Makefile.in: use consistent value for SYMLIB on
20221         platforms where libaddr2line is supported.
20222
20223 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20224
20225         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
20226         annotating types.
20227
20228 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
20229
20230         * init.c (__gnat_install_handler): Setup an alternate stack for signal
20231         handlers in the environment thread. This allows proper propagation of
20232         an exception on stack overflows in this thread even when the builtin
20233         ABI stack-checking scheme is used without support for a stack reserve
20234         region.
20235
20236         * utils.c (create_field_decl): Augment the head comment about bitfield
20237         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
20238         here, because the former is not accurate enough at this point.
20239         Let finish_record_type decide instead.
20240         Don't make a bitfield if the field is to be addressable.
20241         Always set a size for the field if the record is packed, to ensure the
20242         checks for bitfield creation are triggered.
20243         (finish_record_type): During last pass over the fields, clear
20244         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
20245         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
20246         from DECL_BIT_FIELD.
20247
20248 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
20249
20250         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
20251         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
20252         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
20253
20254 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20255
20256         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
20257
20258         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
20259         (ZCX_By_Default): Likewise.
20260         (Front_End_ZCX_Support): Likewise.
20261
20262         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
20263         (Initialize_Lock): Mark Level unreferenced.
20264         (Sleep): Mark Reason unreferenced.
20265         (Timed_Sleep): Likewise.
20266         (Wakeup): Likewise.
20267         (Exit_Task): Use Result.
20268         (Check_No_Locks): Mark Self_ID unreferenced.
20269
20270         * 5gtasinf.adb (New_Sproc): Make Attr constant.
20271         (Bound_Thread_Attributes): Make Sproc constant.
20272         (New_Bound_Thread_Attributes): Likewise.
20273
20274 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20275
20276         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
20277         one-dimensional array an slice assignments, when component type is
20278         controlled.
20279
20280         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
20281         component type is controlled, and control_actions are in effect, use
20282         TSS procedure rather than generating inline code.
20283
20284         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
20285         arrays with controlled components.
20286
20287 2004-01-26  Vincent Celier  <celier@gnat.com>
20288
20289         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
20290         command line for the non VMS case.
20291
20292         * gnatlink.adb (Process_Binder_File): When building object file, if
20293         GNU linker is used, put all object paths between quotes, to prevent ld
20294         error when there are unusual characters (such as '!') in the paths.
20295
20296         * Makefile.generic: When there are sources in Ada and the main is in
20297         C/C++, invoke gnatmake with -B, instead of -z.
20298
20299         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
20300         from VMS_Conversion.
20301         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
20302         specification of argument file on the command line.
20303
20304 2004-01-26  Bernard Banner  <banner@gnat.com>
20305
20306         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
20307
20308 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20309
20310         * snames.adb: Update copyright notice.
20311         Add info on slice assignment for controlled arrays.
20312
20313 2004-01-23  Robert Dewar  <dewar@gnat.com>
20314
20315         * exp_aggr.adb: Minor reformatting
20316
20317         * exp_ch9.adb: Minor code clean up
20318         Minor reformatting
20319         Fix bad character in comment
20320
20321         PR ada/13471
20322         * targparm.adb (Get_Target_Parameters): Give clean abort error on
20323         unexpected end of file, along with more detailed message.
20324
20325 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20326
20327         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
20328         PAT.
20329
20330         * decl.c (copy_alias_set): New function.
20331         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
20332
20333 2004-01-23  Doug Rupp  <rupp@gnat.com>
20334
20335         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
20336         lib$${file} in case subsequent character is not a separator.
20337
20338 2004-01-23  Vincent Celier  <celier@gnat.com>
20339
20340         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
20341         when the GCC version is at least 3.
20342
20343         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
20344         Remove all "Opt.", to prepare for opt split
20345
20346         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
20347         Extends_All. Set to True when the project parsed is an extending all
20348         project. Fails for importing an extending all project only when the
20349         imported project is an extending all project.
20350         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
20351         depending on the value of Extends_All returned.
20352
20353         * prj-proc.adb (Process): Check that no project shares its object
20354         directory with a project that extends it, directly or indirectly,
20355         including a virtual project.
20356         Check that no project extended by another project shares its object
20357         directory with another also extended project.
20358
20359         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
20360         Kind = N_With_Clause
20361
20362         * prj-tree.ads: Minor reformatting
20363         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
20364
20365 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
20366
20367         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
20368         applies to a type with an incomplete view, use full view in Name of
20369         clause, for consistency with uses of Get_Attribute_Definition_Clause.
20370
20371 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
20372
20373         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
20374         SCHED_RR, since other values are not supported by this policy.
20375         (Initialize): Move initialization of mutex attribute to package
20376         elaboration, to prevent early access to this variable.
20377
20378         * Makefile.in: Remove mention of Makefile.adalib, unused.
20379
20380         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20381         1ssecsta.ads: Removed, unused.
20382
20383 2004-01-21  Javier Miranda  <miranda@gnat.com>
20384
20385         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
20386         entity if already built in the current scope.
20387
20388         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
20389         reminder in internal scopes. Required for nested limited aggregates.
20390
20391 2004-01-21  Doug Rupp  <rupp@gnat.com>
20392
20393         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
20394         VMS. Replace all occurences of libgnat- and libgnarl- with
20395         libgnat$(hyphen) and libgnarl$(hyphen).
20396         Fixed shared library build problem on VMS.
20397
20398 2004-01-21  Robert Dewar  <dewar@gnat.com>
20399
20400         * mlib-prj.adb: Minor reformatting
20401
20402 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
20403
20404         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
20405         'constant' keywords for declaration of pointers that are not modified.
20406
20407         * exp_pakd.adb: Fix English in comment.
20408
20409 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
20410
20411         PR ada/10889
20412         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
20413         copy all attributes of the parent, including the foreign language
20414         convention.
20415
20416 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
20417
20418         PR ada/10565
20419         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
20420         for 'delay until' statement.
20421
20422 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
20423
20424         * Make-lang.in: Replace $(docdir) with doc.
20425         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
20426         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
20427         to use consistent MAKEINFO rule.
20428         (ada.man, ada.srcman): Dummy entry.
20429         (ADA_INFOFILES): Define.
20430         (ada.info, ada.srcinfo): New rules.
20431
20432 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
20433
20434         * utils.c: Update copyright notice, missed in previous change.
20435
20436 2004-01-19  Vincent Celier  <celier@gnat.com>
20437
20438         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
20439         args if Bind is True. Set First_ALI, if not already done.
20440         (Build_Library): For Stand Alone Libraries, extract from one ALI file
20441         an eventual --RTS switch, for gnatbind, and all backend switches +
20442         --RTS, for linking.
20443
20444 2004-01-19  Robert Dewar  <dewar@gnat.com>
20445
20446         * sem_attr.adb, memtrack.adb: Minor reformatting
20447
20448 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
20449
20450         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
20451         that rename enumeration literals. This is properly done in sem_eval.
20452
20453         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
20454         to functions that rename enumeration literals.
20455
20456         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
20457         functions that rename enumeration literals.
20458
20459 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
20460
20461         * Make-lang.in (utils.o): Depend on target.h.
20462         * utils.c: Include target.h.
20463         (process_attributes): Use targetm.have_named_sections instead
20464         of ASM_OUTPUT_SECTION_NAME.
20465
20466 2004-01-16  Andreas Jaeger  <aj@suse.de>
20467
20468         * Makefile.in: Add $(DESTDIR).
20469
20470 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
20471
20472         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
20473         also when not defining if a Size clause applies. That information is
20474         not to be ignored.
20475
20476 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
20477
20478         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
20479         symbolic links for the shared gnat run time when needed.
20480
20481 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
20482
20483         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
20484         for writing, and terminate with an error message if not.
20485
20486 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
20487
20488         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
20489         warning on an access to subprogram in an instance, when the target
20490         type is declared in the same generic unit.
20491         (Eval_Attribute): If 'access is known to fail accessibility check,
20492         rewrite as a raise statement.
20493
20494 2004-01-15  GNAT Script  <nobody@gnat.com>
20495
20496         * Make-lang.in: Makefile automatically updated
20497
20498 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
20499
20500         * Make-lang.in (ada.srcextra): Dummy entry.
20501
20502 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
20503
20504         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
20505
20506 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
20507
20508         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
20509         components that are initialized with aggregates.
20510
20511 2004-01-13  Vincent Celier  <celier@gnat.com>
20512
20513         * gnatlink.adb (Process_Binder_File): To find directory of shared
20514         libgcc, if "gcc-lib" is not a subdirectory, look for the last
20515         subdirectory "lib" in the path of the shared libgnat or libgnarl.
20516
20517         * make.adb (Gnatmake): If GCC version is at least 3, link with
20518         -shared-libgcc, when there is at least one shared library project.
20519
20520         * opt.ads (GCC_Version): New integer constant.
20521
20522         * adaint.c (get_gcc_version): New function.
20523
20524 2004-01-13  Robert Dewar  <dewar@gnat.com>
20525
20526         * sem_dist.adb, sem_res.adb, sem_util.adb,
20527         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
20528         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
20529
20530 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
20531
20532         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
20533         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
20534         declarations.
20535
20536 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
20537
20538         * misc.c: Remove trailing spaces.
20539         Update copyright notice missed in previous change.
20540
20541         PR ada/13572
20542         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
20543         prefix/share/make
20544
20545         * Makefile.generic: Update copyright.
20546         Add license notice.
20547
20548         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
20549         of prefix/share/make.
20550
20551         * Makefile.prolog: Update copyright.
20552         Add license notice.
20553
20554 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
20555
20556         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
20557         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
20558         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
20559         instead of String.
20560
20561         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
20562         signature.
20563
20564 2004-01-12  Javier Miranda  <miranda@gnat.com>
20565
20566         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
20567         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
20568         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
20569         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
20570         Component_Definition node.
20571
20572 2004-01-12  Ed Falis  <falis@gnat.com>
20573
20574         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
20575
20576 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
20577
20578         * link.c: Change default libgnat kind to STATIC for FreeBSD.
20579
20580 2004-01-12  Bernard Banner  <banner@gnat.com>
20581
20582         * Makefile.in: map 86numaux to a-numaux for x86_64
20583
20584 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
20585
20586         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
20587         generated to rename a generic actual, go to the actual itself, the
20588         subtype is not a user-visible entity.
20589
20590         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
20591         part is a private subtype, reset the visibility of its full view, if
20592         any, to be consistent.
20593
20594         PR ada/13417
20595         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
20596         to use a generic package G as a formal package for another generic
20597         declared within G.
20598
20599 2004-01-12  Robert Dewar  <dewar@gnat.com>
20600
20601         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
20602
20603         * usage.adb: Remove mention of obsolete -gnatwb switch
20604         Noticed during code reading
20605
20606 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
20607
20608         * 1ssecsta.adb: Minor changes for -gnatwa warnings
20609
20610 2004-01-12  GNAT Script  <nobody@gnat.com>
20611
20612         * Make-lang.in: Makefile automatically updated
20613
20614 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20615
20616         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
20617
20618 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20619
20620         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
20621
20622 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
20623
20624         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
20625         Update comment and copyright date.
20626         * stamp-xgnatug: Delete.
20627
20628 2004-01-05  Robert Dewar  <dewar@gnat.com>
20629
20630         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
20631         be modified by the binder generated main program if the -D switch is
20632         used.
20633
20634         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
20635         imported functions (since now we expect this to be done for imported
20636         functions)
20637
20638         * 5vtaprop.adb: Add several ??? for sections requiring more comments
20639         Minor reformatting throughout
20640
20641         * 5zinit.adb: Minor reformatting
20642         Add 2004 to copyright date
20643         Minor changes to avoid -gnatwa warnings
20644         Correct some instances of using OR instead of OR ELSE (noted while
20645         doing reformatting)
20646
20647         * sprint.adb: Minor updates to avoid -gnatwa warnings
20648
20649         * s-secsta.ads, s-secsta.adb:
20650         (SS_Get_Max): New function to obtain high water mark for ss stack
20651         Default_Secondary_Stack is not a constant since it may be modified by
20652         the binder generated main program if the -D switch is used.
20653
20654         * switch-b.adb: New -Dnnn switch for binder
20655
20656         * switch-c.adb:
20657         Make -gnatg imply all warnings currently in -gnatwa
20658
20659         * vms_conv.adb: Minor reformatting
20660         Add 2004 to copyright notice
20661         Add 2004 to printed copyright notice
20662
20663         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
20664         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
20665         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
20666         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
20667         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
20668         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
20669         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
20670         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
20671         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
20672         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
20673         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
20674         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
20675         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
20676         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
20677         checks.adb, clean.adb, cstand.adb, einfo.ads,
20678         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
20679         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
20680         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
20681         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
20682         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
20683         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
20684         Minor reformatting and code clean ups.
20685         Minor changes to prevent -gnatwa warnings
20686
20687         * ali.adb: Minor reformatting and cleanup of code
20688         Acquire new SS indication of secondary stack use from ali files
20689
20690         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
20691         (since now we expect this to be done for imported functions)
20692
20693         * bindgen.adb: Generate call to modify default secondary stack size if
20694         -Dnnn switch given
20695
20696         * bindusg.adb: Add line for new -D switch
20697
20698         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
20699         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
20700         Add circuitry for both records and arrays to avoid gigi
20701         processing if the type involved has non-bit-aligned components
20702
20703         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
20704         N_String_Literal node always references an E_String_Literal_Subtype
20705         entity. This may not be true in the future.
20706         (Possible_Bit_Aligned_Component): Move processing of
20707         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
20708
20709         * exp_ch6.adb (Expand_Thread_Body): Pick up
20710         Default_Secondary_Stack_Size as variable so that we get value modified
20711         by possible -Dnnn binder parameter.
20712
20713         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
20714         (Type_May_Have_Bit_Aligned_Components): New function.
20715
20716         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
20717         (Type_May_Have_Bit_Aligned_Components): New function.
20718
20719         * fe.h: (Set_Identifier_Casing): Fix prototype.
20720         Add declaration for Sem_Elim.Eliminate_Error_Msg.
20721         Minor reformatting.
20722
20723         * freeze.adb (Freeze_Entity): Add RM reference to error message about
20724         importing constant atomic/volatile objects.
20725         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
20726         unless explicit Pure_Function pragma given, to avoid insidious bug of
20727         call to non-pure imported function getting eliminated.
20728
20729         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
20730         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
20731         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
20732         Add 2004 to printed copyright notice
20733
20734         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
20735         stack used.
20736
20737         * Makefile.rtl: Add entry for g-sestin.o
20738         g-sestin.ads: New file.
20739
20740         * mdll.adb: Minor changes to avoid -gnatwa warnings
20741
20742         * mlib-tgt.adb: Minor reformatting
20743
20744         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
20745         New switch Sec_Stack_Used (GNAT, GNATBIND)
20746         Make Default_Secondary_Stack_Size a variable instead of a constant,
20747         so that it can be modified by the new -Dnnn bind switch.
20748
20749         * rtsfind.adb (Load_Fail): Give full error message in configurable
20750         run-time mode if all_errors mode is set. This was not done in the case
20751         of a file not found, which was an oversight.
20752         Note if secondary stack unit is used by compiler.
20753
20754         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
20755         ineffective elaborate all pragmas on non-visible packages (this
20756         happened when a renamed subprogram was called). Now the elaborate all
20757         always goes on the package containing the renaming rather than the one
20758         containing the renamed subprogram.
20759
20760         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
20761         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
20762
20763         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
20764         has an Etype that references an E_String_Literal.
20765         (Eval_String_Literal): Avoid assumption that N_String_Literal node
20766         always references an E_String_Literal_Subtype entity. This may not
20767         be true in the future.
20768
20769         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
20770         pragma location.
20771
20772         * sem_res.adb (Resolve): Specialize msg for function name used in proc
20773         call.
20774
20775 2004-01-05  Ed Falis  <falis@gnat.com>
20776
20777         * g-debuti.adb: Replaced direct boolean operator with short-circuit
20778         form.
20779
20780 2004-01-05  Vincent Celier  <celier@gnat.com>
20781
20782         * bld.adb: Minor comment updates
20783         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
20784         of Item_Name).
20785
20786         * make.adb (Gnatmake): Special process for files to compile/check when
20787         -B is specified. Fail when there are only foreign mains in attribute
20788         Main of the project file and -B is not specified. Do not skip bind/link
20789         steps when -B is specified.
20790
20791         * makeusg.adb: Document new switch -B
20792
20793         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
20794
20795         * switch-m.adb: (Scan_Make_Switches): Process -B switch
20796
20797         * vms_data.ads: Add new GNAT PRETTY qualifier
20798         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
20799
20800 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20801
20802         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
20803         case.
20804
20805         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
20806         Set_Identifier_Casing.
20807
20808         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
20809         has size that overflows.
20810
20811 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
20812
20813         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
20814         -gnatwa warning on static condition.
20815
20816 2004-01-05  Doug Rupp  <rupp@gnat.com>
20817
20818         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
20819
20820 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
20821
20822         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
20823         all attributes, including read-only attribute.
20824
20825 2004-01-05  Pascal Obry  <obry@gnat.com>
20826
20827         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
20828         library naming scheme.
20829
20830         * mlib-prj.adb (Build_Library): Generate different names for the static
20831         or dynamic version of the GNAT runtime. This is needed to support the
20832         new shared library naming scheme.
20833         (Process_Binder_File): Add detection of shared library in binder file
20834         based on the new naming scheme.
20835
20836         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
20837         scheme for the shared runtime libraries.
20838
20839         * Makefile.in:
20840         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
20841         scheme.
20842         (install-gnatlib): Do not create symlinks for shared libraries.
20843         (gnatlib-shared-default): Idem.
20844         (gnatlib-shared-dual-win32): New target. Not used for now as the
20845         auto-import feature does not support arrays/records.
20846         (gnatlib-shared-win32): Do not create copy for the shared libraries.
20847         (gnatlib-shared-vms): Fix shared runtime libraries names.
20848
20849         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
20850         dependent runtime shared library name.
20851
20852 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
20853
20854         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
20855         than the object.
20856
20857 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
20858
20859         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
20860         protected objects when allocator has a subtype indication, not a
20861         qualified expression. Note that qualified expressions may have to be
20862         checked when limited aggregates are implemented.
20863
20864         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
20865         pure, emit warning.
20866         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
20867         subprogram is imported, remove warning.
20868
20869 2004-01-05  Geert Bosch  <bosch@gnat.com>
20870
20871         * s-poosiz.adb: Update copyright notice.
20872         (Allocate): Use Task_Lock to protect against concurrent access.
20873         (Deallocate): Likewise.
20874
20875 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
20876
20877         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
20878         comment.
20879
20880 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
20881
20882         * gnat_ug.texi: Force a CVS commit by updating copyright.
20883         * gnat_ug_vxw.texi: Regenerate.
20884         * gnat_ug_wnt.texi: Regenerate.
20885         * gnat_ug_vms.texi: Regenerate.
20886         * gnat_ug_unx.texi: Regenerate.
20887
20888 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
20889
20890         * trans.c: Remove uses of "register" specifier in
20891         declarations of local variables.
20892
20893 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
20894
20895         * stamp-xgnatug: New stamp file.
20896         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
20897         (ada/doctools/xgnatug): Add $(build_exeext).
20898         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
20899         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
20900
20901 2003-12-17  Ed Falis  <falis@gnat.com>
20902
20903         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
20904         eliminate warning.
20905
20906         * a-exextr.adb: Add context clause for
20907         Ada.Exceptions.Last_Chance_Handler.
20908
20909 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
20910
20911         * cstand.adb (Create_Standard): Change the way how the declaration of
20912         the Duration type is created (making it the same way as it is for all
20913         the other standard types).
20914
20915 2003-12-17  Robert Dewar  <dewar@gnat.com>
20916
20917         * s-crtl.ads: Fix header format
20918         Change Pure to Preelaborate
20919
20920 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
20921
20922         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
20923         the expression type only if it is declared in the current unit.
20924
20925         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
20926         are universal and already analyzed, as can occur in constrained
20927         subcomponents that depend on discriminants, when one constraint is a
20928         subtype mark.
20929
20930         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
20931         type Any_Fixed is legal as the argument of a conversion, if only one
20932         fixed-point type is in context.
20933
20934 2003-12-17  GNAT Script  <nobody@gnat.com>
20935
20936         * Make-lang.in: Makefile automatically updated
20937
20938 2003-12-15  Robert Dewar  <dewar@gnat.com>
20939
20940         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
20941         sec stack size.
20942
20943 2003-12-15  Vincent Celier  <celier@gnat.com>
20944
20945         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
20946         (Gnatchop): Do not set failure status when reporting the number of
20947         warnings.
20948
20949 2003-12-15  Doug Rupp  <rupp@gnat.com>
20950
20951         * s-ctrl.ads: New file.
20952
20953         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
20954
20955         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
20956         (GNATBIND_OBJS): Add ada/s-crtl.o.
20957
20958         * Makefile.in [VMS]: Clean up ifeq rules.
20959
20960         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
20961         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
20962         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
20963         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
20964         s-tasdeb.adb: Update copyright.
20965         Import System.CRTL.
20966         Make minor modifications to use System.CRTL declared functions instead
20967         of importing locally.
20968
20969 2003-12-15  GNAT Script  <nobody@gnat.com>
20970
20971         * Make-lang.in: Makefile automatically updated
20972
20973 2003-12-11  Ed Falis  <falis@gnat.com>
20974
20975         * 5zinit.adb: Clean up.
20976
20977         * 5zintman.adb (Notify_Exception): replaced case statement with a call
20978         to __gnat_map_signal, imported from init.c to support
20979         signal -> exception mappings that depend on the vxWorks version.
20980
20981         * init.c:
20982         Created and exported __gnat_map_signal to support signal -> exception
20983         mapping that is dependent on the VxWorks version.
20984         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
20985
20986 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
20987
20988         * 5wosinte.ads: Link with -mthreads switch.
20989
20990 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
20991
20992         * init.c (__gnat_install_handler [NetBSD]): Set
20993         __gnat_handler_installed, as done on all other platforms.
20994         Remove duplicated code.
20995
20996 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
20997
20998         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
20999
21000 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
21001
21002         * sinfo.ads: Fix inconsistent example code in comment.
21003
21004 2003-12-11  Robert Dewar  <dewar@gnat.com>
21005
21006         * a-tiinau.adb: Add a couple of comments
21007
21008         * sem_ch3.adb: Minor reformatting
21009
21010         * sem_prag.adb:
21011         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
21012         Minor reformatting throughout
21013
21014 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
21015
21016         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
21017         bounds of a loop, create a separate block in order to generate proper
21018         cleanup actions to prevent memory leaks.
21019
21020         * sem_res.adb (Resolve_Call): After a call to
21021         Establish_Transient_Scope, the call may be rewritten and relocated, in
21022         which case no further processing is needed.
21023
21024         * sem_util.adb: (Wrong_Type): Refine previous fix.
21025          Fixes ACATS regressions.
21026
21027         PR ada/13353
21028
21029         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
21030         be inlined.
21031
21032 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
21033
21034         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
21035         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
21036         obsolete files.
21037
21038         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
21039         (rts-zfp): Ditto.
21040
21041 2003-12-08  Robert Dewar  <dewar@gnat.com>
21042
21043         * 7sintman.adb: Minor reformatting
21044
21045         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
21046         standard linker options to get standard libraries linked. We now plan
21047         to provide dummy versions of these libraries to match the appropriate
21048         configurable run-time (e.g. if a library is not needed at all, provide
21049         a dummy empty library).
21050
21051         * targparm.ads: Configurable_Run_Time mode no longer affects linker
21052         options (-L parameters and standard libraries). What we plan to do is
21053         to provide dummy libraries where the libraries are not required.
21054
21055         * gnatbind.adb: Minor comment improvement
21056
21057 2003-12-08  Javier Miranda  <miranda@gnat.com>
21058
21059         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
21060         aggregate in the parent. Otherwise constants with limited aggregates
21061         are not supported. Add new formal to pass the component type (Ctype).
21062         It is required to call the corresponding IP subprogram in case of
21063         default initialized components.
21064         (Gen_Assign): In case of default-initialized component, generate a
21065         call to the IP subprogram associated with the component.
21066         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
21067         of aggregate with default initialized components.
21068         (Has_Default_Init_Comps): Improve implementation to recursively check
21069         all the present expressions.
21070
21071         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
21072         to indicate that the initialization call corresponds to a
21073         default-initialized component of an aggregate.
21074         In case of default initialized aggregate with tasks this parameter is
21075         used to generate a null string (this is just a workaround that must be
21076         improved later). In case of discriminants, this parameter is used to
21077         generate a selected component node that gives access to the discriminant
21078         value.
21079
21080         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
21081         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
21082         allocated aggregates with default-initialized components.
21083
21084         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
21085         the box notation is used in positional aggregates.
21086
21087 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
21088
21089         * lib.ads: Fix typo in comment
21090
21091 2003-12-08  Vincent Celier  <celier@gnat.com>
21092
21093         * prj.adb (Project_Empty): New component Unkept_Comments
21094         (Scan): Remove procedure; moved to Prj.Err.
21095
21096         * prj.ads (Project_Data): New Boolean component Unkept_Comments
21097         (Scan): Remove procedure; moved to Prj.Err.
21098
21099         * prj-dect.adb: Manage comments for the different declarations.
21100
21101         * prj-part.adb (With_Record): New component Node
21102         (Parse): New Boolean parameter Store_Comments, defaulted to False.
21103         Set the scanner to return ends of line and comments as tokens, if
21104         Store_Comments is True.
21105         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
21106         comments are associated with these nodes. Store the node IDs in the
21107         With_Records.
21108         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
21109         With_Records.
21110         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
21111         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
21112         current project. Call Tree.Restore afterwards. Set the various nodes
21113         for comment storage (Next_End, End_Of_Line, Previous_Line,
21114         Previous_End).
21115
21116         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
21117         defaulted to False.
21118
21119         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
21120         to False. When Truncated is True, truncate the string, never go to the
21121         next line.
21122         (Write_End_Of_Line_Comment): New procedure
21123         (Print): Process comments for nodes N_With_Clause,
21124         N_Package_Declaration, N_String_Type_Declaration,
21125         N_Attribute_Declaration, N_Typed_Variable_Declaration,
21126         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
21127         Process nodes N_Comment.
21128
21129         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
21130         without comments and there are some comments, set the flag
21131         Unkept_Comments to True.
21132         (Scan): If there are comments, set the flag Unkept_Comments to True and
21133         clear the comments.
21134         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
21135         (Next_End_Nodes: New table
21136         (Comment_Zones_Of): New function
21137         (Scan): New procedure; moved from Prj. Accumulate comments in the
21138         Comments table and set end of line comments, comments after, after end
21139         and before end.
21140         (Add_Comments): New procedure
21141         (Save, Restore, Seset_State): New procedures
21142         (There_Are_Unkept_Comments): New function
21143         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
21144         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
21145         procedures.
21146         (First_Comment_After, First_Comment_After_End): New functions
21147         (First_Comment_Before, First_Comment_Before_End): New functions
21148         (Next_Comment): New function
21149         (End_Of_Line_Comment, Follows_Empty_Line,
21150         Is_Followed_By_Empty_Line): New functions
21151         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
21152         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
21153         (Set_Next_Comment): New procedure
21154         (Default_Project_Node): Associate comment before if the node can store
21155         comments.
21156
21157         * scans.ads (Token_Type): New enumeration value Tok_Comment
21158         (Comment_Id): New global variable
21159
21160         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
21161         defaulted to False.
21162         (Scan): Store position of start of comment. If comments are tokens, set
21163         Comment_Id and set Token to Tok_Comment when scanning a comment.
21164         (Set_Comment_As_Token): New procedure
21165
21166         * sinput-p.adb: Update Copyright notice
21167         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
21168         that no longer exists.
21169
21170 2003-12-08  Javier Miranda  <miranda@gnat.com>
21171
21172         * sem_aggr.adb: Add dependence on Exp_Tss package
21173         Correct typo in comment
21174         (Resolve_Aggregate): In case of array aggregates set the estimated
21175         type of the aggregate before calling resolve. This is needed to know
21176         the name of the corresponding IP in case of limited array aggregates.
21177         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
21178         in case of default initialized array components.
21179
21180         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
21181         types. Required to give support to limited aggregates in generic
21182         formals.
21183
21184 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
21185
21186         * sem_ch3.adb (Check_Initialization): For legality purposes, an
21187         inlined body functions like an instantiation.
21188         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
21189         until bounds are analyzed, to diagnose premature use of type.
21190
21191         * sem_util.adb (Wrong_Type): Improve error message when the type of
21192         the expression is used prematurely.
21193
21194 2003-12-08  GNAT Script  <nobody@gnat.com>
21195
21196         * Make-lang.in: Makefile automatically updated
21197
21198 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
21199
21200         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
21201         they are automatically generated by Make-lang.in and cause nothing but
21202         maintenance troubles.
21203
21204 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
21205
21206         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
21207         version of this unit).
21208
21209 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
21210
21211         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
21212         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
21213         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
21214         the body of System.Interrupt_Management common to several targets.
21215         Update copyright notice when appropriate.
21216
21217         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
21218         constant.
21219
21220         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
21221         to ensure that the kernel fills in the interrupted context structure
21222         before calling a signal handler, which is necessary to be able to
21223         unwind past it. Update the copyright notice.
21224
21225 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
21226
21227         * a-elchha.ads: New file.
21228
21229         * a-elchha.adb: New default last chance handler. Contents taken from
21230         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
21231
21232         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
21233         is moved to a-elchha.adb to provide a target-independent default last
21234         chance handler.
21235
21236         * Makefile.rtl: Add a-elchha.o
21237
21238         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
21239
21240 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
21241
21242         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
21243         declared in an instance, do not inline the call if the instance is not
21244         frozen yet, to prevent order of elaboration problems.
21245
21246         * sem_prag.adb: Add comments for previous fix.
21247
21248 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
21249
21250         * g-table.adb: Use the right variable in Set_Item.
21251         Update copyright notice.
21252
21253 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
21254
21255         * Makefile.in: Remove unused rules.
21256
21257 2003-12-05  Vincent Celier  <celier@gnat.com>
21258
21259         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
21260         -nostdlib. Not needed here after all.
21261
21262 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
21263
21264         PR ada/11724
21265
21266         * adaint.h, adaint.c, g-os_lib.ads:
21267         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
21268         on some platforms (including FreeBSD), it is a 64 bit value.
21269         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
21270
21271 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
21272
21273         * gnatvsn.ads (Library_Version): Now contain only the relevant
21274         version info.
21275         (Verbose_Library_Version): New constant.
21276
21277         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
21278         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
21279         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
21280
21281         * gnatlbr.adb: Clean up: replace Library_Version by
21282         Verbose_Library_Version.
21283
21284         * make.adb, lib-writ.adb, exp_attr.adb:
21285         Clean up: replace Library_Version by Verbose_Library_Version.
21286
21287         * 5lintman.adb: Removed.
21288
21289         * Makefile.in:
21290         Update and simplify computation of LIBRARY_VERSION.
21291         Fix computation of GSMATCH_VERSION.
21292         5lintman.adb is no longer used: replaced by 7sintman.adb.
21293
21294 2003-12-03  Robert Dewar  <dewar@gnat.com>
21295
21296         * exp_ch5.adb:
21297         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
21298         name. Modified to consider small non-bit-packed arrays as troublesome
21299         and in need of component-by-component assigment expansion.
21300
21301 2003-12-03  Vincent Celier  <celier@gnat.com>
21302
21303         * lang-specs.h: Process nostdlib as nostdinc
21304
21305         * back_end.adb: Update Copyright notice
21306         (Scan_Compiler_Arguments): Process -nostdlib directly.
21307
21308 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
21309
21310         * Makefile.in:
21311         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
21312         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
21313         included in HIE_NONE_TARGET_PAIRS.
21314
21315 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
21316
21317         * sem_attr.adb:
21318         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
21319         is legal in an instance, because legality is cheched in the template.
21320
21321         * sem_prag.adb:
21322         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
21323         appplied to an unchecked conversion of a formal parameter.
21324
21325         * sem_warn.adb:
21326         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
21327         variables.
21328
21329 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
21330
21331         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
21332         routines. The second one is new functionality to deal with backtracing
21333         through signal handlers.
21334         (unwind): Split into the two separate subroutines above.
21335         Update the documentation, and deal properly with sizeof (REG) different
21336         from sizeof (void*).
21337
21338 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
21339
21340         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
21341         so that the debugger can reliably access the value of the parameter,
21342         and therefore is able to display the exception name when an exception
21343         breakpoint is reached.
21344
21345 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
21346
21347         * fmap.adb: Fix typo in warning message.
21348
21349         * g-socket.ads, g-socket.adb: Make Free a visible instance of
21350         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
21351
21352 2003-12-01  Vincent Celier  <celier@gnat.com>
21353
21354         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
21355         ther is no Afile.
21356         (Build_Library): Get the switches only if Default_Switches is declared
21357         in package Binder.
21358
21359 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
21360
21361         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
21362         actuals that are indexed components, reanalyze actual to ensure that
21363         packed array references are properly expanded.
21364
21365         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
21366         attempted assignment to a discriminant.
21367
21368 2003-12-01  Robert Dewar  <dewar@gnat.com>
21369
21370         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
21371         reformatting.
21372
21373         * switch-c.adb: Minor reformatting of comments
21374
21375 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21376
21377         * Makefile.in: Clean ups.
21378
21379 2003-12-01  GNAT Script  <nobody@gnat.com>
21380
21381         * Make-lang.in: Makefile automatically updated
21382
21383 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21384
21385         * 5wsystem.ads: Disable zero cost exception, not ready yet.
21386
21387 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
21388
21389         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
21390         to force serialization.
21391
21392 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
21393
21394         * g-socket.ads, g-socket.adb:
21395         Clarify documentation of function Stream. Introduce a Free procedure
21396         to release the returned Stream once it becomes unused.
21397
21398         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
21399
21400 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
21401
21402         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
21403         since NT 4 cannot handle timeout values that are too large,
21404         e.g. DWORD'Last - 1.
21405
21406 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
21407
21408         * exp_ch4.adb:
21409         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
21410         in procedure calls and whose expansion must be deferred.
21411
21412         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
21413         is in exp_ch4.
21414
21415         * sem_ch3.adb:
21416         (Build_Derived_Array_Type): Create operator for unconstrained type
21417         if ancestor is unconstrained.
21418
21419 2003-11-26  Vincent Celier  <celier@gnat.com>
21420
21421         * make.adb (Project_Object_Directory): New global variable
21422         (Change_To_Object_Directory): New procedure
21423         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
21424         of Change_Dir directly. Do not change working directory to object
21425         directory of main project after each compilation.
21426         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
21427         directly.
21428         Change to object directory of main project before binding step.
21429         (Initialize): Initialize Project_Object_Directory to No_Project
21430
21431         * mlib-prj.adb:
21432         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
21433         binding a Stand-Alone Library.
21434
21435         * output.adb: Update Copyright notice
21436         (Write_Char): Output buffer when full
21437
21438 2003-11-26  Robert Dewar  <dewar@gnat.com>
21439
21440         * sem_ch13.adb: (Check_Size): Reset size if size is too small
21441
21442         * sem_ch13.ads:
21443         (Check_Size): Fix documentation to include bit-packed array case
21444
21445         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
21446
21447         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
21448
21449         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
21450
21451 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
21452
21453         PR ada/13142
21454         * utils.c (init_gigi_decls): Change name of built-in setjmp to
21455         __builtin_setjmp, since this is apparently needed by recent
21456         non Ada changes.
21457
21458 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21459
21460         * adadecode.c: Only include ctype.h if not IN_GCC.
21461         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
21462
21463 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
21464
21465         * Makefile.in:
21466         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
21467         signals and interrupts.
21468
21469         * 5zintman.ads: New File.
21470
21471         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
21472         add exception signals to the set of unmasked signals.
21473
21474         * 5ztaprop.adb:
21475         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
21476         between signals and interrupts.
21477         Add to Unblocked_Signal_Mask the set of signals that are in
21478         Keep_Unmasked.
21479
21480         * 7sinmaop.adb:
21481         Adding a check to see whether the Interrupt_ID we want to unmask is in
21482         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
21483         reason is that the index type of the Keep_Unmasked array is not always
21484         Interrupt_ID; it may be a subtype of Interrupt_ID.
21485
21486 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
21487
21488         * exp_util.adb:
21489         (Remove_Side_Effects): Condition constantness of object created for a
21490          an unchecked type conversion on the constantness of the expression
21491          to ensure the correct value for 'Constrained when passing components
21492          of view-converted class-wide objects.
21493
21494 2003-11-24  Robert Dewar  <dewar@gnat.com>
21495
21496         * par-load.adb (Load): Improve handling of misspelled and missing units
21497         Removes several cases of compilation abandoned messages
21498
21499         * lib.adb: (Remove_Unit): New procedure
21500
21501         * lib.ads: (Remove_Unit): New procedure
21502
21503         * lib-load.adb: Minor reformatting
21504
21505 2003-11-24  Vincent Celier  <celier@gnat.com>
21506
21507         * make.adb:
21508         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
21509         (Marking_Label): Label to mark processed source files. Incremented for
21510         each executable.
21511         (Gnatmake): Increase Marking_Labet for each executable
21512         (Is_Marked): Compare against marking label
21513         (Mark): Mark with marking label
21514
21515 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
21516
21517         * s-thread.ads:
21518         Move the declaration of the TSD for System.Threads to System.Soft_Links.
21519         Add some comments.
21520
21521         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
21522         (rts-cert): build a single relocatable object for the run-time lib.
21523         Fix perms.
21524
21525 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
21526
21527         * Make-lang.in:
21528         Use gnatls rather than gcc to obtain the location of GNAT RTL for
21529         crosstools build.
21530
21531 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
21532
21533         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
21534         can not use it as before (that is, as a variable) when dumping it into
21535         the tree file. Add a local variable to store the result of this
21536         function and to be used as the string to be written into the tree.
21537
21538         * scn.adb (Initialize_Scanner): Add comments explaining the recent
21539         changes.
21540
21541         * sinput.adb (Source_First, Source_Last): In case of
21542         Internal_Source_File, replace returning attributes of
21543         Internal_Source_Ptr (which is wrong) with returning attributes of
21544         Internal_Source.
21545
21546 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
21547
21548         * sem_ch3.adb:
21549         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
21550         used for implicit concatenation operators.
21551         Code cleanup.
21552
21553         * sem_elab.adb:
21554         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
21555         task bodies that are in the scope of a Suppress pragma.
21556         (Check_A Call): Use the flag to prevent spurious elaboration checks.
21557
21558         * sinfo.ads, sinfo.adb:
21559         New flag No_Elaboration_Check on function/procedure calls, to properly
21560         suppress checks on calls in task bodies that are within a local suppress
21561         pragma.
21562
21563         * exp_ch4.adb:
21564         (Expand_Concatenate_Other): Use the proper integer type for the
21565         expression for the upper bound, to avoid universal_integer computations
21566         when possible.
21567
21568 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
21569
21570         * .cvsignore: Delete.
21571
21572 2003-11-21  Andreas Schwab  <schwab@suse.de>
21573
21574         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
21575
21576 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
21577
21578         * 5wsystem.ads: Enable zero cost exception.
21579
21580 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
21581
21582         * 5ztiitho.adb: Remove an unreferenced variable.
21583
21584 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
21585
21586         * adaint.c: For FreeBSD, use mkstemp.
21587
21588 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
21589
21590         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
21591
21592 2003-11-21  Robert Dewar  <dewar@gnat.com>
21593
21594         * bld.adb: Remove useless USE of gnatvsn
21595
21596         * gnatchop.adb: Minor reformatting
21597         Clean up version handling to be more consistent
21598
21599         * gnatxref.adb: Minor reformatting
21600
21601         * gprcmd.adb: Minor reformatting
21602         Fix output of copyright to be more consistent with other tools
21603
21604 2003-11-21  Vincent Celier  <celier@gnat.com>
21605
21606         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
21607
21608 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
21609
21610         * atree.adb (Initialize): Add initializations for global variables
21611         used in New_Copy_Tree.
21612
21613         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
21614         Internal_Source_File as the actual).
21615         Put the set of statements creating Any_Character before the set of
21616         statements creating Any_Array to have Any_Character fully initialized
21617         when it is used in creating Any_Array.
21618
21619         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
21620         not call Scan in case if the actual is Internal_Source_File
21621         Add 2003 to copyright note.
21622
21623         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
21624         processing Internal_Source_File.
21625
21626         * types.ads: Add the constant Internal_Source_File representing the
21627         source buffer for artificial source-code-like strings created within
21628         the compiler (the definition of Source_File_Index is changed).
21629
21630 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
21631
21632         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
21633         56system.ads: New file, FreeBSD version.
21634
21635 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
21636
21637         * Make-lang.in (ada.extraclean): Delete.
21638
21639 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
21640
21641         * gnatmem.adb: Clean up verbose output.
21642
21643         * gprcmd.adb: Change copyright to FSF.
21644
21645 2003-11-19  Vincent Celier  <celier@gnat.com>
21646
21647         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
21648         and Version (ignored).
21649
21650         * symbols.ads: (Policy): New type
21651         (Initialize): New parameter Reference, Symbol_Policy and
21652         Library_Version.
21653         Remove parameter Force.
21654         Minor reformatting.
21655
21656         * snames.ads, snames.adbadb: New standard names
21657         Library_Reference_Symbol_File and Library_Symbol_Policy
21658
21659         * mlib-prj.adb:
21660         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
21661         project.
21662
21663         * mlib-tgt.adb:
21664         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
21665
21666         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
21667
21668         * prj.adb: (Project_Empty): New component Symbol_Data
21669
21670         * prj.ads: (Policy, Symbol_Record): New types
21671         (Project_Data): New component Symbol_Data
21672
21673         * prj-attr.adb:
21674         New attributes Library_Symbol_File, Library_Symbol_Policy and
21675         Library_Reference_Symbol_File.
21676
21677         * prj-nmsc.adb:
21678         (Ada_Check): When project is a Stand-Alone library project, process
21679         attribute Library_Symbol_File, Library_Symbol_Policy and
21680         Library_Reference_Symbol_File.
21681
21682         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
21683         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
21684         5sml-tgt.adb (Build_Dynamic_Library): New parameter
21685         Symbol_Data (ignored).
21686
21687         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
21688         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
21689         functions Option_File_Name and Version_String. Set new options of
21690         gnatsym related to symbol file, symbol policy and reference symbol
21691         file.
21692
21693         * 5vsymbol.adb:
21694         Extensive modifications to take into account the reference symbol file,
21695         the symbol policy, the library version and to put in the symbol file the
21696         minor and major IDs.
21697
21698         * bld.adb (Process_Declarative_Items): Put second argument of
21699         gprcmd to_absolute between single quotes, to avoid problems with
21700         Windows.
21701
21702         * bld-io.adb: Update Copyright notice.
21703         (Flush): Remove last character of a line, if it is a back slash, to
21704         avoid make problems.
21705
21706         * gnatsym.adb:
21707         Implement new scheme with reference symbol file and symbol policy.
21708
21709         * g-os_lib.ads: (Is_Directory): Clarify comment
21710
21711 2003-11-19  Robert Dewar  <dewar@gnat.com>
21712
21713         * atree.adb: Move New_Copy_Tree global variables to head of package
21714
21715         * errout.adb: Minor reformatting
21716
21717 2003-11-19  Javier Miranda  <miranda@gnat.com>
21718
21719         * sem_ch4.adb: (Diagnose_Call): Improve error message.
21720         Add reference to Ada0Y (AI-50217)
21721
21722         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
21723         sem_util.adb: Add reference to AI-50217
21724
21725         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
21726
21727         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
21728
21729         * sem_aggr.adb: Complete documentation of AI-287 changes
21730
21731         * par-ch4.adb: Document previous changes.
21732
21733         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
21734         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
21735         Ada0Y (AI-50217)
21736
21737         * exp_aggr.adb: Add references to AI-287 in previous changes
21738
21739 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
21740
21741         * exp_ch6.adb:
21742         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
21743         in the rewriting is the result of an inlined call.
21744
21745         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
21746         parameter is a type conversion, use original node to construct the
21747         post-call assignment, because expression may have been rewritten, e.g.
21748         if it is a packed array.
21749
21750         * sem_attr.adb:
21751         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
21752         body, just as it is in an instance.
21753         Categorization routines
21754
21755         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
21756         Instantiate_Object): Set proper sloc reference for message on missing
21757         actual.
21758
21759 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
21760
21761         * Makefile.in: Add FreeBSD libgnat pairs.
21762
21763         * usage.adb: Fix typo in usage message.
21764
21765 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
21766
21767         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
21768         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
21769         pragma Thread_Body.
21770         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
21771
21772         * s-thread.adb: This file is now a dummy implementation of
21773         System.Thread.
21774
21775 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
21776
21777         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
21778
21779 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
21780
21781         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21782         instanciation references in the parent type description.
21783
21784 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21785
21786         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
21787
21788         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
21789         TYPE_PRECISION directly from esize.
21790
21791 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
21792
21793         * cstreams.c:
21794         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
21795
21796         * init.c: Initialization routines for FreeBSD
21797
21798         * link.c: Link info for FreeBSD
21799
21800         * sysdep.c: Add the case of FreeBSD
21801
21802 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
21803
21804         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
21805         already called in System.Threads.
21806
21807         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
21808         environment task, as it has been moved to System.Threads.Initialization.
21809
21810 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
21811
21812         * adaint.c (__gnatlib_install_locks): Only reference
21813         __gnat_install_locks on VMS, since other platforms can avoid using
21814         --enable-threads=gnat
21815
21816 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21817
21818         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
21819
21820         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
21821         TYPE_PACKED_ARRAY_TYPE_P.
21822         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
21823
21824         Part of PR ada/12806
21825         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
21826         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
21827
21828 2003-11-17  Vincent Celier  <celier@gnat.com>
21829
21830         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
21831         to False.
21832         Do not set exit status to Failure when Warning is True.
21833         (Gnatchop): Make errors "no compilation units found" and
21834         "no source files written" warnings only.
21835
21836         * make.adb (Gnatmake): When using a project file, set
21837         Look_In_Primary_Dir to False.
21838         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
21839         and Local_Configuration_Pragmas in the project where they are declared
21840         not an extending project which might have inherited them.
21841
21842         * osint.adb (Locate_File): If Name is already an absolute path, do not
21843         look for a directory.
21844
21845         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
21846         -gnats (Check_Syntax) is used, issue only a warning, not an error.
21847
21848         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
21849         in objects of type Variable_Value.
21850
21851         * prj.ads: (Variable_Value): New component Project
21852
21853         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
21854         is in a project extended by Project.
21855
21856         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
21857         Project of Variable_Values to this new parameter value.
21858         (Expression): Set component Project of Variable_Values.
21859         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
21860         Set the component Project in array elements.
21861
21862 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
21863
21864         * errout.adb: (Initialize): Add initialization for error nodes.
21865
21866         * sem_ch12.adb (Initialize): Add missing initializations for
21867         Exchanged_Views and Hidden_Entities.
21868
21869 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
21870
21871         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
21872         already instantiated tree for use in subsequent inlining.
21873         (Analyze_Associations, Instantiate_Formal_Subprogram,
21874         Instantiate_Object): improve error message for mismatch in
21875         instantiations.
21876
21877         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
21878         instantiations of subprograms declared in instances.
21879
21880 2003-11-17  Javier Miranda  <miranda@gnat.com>
21881
21882         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
21883         executed only under the Extensions_Allowed flag.
21884
21885 2003-11-17  Robert Dewar  <dewar@gnat.com>
21886
21887         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
21888         zeroes suppressed.
21889         (Address_Image): Fix bug of returning 0x instead of 0x0
21890         Minor reformatting (function specs).
21891
21892         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
21893         (missed case of 33-63)
21894
21895         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
21896
21897         * s-thread.adb: Add comments for pragma Restriction
21898
21899         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
21900         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
21901
21902 2003-11-17  Ed Falis  <falis@gnat.com>
21903
21904         * s-thread.adb: Added No_Tasking restriction for this implementation.
21905
21906 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
21907
21908         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21909         instanciation references in the parent type description.
21910
21911 2003-11-17  GNAT Script  <nobody@gnat.com>
21912
21913         * Make-lang.in: Makefile automatically updated
21914
21915 2003-11-16  Jason Merrill  <jason@redhat.com>
21916
21917         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
21918         and TAGS files that include them for each front end.
21919
21920 2003-11-14  Andreas Jaeger  <aj@suse.de>
21921
21922         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
21923         is the canonical version.
21924         * misc.c (gnat_handle_option): Likewise.
21925
21926         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
21927
21928         * 5nsystem.ads: New file for x86_64-linux-gnu.
21929
21930 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
21931
21932         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
21933
21934         * comperr.adb: Fix logic in previous change.
21935
21936 2003-11-13  Vincent Celier  <celier@gnat.com>
21937
21938         * 5bml-tgt.adb (Build_Dynamic_Library): Use
21939         Osint.Include_Dir_Default_Prefix instead of
21940         Sdefault.Include_Dir_Default_Name.
21941
21942         * gnatlbr.adb: Update Copyright notice
21943         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
21944         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
21945         instead of Sdefault.Object_Dir_Default_Name
21946
21947         * gnatlink.adb:
21948         (Process_Binder_File): Never suppress the option following -Xlinker
21949
21950         * mdll-utl.adb:
21951         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
21952         Sdefault.Object_Dir_Default_Name.
21953
21954         * osint.ads, osint.adb:
21955         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
21956         Minor reformatting.
21957
21958         * vms_conv.ads: Minor reformating
21959         Remove GNAT STANDARD and GNAT PSTA
21960
21961         * vms_conv.adb:
21962         Allow GNAT MAKE to have several files on the command line.
21963         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
21964         Sdefault.Object_Dir_Default_Name.
21965         Minor Reformating
21966         Remove data for GNAT STANDARD
21967
21968         * vms_data.ads:
21969         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
21970         Remove data for GNAT STANDARD
21971         Remove options and documentation for -gnatwb/-gnatwB: these warning
21972         options no longer exist.
21973
21974 2003-11-13  Ed Falis  <falis@gnat.com>
21975
21976         * 5zthrini.adb: (Init_RTS): Made visible
21977
21978         * 5zthrini.adb:
21979         (Register): Removed unnecessary call to taskVarGet that checked whether
21980          an ATSD was already set as a task var for the argument thread.
21981
21982         * s-thread.adb:
21983         Updated comment to reflect that this is a VxWorks version
21984         Added context clause for System.Threads.Initialization
21985         Added call to System.Threads.Initialization.Init_RTS
21986
21987 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
21988
21989         * 5zthrini.adb:
21990         (Init_RTS): New procedure, for the initialization of the run-time lib.
21991
21992         * s-thread.adb:
21993         Remove dependancy on System.Init, so that this file can be used in the
21994         AE653 sequential run-time lib.
21995
21996 2003-11-13  Robert Dewar  <dewar@gnat.com>
21997
21998         * bindgen.adb: Minor reformatting
21999
22000 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
22001
22002         * checks.adb:
22003         (Apply_Discriminant_Check): Do no apply check if target type is derived
22004         from source type with no applicable constraint.
22005
22006         * lib-writ.adb:
22007         (Ensure_System_Dependency): Do not apply the style checks that may have
22008         been specified for the main unit.
22009
22010         * sem_ch8.adb:
22011         (Find_Selected_Component): Further improvement in error message, with
22012         RM reference.
22013
22014         * sem_res.adb:
22015         (Resolve): Handle properly the case of an illegal overloaded protected
22016         procedure.
22017
22018 2003-11-13  Javier Miranda  <miranda@gnat.com>
22019
22020         * exp_aggr.adb:
22021         (Has_Default_Init_Comps): New function to check the presence of
22022         default initialization in an aggregate.
22023         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
22024         extension aggregate of a limited record. In addition, a new formal
22025         was added to do not initialize the record controller (if any) during
22026         this recursive expansion of ancestors.
22027         (Init_Controller): Add support for limited record components.
22028         (Expand_Record_Aggregate): In case of default initialized components
22029         convert the aggregate into a set of assignments.
22030
22031         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
22032         describing the new syntax.
22033         Nothing else needed to be done because this subprogram delegates part of
22034         its work to P_Precord_Or_Array_Component_Association.
22035         (P_Record_Or_Array_Component_Association): Give support to the new
22036         syntax for default initialization of components.
22037
22038         * sem_aggr.adb:
22039         (Resolve_Aggregate): Relax the strictness of the frontend in case of
22040         limited aggregates.
22041         (Resolve_Record_Aggregate): Give support to default initialized
22042         components.
22043         (Get_Value): In case of default initialized components, duplicate
22044         the corresponding default expression (from the record type
22045         declaration). In case of default initialization in the *others*
22046         choice, do not check that all components have the same type.
22047         (Resolve_Extension_Aggregate): Give support to limited extension
22048         aggregates.
22049
22050         * sem_ch3.adb:
22051         (Check_Initialization): Relax the strictness of the front-end in case
22052         of aggregate and extension aggregates. This test is now done in
22053         Get_Value in a per-component manner.
22054
22055         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
22056         expression corresponds to a limited aggregate. This test is now done
22057         in Get_Value.
22058
22059         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
22060         Box_Present flag.
22061
22062         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
22063         present in an N_Component_Association node
22064
22065 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
22066
22067         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
22068         type-conformant entry only if they are homographs.
22069
22070 2003-11-13  GNAT Script  <nobody@gnat.com>
22071
22072         * Make-lang.in: Makefile automatically updated
22073
22074 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22075
22076         * adadecode.c: Use <> form of include for ctype.h.
22077         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
22078
22079 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22080
22081         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
22082         Works around PR middle-end/6552.
22083
22084 2003-11-10  Ed Falis  <falis@gnat.com>
22085
22086         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
22087
22088         * 5zinit.adb: (Install_Handler): Moved back to spec
22089         (Install_Signal_Handlers): Deleted
22090
22091         * 5zthrini.adb: Added context clause for System.Storage_Elements
22092         (Register): Only handles creation of taskVar; initialization moved to
22093         Thread_Body_Enter.
22094         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
22095         Added declaration of environment task secondary stack and
22096         initialization.
22097
22098         * s-thread.adb: Implement bodies for thread body processing
22099
22100         * s-thread.ads:
22101         Added comment identifying supported targets for pragma Thread_Body.
22102
22103 2003-11-10  Pascal Obry  <obry@gnat.com>
22104
22105         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
22106         GNAT_MAX_PATH_LEN.
22107
22108         * s-fileio.adb:
22109         (Open): Properly check for string length before copying into the buffer.
22110         Raises Name_Error if buffer is too small. Note that this was a potential
22111         buffer overflow.
22112
22113 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
22114
22115         * bindgen.adb, comperr.adb: Code clean ups.
22116         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
22117
22118 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
22119
22120         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
22121
22122 2003-11-10  Vincent Celier  <celier@gnat.com>
22123
22124         * gprcmd.adb:
22125         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
22126         installation.
22127
22128         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
22129
22130         * prj.adb: (Project_Empty): Add new boolean component Virtual
22131
22132         * prj.ads: (Virtual_Prefix): New constant string
22133         (Project_Data): New boolean component Virtual
22134
22135         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
22136         a library project is extended by a virtual extending project.
22137
22138         * prj-part.adb:
22139         Modifications throughout to implement extending-all project, including:
22140         (Virtual_Hash, Processed_Hash): New hash tables
22141         (Create_Virtual_Extending_Project): New procedure
22142         (Look_For_Virtual_Projects_For): New procedure
22143
22144         * prj-proc.adb:
22145         (Process): After checking the projects, if main project is an
22146         extending-all project, set the object directory of all virtual extending
22147         project to the object directory of the main project.
22148         Adjust error message when a virtual extending project has the same
22149         object directory as an project being extended.
22150         (Recursive_Process): If name starts with the virtual prefix, set Virtual
22151         to True in the project data.
22152
22153         * prj-tree.adb:
22154         (Default_Project_Node): Add new boolean component Extending_All
22155         (Is_Extending_All): New function
22156         (Set_Is_Extending_All): New procedure
22157
22158         * prj-tree.ads: (Is_Extending_All): New function
22159         (Set_Is_Extending_All): New procedure
22160         (Project_Node_Record): New boolean component Extending_All
22161
22162         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
22163
22164         * vms_data.ads:
22165         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
22166
22167         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
22168         "gprcmd prefix" to define it.
22169
22170 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
22171
22172         * einfo.ads: Fix a typo and remove an extraneous word in comments.
22173
22174         * lib-load.adb:
22175         (Create_Dummy_Package_Unit): Set the scope of the entity for the
22176         created dummy package to Standard_Standard, not to itself, to
22177         defend other parts of the front-end against encoutering a cycle in
22178         the scope chain.
22179
22180         * sem_ch10.adb:
22181         (Analyze_With_Clause): When setting the entities for the successive
22182         N_Expanded_Names that constitute the name of a child unit, do not
22183         attempt to go further than Standard_Standard in the chain of scopes.
22184         This case arises from the placeholder units created by
22185         Create_Dummy_Package_Unit in the case of a with_clause for a
22186         nonexistent child unit.
22187
22188 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
22189
22190         * exp_ch6.adb:
22191         (Expand_Thread_Body): Place subprogram on scope stack, so that new
22192         declarations are given the proper scope.
22193
22194         * sem_ch13.adb:
22195         (Check_Expr_Constants): Reject an expression that contains a constant
22196         created during expansion, and that appears after the object to which
22197         the address clause applies.
22198
22199         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
22200         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
22201         that uses 'Range of a function call with controlled components, so
22202         that the function result can be finalized before starting the loop.
22203
22204         * sem_ch8.adb:
22205         (Find_Selected_Component): Improve error message when prefix is
22206         an implicit dereference of an incomplete type.
22207
22208 2003-11-10  Robert Dewar  <dewar@gnat.com>
22209
22210         * opt.ads: New Print_Standard flag for -gnatS switch
22211
22212         * sem_ch13.adb: Remove some additional checks for unaligned arrays
22213
22214         * cstand.adb (Create_Standard): Print out package standard if -gnatS
22215         switch set
22216
22217         * debug.adb: Update doc for -gnatds to discuss relationship with new
22218         -gnatS flag
22219
22220         * sinfo.adb: Add new field Entity_Or_Associated_Node
22221
22222         * sinfo.ads: Add new field Entity_Or_Associated_Node
22223         Update documentation for Associated_Node and Entity fields to clarify
22224         relationship and usage.
22225
22226         * sprint.adb:
22227         (Write_Id): Properly process Associated_Node field in generic template
22228
22229         * switch-c.adb:
22230         Recognize new -gnatS switch for printing package Standard
22231         This replaces gnatpsta
22232
22233         * usage.adb:
22234         Add line for  new -gnatS switch for printing package Standard
22235         This replaces gnatpsta
22236
22237 2003-11-10  Andreas Jaeger  <aj@suse.de>
22238
22239         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
22240         integer.
22241
22242 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22243
22244         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
22245         by gnat1.
22246
22247 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22248
22249         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
22250         no longer needed.
22251
22252         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
22253
22254         * sysdep.c: Add handling of cygwin.
22255
22256 2003-11-10  GNAT Script  <nobody@gnat.com>
22257
22258         * Make-lang.in: Makefile automatically updated
22259
22260 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22261
22262         PR 12950
22263         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
22264         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
22265         Replace GNAT_ROOT by GCC_ROOT.
22266
22267         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
22268
22269 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
22270
22271         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
22272         and update for changed meaning of GET_MODE_BITSIZE.
22273
22274 2003-11-04  Doug Rupp  <rupp@gnat.com>
22275
22276         * sysdep.c: Problem discovered during IA64 VMS port.
22277         [VMS] #include <unixio.h> to get proper prototypes.
22278
22279         * adaint.c:
22280         Issues discovered/problems fixed during IA64 VMS port.
22281         [VMS] #define _POSIX_EXIT for proper semantics.
22282         [VMS] #include <unixio.h> for proper prototypes.
22283         [VMS] (fork): #define IA64 version.
22284         (__gnat_os_exit): Remove unnecessary VMS specific code.
22285
22286 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22287
22288         Part of PR ada/12806
22289
22290         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
22291         tree, not integer.
22292
22293         * decl.c:
22294         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
22295         not integer.
22296
22297         * targtyps.c, decl.c, misc.c,
22298         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
22299         routines to work around change in FP sizing semantics in GCC.
22300
22301         * utils.c:
22302         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
22303
22304         * gigi.h: (enumerate_modes): New function.
22305
22306         * Make-lang.in: (ada/misc.o): Add real.h.
22307
22308         * misc.c: (enumerate_modes): New function.
22309
22310 2003-11-04  Robert Dewar  <dewar@gnat.com>
22311
22312         * 3vtrasym.adb: Minor reformatting
22313         Use terminology encoded/decoded name, rather than C++ specific notion
22314         of mangling (this is the terminology used throughout GNAT).
22315
22316         * einfo.h: Regenerated
22317
22318         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
22319
22320         * exp_ch6.adb:
22321         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
22322
22323         * par-prag.adb: Add dummy entry for Thread_Body pragma
22324
22325         * rtsfind.ads:
22326         Add entries for System.Threads entities for thread body processing
22327
22328         * sem_attr.adb:
22329         (Analyze_Pragma, Access attributes): Check these are not applied to a
22330         thread body, since this is not permitted
22331
22332         * sem_prag.adb: Add processing for Thread_Body pragma.
22333         Minor comment fix.
22334
22335         * sem_res.adb:
22336         (Resolve_Call): Check for incorrect attempt to call a thread body
22337          procedure with a direct call.
22338
22339         * snames.ads, snames.adb: Add entry for Thread_Body pragma
22340         Add names associated with thread body expansion
22341
22342         * snames.h: Add entry for Thread_Body pragma
22343
22344         * s-thread.adb: Add entries for thread body processing
22345         These are dummy bodies so far
22346
22347         * s-thread.ads: Add documentation on thread body handling.
22348         Add entries for thread body processing.
22349
22350 2003-11-04  Javier Miranda  <miranda@gnat.com>
22351
22352         * sem_ch10.adb:
22353         (Build_Limited_Views): Return after posting an error in case of limited
22354         with_clause on subprograms, generics, instances or generic renamings
22355         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
22356         on subprograms, generics, instances or generic renamings
22357
22358 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
22359
22360         * raise.c (setup_to_install): Correct mistake in last revision; two
22361         arguments out of order.
22362
22363         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
22364         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
22365         notice, missed in previous change.
22366         Remove trailing blanks and other style errors introduced in previous
22367         change.
22368
22369 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
22370
22371         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
22372         rid of the wrapper for a LJM type, ensuring we don't do that if the
22373         field is addressable.  This avoids potential low level type view
22374         mismatches later on, for instance in a by-reference argument passing
22375         process.
22376
22377 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22378
22379         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
22380         aligned at byte boundary.
22381
22382 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
22383
22384         * decl.c (components_to_record): Do not delete the empty variants from
22385         the end of the union type.
22386
22387 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
22388
22389         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
22390         operation for a derived type, an explicit declaration may use a local
22391         subtype of Boolean.
22392
22393 2003-11-04  Vincent Celier  <celier@gnat.com>
22394
22395         * make.adb (Gnatmake): Allow main sources on the command line with a
22396         library project when it is only for compilation (no binding or
22397         linking).
22398
22399 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22400
22401         * Makefile.in: Remove many duplicate variables.
22402
22403 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
22404
22405         * Make-lang.in (dvi): Move targets to $(docobjdir).
22406         (gnat_ug_vms.dvi): Simplify rule and adjust target.
22407         (gnat_ug_wnt.dvi): Likewise.
22408         (gnat_ug_unx.dvi): Likewise.
22409         (gnat_ug_vxw.dvi): Likewise.
22410         (gnat_rm.dvi): Likewise.
22411         (gnat-style.dvi): Likewise.
22412
22413 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22414
22415         * gigi.h: Missed commit from update for C90.
22416
22417 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22418
22419         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
22420
22421 2003-10-31  Andreas Schwab  <schwab@suse.de>
22422
22423         * raise.c (get_action_description_for): Fix typo in last change.
22424
22425 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
22426
22427         PR ada/12761
22428         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
22429         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
22430
22431 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
22432
22433         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
22434         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
22435         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
22436         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
22437         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
22438
22439 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
22440
22441         * 3vtrasym.adb:
22442         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
22443         numbers when symbol name is too long.
22444
22445 2003-10-30  Ed Falis  <falis@gnat.com>
22446
22447         * g-signal.ads, g-signal.adb: New files
22448
22449         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
22450
22451         * Makefile.rtl: Introduce GNAT.Signals
22452
22453 2003-10-30  Robert Dewar  <dewar@gnat.com>
22454
22455         * freeze.adb: Minor reformatting
22456
22457         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
22458
22459         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
22460         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
22461         New handling of Id_Check parameter to improve recognition of keywords
22462         used as identifiers.
22463         Update copyright notice to include 2003
22464
22465 2003-10-29  Robert Dewar  <dewar@gnat.com>
22466
22467         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
22468         sem_ch10.adb: Minor reformatting
22469
22470         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
22471         (Expand_Assign_Record): Test right hand side for bit unaligned as well
22472
22473 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
22474
22475         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
22476         Support for TBK$SYMBOLIZE-based symbolic traceback.
22477
22478 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
22479
22480         * exp_disp.adb:
22481         Revert previous change, that did not work well when pragma No_Run_Time
22482         was used in conjunction with a run-time other than ZFP.
22483
22484 2003-10-29  Vincent Celier  <celier@gnat.com>
22485
22486         * make.adb:
22487         (Gnatmake): When there are no Ada mains in attribute Main, disable the
22488          bind and link steps only is switch -z is not used.
22489
22490 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
22491
22492         * Makefile.generic: Remove duplicated setting of CC.
22493
22494         * Makefile.prolog: Set CC to gcc by default, to override make's
22495         default (cc).
22496
22497         * einfo.h: Regenerated.
22498
22499 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
22500
22501         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
22502         current body, after compiling subunit.
22503
22504         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
22505         when in deleted code, because gigi needs properly ordered freeze
22506         actions to annotate types.
22507
22508         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
22509         prevent the premature freezing of record type that contains
22510         subcomponents with a private type that does not yet have a completion.
22511
22512 2003-10-29  Javier Miranda  <miranda@gnat.com>
22513
22514         * sem_ch12.adb:
22515         (Analyze_Package_Instantiation): Check that instances can not be used in
22516         limited with_clauses.
22517
22518         * sem_ch8.adb:
22519         (Analyze_Package_Renaming): Check that limited withed packages cannot
22520         be renamed. Improve text on error messages related to limited
22521         with_clauses.
22522
22523         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
22524
22525         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
22526         Update copyright notice.
22527
22528         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
22529         (Install_Limited_Context_Clauses): New subprogram that isolates all the
22530         checks required for limited context_clauses and installs the limited
22531         view.
22532         (Install_Limited_Withed_Unit): Complete its documentation.
22533         (Analyze_Context): Check that limited with_clauses are only allowed in
22534         package specs.
22535         (Install_Context): Call Install_Limited_Context_Clauses after the
22536         parents have been installed.
22537         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
22538         package as 'From_With_Type'; this mark indicates that the limited view
22539         is installed. Used to check bad usages of limited with_clauses.
22540         (Build_Limited_Views): Do not add shadow entities to the scope's list
22541         of entities. Do not add real entities to the Non_Limited_Views chain.
22542         Improve error notification.
22543         (Remove_Context_Clauses): Remove context clauses in two phases:
22544         limited views first and regular views later (to maintain the
22545         stack model).
22546         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
22547         its visible entities.
22548
22549 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
22550
22551         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
22552         with any type that Is_Fixed_Point_Type.
22553
22554         * sinfo.ads: Fix documentation for Associated_Node attribute.
22555
22556 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
22557
22558         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
22559         both '-gnatc' and '-gnatt' are specified.
22560
22561         * atree.adb (Initialize): Add initialization for Node_Count (set to
22562         zero).
22563
22564 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22565
22566         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
22567         do not consider as Pure.
22568
22569         Part of implementation of function-at-a-time:
22570
22571         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
22572         (tree_transform): Add new argument to build_component_ref.
22573         (tree_transform, case N_Assignment_Statement): Make and return an
22574         EXPR_STMT.
22575         (tree_transform): If result IS_STMT, set flags and return it.
22576         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22577
22578         * utils2.c (build_simple_component_ref, build_component_ref): Add new
22579         arg, NO_FOLD_P.
22580         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
22581         (build_allocator): Likewise.
22582
22583         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
22584         Add new arg to build_component_ref.
22585         (maybe_unconstrained_array, unchecked_convert): Likewise.
22586
22587         * ada-tree.def (EXPR_STMT): New code.
22588
22589         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
22590
22591         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
22592         build_component_ref calls.
22593
22594         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
22595
22596         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22597         (build_component_ref): Add new argument, NO_FOLD_P.
22598
22599 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
22600
22601         * Makefile.generic: Add missing substitution on object_deps handling.
22602
22603         PR ada/5909:
22604         * Make-lang.in (check-ada): Enable ACATS test suite.
22605
22606 2003-10-27  Robert Dewar  <dewar@gnat.com>
22607
22608         * exp_ch3.adb:
22609         (Freeze_Array_Type): We do not need an initialization routine for types
22610         derived from String or Wide_String. They should be treated the same
22611         as String and Wide_String themselves. This caused problems with the
22612         use of Initialize_Scalars.
22613
22614         * exp_ch5.adb:
22615         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
22616         composites. This allows use of component clauses that are not byte
22617         aligned.
22618
22619         * sem_prag.adb:
22620         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
22621         is an attempt to pack an array of atomic objects.
22622
22623         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
22624
22625 2003-10-27  Pascal Obry  <obry@gnat.com>
22626
22627         * g-dirope.adb:
22628         (Basename): Check for drive letters in a pathname only on DOS based OS.
22629
22630 2003-10-27  Vincent Celier  <celier@gnat.com>
22631
22632         * make.adb:
22633         (Gnatmake): When unable to change dir to the object dir, display the
22634         content of the parent dir of the obj dir, to try to understand why this
22635         happens.
22636
22637 2003-10-27  GNAT Script  <nobody@gnat.com>
22638
22639         * Make-lang.in: Makefile automatically updated
22640
22641 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
22642
22643         * sem_ch12.adb:
22644         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
22645         should not be done in Save/Restore_Scope_Stack, because it is performed
22646         locally.
22647
22648         * sem_ch8.adb:
22649         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22650         whether use clauses should be removed/restored.
22651
22652         * sem_ch8.ads:
22653         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22654         whether use clauses should be removed/restored.
22655
22656 2003-10-26  Andreas Jaeger  <aj@suse.de>
22657
22658         * Makefile.in: Remove duplicated lines.
22659
22660 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22661
22662         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
22663         minimize the differences with ACT tree.
22664
22665         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
22666         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
22667         Gnatvsn.Gnat_Static_Version_String to reduce differences between
22668         ACT and FSF trees.
22669
22670 2003-10-24  Pascal Obry  <obry@gnat.com>
22671
22672         * adadecode.c (ostrcpy): New function.
22673         (__gnat_decode): Use ostrcpy of strcpy.
22674         (has_prefix): Set first parameter a const.
22675         (has_suffix): Set first parameter a const.
22676         Update copyright notice. Fix source name in header.
22677         Removes a trailing space.
22678         PR ada/12014.
22679
22680 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
22681
22682         * exp_disp.adb:
22683         Remove the test against being in No_Run_Time_Mode before generating a
22684         call to Register_Tag. It is redundant with the test against the
22685         availability of the function Register_Tag.
22686
22687 2003-10-24  Vincent Celier  <celier@gnat.com>
22688
22689         * g-catiio.adb: (Month_Name): Correct spelling of February
22690
22691         * make.adb: (Mains): New package
22692         (Initialize): Call Mains.Delete
22693         (Gnatmake): Check that each main on the command line is a source of a
22694         project file and, if there are several mains, each of them is a source
22695         of the same project file.
22696         (Gnatmake): When a foreign language is specified in attribute Languages,
22697         no main is specified on the command line and attribute Mains is not
22698         empty, only build the Ada main. If there is no Ada main, just compile
22699         the Ada sources and their closure.
22700         (Gnatmake): If a main is specified on the command line with directory
22701         information, check that the source exists and, if it does, that the path
22702         is the actual path of a source of a project.
22703
22704         * prj-env.adb:
22705         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
22706         Full_Path is True, return the full path instead of the simple file name.
22707         (Project_Of): New function
22708
22709         * prj-env.ads:
22710         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
22711         defaulted to False.
22712         (Project_Of): New function
22713
22714 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22715
22716         * Makefile.generic:
22717         Ensure objects of main project are always checked and rebuilt if needed.
22718         Set CC to gcc by default.
22719         Prepare new handling of link by creating a global archive (not activated
22720         yet).
22721
22722         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22723         stringt.h: Update copyright notice. Remove trailing blanks.
22724         Fix source name in header.
22725
22726 2003-10-24  Robert Dewar  <dewar@gnat.com>
22727
22728         * sem_ch12.adb: Minor reformatting
22729
22730         * sem_ch3.adb:
22731         Minor reformatting (including new function return style throughout)
22732
22733         * sem_ch3.ads:
22734         Minor reformatting (including new function return style throughout)
22735
22736 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22737
22738         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22739         stringt.h: Update copyright notice. Remove trailing blanks.
22740         Fix source name in header.
22741
22742 2003-10-24  GNAT Script  <nobody@gnat.com>
22743
22744         * Make-lang.in: Makefile automatically updated
22745
22746 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
22747
22748         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
22749         stringt.h: Convert to ISO C90 declarations and definitions.
22750
22751 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
22752
22753         PR ada/11978:
22754         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
22755         External_Tag attribute definition clauses.
22756
22757 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
22758
22759         PR ada/7613:
22760         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
22761         child unit, generate a fully qualified name to avoid spurious errors
22762         when the context contains renamings of different child units with
22763         the same simple name.
22764
22765         * exp_dbug.ads: Add documentation on name qualification for renamings
22766         of child units.
22767
22768 2003-10-23  Robert Dewar  <dewar@gnat.com>
22769
22770         * g-regpat.ads, g-regpat.adb: Minor reformatting
22771
22772 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
22773
22774         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
22775
22776 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22777
22778         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
22779         Machine call.
22780
22781         * urealp.h: (Machine): Update to proper definition.
22782
22783 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
22784
22785         * init.c, adaint.c: Minor reformatting.
22786
22787 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
22788
22789         * adaint.c (w32_epoch_offset): Define static const at file level.
22790         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
22791         rather than t_create, t_access in call to GetFileTime. Use union
22792         to convert between FILETIME and  unsigned long long.
22793         (__gnat_file_time_name): Test for invalid file handle.
22794         (__gnat_set_filetime_name): Support win32 targets using
22795         w32api SetFileTime.
22796
22797 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
22798
22799         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
22800
22801         * ctrl_c.c (__gnat_int_handler): Remove declaration.
22802
22803         * decl.c (creat_concat_name):  Const-ify prefix.
22804
22805         * adaint.c: Include ctype.h if __MINGW32__.
22806         (__gnat_readlink): Mark arguments as possibly unused.
22807         (__gnat_symlink): Likewise.
22808         (__gnat_is_symbolic_link): Likewise.
22809         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
22810         declaration
22811         (__gnat_file_time_name): Don't declare struct stat statbuf when
22812         not needed.
22813         (__gnat_is_absolute_path): Add parenthesis around condition of
22814         'if' statement to avoid warning.
22815         (__gnat_plist_init): Specify void as parameter.
22816         (plist_enter): Likewise.
22817         (plist_leave): Likewise.
22818         (remove_handle): Make static. Initialize prev.
22819
22820 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22821
22822         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
22823         * cstreams.c (__gnat_full_name): Minor improvements and clean up
22824         of previous change.
22825
22826 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22827
22828         * tracebak.c (MAX): Avoid redefinition warning.
22829
22830         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
22831         Change msg to const char *.
22832         (__gnat_install_handler): Remove ss, unused.
22833         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
22834         to const char *.
22835         * cstreams.c (__gnat_full_name): Declare p only when used.
22836         (__gnat_full_name) [sgi] Return buffer.
22837
22838 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22839
22840         * mingw32.h: New file.
22841         * gnat_wrapper.adb: New file.
22842
22843 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
22844
22845         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
22846         string match a pre compiled regular expression (the corresponding
22847         version of the function working on a raw regular expression)
22848         Fix typos in various comments
22849         Update copyright notice in spec
22850
22851 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
22852
22853         * exp_ch3.adb:
22854         (Component_Needs_Simple_Initialization): Return False when the type is a
22855         packed bit array. Revise spec comments to document this case.
22856
22857         * exp_prag.adb:
22858         (Expand_Pragma_Import): Set any expression on the imported object to
22859         empty to avoid initializing imported objects (in particular this
22860         covers the case of zero-initialization of bit arrays).
22861         Update copyright notice.
22862
22863 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
22864
22865         * sem_ch12.adb:
22866         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
22867         a subunit is missing.
22868         (Instantiate_Subprogram_Body): If body of function is missing, set type
22869         of return expression explicitly in dummy body, to prevent cascaded
22870         errors when a subunit is missing.
22871         Fixes PR 5677.
22872
22873         * sem_ch3.adb:
22874         (Access_Subprogram_Declaration): Verify that return type is valid.
22875         Fixes PR 8693.
22876
22877         * sem_elab.adb:
22878         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
22879         generic.
22880         Fixes PR 12318.
22881
22882         * sem_util.adb:
22883         (Corresponding_Discriminant): If the scope of the discriminant is a
22884         private type without discriminant, use its full view.
22885         Fixes PR 8247.
22886
22887 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
22888
22889         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
22890         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
22891         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
22892         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
22893         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
22894         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
22895         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
22896         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
22897         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
22898         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
22899         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
22900         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
22901         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
22902         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
22903         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
22904         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
22905         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
22906         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
22907         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
22908         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
22909         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
22910         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
22911         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
22912         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
22913         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
22914         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
22915         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
22916         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
22917         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
22918         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
22919         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
22920         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
22921         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
22922         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
22923         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
22924         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
22925         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
22926         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
22927         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
22928         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
22929         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
22930         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
22931         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
22932         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
22933         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
22934         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
22935         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
22936         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
22937         vms_conv.ads, vms_conv.adb, vms_data.ads,
22938         vxaddr2line.adb: Files added. Merge with ACT tree.
22939
22940         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
22941         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
22942         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
22943         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
22944         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
22945         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
22946         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
22947         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
22948         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
22949         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
22950
22951         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
22952         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
22953         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
22954         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
22955         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
22956         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
22957         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
22958         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
22959         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
22960         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
22961         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
22962         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
22963         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
22964         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
22965         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
22966         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
22967         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
22968         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
22969         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
22970         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
22971         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
22972         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
22973         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
22974         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
22975         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
22976         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
22977         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
22978         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
22979         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
22980         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
22981         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
22982         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
22983         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
22984         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
22985         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
22986         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
22987         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
22988         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
22989         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
22990         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
22991         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
22992         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
22993         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
22994         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
22995         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
22996         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
22997         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
22998         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
22999         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
23000         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
23001         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
23002         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
23003         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
23004         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
23005         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
23006         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
23007         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
23008         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
23009         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
23010         checks.adb, checks.ads, cio.c, comperr.adb,
23011         comperr.ads, csets.adb, cstand.adb, cstreams.c,
23012         debug_a.adb, debug_a.ads, debug.adb, decl.c,
23013         einfo.adb, einfo.ads, errout.adb, errout.ads,
23014         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
23015         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
23016         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
23017         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
23018         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
23019         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
23020         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
23021         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
23022         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
23023         fe.h, fmap.adb, fmap.ads, fname.adb,
23024         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
23025         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
23026         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
23027         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
23028         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
23029         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
23030         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
23031         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
23032         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
23033         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
23034         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
23035         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
23036         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
23037         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
23038         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
23039         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
23040         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
23041         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
23042         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
23043         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
23044         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
23045         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
23046         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
23047         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
23048         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
23049         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
23050         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
23051         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
23052         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
23053         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
23054         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
23055         layout.adb, lib.adb, lib.ads, lib-list.adb,
23056         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
23057         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23058         link.c, live.adb, make.adb, make.ads,
23059         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
23060         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
23061         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
23062         misc.c, mkdir.c, mlib.adb, mlib.ads,
23063         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
23064         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
23065         namet.adb, namet.ads, namet.h, nlists.ads,
23066         nlists.h, nmake.adt, opt.adb, opt.ads,
23067         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
23068         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
23069         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23070         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23071         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
23072         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
23073         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
23074         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
23075         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
23076         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
23077         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
23078         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
23079         prj-util.adb, prj-util.ads, raise.c, raise.h,
23080         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
23081         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
23082         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
23083         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
23084         scans.ads, scn.adb, scn.ads, s-crc32.adb,
23085         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
23086         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
23087         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
23088         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
23089         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
23090         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23091         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23092         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
23093         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
23094         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
23095         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
23096         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
23097         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
23098         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
23099         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23100         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
23101         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
23102         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
23103         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
23104         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
23105         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
23106         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
23107         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
23108         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
23109         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
23110         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
23111         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
23112         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
23113         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
23114         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
23115         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
23116         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
23117         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
23118         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
23119         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
23120         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
23121         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
23122         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
23123         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
23124         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
23125         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
23126         stringt.adb, stringt.ads, stringt.h, style.ads,
23127         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
23128         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
23129         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
23130         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
23131         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
23132         table.adb, table.ads, targparm.adb, targparm.ads,
23133         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
23134         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
23135         ttypes.ads, types.ads, types.h, uintp.adb,
23136         uintp.ads, uintp.h, uname.adb, urealp.adb,
23137         urealp.ads, urealp.h, usage.adb, utils2.c,
23138         utils.c, validsw.adb, validsw.ads, widechar.adb,
23139         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
23140         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
23141         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
23142         gnatvsn.ads: Merge with ACT tree.
23143
23144         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
23145
23146 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
23147
23148         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
23149         (gnat_ug_vmx.info): Likewise.
23150         (gnat_ug_vxw.info): Likewise.
23151         (gnat_ug_wnt.info): Likewise.
23152         (gnat_rm.info): Likewise.
23153         (gnat-style.info): Likewise.
23154
23155         * Make-lang.in (ada.install-info): Remove target.
23156         (info): New target.
23157         (install-info): Likewise.
23158         (gnat_ug_unx.info): Simplify rule.
23159         (gnat_ug_vmx.info): Likewise.
23160         (gnat_ug_vxw.info): Likewise.
23161         (gnat_ug_wnt.info): Likewise.
23162         (gnat_rm.info): Likewise.
23163         (gnat-style.info): Likewise.
23164
23165 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23166
23167         * Make-lang.in: Replace uses of $(target_alias) with
23168         $(target_noncanonical).
23169         * ada/Makefile.in: Remove unused mention of $(target_alias).
23170
23171 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
23172
23173         * Make-lang.in (ada.info): Replace with ...
23174         (info): ... this.
23175         (ada.dvi): Replace with ...
23176         (dvi): ... this.
23177
23178 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
23179
23180         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
23181         initialize dconstp5 and dconstmp5.
23182
23183 2003-09-28  Richard Henderson  <rth@redhat.com>
23184
23185         * trans.c (tree_transform): Update call to expand_asm_operands.
23186
23187 2003-09-21  Richard Henderson  <rth@redhat.com>
23188
23189         * trans.c, utils.c: Revert.
23190
23191 2003-09-21  Richard Henderson  <rth@redhat.com>
23192
23193         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
23194         change to const.
23195
23196 2003-09-04  Michael Matz  <matz@suse.de>
23197
23198         * misc.c: Include "target.h".
23199         * Make-lang.in (misc.o): Add dependency on target.h.
23200
23201 2003-09-03  DJ Delorie  <dj@redhat.com>
23202
23203         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
23204         hook.
23205
23206 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
23207
23208         * Makefile.in: Update substitutions to match changes to
23209         configure.  Use include directives instead of @-insertions
23210         to read in host and target fragments.  Add a rule to
23211         regenerate ada/Makefile.
23212
23213 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
23214
23215         * lang-options.h: Remove.
23216         * lang.opt: Add help text.
23217
23218 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23219
23220         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
23221         calls.
23222
23223 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
23224
23225         * misc.c (gnat_handle_option): Don't handle filenames.
23226
23227 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
23228
23229         * Make-lang.in: Replace PWD with PWD_COMMAND.
23230         * Makefile.adalib: Likewise.
23231         * Makefile.in: Likewise.
23232
23233 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
23234
23235         * misc.c (gnat_argv): Revert last change.
23236         (gnat_handle_option, gnat_init_options): Copy arguments.
23237
23238 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
23239
23240         * misc.c (gnat_argv): Make const.
23241
23242 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23243
23244         * misc.c (save_argc, save_argv): Keep non-static!
23245
23246 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23247
23248         * misc.c (save_argc, save_argv): Make static.
23249         (gnat_init_options): New prototype.
23250         (gnat_init_options): Update.
23251
23252 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
23253
23254         * gnat_ug.texi: Remove unlikely characters from @vars.
23255         * gnat_ug_vms.texi: Regenerate.
23256
23257 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
23258
23259         * misc.c (record_code_position): Adjust emit_note call.
23260
23261 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
23262
23263         * misc.c (gnat_handle_option): Don't check for missing arguments.
23264
23265 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
23266
23267         * utils.c (end_subprog_body): Adjust expand_function_end call.
23268
23269 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
23270
23271         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
23272         Bind_Main_Program.
23273
23274 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
23275
23276         * lang.opt: Declare Ada.
23277         * misc.c (gnat_init_options): Update.
23278
23279 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
23280
23281         * utils.c (begin_subprog_body): Adjust init_function_start call.
23282
23283 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23284
23285         * Make-lang.in: Update to use options.c and options.h.
23286         * misc.c: Include options.h not aoptions.h.
23287         (gnat_handle_option): Abort on unrecognized switch.
23288         (gnat_init_options): Request Ada switches.
23289
23290 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23291
23292         * lang.opt: Add -Wall.
23293         * misc.c (gnat_handle_option): Handle it.
23294
23295 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
23296
23297         * misc.c (gnat_handle_option): Fix warnings.
23298
23299 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
23300
23301         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
23302
23303 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
23304
23305         * Make-lang.in: Update to handle command-line options.
23306         * lang.opt: New file.
23307         * misc.c: Include aoptions.h.
23308         (cl_options_count, cl_options): Remove.
23309         (gnat_handle_option): New.
23310         (gnat_decode_option): Remove.
23311         (LANG_HOOKS_DECODE_OPTION): Remove.
23312         (LANG_HOOKS_HANDLE_OPTION): Override.
23313
23314 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
23315
23316         * init.c, misc.c, trans.c, utils.c: Remove dead code.
23317
23318 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
23319
23320         * Makefile.in: Replace "host_canonical" with "host" for autoconf
23321         substitution.
23322
23323 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
23324
23325         * Make-lang.in: Update.
23326         * misc.c: Include opts.h. Define cl_options_count and cl_options.
23327
23328 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
23329
23330         * misc.c (gnat_init_options): Update.
23331
23332 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23333
23334         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
23335         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
23336         __attribute__ ((__unused__)).
23337
23338 2003-06-05  Jan Hubicka  <jh@suse.cz>
23339
23340         * Make-lang.in:  Add support for stageprofile and stagefeedback
23341
23342 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23343
23344         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
23345         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
23346
23347 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
23348
23349         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
23350         Remove non-VMS directive.
23351         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
23352         alternatives.
23353         (Examples of gnatls Usage): Remove VMS alternative.
23354
23355 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
23356
23357         PR ada/9953:
23358         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
23359         and turn ZCX_By_Default back to False since the underlying support
23360         is not quite there yet.
23361
23362 2003-06-01  Andreas Jaeger  <aj@suse.de>
23363
23364         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
23365         and ROUND_TYPE_SIZE_UNIT.
23366
23367 2003-05-22   Geert Bosch <bosch@gnat.com>
23368
23369         * gnat_rm.texi : Remove reference to Ada Core Technologies.
23370
23371 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
23372
23373         * trans.c (tree_transform): Use location_t and input_location
23374         directly.
23375         (build_unit_elab): Likewise.
23376         * utils.c (create_label_decl): Likewise.
23377
23378 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
23379
23380         * trans.c (tree_transform, build_unit_elab,
23381         set_lineno): Rename lineno to input_line.
23382         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
23383         end_subprog_body): Likewise.
23384         * utils2.c (build_call_raise): Likewise.
23385
23386 2003-05-01  Laurent Guerby <guerby@acm.org>
23387
23388         PR ada/10546
23389         * 5iosinte.ads: Increase pthread_cond_t size to match recent
23390         LinuxThread and NPTL version, merge from ACT.
23391
23392 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
23393
23394         * utils.c (convert): No need to clear TREE_CST_RTL.
23395
23396 2003-04-23   Geert Bosch <bosch@gnat.com>
23397
23398         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
23399         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
23400         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
23401         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
23402         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
23403         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
23404         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
23405         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
23406         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
23407         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
23408         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
23409         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
23410         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
23411         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
23412         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
23413         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
23414         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
23415         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
23416         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
23417         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
23418         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
23419         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
23420         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
23421         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
23422         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
23423         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
23424         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
23425         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
23426         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
23427         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
23428         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
23429         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
23430         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
23431         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
23432         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
23433         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
23434         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
23435         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
23436         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
23437         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
23438         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
23439         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
23440         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
23441         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
23442         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
23443         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
23444         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
23445         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
23446         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
23447         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
23448         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23449         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23450         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
23451         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
23452         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
23453         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
23454         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
23455         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
23456         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
23457         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
23458         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
23459         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
23460         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
23461         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
23462         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
23463         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
23464         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
23465         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
23466         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
23467         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
23468         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
23469         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
23470         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23471         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
23472         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
23473         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
23474         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
23475         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
23476         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
23477         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
23478         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
23479         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
23480         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
23481         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
23482         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
23483         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
23484         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
23485         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23486         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
23487         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
23488         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
23489         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
23490         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
23491         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
23492         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
23493         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
23494         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
23495         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
23496         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
23497         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
23498         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
23499         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
23500         ali.adb, ali.ads, alloc.ads, argv.c,
23501         atree.adb, atree.ads, atree.h, aux-io.c,
23502         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
23503         binde.adb, binde.ads, binderr.adb, binderr.ads,
23504         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
23505         butil.adb, butil.ads, cal.c, calendar.ads,
23506         casing.adb, casing.ads, ceinfo.adb, checks.adb,
23507         checks.ads, cio.c, comperr.adb, comperr.ads,
23508         config-lang.in, csets.adb, csets.ads, csinfo.adb,
23509         cstand.adb, cstand.ads, cuintp.c, debug.adb,
23510         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
23511         dec-io.ads, dec.ads, deftarg.c, directio.ads,
23512         einfo.adb, einfo.ads, elists.adb, elists.ads,
23513         elists.h, errno.c, errout.adb, errout.ads,
23514         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
23515         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
23516         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
23517         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
23518         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
23519         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
23520         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
23521         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
23522         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
23523         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
23524         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
23525         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
23526         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
23527         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
23528         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
23529         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
23530         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
23531         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
23532         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
23533         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
23534         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
23535         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
23536         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
23537         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
23538         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
23539         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
23540         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
23541         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
23542         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
23543         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
23544         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
23545         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
23546         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
23547         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
23548         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
23549         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
23550         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
23551         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
23552         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
23553         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
23554         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
23555         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
23556         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
23557         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
23558         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
23559         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
23560         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
23561         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
23562         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
23563         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
23564         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
23565         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
23566         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
23567         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
23568         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
23569         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
23570         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
23571         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
23572         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
23573         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23574         lib.adb, lib.ads, live.adb, live.ads,
23575         machcode.ads, make.adb, make.ads, makeusg.adb,
23576         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
23577         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
23578         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
23579         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
23580         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
23581         mlib.ads, namet.adb, namet.ads, nlists.adb,
23582         nlists.ads, opt.adb, opt.ads, osint-b.adb,
23583         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
23584         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
23585         osint.ads, output.adb, output.ads, par-ch10.adb,
23586         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
23587         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23588         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
23589         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
23590         par-tchk.adb, par-util.adb, par.adb, par.ads,
23591         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
23592         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
23593         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
23594         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
23595         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
23596         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
23597         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
23598         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
23599         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
23600         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
23601         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
23602         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
23603         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
23604         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
23605         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
23606         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
23607         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
23608         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
23609         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
23610         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
23611         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
23612         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
23613         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23614         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
23615         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
23616         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
23617         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
23618         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
23619         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
23620         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
23621         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
23622         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
23623         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
23624         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
23625         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
23626         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
23627         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
23628         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
23629         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
23630         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
23631         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23632         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
23633         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
23634         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
23635         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
23636         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23637         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
23638         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
23639         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
23640         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
23641         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23642         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
23643         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
23644         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
23645         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
23646         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23647         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
23648         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
23649         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
23650         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
23651         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23652         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
23653         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
23654         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
23655         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
23656         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
23657         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
23658         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
23659         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
23660         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
23661         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
23662         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
23663         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
23664         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
23665         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
23666         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
23667         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
23668         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
23669         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
23670         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
23671         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
23672         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
23673         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
23674         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
23675         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
23676         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
23677         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
23678         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
23679         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
23680         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
23681         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
23682         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
23683         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
23684         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
23685         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
23686         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
23687         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
23688         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
23689         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
23690         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
23691         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23692         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
23693         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
23694         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
23695         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
23696         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
23697         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
23698         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
23699         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
23700         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
23701         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23702         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23703         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
23704         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
23705         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
23706         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23707         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
23708         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
23709         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
23710         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
23711         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
23712         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
23713         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
23714         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
23715         snames.ads, sprint.adb, sprint.ads, stand.adb,
23716         stand.ads, stringt.adb, stringt.ads, style.adb,
23717         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
23718         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
23719         switch-m.ads, switch.adb, switch.ads, system.ads,
23720         table.adb, table.ads, targparm.adb, targparm.ads,
23721         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
23722         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
23723         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
23724         ttypef.ads, ttypes.ads, types.adb, types.ads,
23725         uintp.adb, uintp.ads, uname.adb, uname.ads,
23726         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
23727         usage.adb, usage.ads, validsw.adb, validsw.ads,
23728         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
23729         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
23730         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
23731         formatting and other trivial changes from ACT.
23732
23733 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
23734
23735         * gigi.h, utils2.c (build_constructor):
23736         Rename gnat_build_constructor. Use build_constructor.
23737         * decl.c (gnat_to_gnu_entity)
23738         * trans.c (tree_transform, pos_to_constructor, extract_values)
23739         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
23740         (unchecked_convert)
23741         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
23742         (fill_vms_descriptor):
23743         Update to match.
23744
23745 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
23746
23747         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
23748         * misc.c (gnat_tree_size): New function.
23749         (LANG_HOOKS_TREE_SIZE): Override.
23750
23751 2003-04-03  Jason Merrill  <jason@redhat.com>
23752
23753         * misc.c (gnat_adjust_rli): #if 0.
23754
23755 2003-03-31   Geert Bosch <bosch@gnat.com>
23756
23757         PR ada/10020
23758         * link.c : Fix misspelled "const" keyword
23759
23760 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
23761
23762         PR c++/7086
23763         * utils2.c: Adjust calls to put_var_into_stack.
23764
23765 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
23766
23767         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
23768
23769 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
23770
23771         * misc.c (gnat_init): Update for new prototype.
23772
23773 2003-03-05  Olivier Hainque  <hainque@gnat.com>
23774
23775         ada/9961
23776         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
23777         warning, and fix return type for the IN_RTS && !SJLJ case.
23778
23779 2003-03-04  Tom Tromey  <tromey@redhat.com>
23780
23781         * Make-lang.in (ada.tags): New target.
23782
23783 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
23784
23785         ada/9911
23786         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
23787         wrapper, which name remains constant whatever underlying GCC
23788         scheme.
23789
23790         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
23791         the stable interface needed for a-except.
23792
23793 2003-03-02  Andreas Jaeger  <aj@suse.de>
23794
23795         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23796         gnat_ug_wnt.texi: Regenerate.
23797
23798 2003-03-02  Laurent Guerby <guerby@acm.org>
23799
23800         * Makefile.in (install-gnatlib): Match previous change there
23801         so it works.
23802
23803 2003-02-28  Andreas Schwab  <schwab@suse.de>
23804
23805         * Make-lang.in (install-gnatlib): Change to ada directory before
23806         running make instead of using ada/Makefile directly.
23807
23808 2003-02-18  Ben Elliston  <bje@redhat.com>
23809
23810         Part of fix for PR ada/9406
23811         * gnat_ug.texi (Binder output file): Grammar fix.
23812
23813 2003-02-18  Ben Elliston  <bje@redhat.com>
23814
23815         PR other/7350
23816         * 5qtaprop.adb (Sleep): Fix typo in comment.
23817
23818 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
23819
23820         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
23821         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23822         gnat_ug_wnt.texi: Regenerate.
23823
23824 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
23825
23826         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
23827         be created if necessary.
23828         (ada.install-common): Let $(DESTDIR)$(bindir) be created
23829         if necessary.  Remove erroneous and redundant gnatchop
23830         installation commands.  Test for gnatdll before attempting
23831         to install it.
23832         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
23833         and gnatdll from all plausible locations.
23834
23835 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
23836
23837         * utils2.c (build_unary_op): Don't check flag_volatile.
23838         * gnat_ug.texi: Remove -fvolatile from example.
23839         * gnat_ug_vxw.texi: Likewise.
23840
23841 2003-01-29  Laurent Guerby <guerby@acm.org>
23842
23843         PR ada/8344
23844         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
23845         * Makefile.in: match previous change.
23846         * Make-lang.in: match previous change.
23847
23848 2003-01-29      Joel Sherrill <joel@OARcorp.com>
23849
23850         * 5rosinte.ads: Add SIGXCPU.
23851         * 5rtpopsp.adb: New file.
23852         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
23853         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
23854         specific file 5rtpopsp.adb.
23855         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
23856         is likely needed for all newlib targets.
23857         * init.c: Add RTEMS specific version of __gnat_initialize().
23858
23859 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23860
23861         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
23862
23863 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23864
23865         * init.c (__gnat_error_handler): Make msg const.
23866
23867         * gmem.c (convert_addresses): Move declaration ...
23868         * adaint.h: ... here.
23869         * adaint.c (convert_addresses): Adapt addrs type to match
23870         prototype.
23871
23872         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
23873
23874 2003-01-24  Andreas Schwab  <schwab@suse.de>
23875
23876         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
23877         size_t to avoid warning.
23878
23879 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
23880
23881         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
23882
23883 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
23884
23885         * gnat_rm.texi: Remove RCS version number.
23886
23887         * ada-tree.h (union lang_tree_node): Add chain_next option.
23888
23889 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
23890
23891         * Make-lang.in (ada.install-info, ada.install-common,
23892         ada.uninstall): Prepend $(DESTDIR) to the destination
23893         directory in all (un)installation commands.
23894         * Makefile.in (install-gnatlib, install-rts): Ditto.
23895
23896 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
23897
23898         * gnat_rm.texi, gnat_ug.texi: Use @copying.
23899         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23900         gnat_ug_wnt.texi: Regenerate.
23901
23902 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
23903
23904         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
23905         only.
23906         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
23907         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
23908         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
23909         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
23910         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
23911         $(srcdir)/doc/include/gcc-common.texi.
23912
23913 2002-12-15   Geert Bosch <bosch@gnat.com>
23914
23915         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
23916
23917 2002-12-14   Geert Bosch <bosch@gnat.com>
23918
23919         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
23920         case of a body created for a Renaming_As_Body, on which
23921         conformance checks are not performed. Fixes PR ada/5690.
23922
23923 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
23924
23925         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
23926         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
23927         not already included.
23928         * Make-lang.in: Update dependencies.
23929
23930 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
23931         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
23932         solution to buffer overflow bug on GNU/Linux.
23933
23934 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23935         Closes PR ada/5856 and PR ada/6919 !
23936         * bindgen.adb: Remove all references to Public_Version.
23937         * comperr.adb: Remove all references to Public_Version and
23938         GNATPRO_Version; correct bug reporting instructions.
23939         * comperr.ads: Change to match bug box.
23940         * gnatvsn.ads: Remove all references to Public version and
23941         GNATPRO version.
23942
23943 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
23944         PR ada/6919
23945         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
23946         GNU/Linux.
23947
23948         PR ada/6558
23949         * config-lang.in: Remove diff_excludes.
23950
23951 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
23952         PR ada/8358
23953         * trans.c (gnu_pending_elaboration_lists): New GC root.
23954         (build_unit_elab): Use..
23955
23956 2002-10-30   Geert Bosch <bosch@gnat.com>
23957         PR ada/6558
23958         * misc.c : Include optabs.h
23959
23960         * Make-lang.in (misc.o): Add dependency on optabs.h
23961
23962 2002-10-29   Geert Bosch <bosch@gnat.com>
23963         PR ada/6558
23964         * Make-lang.in (gnatbind): Depend on CONFIG_H
23965
23966 2002-10-29  Geert bosch  <bosch@gnat.com>
23967         PR ada/6558
23968         * misc.c: Unrevert misc.c (1.13)
23969
23970 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
23971
23972         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
23973         maintainership comments.
23974
23975 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
23976         PR ada/5904
23977         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
23978         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
23979         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
23980         7staprop.adb: Correct statements in comments about
23981         maintainership of GNAT.
23982
23983         PR ada/5904
23984         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
23985         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
23986         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
23987         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
23988         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
23989         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
23990         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
23991         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
23992         comments about maintainership of GNAT.
23993
23994         PR ada/6919 (forward port of patch for PR ada/5904)
23995         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
23996         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
23997         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
23998         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
23999         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
24000         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
24001         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
24002         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
24003         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
24004         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
24005         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
24006         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
24007         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
24008         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
24009         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
24010         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
24011         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
24012         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
24013         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
24014         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
24015         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
24016         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
24017         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
24018         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
24019         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
24020         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
24021         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
24022         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
24023         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
24024         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
24025         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
24026         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
24027         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
24028         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
24029         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
24030         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
24031         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
24032         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
24033         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
24034         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
24035         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
24036         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
24037         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
24038         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
24039         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
24040         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
24041         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
24042         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
24043         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
24044         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
24045         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
24046         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
24047         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
24048         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
24049         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
24050         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
24051         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
24052         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
24053         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
24054         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
24055         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
24056         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
24057         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
24058         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
24059         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
24060         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
24061         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
24062         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
24063         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
24064         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
24065         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
24066         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
24067         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
24068         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
24069         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
24070         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
24071         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
24072         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
24073         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
24074         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
24075         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
24076         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
24077         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
24078         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
24079         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
24080         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
24081         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
24082         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
24083         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
24084         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
24085         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
24086         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
24087         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
24088         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
24089         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
24090         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
24091         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
24092         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
24093         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
24094         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
24095         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
24096         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
24097         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
24098         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
24099         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
24100         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
24101         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
24102         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
24103         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
24104         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
24105         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
24106         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
24107         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
24108         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
24109         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
24110         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
24111         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
24112         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
24113         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
24114         par-endh.adb par-labl.adb par-load.adb par-prag.adb
24115         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
24116         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
24117         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
24118         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
24119         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
24120         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
24121         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
24122         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
24123         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
24124         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
24125         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
24126         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
24127         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
24128         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
24129         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
24130         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
24131         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
24132         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
24133         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
24134         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
24135         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
24136         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
24137         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
24138         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
24139         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
24140         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
24141         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
24142         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
24143         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
24144         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
24145         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
24146         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
24147         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
24148         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
24149         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
24150         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
24151         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
24152         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
24153         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
24154         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
24155         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
24156         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
24157         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
24158         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
24159         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
24160         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
24161         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
24162         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
24163         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
24164         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
24165         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
24166         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
24167         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
24168         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
24169         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
24170         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
24171         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
24172         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
24173         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
24174         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
24175         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
24176         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
24177         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
24178         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
24179         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
24180         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
24181         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
24182         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
24183         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
24184         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
24185         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
24186         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
24187         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
24188         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
24189         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
24190         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
24191         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
24192         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
24193         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
24194         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
24195         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
24196         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
24197         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
24198         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
24199         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
24200         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
24201         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
24202         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
24203         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
24204         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
24205         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
24206         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
24207         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
24208         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
24209         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
24210         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
24211         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
24212         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
24213         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
24214         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
24215         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
24216         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
24217         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
24218         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
24219         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
24220         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
24221         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
24222         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
24223         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
24224         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
24225         stringt.ads stringt.h style.adb style.ads stylesw.adb
24226         stylesw.ads switch.adb switch.ads sysdep.c system.ads
24227         table.adb table.ads targparm.adb targparm.ads targtyps.c
24228         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
24229         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
24230         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
24231         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
24232         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
24233         usage.ads utils.c utils2.c validsw.adb validsw.ads
24234         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
24235         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
24236         xtreeprs.adb: Correct statements in comments about maintainership
24237         of GNAT.
24238
24239 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
24240
24241         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
24242         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
24243         * gnatvsn.ads: Gnat_Version_String is now a function.
24244         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
24245         copy the C version_string into a String and return it.
24246         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
24247         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
24248         Remove pragma Ident (Gnat_Version_String).  If this was the
24249         sole use of package Gnatvsn, remove the with statement too.
24250         * gnat1drv.adb: Tweak -gnatv output.
24251
24252 2002-09-17  Richard Henderson  <rth@redhat.com>
24253
24254         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
24255         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
24256         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
24257         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
24258         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
24259         and real_2expN instead of a loop.
24260         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
24261         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
24262
24263 2002-08-25  Andre Leis <a.leis@gmx.net>
24264             David Billinghurst (David.Billinghurst@riotinto.com>
24265
24266         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
24267
24268 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24269
24270         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
24271         Remove $(CONFIG_H) dependency.
24272
24273 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
24274
24275         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
24276
24277 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24278
24279         * adadecode.c (ada_demangle): Use xstrdup in lieu of
24280         xmalloc/strcpy.
24281         * misc.c (gnat_decode_option): Likewise.
24282
24283 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
24284
24285         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24286         function approach did not work well because of a side effect (the
24287         function call could reallocate the table which was being indexed
24288         using its result). Fixes ada/4851. [RESURRECTED]
24289
24290 2002-07-01  Roger Sayle  <roger@eyesopen.com>
24291
24292         * ada/utils.c (builtin_function): Accept an additional parameter.
24293
24294 2002-06-28  Andreas Jaeger  <aj@suse.de>
24295
24296         PR ada/7144
24297         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
24298         <adi@thur.de>.
24299
24300 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24301
24302         * Makefile.in (SHELL): Set to @SHELL@.
24303
24304 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24305
24306         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
24307         array size calculation.
24308
24309 2002-06-04  Andreas Jaeger  <aj@suse.de>
24310
24311         * Make-lang.in (gnatbind): Readd rule that has been lost in last
24312         patch.
24313
24314 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
24315
24316         Merge from pch-branch:
24317
24318         * config-lang.in (gtfiles): Add ada-tree.h.
24319         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
24320         (SET_TYPE_MODULUS): New.
24321         (SET_TYPE_INDEX): New.
24322         (SET_TYPE_DIGITS_VALUE): New.
24323         (SET_TYPE_RM_SIZE): New.
24324         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
24325         (SET_TYPE_ADA_SIZE): New.
24326         (SET_TYPE_ACTUAL_BOUNDS): New.
24327         (SET_DECL_CONST_CORRESPONDING_VAR): New.
24328         (SET_DECL_ORIGINAL_FIELD): New.
24329         (TREE_LOOP_ID): Correct typo.
24330         * decl.c: Use new macros.
24331         * utils.c: Include debug.h, use new macros.
24332         * utils2.c: Use new macros.
24333
24334         * ada-tree.h: Update all macros for new tree description.
24335         (struct tree_loop_id): New.
24336         (union lang_tree_node): New.
24337         (struct lang_decl): New.
24338         (struct lang_type): New.
24339         * misc.c (gnat_mark_tree): Delete.
24340         (LANG_HOOKS_MARK_TREE): Delete.
24341         * trans.c (tree_transform): No longer any need to cast
24342         for TREE_LOOP_ID.
24343
24344         * utils.c (struct language_function): New dummy structure.
24345
24346         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
24347         (misc.o): Likewise.
24348         (utils.o): Likewise; also gtype-ada.h.
24349         * Make-lang.in (gnat1): Add dependency on s-gtype.
24350         (gnatbind): Add dependency on $(CONFIG_H).
24351         * utils.c: Correct last #include.
24352         (stuct e_stack): Remove unnecessary 'static'.
24353         (mark_e_stack): Remove unused prototype.
24354
24355         * scn-nlit.adb: Remove whitespace after version number to
24356         keep lines under 80 chars.
24357         * snames.adb: Likewise.
24358         * treepr.ads: Likewise.
24359
24360         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
24361         (misc.o): Likewise.
24362         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
24363         * config-lang.in (gtfiles): New.
24364         * decl.c: Use gengtype for roots.
24365         * gigi.h: Use gengtype for roots.
24366         * trans.c: Use gengtype for roots.
24367         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
24368
24369 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
24370
24371         * misc.c (gnat_init): Adjust setting of internal_error_function.
24372
24373 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
24374
24375         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
24376         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
24377         gnat_ug_wnt.texi: Regenerate.
24378
24379 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
24380
24381         * 5ntaprop.adb (with System.OS_Primitives): Remove.
24382
24383         * cstreams.c (max_path_len): Move from here ...
24384         * adaint.c (__gnat_max_path_len): ... to here.
24385         * adaint.c (__gnat_max_path_len): Declare.
24386         * g-dirope.adb (Max_Path): Adjust.
24387         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
24388         * i-cstrea.ads (max_path_len): Adjust.
24389         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
24390         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
24391
24392         * Makefile.in, Make-lang.in: Documentation is now built in
24393         Make-lang.in.  Store Info and generated Texinfo files in the
24394         source directory.
24395         * gnat_ug.texi: Remove CVS keywords, correct version number.
24396         Set file name correctly.
24397
24398         * gnat_ug_*.texi: Add.
24399         * .cvsignore: Ignore generated Texinfo files.
24400
24401 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
24402
24403         * ada.h: Add MI guard macro.
24404         (SUBTYPE): Define constants with an anonymous enum, not static
24405         const variables.
24406         (IN): Cast constants to appropriate type before use.
24407
24408 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
24409
24410         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
24411         (experimental)".
24412
24413 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24414
24415         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
24416         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
24417         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
24418         (ALL_ADA_CFLAGS): Likewise.
24419         (ADA_INCLUDES): Likewise.
24420         Adapt for new working dir.
24421         (GNATBIND): Use Makefile.in version.
24422         (.SUFFIXES): Copy from Makefile.in.
24423         (ada-warn): Define.
24424         (.adb.o, .ads.o): Copy from Makefile.in.
24425         Added $(OUTPUT_OPTION).
24426         (GNAT1_C_OBJS): Moved from Makefile.in.
24427         Prefix with ada subdir.
24428         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
24429         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
24430         Adapt for new working dir.
24431         (EXTRA_GNATBIND_OBJS): Likewise.
24432         (ADA_BACKEND): Moved from Makefile.in.
24433         Renamed to avoid conflict with global BACKEND.
24434         Use that one.
24435         (TARGET_ADA_SRCS): Moved from Makefile.in.
24436         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
24437         Use ADA_BACKEND.
24438         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
24439         (ada_extra_files): Moved from Makefile.in.
24440         Prefix with ada subdir.
24441         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
24442         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
24443         (ada/nmake.ads): Likewise.
24444         (update-sources): Moved from Makefile.in.
24445         Prefix with ada subdir.
24446         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
24447         (ADA_TREE_H): Likewise.
24448         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
24449         (ada/memtrack.o): Likewise.
24450         (ada/adadecode.o): Likewise.
24451         Update dependencies.
24452         (ada/adaint.o): New.
24453         (ada/argv.o): Moved from Makefile.in.
24454         Prefix with ada subdir.
24455         Update dependencies.
24456         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
24457         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
24458         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
24459         Prefix with ada subdir.
24460         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
24461         (GNAT DEPENDENCIES): Regenerate.
24462         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
24463         toplevel Makefile.in.
24464         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
24465         (TARGET_ADA_SRCS): Removed.
24466         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
24467         (GNATBIND_OBJS): Likewise.
24468         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
24469         (BACKEND): Removed.
24470         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
24471         (TREE_H): Likewise.
24472         (ada_extra_files): Likewise.
24473         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
24474         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
24475         (update-sources): Likewise.
24476         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
24477         (ADA_TREE_H): Likewise.
24478         (adadecoce.o): Likewise.
24479         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
24480         (GNAT DEPENDENCIES): Likewise.
24481
24482 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24483
24484         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
24485         * Makefile.in: Likewise.
24486
24487 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24488
24489         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
24490         Restore $(CONFIG_H) and prefix.o dependencies.
24491         (ada.stage[1-4]): Depend on stage?-start.
24492
24493         * Makefile.in (b_gnatb.c): Depend on interfac.o.
24494
24495 2002-05-02  Jim Wilson  <wilson@redhat.com>
24496
24497         * utils.c (finish_record_type): Change record_size to record_type.
24498
24499 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24500
24501         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
24502         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
24503         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
24504
24505 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24506
24507         * misc.c (gnat_parse_file): Update.
24508
24509 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24510
24511         * misc.c (gnat_init): Don't set lang_attribute_common.
24512
24513 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
24514
24515         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
24516
24517 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
24518
24519         * gnat_ug.texi: New file.
24520
24521         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
24522         instead of gfdl.texi
24523
24524         * xgnatug.adb, ug_words: New files.
24525
24526         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
24527         gnat_rm and gnat-style manuals.
24528
24529 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
24530
24531         * gigi.h (incomplete_type_error): Remove.
24532         * utils.c (incomplete_type_error): Remove.
24533
24534 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
24535
24536         * trans.c (tree_transform): Add has_scope argument to
24537         expand_start_stmt_expr.
24538
24539 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24540
24541         * gigi.h (truthvalue_conversion): Rename.
24542         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
24543         * trans.c (tree_transform): Update.
24544         * utils2.c (truthvalue_conversion): Rename, update.
24545         (build_binary_op, build_unary_op): Update.
24546
24547 2002-04-04  Laurent Guerby  <guerby@acm.org>
24548
24549         * make.adb: Implement -margs, remove restriction about file name placement.
24550         * makeusg.adb: Documentation update.
24551         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
24552         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
24553
24554 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24555
24556         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
24557         (builtin_function): Similarly.
24558
24559 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24560
24561         * decl.c (gnat_to_gnu_entity): Update.
24562         * gigi.h (mark_addressable): Rename.
24563         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
24564         * trans.c (tree_transform): Update.
24565         * utils.c (create_var_decl): Update.
24566         * util2.c (build_binary_op, build_unary_op,
24567         fill_vms_descriptor): Update.
24568         (mark_addressable): Rename, update.
24569
24570 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24571
24572         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
24573         Rename.
24574         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
24575         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
24576         * trans.c (tree_transform, convert_with_check): Update.
24577         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
24578         Rename.
24579
24580 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
24581
24582         * gigi.h (finish_incomplete_decl): Rename.
24583         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
24584         * utils.c (gnat_init_decl_processing): Don't set hook.
24585         (finish_incomplete_decl): Rename.
24586
24587 2002-03-29  Andreas Schwab  <schwab@suse.de>
24588
24589         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
24590         directory.
24591
24592 2001-03-28  Robert Dewar <dewar@gnat.com>
24593
24594         * checks.ads:
24595         (Remove_Checks): New procedure
24596
24597         * checks.adb:
24598         (Remove_Checks): New procedure
24599
24600         * exp_util.adb:
24601         Use new Duplicate_Subexpr functions
24602         (Duplicate_Subexpr_No_Checks): New procedure
24603         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24604         (Duplicate_Subexpr): Restore original form (checks duplicated)
24605         (Duplicate_Subexpr): Call Remove_Checks
24606
24607         * exp_util.ads:
24608         (Duplicate_Subexpr_No_Checks): New procedure
24609         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24610         Add 2002 to copyright notice
24611
24612         * sem_util.adb: Use new Duplicate_Subexpr functions
24613
24614         * sem_eval.adb:
24615         (Eval_Indexed_Component): This is the place to call
24616         Constant_Array_Ref and to replace the value. We simply merge
24617         the code of this function in here, since it is now no longer
24618         used elsewhere. This fixes the problem of the back end not
24619         realizing we were clever enough to see that this was
24620         constant.
24621         (Expr_Val): Remove call to Constant_Array_Ref
24622         (Expr_Rep_Val): Remove call to Constant_Array_Ref
24623         Minor reformatting
24624         (Constant_Array_Ref): Deal with string literals (patch
24625         suggested by Zack Weinberg on the gcc list)
24626
24627 2001-03-28  Ed Schonberg <schonber@gnat.com>
24628
24629         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
24630         Duplicate_Subexpr_Move_Checks.
24631
24632         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
24633         Duplicate_Subexpr_Move_Checks.
24634
24635         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
24636         value of array exists before retrieving it (it may a private
24637         protected component in a function).
24638
24639 2002-03-28   Geert Bosch <bosch@gnat.com>
24640
24641         * prj-pp.adb : New file.
24642
24643         * prj-pp.ads : New file.
24644
24645 2002-03-28  Andreas Jaeger  <aj@suse.de>
24646
24647         * Makefile.in (stamp-sdefault): Fix path for Makefile.
24648
24649 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24650
24651         * misc.c (gnat_expand_expr): Move prototype.
24652
24653 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24654
24655         * misc.c (insert_default_attributes): Remove.
24656
24657 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24658
24659         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
24660         (gnat_init): Don't set hook.
24661         (gnat_expand_expr): Fix prototype.
24662
24663 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24664
24665         * misc.c (ggc_p): Remove.
24666
24667 2002-03-27  Geert Bosch  <bosch@gnat.com>
24668
24669         * prj-makr.ads, prj-makr.adb : New files.
24670
24671 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
24672
24673         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
24674         (lang_mark_tree): Make static, rename.
24675
24676 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24677
24678         * misc.c (maybe_build_cleanup): Remove.
24679
24680 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24681
24682         * gigi.h (yyparse): Remove.
24683
24684 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
24685
24686         * gnat_rm.texi: Sync with ACT version.
24687           (From Ben Brosgol <brosgol@gnat.com>)
24688
24689 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
24690
24691         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
24692         (gnat_init): Remove old hook.
24693
24694 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
24695
24696         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
24697         (yyparse): Rename gnat_parse_file.
24698
24699 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
24700
24701         Delete all lines containing "$Revision:".
24702         * xeinfo.adb: Don't look for revision numbers.
24703         * xnmake.adb: Likewise.
24704         * xsinfo.adb: Likewise.
24705         * xsnames.adb: Likewise.
24706         * xtreeprs.adb: Likewise.
24707
24708 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24709
24710         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
24711         gnat_tree_code_name): Delete.
24712         (tree_code_type, tree_code_length, tree_code_name): Define.
24713         (gnat_init): Don't try to copy into the various tree_code
24714         arrays.
24715
24716 2002-03-11  Richard Henderson  <rth@redhat.com>
24717
24718         * Makefile.in (.NOTPARALLEL): Add fake tag.
24719
24720 2002-03-07  Geert Bosch  <bosch@gnat.com>
24721
24722         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
24723         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
24724         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
24725         switch-m.adb, switch-m.ads : New files.
24726
24727 2002-03-07  Geert Bosch  <bosch@gnat.com>
24728
24729         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
24730         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
24731         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
24732         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
24733         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
24734         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
24735         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
24736         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
24737         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
24738         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
24739         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
24740         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
24741         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
24742         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
24743         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
24744         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
24745         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
24746         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
24747         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
24748         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
24749         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
24750         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
24751         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
24752         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
24753         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
24754         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
24755         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
24756         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
24757         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
24758         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
24759         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
24760         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
24761         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
24762         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
24763         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
24764         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
24765         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
24766         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
24767         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
24768         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
24769         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
24770         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
24771         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
24772         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
24773         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
24774         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
24775         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
24776         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
24777         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
24778         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
24779         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
24780         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
24781         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
24782         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
24783         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
24784         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
24785         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
24786         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
24787         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
24788         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
24789         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
24790         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
24791         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
24792         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
24793         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
24794         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
24795         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
24796         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
24797         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
24798         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
24799         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
24800         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
24801         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
24802         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24803         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24804         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
24805         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
24806         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
24807         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
24808         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
24809         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
24810         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
24811         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
24812         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
24813         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
24814         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
24815         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
24816         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
24817         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
24818         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
24819         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
24820         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
24821         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
24822         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
24823         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
24824         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
24825         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
24826
24827         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
24828         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
24829         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
24830         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
24831
24832         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
24833         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
24834
24835         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
24836         to mdll-fil.ad[bs] and mdll-util.ad[bs]
24837
24838         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
24839         from mdllfile.ad[bs] and mdlltool.ad[bs]
24840
24841 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24842
24843         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
24844         lieu of explicit sizeof/sizeof.
24845
24846 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24847
24848         * misc.c (copy_lang_decl): Remove.
24849
24850 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
24851
24852         * misc.c: Delete traditional-mode-related code copied from the
24853         C front end but not used, or used only to permit the compiler
24854         to link.
24855
24856 2002-02-07  Richard Henderson  <rth@redhat.com>
24857
24858         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
24859         * adaint.h (__gnat_to_gm_time): Update prototype.
24860
24861 2002-01-30  Richard Henderson  <rth@redhat.com>
24862
24863         * trans.c (tree_transform) [N_Loop_Statement]: Use
24864         expand_exit_loop_top_cond.
24865
24866 2001-12-23  Richard Henderson  <rth@redhat.com>
24867
24868         * utils.c (end_subprog_body): Push GC context around
24869         rest_of_compilation for nested functions.
24870
24871 2001-12-23  Richard Henderson  <rth@redhat.com>
24872
24873         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
24874
24875 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
24876
24877         * gnat-style.texi (Declarations and Types): Remove ancient style
24878         rule which was mandated by code generation issues.
24879
24880         * gnat-style.texi (header): Add @dircategory, @direntry.
24881         (title page): Remove date.
24882         (general) Add @./@: where approriate, and two spaces after the
24883         full stop at the end of a sentence.  Use @samp markup when
24884         referring concrete lexical entities (keywords, attribute names
24885         etc.), and @syntax for ARM grammar elements. Use @r for English
24886         text in comments.  Use @emph for emphasis.  Change "if-statements"
24887         etc. to "if statements" (without @samp). Break long lines.  Make
24888         casing of section names consistent.
24889         (Identifiers): Use @samp markup for variable names.
24890         (Comments): Use @samp markup for comment characters. Line-end
24891         comments may follow any Ada code, not just statements.  Fix
24892         misspelling of "Integer" as "integer".
24893         (Loop statements): Do not use variable name "I", use "J".
24894         (Subprogram Declarations): Document alignment.
24895         (Subprogram Bodies, Block statements): Document empty line before
24896         "begin".
24897
24898 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
24899
24900         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24901         function approach did not work well because of a side effect (the
24902         function call could reallocate the table which was being indexed
24903         using its result). Fixes ada/4851.
24904
24905 2001-12-19  Robert Dewar <dewar@gnat.com>
24906
24907         * bindgen.adb: Minor reformatting
24908
24909         * cstand.adb: Minor reformatting
24910
24911         * fmap.adb: Minor reformatting
24912         Change name from Add for Add_To_File_Map (Add is much too generic)
24913         Change Path_Name_Of to Mapped_Path_Name
24914         Change File_Name_Of to Mapped_File_Name
24915         Fix copyright dates in header
24916
24917         * fmap.ads:
24918         Change name from Add for Add_To_File_Map (Add is much too generic)
24919         Change Path_Name_Of to Mapped_Path_Name
24920         Change File_Name_Of to Mapped_File_Name
24921         Fix copyright dates in header
24922
24923         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
24924         Add use clause for Fmap.
24925
24926         * make.adb: Minor reformatting
24927
24928         * osint.adb: Minor reformatting.  Change of names in Fmap.
24929         Add use clause for Fmap.
24930
24931         * prj-env.adb: Minor reformatting
24932
24933         * prj-env.ads: Minor reformatting
24934
24935         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
24936         error found (there were odd exceptions to this general rule in
24937         -gnatec/-gnatem processing)
24938
24939 2001-12-19  Olivier Hainque <hainque@gnat.com>
24940
24941         * raise.c (__gnat_eh_personality): Exception handling personality
24942         routine for Ada.  Still in rough state, inspired from the C++ version
24943         and still containing a bunch of debugging artifacts.
24944         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
24945         inspired from the C++ library.
24946
24947         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
24948         exception handling integration.
24949
24950 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24951
24952         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
24953         (HIE_SOURCES): Add s-secsta.ad{s,b}.
24954         (HIE_OBJS): Add s-fat*.o
24955         (RAVEN_SOURCES): Remove files that are no longer required. Add
24956         interrupt handling files.
24957         (RAVEN_MOD): Removed, no longer needed.
24958
24959 2001-12-19  Robert Dewar <dewar@gnat.com>
24960
24961         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
24962         Add 2001 to copyright date
24963
24964         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
24965         need to force universal inlining for these cases.
24966
24967 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24968
24969         * s-taprob.adb: Minor clean ups so that this unit can be used in
24970         Ravenscar HI.
24971
24972         * exp_ch7.adb: Allow use of secondary stack in HI mode.
24973         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
24974
24975 2001-12-19  Vincent Celier <celier@gnat.com>
24976
24977         * prj-tree.ads (Project_Node_Record): Add comments for components
24978         Pkg_Id and Case_Insensitive.
24979
24980 2001-12-19  Pascal Obry <obry@gnat.com>
24981
24982         * g-socket.adb: Minor reformatting. Found while reading code.
24983
24984 2001-12-19  Robert Dewar <dewar@gnat.com>
24985
24986         * prj-tree.ads: Minor reformatting
24987
24988 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
24989
24990         * config-lang.in (diff_excludes): Remove.
24991
24992 2001-12-17  Ed Schonberg <schonber@gnat.com>
24993
24994         * sem_res.adb (Resolve_Selected_Component): do not generate a
24995         discriminant check if the selected component is a component of
24996         the argument of an initialization procedure.
24997
24998         * trans.c (tree_transform, case of arithmetic operators): If result
24999         type is private, the gnu_type is the base type of the full view,
25000         given that the full view itself may be a subtype.
25001
25002 2001-12-17  Robert Dewar <dewar@gnat.com>
25003
25004         * sem_res.adb: Minor reformatting
25005
25006         * trans.c (tree_transform, case N_Real_Literal): Add missing third
25007         parameter in call to Machine (unknown horrible effects from this
25008         omission).
25009
25010         * urealp.h: Add definition of Round_Even for call to Machine
25011         Add third parameter for Machine
25012
25013 2001-12-17  Ed Schonberg <schonber@gnat.com>
25014
25015         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
25016         predefined units in No_Run_Time mode.
25017
25018 2001-12-17  Richard Kenner <kenner@gnat.com>
25019
25020         * misc.c (insn-codes.h): Now include.
25021
25022 2001-12-17  Olivier Hainque <hainque@gnat.com>
25023
25024         * a-except.adb: Preparation work for future integration of the GCC 3
25025         exception handling mechanism
25026         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
25027         to factorize previous code sequences and make them externally callable,
25028         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
25029         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
25030         Use the new notification routines.
25031
25032 2001-12-17  Emmanuel Briot <briot@gnat.com>
25033
25034         * prj-tree.ads (First_Choice_Of): Document the when others case
25035
25036 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25037
25038         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
25039         HI-E mode, in order to support Ravenscar profile properly.
25040
25041         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
25042         mode on 32 bits targets.
25043
25044 2001-12-17  Vincent Celier <celier@gnat.com>
25045
25046         * fmap.adb: Initial version.
25047
25048         * fmap.ads: Initial version.
25049
25050         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
25051         If search is successfully done, add to mapping.
25052
25053         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
25054
25055         * make.adb:
25056         (Gnatmake): Add new local variable Mapping_File_Name.
25057          Create mapping file when using project file(s).
25058          Delete mapping file before exiting.
25059
25060         * opt.ads (Mapping_File_Name): New variable
25061
25062         * osint.adb (Find_File): Use path name found in mapping, if any.
25063
25064         * prj-env.adb (Create_Mapping_File): New procedure
25065
25066         * prj-env.ads (Create_Mapping_File): New procedure.
25067
25068         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
25069         (Mapping_File)
25070
25071         * usage.adb: Add entry for new switch -gnatem.
25072
25073         * Makefile.in: Add dependencies for fmap.o.
25074
25075 2001-12-17  Ed Schonberg <schonber@gnat.com>
25076
25077         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
25078         is a package instantiation rewritten as a package body.
25079         (Install_Withed_Unit): Undo previous change, now redundant.
25080
25081 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25082
25083         * layout.adb:
25084         (Compute_Length): Move conversion to Unsigned to callers.
25085         (Get_Max_Size): Convert Len expression to Unsigned after calls to
25086         Compute_Length and Determine_Range.
25087         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
25088         Compute_Length and Determine_Range.
25089         Above changes fix problem with length computation for supernull arrays
25090         where Max (Len, 0) wasn't getting applied due to the Unsigned
25091         conversion used by Compute_Length.
25092
25093 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25094
25095         * rtsfind.ads:
25096         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
25097          System.Secondary_Stack.
25098         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
25099          in HI-E mode.
25100         Remove unused entity RE_Exception_Data.
25101
25102         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
25103
25104         * rident.ads (No_Secondary_Stack): New restriction.
25105
25106 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25107
25108         * gnat_rm.texi: Fix minor typos. Found while reading the section
25109         regarding "Bit_Order Clauses" that was sent to a customer.
25110         Very interesting documentation!
25111
25112 2001-12-17  Robert Dewar <dewar@gnat.com>
25113
25114         * sem_case.adb (Choice_Image): Avoid creating improper character
25115         literal names by using the routine Set_Character_Literal_Name. This
25116         fixes bombs in certain error message cases.
25117
25118 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25119
25120         * a-reatim.adb: Minor reformatting.
25121
25122 2001-12-17  Ed Schonberg <schonber@gnat.com>
25123
25124         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
25125         case where the formal is an extension of another formal in the current
25126         unit or in a parent generic unit.
25127
25128 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25129
25130         * s-tposen.adb: Update comments.  Minor reformatting.
25131         Minor code clean up.
25132
25133         * s-tarest.adb: Update comments.  Minor code reorganization.
25134
25135 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25136
25137         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
25138         when Java_VM.
25139
25140 2001-12-17  Robert Dewar <dewar@gnat.com>
25141
25142         * exp_attr.adb: Minor reformatting
25143
25144 2001-12-17  Ed Schonberg <schonber@gnat.com>
25145
25146         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
25147         derivations nested within a child unit: verify that the parent
25148         type is declared in an outer scope.
25149
25150 2001-12-17  Robert Dewar <dewar@gnat.com>
25151
25152         * sem_ch12.adb: Minor reformatting
25153
25154 2001-12-17  Ed Schonberg <schonber@gnat.com>
25155
25156         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
25157         warning if current unit is a predefined one, from which bodies may
25158         have been deleted.
25159
25160 2001-12-17  Robert Dewar <dewar@gnat.com>
25161
25162         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
25163         Fix header format. Add 2001 to copyright date.
25164
25165         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
25166         which caused CE during compilation if checks were enabled.
25167
25168 2001-12-17  Vincent Celier <celier@gnat.com>
25169
25170         * make.adb:
25171         (Switches_Of): New function
25172         (Test_If_Relative_Path): New procedure
25173         (Add_Switches): Use new function Switches_Of
25174         (Collect_Arguments_And_Compile): Use new function Switches_Of.
25175         When using a project file, test if there are any relative
25176         search path. Fail if there are any.
25177         (Gnatmake): Only add switches for the primary directory when not using
25178         a project file. When using a project file, change directory to the
25179         object directory of the main project file. When using a project file,
25180         test if there are any relative search path. Fail if there are any.
25181         When using a project file, fail if specified executable is relative
25182         path with directory information, and prepend executable, if not
25183         specified as an absolute path, with the exec directory.  Make sure
25184         that only one -o switch is transmitted to the linker.
25185
25186         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
25187
25188         * prj-nmsc.adb:
25189         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
25190         when using a non standard naming scheme.
25191         (Check_Ada_Naming_Scheme): Make sure that error messages
25192         do not raise exceptions.
25193         (Is_Illegal_Append): Return True if there is no dot in the suffix.
25194         (Language_Independent_Check): Check the exec directory.
25195
25196         * prj.adb (Project_Empty): Add new component Exec_Directory
25197
25198         * prj.ads:
25199         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
25200         (Project_Data): Add component Exec_Directory
25201
25202         * snames.adb: Updated to match snames.ads revision 1.215
25203
25204         * snames.ads: Added Exec_Dir
25205
25206 2001-12-17  Robert Dewar <dewar@gnat.com>
25207
25208         * make.adb: Minor reformatting
25209
25210         * prj-nmsc.adb: Minor reformatting
25211
25212         * snames.adb: Updated to match snames.ads
25213
25214         * snames.ads: Alphebetize entries for project file
25215
25216 2001-12-17  Ed Schonberg <schonber@gnat.com>
25217
25218         * trans.c (process_freeze_entity): Do nothing if the entity is a
25219         subprogram that was already elaborated.
25220
25221 2001-12-17  Richard Kenner <kenner@gnat.com>
25222
25223         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
25224         and Esize if object is referenced via pointer.
25225
25226 2001-12-17  Ed Schonberg <schonber@gnat.com>
25227
25228         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
25229         is discrete before analyzing choices.
25230
25231 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25232
25233         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
25234         containing the name of the Ada Main Program. This string is mainly
25235         intended for the debugger.
25236         (Gen_Output_File_C): Do the equivalent change when generating a C file.
25237
25238 2001-12-17  Robert Dewar <dewar@gnat.com>
25239
25240         * ali.adb: Set new Dummy_Entry field in dependency entry
25241
25242         * ali.ads: Add Dummy_Entry field to source dependency table
25243
25244         * bcheck.adb (Check_Consistency): Ignore dummy D lines
25245
25246         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
25247
25248         * lib-writ.ads: Document dummy D lines for missing files.
25249
25250         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
25251
25252 2001-12-17  Robert Dewar <dewar@gnat.com>
25253
25254         * ali.adb: Type reference does not reset current file.
25255
25256         * ali.adb: Recognize and scan renaming reference
25257
25258         * ali.ads: Add spec for storing renaming references.
25259
25260         * lib-xref.ads: Add documentation for handling of renaming references
25261
25262         * lib-xref.adb: Implement output of renaming reference.
25263
25264         * checks.adb:
25265         (Determine_Range): Document local variables
25266         (Determine_Range): Make sure Hbound is initialized. It looks as though
25267          there could be a real problem here with an uninitialized reference
25268          to Hbound, but no actual example of failure has been found.
25269
25270 2001-12-17  Laurent Pautet <pautet@gnat.com>
25271
25272         * g-socket.ads:
25273         Fix comment of Shutdown_Socket and Close_Socket. These functions
25274         should not fail silently because if they are called twice, this
25275         probably means that there is a race condition in the user program.
25276         Anyway, this behaviour is consistent with the rest of this unit.
25277         When an error occurs, an exception is raised with the error message
25278         as exception message.
25279
25280 2001-12-17  Robert Dewar <dewar@gnat.com>
25281
25282         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
25283         that it happens before modification of Sloc values for -gnatD.
25284
25285         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
25286         so that it happens before modification of Sloc values for -gnatD.
25287
25288         * switch.adb: Minor reformatting
25289
25290 2001-12-15  Richard Henderson  <rth@redhat.com>
25291
25292         * sem_ch7.adb: Wrap comment.
25293
25294 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25295
25296         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
25297         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
25298         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
25299         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
25300         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
25301         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
25302         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
25303         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
25304         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
25305         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
25306         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
25307         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
25308         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
25309         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
25310         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
25311         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
25312         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
25313         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
25314         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
25315         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
25316         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
25317         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
25318         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
25319         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
25320         spelling errors.
25321
25322 2001-12-14  Vincent Celier <celier@gnat.com>
25323
25324         * osint.adb(Create_Debug_File): When an object file is specified,
25325         put the .dg file in the same directory as the object file.
25326
25327 2001-12-14  Robert Dewar <dewar@gnat.com>
25328
25329         * osint.adb: Minor reformatting
25330
25331         * lib-xref.adb (Output_Instantiation): New procedure to generate
25332         instantiation references.
25333
25334         * lib-xref.ads: Add documentation of handling of generic references.
25335
25336         * ali.adb (Read_Instantiation_Ref): New procedure to read
25337         instantiation references
25338
25339         * ali.ads: Add spec for storing instantiation references
25340
25341         * bindusg.adb: Minor reformatting
25342
25343         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25344
25345         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25346
25347         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25348
25349         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25350
25351         * csets.ads:
25352         Fix header format
25353         Add 2001 to copyright date
25354         Add entry for Latin-5 (Cyrillic ISO-8859-5)
25355
25356 2001-12-14  Matt Gingell <gingell@gnat.com>
25357
25358         * adaint.c: mktemp is a macro on Lynx and can not be used as an
25359         expression.
25360
25361 2001-12-14  Richard Kenner <kenner@gnat.com>
25362
25363         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
25364         if operand is CONSTRUCTOR.
25365
25366 2001-12-14  Ed Schonberg <schonber@gnat.com>
25367
25368         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
25369         before emiting check on right-hand side, so that exception information
25370         is correct.
25371
25372 2001-12-14  Richard Kenner <kenner@gnat.com>
25373
25374         * utils.c (create_var_decl): Throw away initializing expression
25375         if just annotating types and non-constant.
25376
25377 2001-12-14  Vincent Celier <celier@gnat.com>
25378
25379         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
25380         Default_Ada_...
25381
25382         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25383         Remove functions.
25384         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
25385
25386         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25387         Remove functions.
25388         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
25389
25390 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25391
25392         * ChangeLog: Remove piece of diff output.
25393
25394 2001-12-14  Geert Bosch <bosch@gnat.com>
25395
25396         * config-lang.in: Update copyright notice
25397
25398         * layout.adb: Remove commented out code.
25399
25400         * mdllfile.ads: Update copyright notice. Fix header format.
25401
25402         * sem_case.ads: Likewise.
25403
25404         * sem_ch3.adb: Minor reformatting.
25405
25406 2001-12-12  Geert Bosch <bosch@gnat.com>
25407
25408         * freeze.ads: Update copyright date.
25409
25410         * g-comlin.ads: Minor reformatting.
25411
25412         * gnat-style.texi: Fix typo.
25413
25414 2001-12-12  Geert Bosch <bosch@gnat.com>
25415
25416         *  einfo.h: Regenerate.
25417
25418 2001-12-12  Ed Schonberg <schonber@gnat.com>
25419
25420         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
25421         on known node types, rather than untyped fields. Further cleanups.
25422
25423 2001-12-12  Robert Dewar <dewar@gnat.com>
25424
25425         * sem_ch12.adb:
25426         (Save_Entity_Descendant): Minor comment update.
25427         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
25428          of an N_Attribute_Reference node. As per note below, this does not
25429         eliminate need for Associated_Node in attribute ref nodes.
25430         (Associated_Node): Documentation explicitly mentions attribute
25431         reference nodes, since this field is used in such nodes.
25432
25433         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
25434
25435 2001-12-12  Robert Dewar <dewar@gnat.com>
25436
25437         * s-stalib.adb: Add more comments on with statements being needed
25438
25439         * par-ch12.adb: Minor reformatting
25440
25441         * prj-dect.ads: Fix copyright header
25442
25443         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
25444         inputs fit in 32 bits, but the result still overflows.
25445
25446         * s-fatgen.ads: Minor comment improvement
25447
25448 2001-12-12  Ed Schonberg <schonber@gnat.com>
25449
25450         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
25451         formal derived type, look for an inherited component from the full
25452         view of the parent, if any.
25453
25454 2001-12-12  Robert Dewar <dewar@gnat.com>
25455
25456         * checks.ads (Apply_Alignment_Check): New procedure.
25457
25458         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
25459         ensure that the alignment of objects with address clauses is
25460         appropriate, and raise PE if not.
25461
25462         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
25463         Exp_Pakd.Known_Aligned_Enough
25464
25465         * mdllfile.ads: Minor reformatting
25466
25467         * mlib-fil.ads: Minor reformatting
25468
25469 2001-12-12  Ed Schonberg <schonber@gnat.com>
25470
25471         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
25472         fix to any component reference if enclosing record has non-standard
25473         representation.
25474
25475 2001-12-12  Vincent Celier <celier@gnat.com>
25476
25477         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
25478         Iteration
25479
25480 2001-12-12  Ed Schonberg <schonber@gnat.com>
25481
25482         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
25483         sem_attr.
25484
25485 2001-12-12  Robert Dewar <dewar@gnat.com>
25486
25487         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
25488
25489 2001-12-12  Emmanuel Briot <briot@gnat.com>
25490
25491         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
25492         and it adds dependencies to system.io.
25493
25494 2001-12-12  Pascal Obry <obry@gnat.com>
25495
25496         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
25497         variable name.
25498
25499 2001-12-11  Ed Schonberg <schonber@gnat.com>
25500
25501         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
25502         that is the parent of other generics, the instance body replaces the
25503         instance node.  Retrieve the instance of the spec, which is the one
25504         that is visible in clients and within the body.
25505
25506 2001-12-11  Vincent Celier <celier@gnat.com>
25507
25508         * gnatmain.adb: Initial version.
25509
25510         * gnatmain.ads: Initial version.
25511
25512         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
25513
25514         * snames.adb: Updated to match snames.ads.
25515
25516         * snames.ads: Added Gnatstub.
25517
25518 2001-12-11  Vincent Celier <celier@gnat.com>
25519
25520         * prj-attr.adb (Initialization_Data): Change name from
25521         Initialisation_Data.
25522
25523 2001-12-11  Emmanuel Briot <briot@gnat.com>
25524
25525         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
25526         + and * applied to backslashed expressions like \r.
25527
25528 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
25529
25530         * g-os_lib.ads: String_List type added, Argument_List type is now
25531         subtype of String_List.
25532
25533 2001-12-11  Robert Dewar <dewar@gnat.com>
25534
25535         * g-os_lib.ads: Change copyright to FSF
25536         Add comments for String_List type
25537
25538 2001-12-11  Vincent Celier <celier@gnat.com>
25539
25540         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
25541         string to the buffer).
25542
25543 2001-12-11  Ed Schonberg <schonber@gnat.com>
25544
25545         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
25546         sem_attr.
25547
25548         * sem_attr.adb: Simplify previous fix for Address.
25549         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
25550         to avoid anomalies where the bound of the type appears to raise
25551         constraint error.
25552
25553 2001-12-11  Robert Dewar <dewar@gnat.com>
25554
25555         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
25556         handled.
25557
25558 2001-12-11  Ed Schonberg <schonber@gnat.com>
25559
25560         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
25561         renamed unit before checking for recursive instantiations.
25562
25563 2001-12-11  Emmanuel Briot <briot@gnat.com>
25564
25565         * prj.ads: Add comments for some of the fields.
25566
25567 2001-12-11  Robert Dewar <dewar@gnat.com>
25568
25569         * lib-xref.adb (Output_Refs): Don't output type references outside
25570         the main unit if they are not otherwise referenced.
25571
25572 2001-12-11  Ed Schonberg <schonber@gnat.com>
25573
25574         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
25575         code and diagnose additional illegal uses
25576
25577         * sem_util.adb (Is_Object_Reference): An indexed component is an
25578         object only if the prefix is.
25579
25580 2001-12-11  Vincent Celier <celier@gnat.com>
25581
25582         * g-diopit.adb: Initial version.
25583
25584         * g-diopit.ads: Initial version.
25585
25586         * g-dirope.adb:
25587         (Expand_Path): Avoid use of Unbounded_String
25588         (Find, Wildcard_Iterator): Moved to child package Iteration
25589
25590         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
25591
25592 2001-12-11  Robert Dewar <dewar@gnat.com>
25593
25594         * sem_attr.adb: Minor reformatting
25595
25596 2001-12-11  Ed Schonberg <schonber@gnat.com>
25597
25598         * sem_ch3.adb: Clarify some ???.
25599
25600 2001-12-11  Robert Dewar <dewar@gnat.com>
25601
25602         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
25603         Exp_Pakd.Known_Aligned_Enough
25604
25605         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
25606         version is moved to Exp_Ch13.
25607
25608 2001-12-11  Robert Dewar <dewar@gnat.com>
25609
25610         * einfo.ads: Minor reformatting
25611
25612         * exp_ch5.adb: Add comment for previous.change
25613
25614         * ali.adb: New interface for extended typeref stuff.
25615
25616         * ali.ads: New interface for typeref stuff.
25617
25618         * checks.adb (Apply_Alignment_Check): New procedure.
25619
25620         * debug.adb: Add -gnatdM for modified ALI output
25621
25622         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
25623
25624         * lib-xref.adb: Extend generation of <..> notation to cover
25625         subtype/object types. Note that this is a complete rewrite,
25626         getting rid of the very nasty quadratic algorithm previously
25627         used for derived type output.
25628
25629         * lib-xref.ads: Extend description of <..> notation to cover
25630         subtype/object types. Uses {..} for these other cases.
25631         Also use (..) for pointer types.
25632
25633         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
25634
25635         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
25636         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
25637
25638 2001-12-11  Vincent Celier <celier@gnat.com>
25639
25640         * gnatcmd.adb:
25641         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
25642         Changed /BIND_ONLY to /ACTIONS=BIND
25643         Changed /LINK_ONLY to /ACTIONS=LINK
25644
25645 2001-12-11  Ed Schonberg  <schonber@gnat.com>
25646
25647         * sem_ch8.adb (Find_Selected_Component): improved search for a
25648         candidate package in case of error.
25649
25650         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
25651         chain back on scope stack before reinstalling use clauses.
25652
25653         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
25654         is enabled, do not kill the code for the condition, to preserve
25655         warning.
25656
25657 2001-12-11  Robert Dewar <dewar@gnat.com>
25658
25659         * checks.adb (Insert_Valid_Check): Apply validity check to expression
25660         of conversion, not to result of conversion.
25661
25662 2001-12-11  Ed Schonberg <schonber@gnat.com>
25663
25664         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
25665         before freezing parent. If the declarations are mutually recursive,
25666         an access to the current record type may be frozen before the
25667         derivation is complete.
25668
25669 2001-12-05  Vincent Celier <celier@gnat.com>
25670
25671         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
25672         -c /COMPILE_ONLY, -l /LINK_ONLY
25673
25674         * opt.ads:
25675         (Bind_Only): New Flag
25676         (Link_Only): New flag
25677
25678         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
25679         and -l (Link_Only)
25680
25681         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
25682
25683         * make.adb:
25684         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
25685         (Gnatmake): Set the step flags. Only perform a step if the
25686         corresponding step flag is True.
25687         (Scan_Make_Arg): Reset the bind and link step flags when -u
25688         or -gnatc has been specified.
25689
25690 2001-12-05  Ed Schonberg <schonber@gnat.com>
25691
25692         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
25693         get bounds from right operand.
25694
25695         * sem_eval.adb: Minor reformatting
25696
25697         * exp_util.adb (Make_Literal_Range): use bound of literal rather
25698         than Index'First, its lower bound may be different from 1.
25699
25700         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
25701         and C48009J
25702
25703 2001-12-05  Vincent Celier <celier@gnat.com>
25704
25705         * prj-nmsc.adb Minor reformatting
25706
25707         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
25708         set and libraries are not supported.
25709
25710 2001-12-05  Ed Schonberg <schonber@gnat.com>
25711
25712         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
25713         private view explicitly, so the back-end can treat as a global
25714         when appropriate.
25715
25716 2001-12-05  Ed Schonberg <schonber@gnat.com>
25717
25718         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
25719          unit, always replace instance node with new body, for ASIS use.
25720
25721 2001-12-05  Vincent Celier <celier@gnat.com>
25722
25723         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
25724         libraries are not supported and both attributes Library_Name and
25725         Library_Dir are specified.
25726
25727         * prj-proc.adb (Expression): Set location of Result to location of
25728         first term.
25729
25730         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
25731         (prj-nmsc is now importing MLib.Tgt)
25732
25733         * prj-proc.adb: Put the change indicated above that was forgotten.
25734
25735 2001-12-05  Robert Dewar <dewar@gnat.com>
25736
25737         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
25738
25739 2001-12-05  Ed Schonberg <schonber@gnat.com>
25740
25741         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
25742         constraint, introduce explicit subtype declaration and derive from it.
25743
25744         * sem_ch3.adb: Minor reformatting
25745
25746 2001-12-05  Robert Dewar <dewar@gnat.com>
25747
25748         * checks.adb (Determine_Range): Increase cache size for checks.
25749         Minor reformatting
25750
25751         * exp_ch6.adb: Minor reformatting
25752         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
25753         a parameter whose root type is System.Address, since treating such
25754         subprograms as pure in the code generator is almost surely a mistake
25755         that will lead to unexpected results.
25756
25757         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
25758         change handling of conversions.
25759
25760         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
25761
25762 2001-12-05  Ed Schonberg <schonber@gnat.com>
25763
25764         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
25765         aggregate with static wrong size, attach generated Raise node to
25766         declaration.
25767
25768 2001-12-05  Robert Dewar <dewar@gnat.com>
25769
25770         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
25771         Fixes compilation abandoned bomb in B24009B.
25772
25773 2001-12-05  Ed Schonberg <schonber@gnat.com>
25774
25775         * sem_ch12.adb:
25776         Document use of Associated_Node on Selected_Components.
25777         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
25778         to clarify use of untyped descendant fields.
25779
25780 2001-12-05  Robert Dewar <dewar@gnat.com>
25781
25782         * prj-dect.ads: Add ??? comment
25783         Add 2001 to copyright notice (was not done in after all)
25784
25785         * prj-part.adb: Minor reformatting. Reword one awkward error message.
25786
25787         * prj.ads: Minor reformatting throughout, and add some ??? comments
25788
25789         * snames.ads: Minor reformatting
25790
25791 2001-12-05  Geert Bosch <bosch@gnat.com>
25792
25793         * snames.adb: Autoupdate
25794
25795 2001-12-05  Vincent Celier <celier@gnat.com>
25796
25797         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
25798
25799         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
25800
25801         * prj-env.adb: Minor comment changes (modifying -> extends).
25802
25803         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
25804
25805         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
25806         Tok_Extends.
25807
25808         * prj.adb (Initialize): Change Modifying to Extends.
25809
25810         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
25811
25812         * prj.ads: Minor comment change (Modifying -> extending).
25813
25814         * snames.ads: Change modifying to extends.
25815
25816 2001-12-05  Robert Dewar <dewar@gnat.com>
25817
25818         * sem_warn.adb: Remove stuff for conditionals, we are not going to
25819         do this after all.
25820
25821         * sem_warn.ads: Remove stuff for conditionals, we are not going to
25822         do this after all.  Add 2001 to copyright notice
25823
25824 2001-12-04  Geert Bosch <bosch@gnat.com>
25825
25826         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
25827
25828 2001-12-04  Robert Dewar <dewar@gnat.com>
25829
25830         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
25831         location if we already have errors. Stops some cases of cascaded
25832         errors.
25833
25834         * errout.adb: Improve comment.
25835
25836 2001-12-04  Robert Dewar <dewar@gnat.com>
25837
25838         * sem_ch12.adb:
25839         (Analyze_Formal_Type_Definition): Defend against Error.
25840         (Analyze_Formal_Subprogram): Defend against Error.
25841
25842         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
25843         remove following semicolon if present. Removes cascaded error.
25844
25845 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25846
25847         * bindgen.adb:
25848         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
25849          exceptions equals 0.
25850         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
25851         Fixes PIWG E tests (which have to be run with -gnatL).
25852
25853 2001-12-04  Robert Dewar <dewar@gnat.com>
25854
25855         * einfo.ads: Minor reformatting
25856
25857 2001-12-04  Ed Schonberg <schonber@gnat.com>
25858
25859         * einfo.ads: Block_Node points to the identifier of the block, not to
25860         the block node itself, to preserve the link when the block is
25861         rewritten, e.g. within an if-statement with a static condition.
25862
25863         * inline.adb (Cleanup_Scopes): recover block statement from block
25864         entity using new meaning of Block_Node.
25865
25866         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
25867         identifier of block node, rather than to node itself.
25868
25869 2001-12-04  Gary Dismukes <dismukes@gnat.com>
25870
25871         * layout.adb:
25872         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
25873         (Discrimify): Go back to setting the Etypes of the selected component
25874         because the Vname component does not exist at this point and will
25875         fail name resolution. Also set Analyzed.
25876         Remove with and use of Sem_Res.
25877
25878 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25879
25880         * Makefile.in: (HIE_SOURCES): add s-fat*.
25881
25882 2001-12-04  Robert Dewar <dewar@gnat.com>
25883
25884         * sem_attr.adb:
25885         (Compile_Time_Known_Attribute): New procedure.
25886         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
25887          proper range check.
25888
25889 2001-12-04  Ed Schonberg <schonber@gnat.com>
25890
25891         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
25892         processing discriminants to diagnose illegal default values.
25893
25894 2001-12-04  Ed Schonberg <schonber@gnat.com>
25895
25896         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
25897         access discriminant within a type extension that constrains its
25898         parent discriminants.
25899
25900 2001-12-04  Ed Schonberg <schonber@gnat.com>
25901
25902         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
25903         is malformed, use instance of Any_Id to allow analysis to proceed.
25904
25905         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
25906         type definition is illegal.
25907         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
25908         misplaced.
25909
25910 2001-12-04  Ed Schonberg <schonber@gnat.com>
25911
25912         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
25913         constants.
25914
25915 2001-12-04  Robert Dewar <dewar@gnat.com>
25916
25917         * errout.adb: Minor reformatting
25918
25919 2001-12-04  Robert Dewar <dewar@gnat.com>
25920
25921         * exp_util.adb: Minor reformatting from last change
25922
25923         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
25924         which is a rewriting of an expression, traverse the original
25925         expression to remove warnings that may have been posted on it.
25926
25927 2001-12-04  Ed Schonberg <schonber@gnat.com>
25928
25929         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
25930         record that has other packed components.
25931
25932 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25933
25934         * adaint.c: Minor cleanups.
25935
25936 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25937
25938         * adaint.c: Do not use utime.h on vxworks.
25939
25940 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25941
25942         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
25943         more confusion than it solves.
25944
25945 2001-12-04  Geert bosch <bosch@gnat.com>
25946
25947         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
25948
25949 2001-12-04  Geert Bosch  <bosch@gnat.com>
25950
25951         * Makefile.in (update-sources): New target.
25952         For use by gcc_release script.
25953
25954 2001-12-04  Ed Schonberg <schonber@gnat.com>
25955
25956         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
25957         a configuration pragma, it is now legal wherever a pragma can appear.
25958
25959 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
25960
25961         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
25962         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
25963         is now @CROSS@ -DIN_GCC; update comment.
25964
25965 2001-12-04  Robert Dewar <dewar@gnat.com>
25966
25967         * einfo.adb (Has_Pragma_Pure_Function): New flag.
25968         Fix problem that stopped ceinfo from working
25969
25970         * einfo.ads (Has_Pragma_Pure_Function): New flag.
25971
25972         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
25973
25974 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25975
25976         * gnatchop.adb:
25977         (File_Time_Stamp): New procedure.
25978         (Preserve_Mode): New boolean.
25979         (Write_Unit): Pass time stamp.
25980         Implement -p switch (preserve time stamps).
25981
25982         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
25983
25984         * gnatchop.adb: Do usage info for -p switch
25985
25986         * adaint.h (__gnat_set_file_time_name): New function
25987
25988         * adaint.c (__gnat_set_file_time_name): Implement
25989
25990         * adaint.h: Fix typo
25991
25992 2001-12-03  Robert Dewar <dewar@gnat.com>
25993
25994         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
25995         have Associated_Node.
25996
25997 2001-12-03  Robert Dewar <dewar@gnat.com>
25998
25999         * prj-proc.adb: Minor reformatting
26000
26001         * make.adb: Minor reformatting
26002
26003 2001-12-03  Geert Bosch <bosch@gnat.com>
26004
26005         * make.adb: Minor reformatting.
26006
26007 2001-12-03 Robert Dewar  <dewar@gnat.com>
26008
26009         * sem_ch12.adb: Minor reformatting
26010
26011 2001-12-03  Ed Schonberg <schonber@gnat.com>
26012
26013         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
26014         push Standard on the stack before analyzing the instance body,
26015         in order to have a clean visibility environment.
26016
26017         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
26018
26019 2001-12-03  Ed Schonberg <schonber@gnat.com>
26020
26021         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
26022         instantiation of a body that contains an inlined body.
26023
26024 2001-12-03  Ed Schonberg <schonber@gnat.com>
26025
26026         * sem_ch12.adb:
26027         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
26028         to prevent freezing within formal packages.
26029         (Freeze_Subprogram_Body): If body comes from another instance that
26030         appeared before its own body, place freeze node at end of current
26031         declarative part, to prevent a back-end crash.
26032         (Inline_Instance_Body): Handle properly a package instance within
26033         a subprogram instance that is a child unit.
26034
26035 2001-12-01  Graham Stott  <grahams@redhat.com>
26036
26037         * Makefile.in (misc.o): Add missing $(srcdir) prefix
26038         and add optabs.h dependency.
26039
26040         * misc.c: Include optabs.h
26041         (gnat_tree_code_type): Make static and const.
26042         (gnat_tree_code_length): Likewise.
26043         (gnat_tree_code_name): Likewise.
26044         (update_setjmp_buf): Obtain operands mode from insn_data.
26045
26046 2001-11-29  Richard Henderson  <rth@redhat.com>
26047
26048         * init.c: Remove obsolete dwarf2 frame.h section.
26049
26050 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
26051
26052         * Make-lang.in (ada.generated-manpages): New dummy target.
26053
26054 2001-11-29  Ed Schonberg <schonber@gnat.com>
26055
26056         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
26057         into Command, an array conversion is illegal here. Uncovered by
26058         ACATS B460005.
26059
26060 2001-11-28  Geert Bosch <bosch@gnat.com>
26061
26062         * init.c: Minor whitespace changes.
26063
26064 2001-11-28  Doug Rupp <rupp@gnat.com>
26065
26066         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
26067         signal stack.
26068
26069 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
26070
26071         * misc.c (gnat_expand_constant): Move declaration above
26072         definition of lang_hooks.
26073         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
26074         (gnat_init): lang_expand_constant no longer exists.
26075
26076         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
26077         always have vprintf.
26078         (gnat_init): Always call set_internal_error_function.
26079
26080 2001-11-27  Andreas Jaeger  <aj@suse.de>
26081
26082         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
26083
26084 2001-11-27  Laurent Guerby  <guerby@acm.org>
26085
26086         * Makefile.in: Regenerate Ada dependencies.
26087
26088 2001-11-26  Richard Henderson  <rth@redhat.com>
26089
26090         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
26091         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
26092         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
26093
26094 2001-11-25  Laurent Guerby  <guerby@acm.org>
26095
26096         * sysdep.c (rts_get_*): Fix style.
26097
26098 2001-11-19  Laurent Guerby  <guerby@acm.org>
26099
26100         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
26101         since it is of no apparent use and cause warnings.
26102
26103 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
26104
26105         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
26106         static too.
26107         (gnat_init): Don't return NULL.
26108         (finish_parse): Remove.
26109
26110 2001-11-17  Laurent Guerby  <guerby@acm.org>
26111
26112         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
26113         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
26114         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
26115         * lang-spec.h: Add missing struct field to silence warnings.
26116         * sysdep.c (rts_get_*): Provide K&R prototype.
26117         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
26118         * traceback.c (Unlock_Task, Lock_Task): Likewise.
26119         * tracebak.c (__gnat_backtrace): Remove unused variable.
26120         * utils.c (end_subprog_body): Move to K&R style.
26121
26122 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26123
26124         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
26125
26126 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
26127
26128         * misc.c (gnat_init): Change prototype.  Include the
26129         functionality of the old init_parse and init_decl_processing.
26130         (gnat_init_decl_processing): New prototype.
26131         (init_parse): Remove.
26132         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
26133
26134 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26135
26136         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
26137         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
26138         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
26139         set_yydebug): Remove.
26140
26141 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26142
26143         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
26144         (struct lang_hooks): Constify.
26145         (language_string, lang_identify): Remove.
26146         * utils.c (init_decl_processing): Update.
26147
26148 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
26149
26150         * misc.c: Include langhooks-def.h.
26151         * Makefile.in: Update.
26152
26153 2001-10-30  Robert Dewar <dewar@gnat.com>
26154
26155         * style.adb:
26156         (Check_Identifier): Rewrite circuit to be compatible with use of letters
26157         in the upper half of ASCII.
26158         (Check_Identifier): Minor reformatting
26159
26160 2001-10-30  Geert Bosch <bosch@gnat.com>
26161
26162         * (Associated_Node, Set_Associated_Node): Do not check for
26163         Freeze_Entity.
26164
26165 2001-10-30  Robert Dewar <dewar@gnat.com>
26166
26167         * a-reatim.ads: Minor reformatting
26168
26169 2001-10-30  Robert Dewar <dewar@gnat.com>
26170
26171         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
26172         undocumented declarations.
26173
26174 2001-10-30  Pascal Obry <obry@gnat.com>
26175
26176         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
26177         to the binder and linker.
26178         Minor style fix.
26179
26180         * mdll.ads: Fix layout.  Update copyright notice.
26181
26182         * mdll.adb: Fix layout.  Update copyright notice.
26183
26184 2001-10-30  Robert Dewar <dewar@gnat.com>
26185
26186         * usage.adb: Minor fix to output for -gnaty.
26187
26188 2001-10-30  Ed Schonberg <schonber@gnat.com>
26189
26190         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
26191         to accommodate all its possible values.
26192
26193         * a-reatim.adb (Split): Special-case handling of Time_Span_First
26194         and of small absolute values of T.
26195
26196 2001-10-30  Richard Kenner <kenner@gnat.com>
26197
26198         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
26199         set_mem_attributes since not needed and wrong if RESULT if a REG;
26200         fixes ACATS failures.
26201
26202 2001-10-30  Geert Bosch <bosch@gnat.com>
26203
26204         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
26205         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
26206
26207 2001-10-30  Robert Dewar <dewar@gnat.com>
26208
26209         * bindusg.adb: Undocument -f switch.
26210
26211         * gnatcmd.adb: Remove /FULL_ELABORATION.
26212
26213         * opt.ads (Force_RM_Elaboration_Order): Document that this is
26214         obsolescent.
26215
26216         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
26217
26218         * gnatbind.adb: Minor update of warning msg.
26219
26220 2001-10-30  Vincent Celier <celier@gnat.com>
26221
26222         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
26223         for project file switches (-P (/PROJECT_FILE=),
26224          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
26225         or MEDIUM or HIGH)
26226
26227 2001-10-30  Geert Bosch <bosch@gnat.com>
26228
26229         * decl.c: Minor whitespace fixes.
26230
26231 2001-10-30  Richard Kenner <kenner@gnat.com>
26232
26233         * utils2.c (build_allocator): Test for SIZE overflow in array case too
26234
26235 2001-10-30  Geert Bosch <bosch@gnat.com>
26236
26237         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
26238         Found due to GCC 3.0 warning of using uninitialized value.
26239
26240         * layout.adb:
26241         (Get_Max_Size): Use variant record for tracking value/expression.
26242          Makes logic clearer and prevents warnings for uninitialized variables.
26243         (Layout_Array_Type): Use variant record for tracking value/expression.
26244          Makes logic clearer and prevents warnings for uninitialized variables.
26245
26246 2001-10-30  Robert Dewar <dewar@gnat.com>
26247
26248         * lib.adb: Minor reformatting
26249
26250         * s-taprop.ads: Minor reformatting
26251
26252 2001-10-29  Laurent Guerby  <guerby@acm.org>
26253
26254         * init.c:
26255         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
26256         const.
26257         (_gnat_error_handler): Make MSG const.
26258
26259 2001-10-29  Richard Kenner <kenner@gnat.com>
26260
26261         * sysdep.c: Fix localtime_r problem on LynxOS.
26262         Also remove #elif to avoid warnings.
26263
26264         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
26265         used by this.
26266
26267         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
26268
26269 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
26270
26271         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
26272         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
26273         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
26274         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
26275         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
26276         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
26277         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
26278         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
26279         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
26280         types.ads, urealp.adb: Fix spelling errors.
26281
26282 2001-10-27  Laurent Guerby <guerby@acm.org>
26283
26284         * trans.c (gigi): Fix non determinism leading to bootstrap
26285         comparison failures for debugging information.
26286
26287 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
26288
26289         * gnat_rm.texi: Use @./@: where appropriate.
26290
26291 2001-10-26  Robert Dewar <dewar@gnat.com>
26292
26293         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
26294
26295 2001-10-26  Richard Kenner <kenner@gnat.com>
26296
26297         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
26298
26299 2001-10-26  Richard Kenner <kenner@gnat.com>
26300
26301         * decl.c (validate_size): Modify message for bad size to avoid
26302         implication that compiler is modifying the size.
26303
26304 2001-10-26  Robert Dewar <dewar@gnat.com>
26305
26306         * prj-util.adb: Minor reformatting. Fix bad header format.
26307
26308 2001-10-26  Robert Dewar <dewar@gnat.com>
26309
26310         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
26311
26312         * sinfo.ads: Clarify use of Associated_Node (documentation only).
26313
26314         * sem_ch12.adb: Change Node4 to Associated_Node. Change
26315         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
26316         much more narrowly in places where needed. These are cleanups.
26317
26318 2001-10-26  Joel Brobecker <brobecke@gnat.com>
26319
26320         * 5zosinte.ads (null_pthread): new constant.
26321
26322         * 5ztaprop.adb:
26323         (Initialize_TCB): Initialize thread ID to null, to be able to verify
26324          later that this field has been set.
26325         (Finalize_TCB): ditto.
26326         (Suspend_Task): Verify that the thread ID is not null before using it.
26327         (Resume_Task): ditto.
26328
26329         * s-tasdeb.adb:
26330         (Resume_All_Tasks): Lock the tasks list before using it.
26331         (Suspend_All_Tasks): ditto.
26332
26333 2001-10-26  Richard Kenner <kenner@gnat.com>
26334
26335         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
26336         Make constant variant of designated type for Is_Access_Constant.
26337         Call update_pointer_to with main variant.
26338
26339         * trans.c (process_freeze_entity, process_type):
26340         Call update_pointer_to on main variant.
26341
26342         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
26343         If main variant, update all other variants.
26344
26345         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
26346         TREE_STATIC.
26347
26348 2001-10-26  Robert Dewar <dewar@gnat.com>
26349
26350         * prj-util.adb: Minor reformatting
26351
26352 2001-10-26  Robert Dewar <dewar@gnat.com>
26353
26354         * prj-util.adb: Minor reformatting
26355
26356 2001-10-26  Robert Dewar <dewar@gnat.com>
26357
26358         * prj-attr.adb: Minor reformatting throughout
26359
26360 2001-10-26  Robert Dewar <dewar@gnat.com>
26361
26362         * prj-attr.ads: Minor reformatting
26363         Add ??? comment (this whole spec has almost no comments)
26364
26365 2001-10-26  Vincent Celier <celier@gnat.com>
26366
26367         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
26368         ("//") that precede the drive letter on Interix.
26369
26370 2001-10-26  Geert Bosch <bosch@gnat.com>
26371
26372         * gnat_rm.texi: Add GNAT Reference Manual.
26373
26374 2001-10-25  Robert Dewar <dewar@gnat.com>
26375
26376         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
26377         is Error. Similar change for other renaming cases.
26378
26379 2001-10-25  Robert Dewar <dewar@gnat.com>
26380
26381         * s-atacco.ads: Add pragma Inline_Always for functions.
26382         Fix header format. Add copyright 2001
26383
26384 2001-10-25  Ed Schonberg <schonber@gnat.com>
26385
26386         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
26387         return Error rather than Empty so that analysis can proceed.
26388
26389 2001-10-25  Ed Schonberg <schonber@gnat.com>
26390
26391         * sem_util.adb (Enter_Name): better handling of cascaded error
26392         messages when a unit appears in its own context.
26393
26394 2001-10-25  Ed Schonberg <schonber@gnat.com>
26395
26396         * sem_util.adb (Defining_Entity): in case of error, attach created
26397         entity to specification, so that semantic analysis can proceed.
26398
26399 2001-10-25  Robert Dewar <dewar@gnat.com>
26400
26401         * sem_util.adb
26402         (Defining_Entity): Deal with Error.
26403         (Process_End_Label): Deal with bad end label for.
26404
26405 2001-10-25  Ed Schonberg <schonber@gnat.com>
26406
26407         * sem_elab.adb (Check_A_Call): refine message when call is in an
26408         instance but callee is not declared in the generic unit.
26409
26410 2001-10-25  Ed Schonberg <schonber@gnat.com>
26411
26412         * sem_elab.adb (Check_A_Call): check for renaming before finding the
26413         enclosing unit, which may already be different from the calling unit.
26414
26415 2001-10-25  Geert Bosch <bosch@gnat.com>
26416
26417         * 4gintnam.ads: fix header format.
26418
26419 2001-10-25  Ed Schonberg <schonber@gnat.com>
26420
26421         * sem_res.adb (Resolve_Call): if the call is actually an indexing
26422         operation on the result of a parameterless call, perform elaboration
26423         check after the node has been properly rewritten.
26424
26425         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
26426         inlined within the generic tree, the defining identifier is not a
26427         compilation_unit.
26428
26429 2001-10-25  Ed Schonberg <schonber@gnat.com>
26430
26431         * sem_res.adb (Resolve): special-case resolution of Null in an
26432          instance or an inlined body to avoid view conflicts.
26433
26434         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
26435          compatibility by retrieving the access type of the generic copy.
26436
26437 2001-10-25  Robert Dewar <dewar@gnat.com>
26438
26439         * sem_ch3.adb:
26440         (Analyze_Number_Declaration): Handle error expression.
26441         (Signed_Integer_Type_Declaration): Handle error bound.
26442         (Analyze_Subtype_Indication): Handle error range.
26443
26444         * sem_util.adb (Get_Index_Bounds): Check for Error.
26445
26446 2001-10-25  Robert Dewar <dewar@gnat.com>
26447
26448         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
26449         in no run time mode.
26450
26451 2001-10-25  Pascal Obry <obry@gnat.com>
26452
26453         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
26454         mode case for ALLOC case.
26455
26456         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
26457         all platforms. Improvement of last change.
26458
26459 2001-10-25  Robert Dewar <dewar@gnat.com>
26460
26461         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
26462
26463 2001-10-25  Geert Bosch  <bosch@gnat.com>
26464
26465         * osint.adb (Is_Relative): Remove duplicate.
26466
26467 2001-10-25  Pascal Obry <obry@gnat.com>
26468
26469         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
26470         pathnames in UNIX and DOS style with drive letter.
26471         (Is_Relative): new routine.
26472
26473         * osint.adb: Minor reformatting
26474
26475         * osint.adb (Is_Relative): implementation using
26476         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
26477
26478 2001-10-25  Pascal Obry <obry@gnat.com>
26479
26480         * g-dirope.adb (Basename): correctly compute offset between the
26481         original Path and the translated one.
26482
26483         * g-dirope.adb: (Base_Name): add some comments.
26484
26485 2001-10-25  Robert Dewar <dewar@gnat.com>
26486
26487         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
26488         in HIE mode, avoids compilation abandoned message
26489
26490         * exp_imgv.adb: Correct typo in previous change
26491
26492         * exp_imgv.adb: Correct typo in previous change (not my day!)
26493
26494 2001-10-25  Robert Dewar <dewar@gnat.com>
26495
26496         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
26497
26498 2001-10-25  Pascal Obry <obry@gnat.com>
26499
26500         * g-awk.ads: Move all pragma inlines next to the routine
26501          declarations. This is more uniform with other GNAT spec.
26502
26503 2001-10-22  Geert Bosch  <bosch@gnat.com>
26504
26505         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
26506
26507 2001-10-19  Geert Bosch  <bosch@gnat.com>
26508
26509         * Makefile.in (tools, gnattools): Remove gnatmem.
26510
26511 2001-10-17  Richard Henderson  <rth@redhat.com>
26512
26513         * Makefile.in (misc.o): Depend on langhooks.h.
26514         * misc.c: Include it.
26515         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
26516         (LANG_HOOKS_DECODE_OPTION): New.
26517         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
26518
26519 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
26520
26521         * trans.c (tree_transform): Adjust to recent change in
26522         expand_asm_operands to implement named asm operands.
26523
26524 2001-10-11  Ed Schonberg  <schonber@gnat.com>
26525
26526         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
26527         renaming of discriminant for mutable record type.
26528
26529 2001-10-11  Robert Dewar  <dewar@gnat.com>
26530
26531         * validsw.adb: Properly save -gnatVn status.
26532
26533 2001-10-11  Robert Dewar <dewar@gnat.com>
26534
26535         * usage.adb: Add lines for V switch.
26536
26537         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
26538         (/VALIDITY_CHECKING).
26539
26540 2001-10-11  Ed Schonberg <schonber@gnat.com>
26541
26542         * sem_type.adb (Add_One_Interp): an operator for a type declared in
26543         an extension of System is known to be visible.
26544
26545 2001-10-11  Ed Schonberg <schonber@gnat.com>
26546
26547         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
26548         properly. Fixes regression on ACATS C34005G.
26549
26550 2001-10-11  Robert Dewar <dewar@gnat.com>
26551
26552         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
26553         loop in generic instance, since this is likely not very useful.
26554
26555 2001-10-11  Robert Dewar <dewar@gnat.com>
26556
26557         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
26558         the error message for high integrity mode.
26559
26560         * rtsfind.adb (RTE): Give message if we try to find an entity that
26561         is not available in high integrity mode.
26562
26563         * rtsfind.ads:
26564         (OK_To_Use_In_HIE_Mode): New array.
26565         (RTE): May return Empty in high integrity mode.
26566
26567         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
26568         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
26569
26570         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
26571         unit if not inlined always and in no runtime mode. Fixes problem
26572         caused by new Rtsfind changes.
26573
26574         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
26575         body is deleted.
26576
26577         * rtsfind.adb (RTE): Make sure we do not try to load unit after
26578         giving message for entity not available in high integrity mode.
26579
26580 2001-10-11  Pascal Obry <obry@gnat.com>
26581
26582         * impunit.adb: Add GNAT.CRC32.
26583
26584 2001-10-11  Ed Schonberg <schonber@gnat.com>
26585
26586         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
26587         properly the case where one universal operand in a non-static
26588         exponentiation of a real literal.
26589
26590 2001-10-11  Ed Schonberg <schonber@gnat.com>
26591
26592         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
26593         clause, return the gobal finalization list, for lack of anthing else.
26594
26595 2001-10-11  Ed Schonberg <schonber@gnat.com>
26596
26597         * exp_ch7.adb (Make_Transient_Block): if statement is within
26598         exception handler, always use new transient scope to place Clean
26599         procedure.
26600
26601 2001-10-11  Pascal Obry <obry@gnat.com>
26602
26603         * Makefile.in:
26604         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26605         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26606         (GNATLS_RTL_OBJS): add g-crc32.o
26607         (GNATMAKE_RTL_OBJS): add g-crc32.o
26608
26609         * ali-util.adb:
26610         (CRC_Match): new function.
26611         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
26612         instead of the previous simple checksum algorithm.
26613         (Time_Stamp_Mismatch): use CRC_Match for comparison.
26614         (Set_Source_Table): idem.
26615
26616         * ali-util.ads:
26617         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
26618         instead of simple checksum.
26619         (CRC_Match): new function.
26620         (CRC_Error): new constant.
26621
26622         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
26623         a CRC now and not a simple checksum. A CRC uses lower-case hex
26624         letters, fixes ambiguity in parsing.
26625
26626         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
26627         is what this variable will store.
26628
26629         * bcheck.adb: Change reference to chechsum in comments by CRC.
26630         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
26631         rename All_Checksum_Match to All_CRC_Match. Change due to API
26632         renaming since now GNAT does not use a simple checksum but a
26633         CRC using GNAT.CRC32.
26634
26635         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
26636         now and not anymore a simple checksum.
26637
26638         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
26639         places.
26640
26641         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
26642
26643         * scans.adb:
26644         (Restore_Scan_State): rename Checksum to CRC.
26645         (Save_Scan_State): idem.
26646
26647         * scans.ads:
26648         With GNAT.CRC32.
26649         (Checksum): rename to CRC.
26650         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
26651
26652         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
26653         GNAT.CRC32).  Update copyright notice.
26654
26655         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
26656         GNAT.CRC32).  Update copyright notice.
26657
26658         * scn.adb:
26659         (Accumulate_Checksum): removed.
26660         (Update): new procedure. Add a wide-character into the CRC.
26661
26662         * sinput-l.adb:
26663         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
26664         (Load_File): fix initialization of S (change Source_Checksum to
26665         Source_CRC)
26666
26667         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
26668         Source_CRC in S initialization.
26669
26670         * sinput.adb (Source_Checksum): renamed to Source_CRC.
26671
26672         * sinput.ads (Source_Checksum): renamed to Source_CRC.
26673         Update comments for the CRC.
26674
26675         * types.adb (Hex): Use lowercase for the letter part.
26676
26677         * types.ads (Get_Hex_String): Returns the hexadecimal representation
26678         for a word. This is currently used only for CRC. In previous version,
26679         the checksum was using a representation with all letter being
26680         upper-case. With the new implementation (using CRC) we do not remove
26681         the 32th bit of the CRC, so we can have an upper-case starting letter
26682         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
26683         It is ambigous since the CRC was optional and could be followed by
26684         options like EB, EE. So now this routines uses lower-case letter for
26685         the hexadecimal representation. Strange enough only lower case letters
26686         where checked in Scan_ALI (even if this was not a possible case).
26687
26688         * gnatvsn.ads (Library_Version): changed to 3.15a.
26689
26690         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
26691         for the compiler.
26692
26693         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
26694         for the compiler.
26695
26696         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
26697         Add 2001 to copyright notice
26698         (Accumulate_Checksum): Modify to use System.CRC32.
26699
26700         * ali-util.ads: Redo changes of previous revision to continue to use
26701         the word Checksum. Add 2001 to copyright notice.
26702
26703         * ali.adb: Undo some of previous changes, not needed.
26704         Keep the change for lower case letters in the checksum.
26705
26706         * ali.ads: Undo previous change not needed.
26707
26708         * bcheck.adb: Undo most of previous change, not needed.
26709         But do use Checksums_Match for checksum comparison.
26710
26711         * gnatls.adb: Undo most of previous change, not needed.
26712         But do use Checksums_Match for comparing checksums.
26713
26714         * lib-load.adb: Undo previous change, not needed.
26715
26716         * lib-writ.adb: Undo previous change, not needed.
26717
26718         * lib-writ.ads: Document that checksums use lower case,
26719         not upper case letters.
26720
26721         * scans.adb: Undo previous change, not needed
26722
26723         * scans.ads: Undo previous change, not needed.
26724
26725         * scn-nlit.adb: Undo previous changes, not needed.
26726
26727         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
26728
26729         * scn.adb:
26730         (Accumulate_Checksum): Use System.CRC32.
26731         (Initialize_Checksum): New procedure.
26732         Remove other changes of previous revision.
26733
26734         * sinput-p.adb: Undo previous change, not needed.
26735
26736         * sinput.adb: Undo previous change, not needed.
26737
26738         * sinput-l.adb: Undo previous change, not needed.
26739
26740         * sinput.ads: Undo previous change, not needed.  Keep only comment
26741         on new checksum algorithm
26742
26743         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
26744         Also remove a-tags and a-stream from GNAT sources.
26745
26746         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
26747
26748         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
26749
26750 2001-10-11  Geert Bosch  <bosch@gnat.com>
26751
26752         * einfo.h: Regenerate.
26753
26754         * nmake.ads: Regenerate.
26755
26756         * nmake.adb: Regenerate.
26757
26758         * sinfo.h: Regenerate.
26759
26760         * treeprs.adb: Regenerate.
26761
26762 2001-10-10  Geert Bosch  <bosch@gnat.com>
26763
26764         * gnat-style.texi: New file describing coding guidelines for Ada.
26765
26766 2001-10-10  Ed Schonberg <schonber@gnat.com>
26767
26768         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
26769         is Flag174.
26770
26771 2001-10-10  Geert Bosch  <bosch@gnat.com>
26772
26773         * snames.ads: Add new names for project facility.
26774
26775         * snames.adb: Update to reflect snames.ads changes.
26776
26777         * snames.h: Update to reflect snames.ads changes.
26778
26779 2001-10-10  Vincent Celier <celier@gnat.com>
26780
26781         * make.adb:
26782         (Add_Switches): reflect the changes for the switches attributes
26783         Default_Switches indexed by the programming language,
26784         Switches indexed by the file name.
26785         (Collect_Arguments_And_Compile): Idem.
26786         Reflect the attribute name changes.
26787
26788         * prj-attr.adb:
26789         (Initialisation_Data): Change the names of some packages and
26790         attributes.
26791         (Initialize): process case insensitive associative arrays.
26792
26793         * prj-attr.ads:
26794         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
26795
26796         * prj-dect.adb:
26797         (Parse_Attribute_Declaration): For case insensitive associative
26798          arrays, set the index string to lower case.
26799
26800         * prj-env.adb:
26801         Reflect the changes of the project attributes.
26802
26803         * prj-nmsc.adb:
26804         Replace Check_Naming_Scheme by Ada_Check and
26805         Language_Independent_Check.
26806
26807         * prj-nmsc.ads:
26808         Replaced Check_Naming_Scheme by 2 procedures:
26809         Ada_Check and Language_Independent_Check.
26810
26811         * prj-proc.adb:
26812         (Process_Declarative_Items): For case-insensitive associative
26813         arrays, set the index string to lower case.
26814         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
26815         Prj.Nmsc.Check_Naming_Scheme.
26816
26817         * prj-tree.adb:
26818         (Case_Insensitive): New function
26819         (Set_Case_Insensitive): New procedure
26820
26821         * prj-tree.ads:
26822         (Case_Insensitive): New function
26823         (Set_Case_Insensitive): New procedure
26824         (Project_Node_Record): New flag Case_Insensitive.
26825
26826         * prj-util.adb:
26827         (Value_Of): new function to get the string value of a single
26828         string variable or attribute.
26829
26830         * prj-util.ads:
26831         (Value_Of): new function to get the string value of a single
26832         string variable or attribute.
26833
26834         * prj.adb:
26835         (Ada_Default_Spec_Suffix): New function
26836         (Ada_Default_Impl_Suffix): New function
26837         Change definitions of several constants to reflect
26838         new components of record types.
26839
26840         * prj.ads:
26841         (Naming_Data): Change several components to reflect new
26842         elements of naming schemes.
26843         (Project_Data): New flags Sources_Present and
26844         Language_Independent_Checked.
26845         (Ada_Default_Spec_Suffix): New function.
26846         (Ada_Default_Impl_Suffix): New function.
26847
26848         * snames.ads:
26849         Modification of predefined names for project manager: added
26850         Implementation, Specification_Exceptions, Implementation_Exceptions,
26851         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
26852         Default_Switches, _Languages, Builder, Cross_Reference,
26853         Finder. Removed Body_Part, Specification_Append, Body_Append,
26854         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
26855         Gnatlink.
26856
26857         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
26858         Add comments.
26859
26860         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
26861         not that it is Nil_Variable_Value.
26862
26863         * prj.ads: Add ??? for uncommented declarations
26864
26865 2001-10-10  Ed Schonberg <schonber@gnat.com>
26866
26867         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
26868         constant, do not indicate possible modification, so that gigi can
26869         treat it as a bona fide constant.
26870
26871 2001-10-10  Robert Dewar <dewar@gnat.com>
26872
26873         * sem_prag.adb: Add processing for pragma External.
26874
26875         * snames.ads: Add entry for pragma External.
26876
26877         * par-prag.adb: Add pragma External.
26878
26879         * snames.adb: Updated to match snames.ads.
26880
26881 2001-10-10  Ed Schonberg <schonber@gnat.com>
26882
26883         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
26884         a dynamic task if the allocator appears in an indexed assignment
26885         or selected component assignment.
26886
26887         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
26888         For a dynamic task in an assignment statement, use target of
26889         assignment to generate meaningful name.
26890
26891 2001-10-10  Ed Schonberg <schonber@gnat.com>
26892
26893         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
26894         a generic package.
26895
26896         * einfo.ads: Body_Entity is also defined for generic package.
26897         Documentation change only
26898
26899         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
26900         others_choice for a discriminated component initialization,
26901         convert discriminant references into the corresponding discriminals.
26902
26903         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
26904         only if original type is private and expression has to be wrapped
26905         in a conversion.
26906
26907         * checks.adb:
26908         (Apply_Constraint_Check): Do not perform length check
26909         if expression is an aggregate with only an others_choice.
26910         (Length_N_Cond): two references to the same in_parameter
26911         (typically the discriminal in an init_proc) denote the same value.
26912         Two useful optimization uncovered by bugfixes above.
26913
26914 2001-10-10  Robert Dewar <dewar@gnat.com>
26915
26916         * xeinfo.adb: Change int to char in translation of enumeration types.
26917         This fixes a problem in the C representation of component alignment.
26918         Add 2001 to copyright notice
26919
26920 2001-10-10  Richard Kenner <kenner@gnat.com>
26921
26922         * decl.c: (validate_size): Do check size of object of integral type
26923         if it is a packed array type.
26924
26925 2001-10-10  Richard Kenner <kenner@gnat.com>
26926
26927         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
26928         VAR_DECL for constant if not Is_Public but -O0.
26929
26930 2001-10-10  Richard Kenner  <kenner@gnat.com>
26931
26932         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
26933
26934 2001-10-10  Geert Bosch  <bosch@gnat.com>
26935
26936         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
26937         use '/' as switch character, allowing for absolute file names.
26938
26939 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
26940
26941         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
26942         FSF address.
26943
26944 2001-10-08  Geert Bosch  <bosch@gnat.com>
26945
26946         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
26947         Automatically build utilities when files need to be regenerated.
26948
26949 2001-10-08  Geert Bosch  <bosch@gnat.com>
26950
26951         * xsnames.adb: New utility for updating snames.ads and snames.adb
26952
26953 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
26954
26955         * Make-lang.in (ADAFLAGS): Add -W -Wall.
26956         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
26957         (gnat1): Also depend on attribs.o.
26958         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
26959         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
26960         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
26961         (ADAFLAGS): Add -W -Wall.
26962         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
26963         take out CFLAGS.
26964
26965         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
26966         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
26967         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
26968         Use $(ADAC), not $(CC), as compilation command.
26969
26970         (gnattools): Depend directly on tools to build, don't use
26971         recursive make.
26972         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
26973
26974         * einfo.h, sinfo.h: New files (autogenerated).
26975
26976 2001-10-08  Richard Henderson  <rth@redhat.com>
26977
26978         * comperr.adb (Abort_In_Progress): New.
26979         (Compiler_Abort): Use it to prevent recursion.
26980
26981 2001-10-08  Robert Dewar <dewar@gnat.com>
26982
26983         * atree.adb: Set Error_Posted in Error node, helps error recovery.
26984
26985         * par-endh.adb (Output_End_Expected): We should also not test
26986         Error_Posted on the Error node, since now it is always set.
26987
26988         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
26989         to help error recovery. Part of general work on 9407-004.
26990
26991         * par.adb: Add ??? for misuse of error
26992
26993         * sem_res.adb:
26994         (Resolve): Defend against Error, fixes 9407-003.
26995         (Resolve_Discrete_Subtype_Indication): Defend against Error.
26996
26997         * sinfo.ads (N_Error): Now has Etype field (which will be set
26998         to Any_Type to help error recovery).
26999
27000 2001-10-08  Richard Kenner (kenner@gnat.com)
27001
27002         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
27003         Consistently set MEM attributes from expression; fixes
27004         bootstrap failure on x86.
27005
27006 2001-10-08  Geert Bosch  (bosch@gnat.com)
27007
27008         * 5oosinte.adb: Add 2001 to copyright notice.
27009
27010 2001-10-08  Geert Bosch  (bosch@gnat.com)
27011
27012         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
27013
27014         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
27015
27016 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
27017
27018         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
27019
27020 2001-10-05  Geert Bosch  (bosch@gnat.com)
27021
27022         * adaint.h: Small formatting fix.
27023
27024 2001-10-04  Geert Bosch  <bosch@gnat.com>
27025
27026         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
27027         Arg is int, not FILE *, in dummy version of functions.
27028
27029         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
27030         Arg is int, not FILE *.
27031
27032 2001-10-04  Geert Bosch  <bosch@gnat.com>
27033
27034         * 3lsoccon.ads: Added file, missed with initial check ins.
27035
27036         * 4lintnam.ads: Fix header format.
27037         Change Linux to GNU/Linux.
27038
27039         * 5iosinte.adb: Change Linux to GNU/Linux.
27040
27041         * 5iosinte.ads: Change Linux to GNU/Linux.
27042
27043         * 5itaprop.adb: Change Linux to GNU/Linux.
27044
27045         * 5itaspri.ads: Change Linux to GNU/Linux.
27046         Update copyright notice.
27047
27048         * 5lintman.adb: Change Linux to GNU/Linux.
27049
27050         * 5lml-tgt.adb: Change Linux to GNU/Linux.
27051
27052         * 5losinte.ads: Change Linux to GNU/Linux.
27053
27054         * 5lsystem.ads: Change Linux to GNU/Linux.
27055
27056         * 5qosinte.adb: Change Linux to GNU/Linux.
27057
27058         * 5qosinte.ads: Change Linux to GNU/Linux.
27059
27060         * 5qparame.ads: Change Linux to GNU/Linux.
27061
27062         * 5qtaprop.adb: Change Linux to GNU/Linux.
27063
27064         * 5qtaspri.ads: Change Linux to GNU/Linux.
27065         Add 2001 to copyright notice.
27066
27067         * 5vintman.ads: Change Linux to GNU/Linux.
27068         Fix header format.  Add 2001 to copyright notice.
27069
27070         * g-soccon.ads: Change Linux to GNU/Linux.
27071
27072         * g-trasym.ads: Change Linux to GNU/Linux.
27073         Add 2001 to copyright notice.
27074
27075         * memtrack.adb: Change Linux to GNU/Linux.
27076
27077         * s-intman.ads: Change Linux to GNU/Linux.
27078         Add 2001 to copyright notice.  Fix header format.
27079
27080         * s-stache.adb: Change Linux to GNU/Linux.
27081
27082         * adaint.c: Change Linux to GNU/Linux.
27083
27084         * cio.c: Change Linux to GNU/Linux.
27085
27086         * cstreams.c: Change Linux to GNU/Linux.
27087
27088         * init.c: Change Linux to GNU/Linux.
27089
27090         * gmem.c: Change Linux to GNU/Linux.
27091
27092         * tracebak.c: Change Linux to GNU/Linux.
27093
27094
27095 2001-10-02  Geert Bosch  <bosch@gnat.com>
27096
27097         * misc.c (insert_default_attributes): Add dummy version.