OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
2
3         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
4         * decl.c: Include gt-ada-decl.h.
5         (annotate_value_cache): New.
6         (annotate_value): Use it instead of TREE_COMPLEXITY.
7
8 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
9
10         * misc.c, utils2.c: Fix comment typos.
11
12 2007-01-24  Roger Sayle  <roger@eyesopen.com>
13
14         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
15         TREE_CONSTANT_OVERFLOW.
16         (allocatable_size_p, annotate_value): Likewise.
17         * trans.c (gnat_to_gnu): Likewise.
18         * utils.c (unchecked_convert): Likewise.
19         * utils2.c (build_simple_component_ref): Likewise.
20
21 2007-01-23  Richard Guenther  <rguenther@suse.de>
22
23         PR bootstrap/30541
24         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
25         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
26         (gnatboot3): Likewise.
27         (GNATBIND): Do not define.
28         * Makefile.in (GNATBIND): Do not define.
29
30 2007-01-08  Richard Guenther  <rguenther@suse.de>
31
32         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
33         * trans.c (gnat_to_gnu): Likewise.
34
35 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
36
37         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
38         * adaint.c: Likewise.
39
40 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
41
42         Merge from gimple-tuples-branch.
43
44         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
45         * ada-tree.h (lang_tree_node): Handle gimple tuples.
46         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
47         GIMPLE_MODIFY_STMT.
48
49 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
50
51         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
52         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
53         Fix typos.
54
55 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
56
57         PR ada/27936
58         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
59         if the initializer takes into account the padding.
60
61 2006-11-11  Richard Guenther  <rguenther@suse.de>
62
63         * trans.c (maybe_stabilize_reference): Remove handling of
64         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
65
66 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
67
68         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
69         (To_Target_Priority): New function.
70         Fix PR ada/29707
71
72 2006-10-31  Robert Dewar  <dewar@adacore.com>
73
74         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
75         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
76         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
77         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
78         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
79         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
80         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
81         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
82         a-szbzha.adb: Minor reformatting. Fix header.
83
84         * a-numaux-x86.adb: Add parentheses for use of unary minus
85         * a-ngcefu.adb: Supply missing parentheses for unary minus
86         * a-ngcoty.adb: Add parens for use of unary minus
87         * a-ngelfu.adb: Add missing parens for unary minus
88         * a-tifiio.adb: Add parentheses for uses of unary minus
89
90 2006-10-31  Robert Dewar  <dewar@adacore.com>
91             Bob Duff  <duff@adacore.com>
92             Ed Schonberg  <schonberg@adacore.com>
93
94         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
95         with multiplying operator.
96         (Expected_Type_Is_Any_Real): New function to determine from the Parent
97         pointer whether the context expects "any real type".
98         (Resolve_Arithmetic_Op): Do not give an error on calls to the
99         universal_fixed "*" and "/" operators when they are used in a context
100         that expects any real type. Also set the type of the node to
101         Universal_Real in this case, because downstream processing requires it
102         (mainly static expression evaluation).
103         Reword some continuation messages
104         Add some \\ sequences to continuation messages
105         (Resolve_Call): Refine infinite recursion case. The test has been
106         sharpened to eliminate some false positives.
107         Check for Current_Task usage now includes entry barrier, and is now a
108         warning, not an error.
109         (Resolve): If the call is ambiguous, indicate whether an interpretation
110         is an inherited operation.
111         (Check_Aggr): When resolving aggregates, skip associations with a box,
112         which are priori correct, and will be replaced by an actual default
113         expression in the course of expansion.
114         (Resolve_Type_Conversion): Add missing support for conversion from
115         a class-wide interface to a tagged type. Minor code cleanup.
116         (Valid_Tagged_Converion): Add support for abstact interface type
117         conversions.
118         (Resolve_Selected_Component): Call Generate_Reference here rather than
119         during analysis, and use May_Be_Lvalue to distinguish read/write.
120         (Valid_Array_Conversion): New procedure, abstracted from
121         Valid_Conversion, to incorporate accessibility checks for arrays of
122         anonymous access types.
123         (Valid_Conversion): For a conversion to a numeric type occurring in an
124         instance or inlined body, no need to check that the operand type is
125         numeric, since this has been checked during analysis of the template.
126         Remove legacy test for scope name Unchecked_Conversion.
127
128         * sem_res.ads: Minor reformatting
129
130         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
131         (PE_Current_Task_In_Entry_Body): New exception code
132         (SE_Restriction_Violation): Removed, not used
133
134         * a-except.ads:  Update comments.
135
136         * types.h, types.ads: Add definition for Validity_Check
137         (PE_Current_Task_In_Entry_Body): New exception code
138         (SE_Restriction_Violation): Removed, not used
139
140 2006-10-31  Thomas Quinot  <quinot@adacore.com>
141
142         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
143         error status.
144
145 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
146             Jose Ruiz  <ruiz@adacore.com>
147
148         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
149         part of Ada.Calendar: all subprogram raise Unimplemented.
150         (Split_W_Offset): Temp function body, raising Unimplemented
151
152         * a-calend.ads, a-calend-vms.ads: 
153         Add imported variable Invalid_TZ_Offset used to designate targets unable
154         to support time zones.
155         (Unimplemented): Temporary function raised by the body of new
156         subprograms below.
157         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
158         unit provides handling of leap seconds and is used by the new Ada 2005
159         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
160         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
161         version returns an extra value which is the offset to UTC.
162
163         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
164         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
165         (Split_W_Offset): New function body.
166         (Time_Of): When a date is close to UNIX epoch, compute the time for
167         that date plus one day (that amount is later substracted after
168         executing mktime) so there are no problems with time zone adjustments.
169
170         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
171
172         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
173         a-catizo.ads, a-catizo.adb: New files.
174
175         * impunit.adb: Add new Ada 2005 entries
176
177         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
178         Rename all occurences of "__gnat_localtime_r" to
179         "__gnat_localtime_tzoff".
180         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
181         zone data and calculate the GMT offset.
182         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
183         Use the field "tm_gmtoff" to extract the GMT offset.
184         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
185         the external variable "timezone" to calculate the GMT offset.
186
187 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
188             Jose Ruiz  <ruiz@adacore.com>
189
190         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
191         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
192         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
193         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
194         System.Any_Priority to a POSIX priority on the target.
195
196         * system-linux-ia64.ads: 
197         Extend range of Priority types on Linux to use the whole range made
198         available by the system.
199
200         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
201         function maps from System.Any_Priority to a POSIX priority on the
202         target.
203         (PTHREAD_PRIO_PROTECT): Set real value.
204         (PTHREAD_PRIO_INHERIT): Now a function.
205         (SIGCPUFAIL): New signal.
206         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
207         are documented as reserved by the OS.
208
209         * system-aix.ads: Use the full range of priorities provided by the
210         system on AIX.
211
212         * s-taprop-posix.adb: Call new function To_Target_Priority.
213         (Set_Priority): Take into account Task_Dispatching_Policy and
214         Priority_Specific_Dispatching pragmas when determining if Round Robin
215         must be used for scheduling the task.
216
217         * system-linux-x86_64.ads, system-linux-x86.ads, 
218         system-linux-ppc.ads: Extend range of Priority types on Linux to use
219         the whole range made available by the system.
220
221         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
222         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
223         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
224         when deallocating the TCB in order to avoid potential references to
225         deallocated data.
226         (Set_Priority): Take into account Task_Dispatching_Policy and
227         Priority_Specific_Dispatching pragmas when determining if Round Robin
228         or FIFO within priorities must be used for scheduling the task.
229
230         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
231         the Thread field (to be used internally by the run-time system) and the
232         kernel-level task id in the LWP field (to be used by the debugger).
233         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
234         instance, and propagate the current task options to the spawned task.
235         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
236         (Initialize): Set Round Robin dispatching when the corresponding pragma
237         is in effect.
238
239 2006-10-31  Robert Dewar  <dewar@adacore.com>
240
241         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
242         system-linux-hppa.ads, system-hpux-ia64.ads, 
243         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
244         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
245         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
246         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
247         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
248         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
249         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
250         Default_Bit_Order) to kill constant condition warnings for references
251         to this switch.
252
253 2006-10-31  Vincent Celier  <celier@adacore.com>
254             Eric Botcazou  <ebotcazou@adacore.com>
255
256         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
257         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
258         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
259         Ext_To, when building the library file name
260
261         * mlib-tgt-vxworks.adb: ditto.
262         (Get_Target_Suffix): Add support for x86 targets.
263
264         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
265
266         * mlib-tgt-darwin.adb: 
267         Use Append_To, instead of Ext_To, when building the library file name
268         (Flat_Namespace): New global variable.
269         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
270         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
271         (Link_Shared_Libgcc): Delete.
272         (Build_Dynamic_Library): Adjust for above changes.
273         Use Opt package.
274         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
275
276 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
277
278         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
279         (Initialize): Add type conversions required by above change.
280
281 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
282
283         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
284         (getpid): New body for this function that uses the underlying taskIdSelf
285         function for VxWorks 5 and VxWorks 6 in kernel mode.
286         (unsigned_int): New type, modular to allow logical bit operations.
287         (taskOptionsGet): New imported function.
288
289         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
290         field to be compliant with the type used by the corresponding operating
291         system primitive.
292
293 2006-10-31  Pascal Obry  <obry@adacore.com>
294             Eric Botcazou  <ebotcazou@adacore.com>
295             Vincent Celier  <celier@adacore.com>
296
297         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
298         ASCII version of the registry API. This is needed as the GNAT runtime
299         is now UNICODE by default.
300         Include version.h.
301         (get_gcc_version): Do not hardcode the return value.
302         (__gnat_file_time_name): On Windows properly set the default returned
303         value to -1 which corresponds to Invalid_Time.
304         (__gnat_fopen): New routine. A simple wrapper on all plateforms
305          except on Windows where it does conversion for unicode support.
306         (__gnat_freopen): Idem.
307         (__gnat_locate_exec_on_path): If environment variable PATH does not
308         exist, return a NULL pointer
309
310         * adaint.h: (__gnat_fopen): Declare.
311         (__gnat_freopen): Likewise.
312
313         * mingw32.h (_tfreopen): Define this macro here for older MingW
314         version.
315         Activate the unicode support on platforms using a MingW runtime
316         version 3.9 or newer.
317
318         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
319         This is needed for proper unicode support on Windows.
320         (freopen): Idem.
321
322 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
323             Nicolas Setton  <setton@adacore.com>
324             Olivier Hainque  <hainque@adacore.com>
325             Gary Dismukes  <dismukes@adacore.com>
326
327         * gigi.h: (tree_code_for_record_type): Declare.
328         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
329         (get_global_renaming_pointers): Rename to
330         invalidate_global_renaming_pointers.
331         (static_ctors): Delete.
332         (static_dtors): Likewise.
333         (gnat_write_global_declarations): Declare.
334         (create_var_decl): Adjust descriptive comment to indicate that the
335         subprogram may return a CONST_DECL node.
336         (create_true_var_decl): Declare new function, similar to
337         create_var_decl but forcing the creation of a VAR_DECL node.
338         (get_global_renaming_pointers): Declare.
339         (add_global_renaming_pointer): Likewise.
340
341         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
342
343         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
344         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
345         processing.
346         (gnat_to_gnu_entity): Remove From_With_Type from computation for
347         imported_p.
348         <E_Access_Type>: Use the Non_Limited_View as the full view of the
349         designated type if the pointer comes from a limited_with clause.  Make
350         incomplete designated type if it is in the main unit and has a freeze
351         node.
352         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
353         Underlying_Full_View similarly.  Return earlier if the full view already
354         has an associated tree.
355         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
356         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
357         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
358         reference type built for objects with an address clause.
359         Use create_true_var_decl with const_flag set for
360         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
361         TREE_READONLY set.
362         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
363         for Character and Wide_Character types. This info is read by the
364         dwarf-2 writer, and is needed to be able to use the command "ptype
365         character" in the debugger.
366         (gnat_to_gnu_entity): When generating a type representing
367         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
368         so that debug writers can distinguish it from ordinary integers.
369         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
370         addition to TREE_READONLY to assert the constantness of variables for
371         elaboration purposes.
372         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
373         parameters to call new Einfo function First_Formal_With_Extras.
374         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
375         protected type with its corresponding discriminant, to obtain a usable
376         declaration
377         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
378         for a multiple elaboration of the "equivalent" type.
379         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
380         into record_global_renaming_pointer.
381         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
382         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
383         <E_Array_Subtype>: Likewise.
384         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
385         incomplete subtypes and incomplete subtypes of incomplete types visible
386         through a limited with clause.
387         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
388         the base index type for the maximum size of the array only if they are
389         constant.
390         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
391         expression into a SAVE_EXPR if stabilization failed.
392
393         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
394         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
395         by lower level compilation passes.
396         (gnat_genericize): New function, lowering a function body to GENERIC.
397         Turn the type of RESULT_DECL into a real reference type if the decl
398         has been marked DECL_BY_REFERENCE, and adjust references to the latter
399         accordingly.
400         (gnat_genericize_r): New function. Tree walking callback for
401         gnat_genericize.
402         (convert_from_reference, is_byref_result): New functions. Helpers for
403         gnat_genericize_r.
404         (create_type_decl): Call gnat_pushdecl before calling
405         rest_of_decl_compilation, to make sure that field TYPE_NAME of
406         type_decl is properly set before calling the debug information writers.
407         (write_record_type_debug_info): The heuristics which compute the
408         alignment of a field in a variant record might not be accurate. Add a
409         safety test to make sure no alignment is set to a smaller value than
410         the alignment of the field type.
411         (make_dummy_type): Use the Non_Limited_View as the underlying type if
412         the type comes from a limited_with clause. Do not loop on the full view.
413         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
414         (dummy_node_table): New global variable, moved from decl.c.
415         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
416         (save_gnu_tree): Use above macros.
417         (get_gnu_tree): Likewise.
418         (present_gnu_tree): Likewise.
419         (init_dummy_type): New function, moved from decl.c. Use above macros.
420         (make_dummy_type): Likewise.
421         (tree_code_for_record_type): New function extracted from make_dummy_type
422         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
423         (static_ctors): Change it to a vector, make static.
424         (static_dtors): Likewise.
425         (end_subprog_body): Adjust for above change.
426         (build_global_cdtor): Moved from trans.c.
427         (gnat_write_global_declarations): Emit global constructor and
428         destructor, and call cgraph_optimize before emitting debug info for
429         global declarations.
430         (global_decls): New global variable.
431         (gnat_pushdecl): Store the global declarations in global_decls, for
432         later use.
433         (gnat_write_global_declarations): Emit debug information for global
434          declarations.
435         (create_var_decl_1): Former create_var_decl, with an extra argument to
436          state whether the creation of a CONST_DECL is allowed.
437         (create_var_decl): Behavior unchanged. Now a wrapper around
438         create_var_decl_1 allowing CONST_DECL creation.
439         (create_true_var_decl): New function, similar to create_var_decl but
440         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
441         (create_field_decl): Do not always mark the field as addressable
442         if its type is an aggregate.
443         (global_renaming_pointers): New static variable.
444         (add_global_renaming_pointer): New function.
445         (get_global_renaming_pointers): Likewise.
446
447         * misc.c (gnat_dwarf_name): New function.
448         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
449         (gnat_post_options): Add comment about structural alias analysis.
450         (gnat_parse_file): Do not call cgraph_optimize here.
451         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
452
453         * trans.c (process_freeze_entity): Don't abort if we already have a
454         non dummy GCC tree for a Concurrent_Record_Type, as it might
455         legitimately have been elaborated while processing the associated
456         Concurrent_Type prior to this explicit freeze node.
457         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
458         exception handler volatile if it is of variable size.
459         (process_type): Remove bypass for types coming from a limited_with
460         clause.
461         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
462         actual, convert the corresponding gnu_actual to the real destination
463         type when necessary.
464         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
465         originally TREE_READONLY but whose elaboration cannot be performed
466         statically.
467         Part of fix for F504-021.
468         (tree_transform, subprogram cases): Change loops on formal parameters to
469         call new Einfo function First_Formal_With_Extras.
470         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
471         stemming from type conversion for the lhs.
472         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
473         number of bits per unit for components of records.
474         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
475         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
476         with At_End_Proc after the SJLJ EH cleanup.
477         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
478         compilation unit.
479         (elaborate_all_entities): Do not retest type_annotate_only.
480         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
481         result type of an abstract subprogram, which may be an itype associated
482         with an anonymous access result (related to AI-318-02).
483         (build_global_cdtor): Move to utils.c.
484         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
485         this choice is not a null tree nor an integer constant.
486         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
487         on the body of elaboration routines instead of mark_unvisited.
488         (add_stmt): Do not mark the tree.
489         (add_decl_expr): Tweak comment.
490         (mark_unvisited): Delete.
491         (unshare_save_expr): New static function.
492         (call_to_gnu): Issue an error when making a temporary around a
493         procedure call because of non-addressable actual parameter if the
494         type of the formal is by_reference.
495         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
496         after building the elaboration routine.
497
498 2006-10-31  Bob Duff  <duff@adacore.com>
499
500         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
501         as finalization-started, so we can raise Program_Error on 'new'.
502
503         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
504         collection has already started.
505
506         * s-finimp.ads (Collection_Finalization_Started): Added new special
507         flag value for indicating that a collection's finalization has started.
508
509         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
510         create a task whose master has already waited for dependent tasks.
511
512 2006-10-31  Robert Dewar  <dewar@adacore.com>
513
514         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
515
516         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
517         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
518         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
519         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
520         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
521         a-except-2005.ads: Add pragma Preelaborable_Warning
522
523 2006-10-31  Robert Dewar  <dewar@adacore.com>
524             Jose Ruiz  <ruiz@adacore.com>
525
526         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
527
528         * ali.adb (Get_Name): Properly handle scanning of wide character names
529         encoded with brackets notation.
530         (Known_ALI_Lines): Add S lines to this list.
531         (Scan_ALI): Acquire S (priority specific dispatching) lines.
532         New flag Elaborate_All_Desirable in unit table
533
534         * ali.ads (Priority_Specific_Dispatching): Add this range of
535         identifiers to be used for Priority_Specific_Dispatching table entries.
536         (ALIs_Record): Add First_Specific_Dispatching and
537         Last_Specific_Dispatching that point to the first and last entries
538         respectively in the priority specific dispatching table for this unit.
539         (Specific_Dispatching): Add this table for storing each S (priority
540         specific dispatching) line encountered in the input ALI file.
541         New flag Elaborate_All_Desirable in unit table
542
543         * bcheck.adb: (Check_Configuration_Consistency): Add call to
544         Check_Consistent_Dispatching_Policy.
545         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
546         verifying that the use of Priority_Specific_Dispatching,
547         Task_Dispatching_Policy, and Locking_Policy is consistent across the
548         partition.
549
550         * bindgen.adb: (Public_Version_Warning): function removed.
551         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
552         required information from ALI files in order to initialize the table
553         containing the specific dispatching policy.
554         (Gen_Adainit_Ada): Generate the variables required for priority specific
555         dispatching entries (__gl_priority_specific_dispatching and
556         __gl_num_specific_dispatching).
557         (Gen_Adainit_C): Generate the variables required for priority specific
558         dispatching entries (__gl_priority_specific_dispatching and
559         __gl_num_specific_dispatching).
560         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
561         pragma entries.
562         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
563         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
564         (Tab_To): Removed.
565         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
566         a call to gnat_set_globals.
567         Generate a string containing settings from
568         Priority_Specific_Dispatching pragma entries.
569         (Gen_Object_Files_Options): Do not include the runtime libraries when
570         pragma No_Run_Time is specified.
571
572         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
573         consistency with s-intman-posix.adb.
574         (__gnat_error_handler, case FreeBSD): Account for the fact that the
575         handler is installed with SA_SIGINFO.
576         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
577         FreeBSD ZCX support, copied from Linux version.
578         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
579         sigfillset, and sigemptyset so the routines defined by MaRTE.
580         (__gl_priority_specific_dispatching): Add this variable that stores the
581         string containing priority specific dispatching policies in the
582         partition.
583         (__gl_num_specific_dispatching): Add this variable that indicates the
584         highest priority for which a priority specific dispatching pragma
585         applies.
586         (__gnat_get_specific_dispatching): Add this routine that returns the
587         priority specific dispatching policy, as set by a
588         Priority_Specific_Dispatching pragma appearing anywhere in the current
589         partition. The input argument is the priority number, and the result
590         is the upper case first character of the policy name.
591         (__gnat_set_globals): Now a dummy function.
592         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
593         mechargs instead of sigargs, as the latter can be retrieved from the
594         former and sigargs is not what we want on ia64.
595         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
596         mechargs argument.
597         (__gnat_adjust_context_for_raise, ia64-vms): New function.
598         (tasking_error): Remove unused symbol.
599         (_abort_signal): Move this symbol to the IRIX specific part since this
600         is the only target that uses this definition.
601         (Check_Abort_Status): Move this symbol to the IRIX specific part since
602         this is the only target that uses this definition.
603         (Lock_Task): Remove unused symbol.
604         (Unlock_Task): Remove unused symbol.
605
606         * lib-writ.adb (Write_ALI): Output new S lines for
607         Priority_Specific_Dispatching pragmas.
608         Implement new flag BD for elaborate body desirable
609
610         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
611         (Specific_Dispatching): Add this table for storing the entries
612         corresponding to Priority_Specific_Dispatching pragmas.
613         Document new BD flag for elaborate body desirable
614
615         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
616         of known pragmas.
617
618 2006-10-31  Javier Miranda  <miranda@adacore.com>
619
620         * a-tags.ads, a-tags.adb: 
621         (Predefined_DT): New function that improves readability of the code.
622         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
623         Inherit_DT): Use the new function Predefined_DT to improve code
624         readability.
625         (Register_Interface_Tag): Update assertion.
626         (Set_Interface_Table): Update assertion.
627         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
628         determining progenitor interfaces in Tags.
629         (Inherit_CPP_DT): New subprogram.
630
631         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
632         analysis of the thunk code.
633         (Expand_Interface_Conversion): Handle run-time conversion of
634         access to class wide types.
635         (Expand_Dispatching_Call): When generating the profile for the
636         subprogram itype for a dispatching operation, properly terminate the
637         formal parameters chaind list (set the Next_Entity of the last formal
638         to Empty).
639         (Collect_All_Interfaces): Removed. This routine has been moved to
640         sem_util and renamed as Collect_All_Abstract_Interfaces.
641         (Set_All_DT_Position): Hidden entities associated with abstract
642         interface primitives are not taken into account in the check for
643         3.9.3(10); this check is done with the aliased entity.
644         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
645         interfacing with CPP by default.
646         (Expand_Interface_Conversion): Add missing support for static conversion
647         from an interface to a tagged type.
648         (Collect_All_Interfaces): Add new out formal containing the list of
649         abstract interface types to cleanup the subprogram Make_DT.
650         (Make_DT): Update the code to generate the table of interfaces in case
651         of abstract interface types.
652         (Is_Predefined_Dispatching_Alias): New function that returns true if
653         a primitive is not a predefined dispatching primitive but it is an
654         alias of a predefined dispatching primitive.
655         (Make_DT): If the ancestor of the type is a CPP_Class and we are
656         compiling under full ABI compatibility mode we avoid the generation of
657         calls to run-time services that fill the dispatch tables because under
658         this mode we currently inherit the dispatch tables in the IP subprogram.
659         (Write_DT): Emit an "is null" indication for a null procedure primitive.
660         (Expand_Interface_Conversion): Use an address as the type of the formal
661         of the internally built function that handles the case in which the
662         target type is an access type.
663
664 2006-10-31  Robert Dewar  <dewar@adacore.com>
665
666         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
667
668 2006-10-31  Robert Dewar  <dewar@adacore.com>
669
670         * bindusg.ads, bindusg.adb:
671         Change to package and rename procedure as Display, which
672         now ensures that it only outputs usage information once.
673
674 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
675
676         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
677         using RTPs.
678
679         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
680         when using RTPs.
681
682 2006-10-31  Robert Dewar  <dewar@adacore.com>
683             Ed Schonberg  <schonberg@adacore.com>
684
685         * treepr.adb: Use new subtype N_Membership_Test
686
687         * checks.ads, checks.adb: Add definition for Validity_Check
688         (Range_Or_Validity_Checks_Suppressed): New function
689         (Ensure_Valid): Test Validity_Check suppressed
690         (Insert_Valid_Check): Test Validity_Check suppressed
691         (Insert_Valid_Check): Preserve Do_Range_Check flag
692         (Validity_Check_Range): New procedure
693         (Expr_Known_Valid): Result of membership test is always valid
694         (Selected_Range_Checks): Range checks cannot be applied to discriminants
695         by themselves. Disabling those checks must also be done for task types,
696         where discriminants may be used for the bounds of entry families.
697         (Apply_Address_Clause_Check): Remove side-effects if address expression
698         is non-static and is not the name of a declared constant.
699         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
700         Code cleanup and new error messages.
701         (Enable_Range_Check): Test for some cases of suppressed checks
702         (Generate_Index_Checks): Suppress index checks if index checks are
703         suppressed for array object or array type.
704         (Apply_Selected_Length_Checks): Give warning for compile-time detected
705         length check failure, even if checks are off.
706         (Ensure_Valid): Do not generate a check on an indexed component whose
707         prefix is a packed boolean array.
708         * checks.adb: (Alignment_Checks_Suppressed): New function
709         (Apply_Address_Clause_Check): New procedure, this is a completely
710         rewritten replacement for Apply_Alignment_Check
711         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
712         we request a discriminal value only in case of discriminants.
713         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
714         assignments where the target subtype is unconstrained and the target
715         object is a parameter or dereference (other aliased cases are known
716         to be unconstrained).
717
718 2006-10-31  Robert Dewar  <dewar@adacore.com>
719
720         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
721         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
722         vms_conv.adb: Fix bad table increment values (much too small)
723
724         * table.adb (Realloc): Make sure we get at least some new elements
725         Defends against silly small values for table increment
726
727 2006-10-31  Robert Dewar  <dewar@adacore.com>
728             Ed Schonberg  <schonberg@adacore.com>
729             Bob Duff  <duff@adacore.com>
730
731         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
732         entities. Move other fields around to make this possible
733         (Is_Derived_Type): Add missing call to Is_Type.
734         (Extra_Formals): New function for subprograms, entries, subprogram
735         types.
736         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
737         (First_Formal_With_Extras): New function for subprogs, entries, subp
738         types.
739         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
740         Add node information for E_Return_Statement.
741         (Elaborate_Body_Desirable): New flag
742         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
743         to be Is_Inherently_Limited_Type, because return-by-reference has
744         no meaning in Ada 2005.
745         (E_Return_Statement): New entity kind.
746         (Return_Applies_To): Field of E_Return_Statement.
747         (Is_Return_Object): New flag in object entities.
748         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
749         (Must_Have_Preelab_Init): New flag
750         (Known_To_Have_Preelab_Init): New flag
751         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
752         (Is_Visible_Formal): New flag on entities in formal packages.
753         (Low_Bound_Known): New flag
754         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
755         Incomplete_Kind.
756         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
757         output when Id is an incomplete subtype.
758
759 2006-10-31  Robert Dewar  <dewar@adacore.com>
760
761         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
762         Avoid abbreviation Creat
763         (Finalize): List all sources in extended mail source if -gnatl
764         switch is active.
765         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
766         (Finalize): Implement new -gnatl=xxx switch to output listing to file
767         (Set_Specific_Warning_On): New procedure
768         (Set_Specific_Warning_Off): New procedure
769         Add implementation of new insertion \\
770         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
771         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
772         types.
773         (Error_Msg_Internal): Make sure that we set Last_Killed to
774         True when a message from another package is suppressed.
775         Implement insertion character ~ (insert string)
776         (First_Node): Minor adjustments to get better placement.
777
778         * frontend.adb: 
779         Implement new -gnatl=xxx switch to output listing to file
780
781         * gnat1drv.adb: 
782         Implement new -gnatl=xxx switch to output listing to file
783
784         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
785         (Commands_To_Stdout): New flag
786         Implement new -gnatl=xxx switch to output listing to file
787         New switch Dump_Source_Text
788         (Warn_On_Deleted_Code): New warning flag for -gnatwt
789         Define Error_Msg_Line_Length
790         (Warn_On_Assumed_Low_Bound): New switch
791
792         * osint.ads, osint.adb
793         (Normalize_Directory_Name): Fix bug.
794         Implement new -gnatl=xxx switch to output listing to file
795         (Concat): Removed, replaced by real concatenation
796         Make use of concatenation now allowed in compiler
797         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
798         we find the 'lib' or 'bin' directory even when the tool has been
799         invoked with a relative path.
800         (Executable_Name): New function taking string parameters.
801
802         * osint-c.ads, osint-c.adb: 
803         Implement new -gnatl=xxx switch to output listing to file
804
805         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
806
807         * switch-c.adb: 
808         Implement new -gnatl=xxx switch to output listing to file
809         Recognize new -gnatL switch
810         (no longer keep in old warning about old style usage)
811         Use concatenation to simplify code
812         Recognize -gnatjnn switch
813         (Scan_Front_End_Switches): Clean up handling of -gnatW
814         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
815
816 2006-10-31  Robert Dewar  <dewar@adacore.com>
817
818         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
819         (Set_Specific_Warning_Off): New procedure
820         (Warning_Specifically_Suppressed): New function
821         (Validate_Specific_Warnings): New procedure
822         (Output_Msg_Text): Complete rewrite to support -gnatjnn
823
824         * err_vars.ads: Implement insertion character ~ (insert string)
825
826 2006-10-31  Bob Duff  <duff@adacore.com>
827             Ed Schonberg  <schonberg@adacore.com>
828
829         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
830         the parent part is a build-in-place function call, generate assignments.
831         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
832         are build-in-place function calls.
833         (Replace_Self_Reference): New subsidiary of
834         Make_OK_Assignment_Statement, to replace an access attribute that is a
835         self-reference into an access to the appropriate component of the
836         target object. Generalizes previous mechanism to handle self-references
837         nested at any level.
838         (Is_Self_Referential_Init): Remove, not needed.
839         (Is_Self_Referential_Init): New predicate to simplify handling of self
840         referential components in record aggregates.
841         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
842         check for presence of entity before checking for self-reference.
843         (Has_Default_Init_Comps): Return True if a component association is a
844         self-reference to the enclosing type, which can only come from a
845         default initialization.
846         (Make_OK_Assignment_Statement): If the expression is of the form
847         Typ'Acc, where Acc is an access attribute, the expression comes from a
848         default initialized self-referential component.
849         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
850         that has been derived from several abstract interfaces we must also
851         initialize the tags of the secondary dispatch tables.
852
853 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
854             Thomas Quinot  <quinot@adacore.com>
855             Javier Miranda  <miranda@adacore.com>
856             Robert Dewar  <dewar@adacore.com>
857         
858         * exp_attr.adb: 
859         (Expand_Access_To_Protected_Op): If the context indicates that an access
860         to a local operation may be transfered outside of the object, create an
861         access to the wrapper operation that must be used in an external call.
862         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
863         target, pass the Valid attribute applied to a floating-point prefix on
864         to the back end without expansion.
865         (Storage_Size): Use the new run-time function Storage_Size to retrieve
866         the allocated storage when it is specified by a per-object expression.
867         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
868         Nothing to do here, the attribute has been rewritten during semantic
869         analysis.
870         (Expand_Attribute_Reference): Handle expansion of the new Priority
871         attribute
872         (Find_Fat_Info): Handle case of universal real
873         (Expand_Access_To_Protected_Op): Fix use of access to protected
874         subprogram from inside the body of a protected entry.
875         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
876         'Access and 'Unrestricted_Access, to transform the attribute reference
877         into a fat pointer.
878         (Is_Constrained_Aliased_View): New predicate to help determine whether a
879         subcomponent's enclosing variable is aliased with a constrained subtype.
880         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
881         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
882         an aliased prefix must be known to be constrained in order to use True
883         for the attribute value, and now it's possible for some aliased views
884         to be unconstrained.
885
886 2006-10-31  Robert Dewar  <dewar@adacore.com>
887
888         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
889         (Expand_Entity_Reference): Correct error of not handling subprogram
890         formals in current_value processing.
891
892 2006-10-31  Javier Miranda  <miranda@adacore.com>
893             Robert Dewar  <dewar@adacore.com>
894             Ed Schonberg  <schonberg@adacore.com>
895             Gary Dismukes  <dismukes@adacore.com>
896
897         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
898         register in the final list objects containing class-wide interfaces;
899         otherwise we incorrectly register the tag of the interface in the final
900         list.
901         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
902         generate the wrapper if the parent primitive is abstract. This is
903         required to report the correct error message.
904         (Expand_N_Subtype_Indication): Do validity checks on range
905         (Clean_Task_Names): If an initialization procedure includes a call to
906         initialize a task (sub)component, indicate that the procedure will use
907         the secondary stack.
908         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
909         compatibility for interfacing with CPP by default.
910         (Expand_N_Object_Declaration): Only build an Adjust call when the
911         object's type is a nonlimited controlled type.
912         * exp_ch3.adb: Add with and use of Exp_Ch6.
913         (Expand_N_Object_Declaration): Check for object initialization that is a
914         call to build-in-place function and apply Make_Build_In_Place_Call_In_
915         Object_Declaration to the call.
916         (Freeze_Type): When the designated type of an RACW was not frozen at the
917         point where the RACW was declared, validate the primitive operations
918         with respect to E.2.2(14) when it finally is frozen.
919         (Build_Initialization_Call,Expand_Record_Controller): Rename
920         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
921         return-by-reference has no meaning in Ada 2005.
922         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
923         to register tag of the immediate ancestor interfaces in the
924         run-time structure.
925         (Init_Secondary_Tags): Moved to the specification to allow the
926         initialization of extension aggregates with abstract interfaces.
927         (Build_Master_Renaming): Make public, for use by function declarations
928         whose return type is an anonymous access type.
929         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
930         Insert_List_Before_And_Analyze after the generation of the specs
931         associated with null procedures.
932         (Expand_Tagged_Root): Update documentation in its specification.
933         (Init_Secondary_Tags): Update documentation.
934         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
935         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
936         then generate code to inherit the contents of the dispatch table
937         directly from the ancestor.
938         (Expand_Record_Controller): Insert controller component after tags of
939         implemented interfaces.
940         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
941         create null procedure overridings when null procedures are inherited
942         from interfaces.
943         (Make_Null_Procedure_Specs): New procedure to generate null procedure
944         declarations for overriding null primitives inherited from interfaces.
945         (Is_Null_Interface_Procedure): New function in
946         Make_Null_Procedure_Specs.
947         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
948         immediate ancestor of a tagged type is an abstract interface type we
949         must generate the specification of the predefined primitives associated
950         with controlled types (because the dispatch table of the ancestor is
951         null and hence these entries cannot be inherited). This is required to
952         elaborate well the dispatch table.
953
954 2006-10-31  Javier Miranda  <miranda@adacore.com>
955             Ed Schonberg  <schonberg@adacore.com>
956             Bob Duff  <duff@adacore.com>
957             Gary Dismukes  <dismukes@adacore.com>
958             Robert Dewar  <dewar@adacore.com>
959         
960         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
961         conversion.
962         (Expand_N_In): Do validity checks on range
963         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
964         (Expand_N_Allocator): For "new T", if the object is constrained by
965         discriminant defaults, allocate the right amount of memory, rather than
966         the maximum for type T.
967         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
968         when the allocator is initialized by a build-in-place call, since the
969         allocator is already rewritten as a reference to the function result,
970         and this prevents an unwanted duplication of the function call.
971         Add with and use of Exp_Ch6.
972         (Expand_Allocator_Expresssion): Check for an allocator whose expression
973         is a call to build-in-place function and apply
974         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
975         untagged designated types).
976         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
977         optimization if source or target is biased.
978         (Expand_N_Allocator): Add comments for case of an allocator within a
979         function that returns an anonymous access type designating tasks.
980         (Expand_N_Allocator): apply discriminant checks for access
981         discriminants of anonymous access types (AI-402, AI-416)
982
983 2006-10-31  Bob Duff  <duff@adacore.com>
984             Robert Dewar  <dewar@adacore.com>
985             Gary Dismukes  <dismukes@adacore.com>
986             Ed Schonberg  <schonberg@adacore.com>
987
988         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
989
990         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
991         (Expand_N_Assignment_Statement): Call
992         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
993         build-in-place function call. Currently, this can happen only for
994         assignments that come from aggregates.
995         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
996         in order to alleviate the upward compatibility introduced by AI-318.
997         (Expand_N_Extended_Return_Statement): Add support for handling the
998         return object as a build-in-place result.
999         (Expand_Non_Function_Return): Implement simple return statements nested
1000         within an extended return.
1001         (Enable_New_Return_Processing): Turn on the new processing of return
1002         statements.
1003         (Expand_Non_Function_Return): For a return within an extended return,
1004         don't raise Program_Error, because Sem_Ch6 now gives a warning.
1005         (Expand_N_Extended_Return_Statement): Implement AI-318
1006         (Expand_Simple_Function_Return): Ditto.
1007         (Expand_N_If_Statement): Handle new -gnatwt warning
1008         (Expand_N_Case_Statement): Handle new -gnatwt warning
1009         (Expand_N_Assignment): Handle assignment to the Priority attribute of
1010         a protected object.
1011         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
1012         validity checking of assignments to elementary record components.
1013         (Expand_N_Return_Statement): return Class Wide types on the secondary
1014         stack independantly of their controlled status since with HIE runtimes,
1015         class wide types are not potentially controlled anymore.
1016
1017         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
1018         node kind.
1019
1020         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
1021         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
1022         it expects a block, procedure, or task. The return statement will get
1023         turned into a block, and Expand_Cleanup_Actions will happen then.
1024
1025 2006-10-31  Robert Dewar  <dewar@adacore.com>
1026             Ed Schonberg  <schonberg@adacore.com>
1027             Bob Duff  <duff@adacore.com>
1028             Gary Dismukes  <dismukes@adacore.com>
1029
1030         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
1031         capability.
1032         (Expand_Inlined_Call): Tagged types are by-reference types, and
1033         therefore should be replaced by a renaming declaration in the expanded
1034         body, as is done for limited types.
1035         (Expand_Call): If this is a call to a function with dispatching access
1036         result, propagate tag from context.
1037         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
1038         CPP by default.
1039         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
1040         build-in-place when the right-hand side of an assignment is a
1041         build-in-place function call.
1042         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
1043         of the explicit dereference of the allocator to the result subtype of
1044         the build-in-place function. This is needed to satisfy type checking
1045         in cases where the caller's return object is created by an allocator for
1046         a class-wide access type and the type named in the allocator is a
1047         specific type.
1048         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
1049         conversion of the reference to the declared object to the result subtype
1050         of the build-in-place function. This is needed to satisfy type checking
1051         in cases where the declared object has a class-wide type. Also, in the
1052         class-wide case, change the type of the object entity to the specific
1053         result subtype of the function, to avoid passing a class-wide object
1054         without explicit initialization to the back end.
1055         (Register_Interface_DT_Entry): Moved outside the body of
1056         Freeze_Subprogram because this routine is now public; it is called from
1057         Check_Dispatching_Overriding to handle late overriding of abstract
1058         interface primitives.
1059         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
1060         adding an implicit access actual on a call to a build-in-place function.
1061         (Expand_Actuals): Test for an actual parameter that is a call to a
1062         build-in-place function and apply
1063         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
1064         (Is_Build_In_Place_Function): New function to determine whether an
1065         entity is a function whose calls should be handled as build-in-place.
1066         (Is_Build_In_Place_Function_Call): New function to determine whether an
1067         expression is a function call that should handled as build-in-place.
1068         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
1069         calls to build-in-place functions as the initialization of an allocator.
1070         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
1071         handling calls to build-in-place functions in contexts that do not
1072         involve init of a separate object (for example, actuals of subprogram
1073         calls).
1074         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
1075         handling calls to build-in-place functions as the initialization of an
1076         object declaration.
1077         (Detect_Infinite_Recursion): Add explicit parameter Process to
1078         instantiation of Traverse_Body to avoid unreferenced warning.
1079         (Check_Overriding_Inherited_Interfaces): Removed.
1080         (Register_Interface_DT_Entry): Code cleanup.
1081         (Register_Predefined_DT_Entry): Code cleanup.
1082         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
1083         inlined statements if within a transient scope.
1084         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
1085         formal parameters with occurrences of actuals in inlined body, establish
1086         visibility on the proper view of the actual's subtype for the body's
1087         context.
1088         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
1089         compatibility mode and we have an imported CPP subprogram because
1090         for now we assume that imported CPP primitives correspond with
1091         objects whose constructor is in the CPP side (and therefore we
1092         don't need to generate code to register them in the dispatch table).
1093         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
1094         aligned selected component.
1095         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
1096         the actual of an in-mode parameter is a type conversion.
1097         (Expand_Actuals): If the call does not come from source and the actual
1098         is potentially misaligned, let gigi handle it rather than rejecting the
1099         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
1100         Class Wide types as returning by reference independantly of their
1101         controlled status since with HIE runtimes class wide types are not
1102         potentially controlled anymore.
1103
1104 2006-10-31  Ed Schonberg  <schonberg@adacore.com>             
1105
1106         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
1107         references that are private components of the protected object.
1108         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
1109         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
1110         instantiation to deal with warnings.
1111         (Initialize_Protection): If expression for priority is non-static, use
1112         System_Priority as its expected type, in case the expression has not
1113         been analyzed yet.
1114
1115 2006-10-31  Robert Dewar  <dewar@adacore.com>
1116
1117         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
1118         initialization of Homonym_Len.
1119         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
1120         names from fully qualified name. Fixes problem of duplicate
1121         external names differing only in the presence of such a block name.
1122
1123 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1124             Pablo Oliveira  <oliveira@adacore.com>
1125         
1126         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
1127         subprogram Ids, even if they are not yet assigned.
1128         (Build_Subprogram_Id): It is now this function that will take care of
1129         calling Assign_Subprogram_Ids if necessary.
1130         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
1131         should be done only once they are assigned.
1132         (Build_From_Any_Function, case of tagged types): Add missing call to
1133         Allocate_Buffer.
1134         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
1135         type for an RACW type.
1136         (Add_RACW_Features): When processing an RACW declaration for which the
1137         designated type is already frozen, enforce E.2.2(14) rules immediately.
1138         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
1139         special reordering of controlling formals.
1140
1141         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
1142         associated stub type for an RACW type.
1143
1144 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1145
1146         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
1147         fixed-point operations in an integer context, i.e. as operands of a
1148         conversion to an integer type, indicate that result must be rounded.
1149
1150 2006-10-31  Robert Dewar  <dewar@adacore.com>
1151
1152         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
1153         cases, pass the encoding method, since it is now required by the run
1154         time.
1155
1156         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
1157         assumption that Str'First = 1.
1158         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
1159         it on to the Value_Wide_Wide_Character call.
1160         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
1161         properly handles a string of the form quote-encoded_wide_char-quote.
1162
1163         * s-wchcnv.adb: Minor reformatting
1164
1165 2006-10-31  Javier Miranda  <miranda@adacore.com>
1166         
1167         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1168         run-time membership test to ensure that the constructed object
1169         implements the target abstract interface.
1170
1171 2006-10-31  Robert Dewar  <dewar@adacore.com>
1172
1173         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
1174         Machine_Attribute pragma internally to implement the user pragma.
1175         Add processing for pragma Interface so that it is now completely
1176         equivalent to pragma Import.
1177
1178         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
1179         so that it can be applied to all entities, including record components
1180         and enumeration literals.
1181         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
1182         priority ranges are correct, verify compatibility against task
1183         dispatching and locking policies, and if everything is correct an entry
1184         is added to the table containing priority specific dispatching entries
1185         for this compilation unit.
1186         (Delay_Config_Pragma_Analyze): Delay processing
1187         Priority_Specific_Dispatching pragmas because when processing the
1188         pragma we need to access run-time data, such as the range of
1189         System.Any_Priority.
1190         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
1191         Allow pragma Unreferenced as a context item
1192         Add pragma Preelaborable_Initialization
1193         (Analyze_Pragma, case Interface): Interface is extended so that it is
1194         now syntactically and semantically equivalent to Import.
1195         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
1196         insertion characters.
1197         Add handling for Pragma_Wide_Character_Encoding
1198         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
1199         never supercedes a real restriction, and that a real restriction
1200         always supercedes a warning.
1201         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
1202         appropriate form.
1203
1204 2006-10-31  Bob Duff  <duff@adacore.com>
1205             Ed Schonberg  <schonberg@adacore.com>
1206             Robert Dewar  <dewar@adacore.com>
1207
1208         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
1209         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
1210         Is_Inherently_Limited_Type, because return-by-reference has no meaning
1211         in Ada 2005.
1212         (Find_Node_To_Be_Wrapped): Use new method of determining the result
1213         type of the function containing a return statement, because the
1214         Return_Type field was removed. We now use the Return_Applies_To field.
1215
1216         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
1217         (Build_Task_Image_Decl): If procedure is not called from an
1218         initialization procedure, indicate that function that builds task name
1219         uses the sec. stack. Otherwise the enclosing initialization procedure
1220         will carry the indication.
1221         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
1222         N_Object_Declaration instead.
1223         (Kill_Dead_Code): New interface to implement -gnatwt warning for
1224         conditional dead code killed, and change implementation accordingly.
1225         (Insert_Actions): Add N_Return_Object_Declaration case.
1226         Correct comment to mention N_Extension_Aggregate node.
1227         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
1228         attempts to save information for global variables which cannot be
1229         safely tracked.
1230         (Get_Current_Value_Condition): Handle conditions the other way round
1231         (constant on left). Also handle right operand of AND and AND THEN
1232         (Set_Current_Value_Condition): Corresponding changes
1233         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
1234         (Get_Current_Value_Condition): Handle simple boolean operands
1235         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
1236         (Get_Current_Value_Condition): If the variable reference is within an
1237         if-statement, does not appear in the list of then_statments, and does
1238         not come from source, treat it as being at unknown location.
1239         (Get_Current_Value_Condition): Enhance to allow while statements to be
1240         processed as well as if statements.
1241         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
1242         come from source.
1243         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
1244         of loop. This is safe now that we fixed Kill_Current_Values.
1245         (OK_To_Do_Constant_Replacement): Check whether current scope is
1246         Standard, before examining outer scopes.
1247
1248 2006-10-31  Vincent Celier  <celier@adacore.com>
1249
1250         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
1251         When True, apply VMS treatment to children of packages A, G, I and S.
1252         For F320-016
1253
1254         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
1255
1256 2006-10-31  Robert Dewar  <dewar@adacore.com>
1257             Ed Schonberg  <schonberg@adacore.com>
1258
1259         * freeze.adb: Add handling of Last_Assignment field
1260         (Warn_Overlay): Supply missing continuation marks in error msgs
1261         (Freeze_Entity): Add check for Preelaborable_Initialization
1262
1263         * g-comlin.adb: Add Warnings (Off) to prevent new warning
1264
1265         * g-expect.adb: Add Warnings (Off) to prevent new warning
1266
1267         * lib-xref.adb: Add handling of Last_Assignment field
1268         (Generate_Reference): Centralize handling of pragma Obsolescent here
1269         (Generate_Reference): Accept an implicit reference generated for a
1270         default in an instance.
1271         (Generate_Reference): Accept a reference for a node that is not in the
1272         main unit, if it is the generic body corresponding to an subprogram
1273         instantiation.
1274
1275         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
1276
1277         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
1278         -gnatwq/Q.
1279         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
1280         exception handler.
1281         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
1282         use clauses, to avoid messages on packages used to qualify, and also
1283         to avoid messages from obsolescent units.
1284         (Warn_On_Useless_Assignments): Don't generate messages for imported
1285         and exported variables.
1286         (Warn_On_Useless_Assignments): New procedure
1287         (Output_Obsolescent_Entity_Warnings): New procedure
1288         (Check_Code_Statement): New procedure
1289
1290         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
1291         Change name Is_Ada_2005 to Is_Ada_2005_Only
1292         (Last_Assignment): New field for useless assignment warning
1293
1294 2006-10-31  Olivier Hainque  <hainque@adacore.com>
1295
1296         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
1297         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
1298
1299 2006-10-31  Bob Duff  <duff@adacore.com>
1300             Robert Dewar  <dewar@adacore.com>
1301             Ed Schonberg  <schonberg@adacore.com>
1302
1303         * g-awk.adb (Default_Session, Current_Session): Compile this file in
1304         Ada 95 mode, because it violates the new rules for AI-318.
1305
1306         * g-awk.ads: Use overloaded subprograms in every case where we used to
1307         have a default of Current_Session. This makes the code closer to be
1308         correct for both Ada 95 and 2005.
1309
1310         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
1311         code, relying on the fact that the compiler generates a warning
1312         instead of an error in -gnatg mode.
1313
1314         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
1315         E_Return_Statement entity kind.
1316         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
1317
1318         * par.adb (P_Interface_Type_Definition): Addition of one formal to
1319         report an error if the reserved word abstract has been previously found.
1320         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
1321         
1322         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
1323         parenthesized range attribute usage
1324         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
1325
1326         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
1327         in the syntax for extended_return_statement. This is not in the latest
1328         RM, but the ARG is expected to issue an AI allowing this.
1329         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
1330         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
1331         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
1332         P_Return_Statement): Parse the new syntax for extended_return_statement.
1333
1334         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
1335         Output_End_Missing): Add error-recovery code for the new
1336         extended_return_statement syntax; that is, the new E_Return entry on
1337         the scope stack.
1338
1339         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
1340         limited to nonlimited, because otherwise we violate the new Ada 2005
1341         rules about returning limited types in function Create_AST_Handler in
1342         s-asthan.adb.
1343
1344         * sem.adb (Analyze): Add cases for new node kinds
1345         N_Extended_Return_Statement and N_Return_Object_Declaration.
1346
1347         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
1348         type is in the same category as type of context before applying check,
1349         to prevent anomalies in instantiations.
1350         (Resolve_Aggregate): Remove test for limited components in aggregates.
1351         It's unnecessary in Ada 95, because if it has limited components, then
1352         it must be limited. It's wrong in Ada 2005, because limited aggregates
1353         are now allowed.
1354         (Resolve_Record_Aggregate): Move check for limited types later, because
1355         OK_For_Limited_Init requires its argument to have been resolved.
1356         (Get_Value): When copying the component default expression for a
1357         defaulted association in an aggregate, use the sloc of the aggregate
1358         and not that of the original expression, to prevent spurious
1359         elaboration errors, when the expression includes function calls.
1360         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
1361         were missing. We also didn't handle qualified expressions. Now also
1362         allow function calls. Use new common routine OK_For_Limited_Init.
1363         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
1364         with space can upper case letter).
1365
1366         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
1367         Has_Static_Discriminants flag
1368         (Record_Type_Declaration): Diagnose an attempt to declare an interface
1369         type with discriminants.
1370         (Process_Range_Expr_In_Decl): Do validity checks on range
1371         (Build_Discriminant_Constraints): Use updated form of
1372         Denotes_Discriminant.
1373         (Process_Subtype): If the subtype is a private subtype whose full view
1374         is a concurrent subtype, introduce an itype reference to prevent scope
1375         anomalies in gigi.
1376         (Build_Derived_Record_Type, Collect_Interface_Primitives,
1377         Record_Type_Declaration):  The functionality of the subprograms
1378         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
1379         is now performed by a single routine.
1380         (Build_Derived_Record_Type): If the type definition includes an explicit
1381         indication of limitedness, then the type must be marked as limited here
1382         to ensure that any access discriminants will not be treated as having
1383         a local anonymous access type.
1384         (Check_Abstract_Overriding): Issue a detailed error message when an
1385         abstract subprogram was not overridden due to incorrect mode of its
1386         first parameter.
1387         (Analyze_Private_Extension_Declaration): Add support for the analysis of
1388         synchronized private extension declarations. Verify that the ancestor is
1389         a limited or synchronized interface or in the generic case, the ancestor
1390         is a tagged limited type or synchronized interface and all progenitors
1391         are either limited or synchronized interfaces.
1392         Derived_Type_Declaration): Check for presence of private extension when
1393         dealing with synchronized formal derived types.
1394         Process_Full_View): Enchance the check done on the usage of "limited" by
1395         testing whether the private view is synchronized.
1396         Verify that a synchronized private view is completed by a protected or
1397         task type.
1398         (OK_For_Limited_Init_In_05): New function.
1399         (Analyze_Object_Declaration): Move check for limited types later,
1400         because OK_For_Limited_Init requires its argument to have been resolved.
1401         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1402         in order to alleviate the upward compatibility introduced by AI-318.
1403         (Constrain_Corresponding_Record): If the constraint is for a component
1404         subtype, mark the itype as frozen, to avoid out-of-scope references to
1405         discriminants in the back-end.
1406         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
1407         this subprogram against wrong sources.
1408         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
1409         discriminant of limited type completed with a protected type, when the
1410         discriminant is used to constrain a private component of the type, and
1411         expansion is disabled.
1412         (Find_Type_Of_Object): Do not treat a return subtype that is an
1413         anonymous subtype as a local_anonymous_type, because its accessibility
1414         level is the return type of the enclosing function.
1415         (Check_Initialization): In -gnatg mode, turn the error "cannot
1416         initialize entities of limited type" into a warning.
1417         (OK_For_Limited_Init): Return true for generated nodes, since it
1418         sometimes violates the legality rules.
1419         (Make_Incomplete_Declaration): If the type for which an incomplete
1420         declaration is created happens to be the currently visible entity,
1421         preserve the homonym chain when removing it from visibility.
1422         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
1423         inherited subprograms.
1424         (Access_Definition): If this is an access to function that is the return
1425         type of an access_to_function definition, context is a type declaration
1426         and the scope of the anonymous type is the current one.
1427         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
1428         incomplete subtype to the set of private dependents of the original
1429         incomplete type.
1430         (Constrain_Discriminated_Type): Emit an error message whenever an
1431         incomplete subtype is being constrained.
1432         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
1433         corresponding subtype of the full view of the original incomplete type.
1434         (Check_Incomplete): Properly detect invalid usage of incomplete types
1435         and subtypes.
1436
1437 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1438
1439         * g-catiio.ads, g-catiio.adb (Value): New function.
1440         Given an input String, try and parse a valid Time value.
1441
1442 2006-10-31  Vincent Celier  <celier@adacore.com>
1443
1444         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1445         Integer_Address arithmetic, as in Set_Valid.
1446
1447 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1448             Robert Dewar  <dewar@adacore.com>
1449
1450         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
1451         handling executable extension manually and duplicating code.
1452
1453         * make.adb: Implement new -S switch
1454         (Gnatmake): Use new function Osint.Executable_Name instead
1455         of handling executable extension manually.
1456
1457         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
1458         is specified, the executable name ends with this suffix.
1459         Take advantage of Osint.Executable_Name instead of duplicating code.
1460
1461         * switch-m.adb: Recognize new gnatmake -S switch
1462
1463         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
1464         variable.
1465         (Get_Target_Parameters): Set Executable_Extension_On_Target if
1466         available.
1467
1468         * makeusg.adb: Add line for gnatmake -S switch
1469
1470 2006-10-31  Vincent Celier  <celier@adacore.com>
1471
1472         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
1473         call it with -static-libgcc, as there are some platforms, such as
1474         Darwin, where one of these two switches is compulsory to link.
1475
1476 2006-10-31  Vincent Celier  <celier@adacore.com>
1477         
1478         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
1479         instead of ADA_PROJECT_PATH, for the project path.
1480         (Gnatls): When displaying the project path directories, use host dir
1481         specs.
1482
1483         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
1484         names in the project path, as absolute paths may correspond to
1485         multi-valued VMS logical names.
1486
1487 2006-10-31  Vincent Celier  <celier@adacore.com>
1488
1489         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
1490         absolute path name.
1491         (Locate_Regular_File): Ditto
1492         (Change_Dir): Remove, no longer used
1493         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
1494         on Windows. Get it calling Get_Current_Dir.
1495         (OpenVMS): Remove imported boolean, no longer needed.
1496         (Normalize_Pathname)[VMS]: Do not resolve directory names.
1497         (Pid_To_Integer): New function to convert a Process_Id to  Integer
1498
1499 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1500
1501         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
1502         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
1503         to No_Socket.
1504         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
1505         W_Sig_Socket.
1506
1507 2006-10-31  Robert Dewar  <dewar@adacore.com>
1508
1509         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1510         initial letter o as a zero.
1511
1512 2006-10-31  Robert Dewar  <dewar@adacore.com>
1513
1514         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1515
1516 2006-10-31  Robert Dewar  <dewar@adacore.com>
1517
1518         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
1519         variant records
1520         (Layout_Variant_Record): Retrieve the discriminants from the entity
1521         rather than from the type definition, because in the case of a full
1522         type for a private type we need to take the discriminants from the
1523         partial view.
1524         (Layout_Component_List): When applying the Max operator to variants with
1525         a nonstatic size, check whether either operand is static and scale that
1526         operand from bits to storage units before applying Max.
1527         (Layout_Type): In VMS, if a C-convention access type has no explicit
1528         size clause (and does not inherit one in the case of a derived type),
1529         then the size is reset to 32 from 64.
1530
1531 2006-10-31  Vincent Celier  <celier@adacore.com>
1532
1533         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
1534         its file has already been loaded, according to the unit being loaded,
1535         not to the current value of Multiple_Unit_Index.
1536
1537 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1538             Eric Botcazou  <ebotcazou@adacore.com>
1539             Arnaud Charlet  <charlet@adacore.com>
1540
1541         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
1542         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
1543         possible.
1544         (a-except.o): Pass it to the compiler.
1545         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
1546         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
1547         a-calend-mingw.adb version.
1548
1549         * Makefile.rtl: Added s-dsaser.
1550         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
1551         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
1552         Ada.Dispatching.Round_Robin.
1553         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
1554
1555         * Make-lang.in: Remove all references to gt-ada-decl.h.
1556         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
1557         sources.
1558         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
1559         Update dependencies.
1560
1561         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
1562
1563 2006-10-31  Vincent Celier  <celier@adacore.com>
1564
1565         * mlib-utl.adb (Initialized): Remove, no longer used
1566         (Initialize): Remove, no longer used
1567         (Ar): If Ar_Exec is null, get the location of the archive builder and,
1568         if there is one, the archive indexer. Fail if the archive builder cannot
1569         be found.
1570         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
1571         be found.
1572
1573 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1574
1575         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
1576         Process_Body_Clauses): If the context of a body includes a use clause
1577         for P.Q then a with_clause for P in the same body is not redundant,
1578         even if the spec also has a with_clause on P.
1579         Add missing continuation mark to error msg
1580         (Build_Limited_Views): A limited view of a type is tagged if its
1581         declaration includes a record extension.
1582         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
1583         node, even if the subunit has errors. This avoids malfunction by
1584         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
1585         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
1586         generation of obsolescent messages for with statements (cannot do
1587         this too early, or we cannot implement avoiding the messages in the
1588         case of obsolescent units withing obsolescent units).
1589         (Install_Siblings): If the with_clause is on a remote descendant of
1590         an ancestor of the current compilation unit, find whether there is
1591         a sibling child unit that is immediately visible.
1592         (Remove_Private_With_Clauses): New procedure, invoked after completing
1593         the analysis of the private part of a nested package, to remove from
1594         visibility the private with_clauses of the enclosing package
1595         declaration.
1596         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
1597         now centralized in Generate_Reference.
1598         (Install_Limited_Context_Clauses): Remove superfluous error
1599         message associated with unlimited view visible through use
1600         and renamings. In addition, at the point in which the error
1601         is reported, we add the backslash to the text of the error
1602         to ensure that it is reported as a single error message.
1603         Use new // insertion for some continuation messages
1604         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
1605         to create implicit with_clause for parent unit mentioned in original
1606         limited_with_clause.
1607         (Install_Limited_With_Unit): Set entity of parent identifiers if the
1608         unit is a child unit. For ASIS queries.
1609         (Analyze_Subunit): If the subunit appears within a child unit, make all
1610         ancestor child units directly visible again.
1611
1612 2006-10-31  Robert Dewar  <dewar@adacore.com>
1613
1614         * par-ch10.adb (P_Context_Clause): Minor error message fix
1615
1616 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1617             Javier Miranda  <miranda@adacore.com>
1618
1619         * par-ch12.adb: Grammar update and cleanup.
1620         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
1621         support for synchronized derived type definitions.
1622         Add the new actual Abstract_Present to every call to
1623         P_Interface_Type_Definition.
1624         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
1625         a formal object declaration with an access definition or a subtype mark
1626         with a null exclusion.
1627         (P_Generic_Association): Handle association with box, and others_choice
1628         with box, to support Ada 2005 partially parametrized formal packages.
1629
1630 2006-10-31  Robert Dewar  <dewar@adacore.com>
1631             Javier Miranda  <miranda@adacore.com>
1632         
1633         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
1634         (P_Type_Declaration): Remove barrier against the reserved word "limited"
1635         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
1636         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
1637         private extensions.
1638         (P_Type_Declaration): Add the new actual Abstract_Present to every call
1639         to P_Interface_Type_Definition.
1640         (P_Interface_Type_Definition): Addition of one formal to report an error
1641         if the reserved word abstract has been previously found.
1642         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
1643         object renaming declaration with an access definition or subtype mark
1644         with a possible null exclusion.
1645
1646         * par-ch9.adb: Minor error msg fix
1647
1648         * par-load.adb: Add missing continuation mark to error msg
1649
1650         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
1651
1652 2006-10-31  Vincent Celier  <celier@adacore.com>
1653
1654         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
1655         unknown attribute in unknown package or in package that does not need
1656         to be checked.
1657         (Parse_Package_Declaration): Do not issue warning for unknown package in
1658         quiet output.
1659
1660 2006-10-31  Vincent Celier  <celier@adacore.com>
1661
1662         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
1663         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
1664         Packages_To_Check.
1665
1666 2006-10-31  Vincent Celier  <celier@adacore.com>
1667
1668         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
1669         on VMS, change "__" to '.' before checking the name.
1670         (Record_Ada_Source): Always add the source file name in the list of
1671         of sources, even if it is not the first time, as it is for another
1672         source index.
1673         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
1674         dot, instead of replacing only the first '_'.
1675
1676         * prj-part.adb (Parse): Convert project file path to canonical form
1677
1678         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
1679         extended, the project id of the project extending it is recorded in its
1680         data, even when it has already been processed as an imported project.
1681
1682 2006-10-31  Robert Dewar  <dewar@adacore.com>
1683
1684         * repinfo.adb (List_Entities): Don't list entities from renaming
1685         declarations.
1686
1687 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1688             Robert Dewar  <dewar@adacore.com>
1689
1690         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
1691         only a restriction warning is active for the given restriction. This is
1692         desirable because we do not want to modify code in the case where only
1693         a warning is set.
1694         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
1695         causes overriding of real restrictions.
1696         Take advantage of new No_Restrictions constant.
1697
1698         * raise.h: (__gnat_set_globals): Change profile.
1699
1700 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1701         
1702         * rtsfind.adb: Remove s-polint from comment as it exists no more.
1703
1704         * rtsfind.ads: 
1705         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
1706         Move all the entities in obsolete package System.PolyORB_Interface to
1707         System.Partition_Interface.
1708         (RE_Storage_Size): New function in System.Tasking.
1709         (RE_Get_Ceiling): New entity.
1710         (RE_Set_Ceiling): New entity.
1711         (RO_PE_Get_Ceiling): New entity.
1712         (RO_RE_Set_Ceiling): New entity.
1713         (Inherit_CPP_DT): New entity
1714
1715 2006-10-31  Robert Dewar  <dewar@adacore.com>
1716
1717         * scng.adb (Scan, case of numeric literal): Better msg for identifier
1718         starting with a digit.
1719
1720 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1721             Thomas Quinot  <quinot@adacore.com>
1722             Javier Miranda  <miranda@adacore.com>
1723             Gary Dismukes  <dismukes@adacore.com>
1724
1725         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
1726         properly an attempt to apply Unchecked_Access to a protected operation.
1727         (OK_Self_Reference): New subprogram to check the legality of an access
1728         attribute whose prefix is the type of an enclosing aggregate.
1729         Generalizes previous mechanism to handle attribute references nested
1730         arbitrarily deep within the aggregate.
1731         (Analyze_Access_Attribute): An access attribute whose prefix is a type
1732         can appear in an aggregate if this is a default-initialized aggregate
1733         for a self-referential type.
1734         (Resolve_Attribute, case Access): Ditto.
1735         Add support for new implementation defined attribute Stub_Type.
1736         (Eval_Attribute, case Attribute_Stub_Type): New case.
1737         (Analyze_Attribute, case Attribute_Stub_Type): New case.
1738         (Stream_Attribute_Available): Implement using new subprogram from
1739         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
1740         Has_Specified_Stream_Attribute flag.
1741         Disallow Storage_Size and Storage_Pool for access to subprogram
1742         (Resolve_Attribute, case 'Access et al): Take into account anonymous
1743         access types of return subtypes in extended return statements. Remove
1744         accessibility checks on anonymous access types when Unchecked_Access is
1745         used.
1746         (Analyze_Attribute): Add support for the use of 'Class to convert
1747         a class-wide interface to a tagged type.
1748         Add support for the attribute Priority.
1749         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
1750         whether the designated type is discriminated with a constrained partial
1751         view and require static matching in that case.
1752         Add local variable Des_Btyp. The Designated_Type
1753         of an access to incomplete subtype is either its non-limited view if
1754         coming from a limited with or its etype if regular incomplete subtype.
1755
1756         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
1757         Fix predicate to identify and allow cases of (expander-generated)
1758         references to tag of designated object of a RACW.
1759         (Validate_Static_Object_Name): In Ada 2005, a formal object is
1760         non-static, and therefore cannot appear as a primary in a preelaborable
1761         package.
1762         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
1763         Has_Read_Write_Attributes.
1764         (Has_Read_Write_Attributes): Reimplement in termes of
1765         Has_Stream_Attribute_Definition.
1766         (Missing_Read_Write_Attributes): When checking component types in a
1767         record, unconditionally call Missing_Read_Write_Attributes recursively
1768         (remove guard checking for Is_Record_Type / Is_Access_Type).
1769
1770 2006-10-31  Robert Dewar  <dewar@adacore.com>
1771
1772         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
1773         useless assignments here and conditionalize it on absence of exception
1774         handlers.
1775         (Analyze_Exception_Handlers): Small code reorganization of error
1776         detection code, for new handling of formal packages.
1777
1778 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1779             Hristian Kirtchev  <kirtchev@adacore.com>
1780         
1781         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
1782         that has been constant-folded, preserve information of original tree,
1783         for ASIS uses.
1784         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
1785         generated private extension declaration if the formal derived type is
1786         synchronized. Carry synchronized present over to the generated private
1787         extension.
1788         (Validate_Derived_Type_Instance): Ensure that the actual of a
1789         synchronized formal derived type is a synchronized tagged type.
1790         (Instantiate_Formal_Package): When creating the instantiation used to
1791         validate the actual package of a formal declared without a box, check
1792         whether the formal itself depends on a prior actual.
1793         (Instantiate_Formal_Subprogram): Create new entities for the defining
1794         identifiers of the formals in the renaming declaration, for ASIS use.
1795         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
1796         a renaming declaration or a subtype declaration for an actual in an
1797         instance, capture location information of declaration in generic, for
1798         ASIS use.
1799         (Instantiate_Formal_Package): Add comments on needed additional tests.
1800         AI-317 (partial parametrization) is fully implemented.
1801         (Validate_Private_Type_Instance): Add check for actual which
1802         must have preelaborable initialization
1803         Use new // insertion for some continuation messages
1804         (Analyze_Formal_Object_Declaration): Change usage of Expression to
1805         Default_Expression. Add type retrieval when the declaration has an
1806         access definition. Update premature usage of incomplete type check.
1807         (Check_Access_Definition): New subsidiary routine. Check whether the
1808         current compilation version is Ada 05 and the supplied node has an
1809         access definition.
1810         (Instantiate object): Alphabetize local variables. Handle the creation
1811         of new renaming declarations with respect to the kind of definition
1812         used - either an access definition or a subtype mark. Guard against
1813         unnecessary error message in the context of anonymous access types after
1814         they have been resolved. Add check for required null exclusion in a
1815         formal object declaration.
1816         (Switch_View): A private subtype of a non-private type needs to be
1817         switched (the base type can have been switched without its private
1818         dependents because of the last branch of Check_Private_View.
1819         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
1820         value from BT.
1821         (Instantiate_Type): Emit an error message whenever a class-wide type of
1822         a tagged incomplete type is used as a generic actual.
1823         (Find_Actual_Type): Extend routine to handle a component type in a child
1824         unit that is imported from a formal package in a parent.
1825         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
1826         agree on constrainedness, rather than checking against ultimate ancestor
1827         (Instantiate_Subprogram_Body): Create a cross-reference link to the
1828         generic body, for navigation purposes.
1829
1830 2006-10-31  Robert Dewar  <dewar@adacore.com>
1831             Thomas Quinot  <quinot@adacore.com>
1832
1833         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
1834         type.
1835         (New_Stream_Subprogram): When processing an attribute definition clause
1836         for a stream-oriented subprogram, record an entity node occurring at
1837         the point of clause to use for checking the visibility of the clause,
1838         as defined by 8.3(23) as amended by AI-195.
1839         (New_Stream_Subprogram): New procedure, factoring behaviour from both
1840          New_Stream_Function and New_Stream_Procedure.
1841         (New_Stream_Function, New_Stream_Procedure): Removed.
1842         (Analyze_Attribute_Definition_Clause, case Address): Check new
1843         Alignment_Check check
1844
1845 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1846             Javier Miranda  <miranda@adacore.com>
1847             Robert Dewar  <dewar@adacore.com>
1848
1849         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
1850         generate the same errors compiling under -gnatc.
1851         (Try_Object_Operation): If no candidate interpretation succeeds, but
1852         there is at least one primitive operation with the right name, report
1853         error in call rather than on a malformed selected component.
1854         (Analyze_Selected_Component): If the prefix is an incomplete type from
1855         a limited view, and the full view is available, use the full view to
1856         determine whether this is a prefixed call to a primitive operation.
1857         (Operator_Check): Verify that a candidate interpretation is a binary
1858         operation before checking the type of its second formal.
1859         (Analyze_Call): Add additional warnings for function call contexts not
1860         yet supported.
1861         (Analyze_Allocator): Move the check for "initialization not allowed for
1862         limited types" after analyzing the expression. This is necessary,
1863         because OK_For_Limited_Init looks at the structure of the expression.
1864         Before analysis, we don't necessarily know what sort of expression it
1865         is. For example, we don't know whether F(X) is a function call or an
1866         indexed component; the former is legal in Ada 2005; the latter is not.
1867         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
1868         were missing. We also didn't handle qualified expressions. Now also
1869         allow function calls. Use new common routine OK_For_Limited_Init.
1870         (Analyze_Type_Conversion): Do not perform some legality checks in an
1871         instance, because the error message will be redundant or spurious.
1872         (Analyze_Overloaded_Selected_Component): Do not do style check when
1873         setting an entity, since we do not know it is the right entity yet.
1874         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
1875         (Analyze_Overloaded_Selected_Component): Same change
1876         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
1877         since regular incomplete subtypes are transformed into corresponding
1878         subtypes of their full views.
1879         (Complete_Object_Operation): Treat name of transformed subprogram call
1880         as coming from source, for browsing purposes.
1881         (Try_Primitive_Operation): If formal is an access parameter, compare
1882         with base type of object to determine whether it is a primitive
1883         operation.
1884         (Operator_Check): If no interpretation of the operator matches, check
1885         whether a use clause on any candidate might make the operation legal.
1886         (Try_Class_Wide_Operation): Check whether the first parameter is an
1887         access type whose designated type is class-wide.
1888
1889 2006-10-31  Robert Dewar  <dewar@adacore.com>
1890             Ed Schonberg  <schonberg@adacore.com>
1891             Gary Dismukes  <dismukes@adacore.com>
1892
1893         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
1894         warn on infinite loops.
1895         Add \\ to some continuation messages
1896         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
1897         (Process_Bounds): If the bounds are integer literals that result from
1898         constant-folding, and they carry a user-defined type, preserve that type
1899         rather than treating this as an integer range.
1900         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
1901         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
1902         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
1903         left hand side of assignment.
1904         (Analyze_Assignment): Add suport to manage assigments to the attribute
1905         priority of a protected object.
1906         (Check_Possible_Current_Value_Condition): Allow fully qualified names
1907         not just identifiers.
1908         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
1909         or AND THEN for possible tracking.
1910         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
1911         case of while loops so we can track values in the loop body.
1912
1913 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1914             Hristian Kirtchev  <kirtchev@adacore.com>
1915             Bob Duff  <duff@adacore.com>
1916         
1917         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
1918         procedure cannot be a protected operation (it is a basic_declaration,
1919         not a subprogram_declaration).
1920         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
1921         Subp. Add logic for entry processing.
1922         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
1923         Determine whether an entry or subprogram of a protected or task type
1924         override an inherited primitive of an implemented interface.
1925         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
1926         Update the actual used in calls to Check_Overriding_Indicator.
1927         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
1928         generate the proper reference to the parent unit, for cross-reference.
1929         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
1930         Is_Formal.
1931         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1932         (Add_Extra_Formal): Revise procedure to allow passing in associated
1933         entity, scope, and name suffix, and handle setting of the new
1934         Extra_Formals field.
1935         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
1936         pass new parameters. Add support for adding the new extra access formal
1937         for functions whose calls are treated as build-in-place.
1938         (Analyze_A_Return_Statement): Correct casing in error message.
1939         Move Pop_Scope to after Analyze_Function_Return, because an extended
1940         return statement really is a full-fledged scope. Otherwise, visibility
1941         doesn't work right. Correct use of "\" for continuation messages.
1942         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
1943         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
1944         the node doesn't get properly marked as analyzed.
1945         (Analyze_Subprogram_Body): If subprogram is a function that returns
1946         an anonymous access type that denotes a task, build a Master Entity
1947         for it.
1948         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
1949         proper usage of null exclusion in a result definition.
1950         (Process_Formals): Code cleanup and new error message.
1951         (Process_Formals): Detect incorrect application of null exclusion to
1952         non-access types.
1953         (Conforming_Types): Handle conformance between [sub]types and itypes
1954          generated for entities that have null exclusions applied to them.
1955         (Maybe_Primitive_Operation): Add an additional type retrieval when the
1956          base type is an access subtype. This case arrises with null exclusions.
1957         (New_Overloaded_Entity): Do not remove the overriden entity from the
1958         homonym chain if it corresponds with an abstract interface primitive.
1959         (Process_Formals): Replace membership test agains Incomplete_Kind with a
1960         call to the synthesized predicate Is_Incomplete_Type.
1961         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
1962         primitives.
1963         (Analyze_Subprogram_Declaration): Check that abstract interface
1964         primitives are abstract or null.
1965         (Analyze_Subprogram_Specification): Remove previous check for abstract
1966         interfaces because it was not complete.
1967         (Has_Interface_Formals): Removed.
1968
1969 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1970             Javier Miranda  <miranda@adacore.com>
1971
1972         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
1973         of Analyze_Package_Body, to create Itype references for anonymous
1974         access types created in the package declaration, whose designated types
1975         may have only a limited view.
1976         (Analyze_Package_Specification): For the private part of a nested
1977         package, install private_with_clauses of enclosing compilation unit if
1978         we are in its visible part.
1979         (Declare_Inherited_Private_Subprograms): Complete barrier
1980         to ensure that the primitive operation has an alias to some parent
1981         primitive. This is now required because, after the changes done for the
1982         implementation of abstract interfaces, the contents of the list of
1983         primitives has entities whose alias attribute references entities of
1984         such list of primitives.
1985         (Analyze_Package_Specification): Simplify code that handles parent units
1986         of instances and formal packages.
1987         (Uninstall_Declarations): Check the convention consistency among
1988         primitive overriding operations of a tagged record type.
1989
1990 2006-10-31  Robert Dewar  <dewar@adacore.com>
1991             Hristian Kirtchev  <kirtchev@adacore.com>
1992             Javier Miranda  <miranda@adacore.com>
1993             Ed Schonberg  <schonberg@adacore.com>
1994         
1995         * sem_ch8.adb: Minor error msg rewording
1996         (Undefined): When checking for misspellings, invert arguments (to get
1997         expected and found set right)
1998         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
1999         (Analyze_Generic_Renaming): Same fix
2000         (Use_One_Package): Do not take into account the internal entities of
2001         abstract interfaces during the analysis of entities that are marked
2002         as potentially use-visible.
2003         (Find_Type): Handle the case of an attribute reference for
2004         implementation defined attribute Stub_Type (simply let the analysis of
2005         the attribute reference rewrite it).
2006         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
2007         type that appears in a Use_Type clause.
2008         (Analyze_Object_Renaming): Add support for renaming of the Priority
2009         attribute.
2010         (Find_Type): In Ada 2005, a task type can be used within its own body,
2011         when it appears in an access definition.
2012         (Analyze_Object_Renaming): Remove warning on null_exclusion.
2013         (Analyze_Object_Renaming): Introduce checks for required null exclusion
2014          in a formal object declaration or in a subtype declaration.
2015         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
2016         (Check_Null_Exclusion): New local routine to
2017         Analyze_Subprogram_Renaming. Check whether the formals and return
2018         profile of a renamed subprogram have required null exclusions when
2019         their counterparts of the renaming already impose them.
2020         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
2021         Determine whether an entity is inside a generic scope.
2022         (In_Open_Scope): First pass of documentation update.
2023         (Find_Expanded_Name): Add support for shadow entities associated with
2024         limited withed packages. This is required to handle nested packages.
2025         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
2026         that makes a renaming of a limited withed package illegal.
2027
2028 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2029             Ed Schonberg  <schonberg@adacore.com>
2030
2031         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
2032         Check_Overriding_Indicator.
2033         (Analyze_Task_Definition): Ditto.
2034         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
2035         (Check_Overriding_Indicator): To find overridden interface operation,
2036         examine only homonyms that have an explicit subprogram declaration, not
2037         inherited operations created by an unrelated type derivation.
2038         (Check_Overriding_Indicator): When checking for the presence of "null"
2039         in a procedure, ensure that the queried node is a procedure
2040         specification.
2041         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
2042         type when the formal is an access to variable.
2043         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
2044         (Analyze_Task_Type): Same addition
2045         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
2046         provide navigation capabilities for entries.
2047
2048 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2049             Ed Schonberg  <schonberg@adacore.com>
2050             Javier Miranda  <miranda@adacore.com>
2051             Gary Dismukes  <dismukes@adacore.com>
2052
2053         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
2054         inherited from an interface ancestor by another interface in the
2055         context of an instance as 'late'.
2056         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
2057         of a call to a function that dispatches on access result.
2058         (Check_Dispatching_Operation): In case of late overriding of a primitive
2059         that covers abstract interface subprograms we register it in all the
2060         secondary dispatch tables associated with abstract interfaces.
2061         (Check_Dispatching_Call): Add check that a dispatching call is not made
2062         to a function with a controlling result of a limited type. This is a
2063         current implementation restriction.
2064         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
2065         (Check_Dispatching_Operation): Do no emit a warning if the controlling
2066         argument is an interface type that is a generic formal.
2067         (Is_Interface_Subprogram): Removed.
2068         (Check_Dispatching_Operation): If the subprogram is not a dispatching
2069         operation, check the formals to handle the case in which it is
2070         associated with an abstract interface type.
2071
2072 2006-10-31  Robert Dewar  <dewar@adacore.com>
2073             Ed Schonberg  <schonberg@adacore.com>
2074
2075         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
2076         Add new calls to this procedure during traversal
2077         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
2078         another unit if expansion is disabled.
2079
2080 2006-10-31  Robert Dewar  <dewar@adacore.com>
2081
2082         * sem_eval.adb (Compile_Time_Compare): Make use of information from
2083         Current_Value in the conditional case, to evaluate additional
2084         comparisons at compile time.
2085
2086 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2087             Hristian Kirtchev  <kirtchev@adacore.com>
2088             Javier Miranda  <miranda@adacore.com>
2089
2090         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
2091         subprogram type to provide better diagnostics in case of ambiguity.
2092         (Covers): Handle coverage of formal and actual anonymous access types in
2093         the context of generic instantiation.
2094         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
2095         abstract interface types; this is required to handle concurrent types
2096         with discriminants and abstract interface types.
2097         (Covers): Include type coverage of both regular incomplete subtypes and
2098         incomplete subtypes of incomplete type visibles through a limited with
2099         clause.
2100
2101 2006-10-31  Robert Dewar  <dewar@adacore.com>
2102             Hristian Kirtchev  <kirtchev@adacore.com>
2103             Ed Schonberg  <schonberg@adacore.com>
2104         
2105         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
2106         messages for entities in packages which are not used.
2107         (Collect_Synchronized_Interfaces): New procedure.
2108         (Overrides_Synchronized_Primitive): New function.
2109         (Denotes_Discriminant): Extend predicate to apply to task types.
2110         Add missing continuation marks in error msgs
2111         (Unqualify): New function for removing zero or more levels of
2112         qualification from an expression. There are numerous places where this
2113         ought to be used, but we currently only deal properly with zero or one
2114         level.
2115         (In_Instance); The analysis of the actuals in the instantiation of a
2116         child unit is not within an instantiation, even though the parent
2117         instance is on the scope stack.
2118         (Safe_To_Capture_Value): Exclude the case of variables that are
2119         renamings.
2120         (Check_Obsolescent): Removed
2121         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
2122         is an aliased view, even when rewritten as a reference to the target
2123         object in an assignment.
2124         (Get_Subprogram_Entity): New function
2125         (Known_To_Be_Assigned): New function
2126         (Type_Access_Level): Compute properly the access level of a return
2127         subtype that is an anonymous access type.
2128         (Explain_Limited_Type): Correct use of "\" for continuation messages.
2129         (Is_Transfer): The new extended_return_statement causes a transfer of
2130         control.
2131         (Has_Preelaborable_Initialization): New function
2132         (Has_Null_Exclusion): New function. Given a node N, determine whether it
2133         has a null exclusion depending on its Nkind.
2134         Change Is_Lvalue to May_Be_Lvalue
2135         (May_Be_Lvalue): Extensive additional code to deal with subprogram
2136         arguments (IN parameters are not Lvalues, IN OUT parameters are).
2137         (Safe_To_Capture_Value): Extend functionality so it can be used for
2138         the current value condition case.
2139         (Has_Compatible_Alignment): New function
2140         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
2141         objects to handle the Ada 2005 case, where aliasedness no longer implies
2142         that the object is constrained. In particular, for dereferenced names,
2143         the designated object must be assumed to be unconstrained.
2144         (Kill_Current_Values): Properly deal with the case where we encounter
2145         a loop in the scope chain.
2146         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
2147         a value.
2148         (Compile_Time_Constraint_Error): Improve error message in error case
2149
2150         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
2151         associated with entities of abstract interface primitives.
2152         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
2153
2154 2006-10-31  Robert Dewar  <dewar@adacore.com>
2155
2156         * s-osinte-tru64.adb: 
2157         Mark Asm statements Volatile to prevent warnings (seems a
2158         reasonable change anyway)
2159         Fixes new warnings
2160
2161         * s-mastop-irix.adb: Add Volatile to Asm statements
2162         Suppresses warning, and seems appropriate in any case
2163
2164         * s-osinte-vms.adb: Add Volatile to Asm statement
2165
2166         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
2167
2168         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
2169         returned.
2170         Add call to Check_Code_Statement
2171
2172 2006-10-31  Robert Dewar  <dewar@adacore.com>
2173             Ed Schonberg  <schonberg@adacore.com>
2174             Bob Duff  <duff@adacore.com>
2175
2176         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
2177         Synchronized_Present): Add Formal_Derived_Type_Definition and
2178         Private_Extension_Declaration to the list of assertions.
2179         (Is_Entry_Barrier_Function): New flag
2180         (Has_Self_Reference): New flag on aggregates, to indicate that they
2181         contain a reference to the enclosing type, inserted through a default
2182         initialization.
2183         (Next_Rep_Item): Move from Node4 to Node5.
2184         (Entity): Add this field for N_Attribute_Definition_Clause.
2185         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
2186         (N_Return_Object_Declaration): Remove this node kind. We now use
2187         N_Object_Declaration instead.
2188         (Actual_Designated_Subtype): Move to a different place to make room in
2189         N_Extended_Return_Statement.
2190         (Procedure_To_Call): Move to a different place to make room in
2191         N_Extended_Return_Statement.
2192         (Return_Type): Removed this field to make room in return statements
2193         (both kinds).
2194         (Return_Statement_Entity): New field in return statements, in part to
2195         replace Return_Type, and in part to support the fact that return
2196         statements are now pushed on the scope stack during semantic analysis.
2197         (Return_Object_Declarations): New field to support extended return
2198         statements.
2199         (N_Extended_Return_Statement): New node for extended_return_statement
2200         nonterminal.
2201         (N_Return_Object_Declaration): New node for part of
2202         extended_return_statement nonterminal. Needed because all the necessary
2203         fields won't fit in N_Extended_Return_Statement.
2204         Generic_associations now carry the Box_Present flag, to indicate a
2205         default for an actual in a partially parametrized formal package.
2206
2207         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
2208         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
2209         and for the new predefined dispatching policies: EDF_Across_Priorities,
2210         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
2211         Introduce new name Stub_Type for implementation defined attribute.
2212         Add pragma Preelaborable_Initialization
2213         Add entry for Priority attribute.
2214         Add Pragma_Wide_Character_Encoding
2215         (Get_Convention_Name): Given a convention id, this function returns the
2216         corresponding name id from the names table.
2217
2218 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2219             Robert Dewar  <dewar@adacore.com>
2220             Bob Duff  <duff@adacore.com>
2221
2222         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
2223         print null exclusion twice in the case of an access definition,
2224         Implement new -gnatL switch
2225         Remove N_Return_Object_Declaration. We now use
2226         N_Object_Declaration instead. Implement the case for
2227         N_Extended_Return_Statement. Alphabetize the cases.
2228         Add cases for new nodes N_Extended_Return_Statement and
2229         N_Return_Object_Declaration. The code is not yet written.
2230         Update the output for N_Formal_Object_Declaration
2231         and N_Object_Renaming_Declaration.
2232         (Write_Itype): Account for the case of a modular integer subtype whose
2233         base type is private.
2234
2235 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2236
2237         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
2238         Remove elaboration code, now done in the binder.
2239
2240         * s-rident.ads: Make this unit Preelaborate.
2241         (No_Restrictions): New constant used to clean up code and follow
2242         preelaborate constraints.
2243
2244         * s-stalib.adb: 
2245         Add System.Restrictions dependence, referenced directly from the
2246         binder generated file.
2247
2248 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
2249
2250         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
2251         True when AAMP extended floating-point is in use (48-bit). Change type
2252         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
2253         the two byte array types on AFloat. Change type of IV_Ilf overlay
2254         variable from Byte8 to ByteLF. Add appropriate initializations of
2255         floating-point overlays for AAMP cases.
2256
2257 2006-10-31  Javier Miranda  <miranda@adacore.com>
2258
2259         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
2260         (Get_Ceiling): New subprogram that returns
2261         the ceiling priority of the protected object.
2262         (Set_Ceiling): New subprogram that sets the new ceiling priority of
2263         the protected object.
2264
2265         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
2266
2267         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
2268
2269 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2270
2271         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
2272         requeuing to the same protected object to give higher priority tasks
2273         the opportunity to execute.
2274
2275 2006-10-31  Robert Dewar  <dewar@adacore.com>
2276
2277         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
2278         add more precise check for the character sequence that follows '[' to
2279         avoid possible confusion in case if '[' is the last character of a
2280         string literals.
2281         (Scan_Wide): Always allow brackets encoding
2282
2283 2006-10-31  Olivier Hainque  <hainque@adacore.com>
2284
2285         * s-stchop.ads: make this unit preelaborate. This is desirable in
2286         general and made mandatory by the use of this unit by s-taprop which
2287         is itself preelaborate.
2288
2289         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
2290         Td_Events component.
2291
2292 2006-10-31  Vincent Celier  <celier@adacore.com>
2293
2294         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2295         in file names.
2296
2297 2006-10-31  Vincent Celier  <celier@adacore.com>
2298
2299         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2300
2301 2006-10-31  Vincent Celier  <celier@adacore.com>
2302
2303         * makegpr.adb (Check_Compilation_Needed): Take into account path names
2304         with spaces.
2305         (Check_Compilation_Needed): When checking a C or C++ source, do not
2306         resolve symbolic links.
2307         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
2308         When not in verbose mode and Ellipse is True, display "..." for the
2309         first argument with Display set to False.
2310         (Build_Global_Archive): Always set Display True for the first object
2311         file. Call Display_Command with Ellipse set to True.
2312
2313 2006-10-31  Matt Heaney  <heaney@adacore.com>
2314
2315         * a-crbtgo.ads: Commented each subprogram
2316
2317         * a-crbtgo.adb: Added reference to book from which algorithms were
2318         adapted.
2319
2320         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
2321         indicate which child.
2322         (Generic_Conditional_Insert): changed parameter name from "Success" to
2323         "Inserted".
2324         (Generic_Unconditional_Insert_With_Hint): improved algorithm
2325
2326         * a-coorse.adb (Replace_Element): changed parameter name in call to
2327         conditional insert operation.
2328
2329         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
2330
2331         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
2332         Generic_Iteration
2333
2334         * a-ciorse.adb (Replace_Element): changed parameter name in call to
2335         conditional insert operation.
2336
2337         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
2338         Generic_Iteration.
2339
2340         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
2341         instead of mode inout.
2342
2343         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
2344         draft
2345         (Generic_Read): preserve existing buckets array if possible
2346         (Generic_Write): don't send buckets array length anymore
2347
2348         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
2349         instead of mode inout.
2350
2351         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
2352         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2353
2354         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
2355         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2356         (Replace_Element): local operation is now an instantiation
2357
2358         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
2359         check current length.
2360         (Generic_Replace_Element): new operation
2361
2362 2006-10-31  Doug Rupp  <rupp@adacore.com>
2363
2364         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2365         Call TBK$SYMBOLIZE without omitting parameters.
2366
2367 2006-10-31  Vincent Celier  <celier@adacore.com>
2368
2369         * symbols-processing-vms-ia64.adb,
2370         symbols-processing-vms-alpha.adb (Process): Do not include symbols
2371         that come from generic instantiations in bodies.
2372
2373 2006-10-31  Pat Rogers  <rogers@adacore.com>
2374
2375         * a-rttiev.ads, a-rttiev.adb: 
2376         This is a significant redesign primarily for the sake of automatic
2377         timer task termination but also to fix a design flaw.
2378         Therefore we are now using an RTS lock, instead of a protected
2379         object, to provide mutual exclusion to the queue of pending events
2380         and the type Timing_Event is no longer a protected type.
2381
2382 2006-10-31  Robert Dewar  <dewar@adacore.com>
2383             Cyrille Comar  <comar@adacore.com>
2384             Ben Brosgol  <brosgol@adacore.com>
2385
2386         * debug.adb:  Update flags documentation
2387
2388         * gnat_ugn.texi: Add documentation for new -gnatwq switch
2389         Clean up documentation for several other warning switches
2390         Clarify how task stack size can be specified with various
2391         versions of Windows.
2392         Add note that -gnatVo includes ranges including loops
2393         Add documentation for -gnatL switch
2394         Add note on elaboration warning for initializing variables
2395         Add documentation for new -gnatwt warning switch
2396         Document new form of pragma Warnings (On|Off, string)
2397         Add comment on use of pragma Warnings to control warnings
2398         Add documentation for -gnatjnn switch
2399         Modify section on interfacing with C for VMS 64-bit.
2400         Add doc for -gnatVe/E
2401         Add documentation of new warning flags -gnatww/-gnatwW
2402         Add warnings about address clause overlays to list of warnings
2403         (Exception Handling Control): Document that the option --RTS must be
2404         used consistently for gcc and gnatbind.
2405         Clarify that inlining is not always possible
2406         Update documentation on pragma Unchecked_Union.
2407
2408         * gnat_rm.texi: 
2409         Add documentation for new extended version of pragma Obsolescent
2410         Add documentation for implementation defined attribute 'Stub_Type.
2411         Add note on use of Volatile in asm statements
2412         Add documentation on use of pragma Unreferenced in context clause
2413         Document new form of pragma Warnings (On|Off, pattern)
2414         Document pragma Wide_Character_Encoding
2415         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
2416         enforced if code generation is active.
2417         Add section on pragma Suppress to document GNAT specific check
2418         Alignment_Check
2419         Clarify difference between No_Dispatching_Calls & No_Dispatch.
2420         Add documentation for pragma Restrictions (No_Elaboration_Code)
2421
2422         * gnat-style.texi: 
2423         Add comments on layout of subprogram local variables in the
2424         presence of nested subprograms.
2425
2426         * ug_words: Resync.
2427
2428         * elists.ads: Minor reformatting
2429         Node returns Node_Or_Entity_Id (doc change only)
2430
2431         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
2432
2433         * g-arrspl.ads (Create): Update comments.
2434
2435         * sem.ads: Add details on the handling of the scope stack.
2436
2437         * usage.adb: Update documentation.
2438
2439         * validsw.ads, validsw.adb: 
2440         Add definition of Validity_Check_Components and implement -gnatVe/E
2441
2442         * vms_data.ads: Add missing VMS qualifiers.
2443
2444         * s-addope.ads: Add documentation on overflow and divide by zero
2445
2446 2006-10-31  Robert Dewar  <dewar@adacore.com>
2447             Thomas Quinot  <quinot@adacore.com>
2448             Arnaud Charlet  <charlet@adacore.com>
2449
2450         * fmap.adb: Put routines in alpha order
2451
2452         * g-boumai.ads: Remove redundant 'in' keywords
2453
2454         * g-cgi.adb: Minor reformatting
2455
2456         * g-cgi.ads: Remove redundant 'in' keywords
2457
2458         * get_targ.adb: Put routines in alpha order
2459
2460         * prj-attr.ads: Minor reformatting
2461
2462         * s-atacco.ads: Minor reformatting
2463
2464         * scn.adb: Put routines in alpha order
2465
2466         * sinput-l.adb: Minor comment fix
2467
2468         * sinput-p.adb: Minor comment fix
2469
2470         * s-maccod.ads: Minor reformatting
2471
2472         * s-memory.adb: Minor reformatting
2473
2474         * s-htable.adb: Fix typo in comment.
2475
2476         * s-secsta.adb: Minor comment update.
2477
2478         * s-soflin.adb: Minor reformatting
2479
2480         * s-stoele.ads: 
2481         Add comment about odd qualification in Storage_Offset declaration
2482
2483         * s-strxdr.adb: 
2484         Remove unnecessary 'in' keywords for formal parameters.
2485
2486         * treeprs.adt: Minor reformatting
2487
2488         * urealp.adb: Put routines in alpha order
2489
2490         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
2491         taking string.
2492
2493         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2494
2495         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
2496
2497         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
2498         workaround as on other platforms.
2499
2500         * g-eacodu-vms.adb: Remove redundant 'in' keywords
2501         * g-expect-vms.adb: Remove redundant 'in' keywords
2502
2503         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
2504         clear error message if the list-of-files file cannot be opened.
2505
2506         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
2507         equality operator is always visible.
2508
2509         * lang.opt: Woverlength-strings: New option.
2510
2511         * nmake.adt: 
2512         Update copyright, since nmake.ads and nmake.adb have changed.
2513
2514         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
2515         (Binder_Output_Time_Stamps_Set): removed.
2516         (Old_Binder_Output_Time_Stamp): idem.
2517         (New_Binder_Output_Time_Stamp): idem.
2518         (Recording_Time_From_Last_Bind): idem.
2519         (Recording_Time_From_Last_Bind): Make constant.
2520
2521         * output.ads, output.adb (Write_Str): Allow LF characters
2522         (Write_Spaces): New procedure
2523
2524         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
2525
2526         * inline.adb: Minor reformatting
2527
2528         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2529
2530         * s-mastop-vms.adb: Remove redundant 'in' keywords
2531
2532         * s-osprim-vms.adb: Remove redundant 'in' keywords
2533
2534         * s-trafor-default.adb: Remove redundant 'in' keywords
2535
2536         * 9drpc.adb: Remove redundant 'in' keywords
2537
2538         * s-osinte-mingw.ads: Minor reformatting
2539
2540         * s-inmaop-posix.adb: Minor reformatting
2541
2542         * a-direio.ads: Remove quotes from Compile_Time_Warning message
2543
2544         * a-exexda.adb: Minor code reorganization
2545
2546         * a-filico.adb: Minor reformatting
2547
2548         * a-finali.adb: Minor reformatting
2549
2550         * a-nudira.ads: Remove quote from Compile_Time_Warning message
2551
2552         * a-numeri.ads: Minor reformatting
2553
2554         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
2555
2556         * exp_pakd.ads: Fix obsolete comment
2557
2558         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
2559         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
2560         Probably not a bug, but certainly neater and more efficient.
2561
2562         * a-tienio.adb: Minor reformatting
2563
2564         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
2565         Avoid assuming low bound of string is 1.
2566
2567         * gnatbind.adb: Change Bindusg to package and rename procedure as
2568         Display, which now ensures that it only outputs usage information once.
2569         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
2570
2571         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
2572         Table'First.
2573
2574         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
2575         warning.
2576         (Match): Add pragma Assert to ensure that Matches'First is zero
2577
2578         * g-regpat.ads (Match): Document that Matches lower bound must be zero
2579
2580         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
2581         documented preconditions (also kills warnings about bad indexes).
2582
2583         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
2584         is 1.
2585         (Build_Import_Library): Ditto;
2586
2587         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
2588
2589         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
2590
2591         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
2592         lower bound of choice table is 1.
2593
2594         * sem_case.ads (Analyze_Choices): Document that lower bound of
2595         Choice_Table is 1.
2596
2597         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
2598         string is 1.
2599
2600         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
2601         and add appropriate Assert pragma to suppress warnings.
2602
2603         * atree.h, atree.ads, atree.adb
2604         Change Elist24 to Elist25
2605         Add definitions of Field28 and Node28
2606         (Traverse_Field): Use new syntactic parent table in sinfo.
2607
2608         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2609
2610         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2611
2612         * exp_tss.adb: Put routines in alpha order
2613
2614         * fe.h: Remove redundant declarations.
2615
2616 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
2617         * utils.c (builtin_function): Rename to gnat_builtin_function.
2618         Move common code to add_builtin_function.
2619         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2620         gnat_builtin_function.
2621         * gigi.h (builtin_function): Rename to gnat_builtin_function.
2622         Change the signature.
2623
2624 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2625
2626         * Makefile.in: Add TEXI2PDF definition.
2627         * Make-lang.in: Add "ada.pdf" target.
2628
2629 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2630
2631         * decl.c, utils.c: Fix comment typos.
2632         * utils.c: Fix a typo.
2633
2634 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2635
2636         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
2637         on "pure" Ada subprograms if SJLJ exceptions are used.
2638         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
2639         on the declaration node of JMPBUF_SAVE.
2640         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
2641         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
2642         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
2643
2644 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
2645
2646         PR ada/28716
2647         g-socket.adb (Bind_Socket): Call Set_Address.
2648
2649 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2650
2651         PR ada/15802
2652         * decl.c (same_discriminant_p): New static function.
2653         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
2654         subtype and we have discriminants, fix up the COMPONENT_REFs
2655         for the discriminants to make them reference the corresponding
2656         fields of the parent subtype after it has been built.
2657
2658 2006-09-15  Roger Sayle  <roger@eyesopen.com>
2659
2660         PR ada/18817
2661         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
2662         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
2663
2664 2006-09-13  Olivier Hainque  <hainque@adacore.com>
2665
2666         PR ada/29025
2667         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
2668         of a SAVE_EXPR, just make the operand addressable/not-readonly and
2669         let the common gimplifier code make and propagate a temporary copy.
2670         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
2671         out/in-out actuals and defer setting the addressable/readonly bits
2672         to the gimplifier.
2673
2674 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2675
2676         PR ada/28591
2677         * decl.c (components_to_record): Defer emitting debug info for the
2678         record type associated with the variant until after we are sure to
2679         actually use it.
2680
2681 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2682
2683         PR ada/21952
2684         * gigi.h (gnat_internal_attribute_table): Declare.
2685         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
2686         * utils.c (gnat_internal_attribute_table): New global variable.
2687         (builtin_function): Always call decl_attributes on the builtin.
2688         (handle_const_attribute): New static function.
2689         (handle_nothrow_attribute): Likewise.
2690
2691 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2692
2693         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2694
2695 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2696
2697         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
2698         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
2699
2700 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
2701             Eric Botcazou  <ebotcazou@adacore.com>
2702
2703         PR ada/18692
2704         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2705         check-gnat into check-acats.
2706
2707 2006-06-17  Karl Berry  <karl@gnu.org>
2708
2709         * gnat-style.texi (@dircategory): Use "Software development"
2710         instead of "Programming", following the Free Software Directory.
2711
2712 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2713
2714         PR ada/27944
2715         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2716
2717 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
2718
2719         PR ada/27769
2720         mlib-utl.adb: Use Program_Name.
2721         
2722 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2723
2724         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
2725         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
2726         trans.c, utils.c: Fix comment typos.  Follow spelling
2727         conventions.
2728         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
2729         conventions.
2730
2731 2006-05-19  Nicolas Setton  <setton@adacore.com>
2732
2733         * misc.c (gnat_dwarf_name): New function.
2734         (LANG_HOOKS_DWARF_NAME): Define to it.
2735
2736 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2737
2738         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
2739         (ada/misc.o): Likewise.
2740         (ada/utils.o): Likewise.
2741
2742 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
2743
2744         * Makefile.in: Add Ada support for GNU/kFreeBSD.
2745         * s-osinte-kfreebsd-gnu.ads: New file.
2746
2747 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2748
2749         * Make-lang.in: Rename docdir to gcc_docdir.
2750
2751 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2752
2753         * gigi.h (get_ada_base_type): Delete.
2754         * utils2.c (get_ada_base_type): Likewise.
2755         * trans.c (convert_with_check): Operate in the real base type.
2756
2757 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2758
2759         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2760
2761 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2762
2763         * utils.c (create_var_decl): Use have_global_bss_p when deciding
2764         whether to make the decl common.
2765
2766 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2767
2768         * Make-lang.in (Ada): Remove
2769         (.PHONY): Remove Ada
2770
2771 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2772
2773         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
2774         aggregate, check the interpretations of the other operand to find one
2775         that may be a boolean array.
2776
2777         (Analyze_Selected_Component): Fix flow-of-control typo in case where
2778         the prefix is a private extension.
2779
2780 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
2781
2782         PR ada/26315
2783
2784         * utils2.c (find_common_type): If both input types are BLKmode and
2785         have the same constant size, keep using the first one.
2786
2787         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
2788
2789         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
2790
2791         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
2792
2793 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
2794
2795         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
2796         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2797         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
2798         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
2799         Abort_Defer/Undefer pairs to avoid the possibility of a task being
2800         aborted while owning a lock.
2801
2802 2006-02-17  Javier Miranda  <miranda@adacore.com>
2803             Robert Dewar  <dewar@adacore.com>
2804
2805         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
2806         through an access to class-wide interface we force the displacement of
2807         the pointer to the allocated object to reference the corresponding
2808         secondary dispatch table.
2809         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
2810         if Long_Shifts are supported on the target, even if 64 bit divides
2811         are not supported (configurable run time mode).
2812         (Expand_N_Type_Conversion): Do validity check if validity checks on
2813         operands are enabled.
2814         (Expand_N_Qualified_Expression): Do validity check if validity checks
2815         on operands are enabled.
2816
2817 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2818
2819         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
2820         must be materialized when the renamed expression is an explicit
2821         dereference.
2822
2823 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2824
2825         * freeze.adb (Statically_Discriminated_Components): Return false if
2826         the bounds of the type of the discriminant are not static expressions.
2827
2828         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
2829         the bounds of the discriminant type are not static.
2830
2831 2006-02-17  Robert Dewar  <dewar@adacore.com>
2832
2833         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
2834         then we close To if it is valid.
2835
2836 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2837
2838         * init.c (facility_resignal_table): new array
2839         (__gnat_default_resignal_p): enhance default predicate to resignal if
2840         VMS condition has one of the predefined facility codes.
2841
2842 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2843
2844         * Makefile.in: Use VMS64 specialized versions of several units in
2845         Interfaces.C hierarchy to be compatible with HP C default size choices.
2846         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
2847
2848 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2849
2850         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
2851         instantiation, the corresponding entity is the related_instance of the
2852         wrapper package created for the instance.
2853
2854 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2855
2856         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
2857         the current instance is nested within another instance in a child unit.
2858
2859 2006-02-17  Javier Miranda  <miranda@adacore.com>
2860             Ed Schonberg  <schonberg@adacore.com>
2861
2862         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
2863         type we cannot inherit the primitive operations; we inherit the
2864         Corresponding_Record_Type (which has the list of primitive operations).
2865         (Check_Anonymous_Access_Types): When creating anonymous access types for
2866         access components, use Rewrite in order to preserve the tree structure,
2867         for ASIS use.
2868         (Analyze_Object_Declaration): For limited types with access
2869         discriminants with defaults initialized by an aggregate, obtain
2870         subtype from aggregate as for other mutable types.
2871         (Derived_Type_Declaration): If the derived type is a limited interface,
2872         set the corresponding flag (Is_Limited_Record is not sufficient).
2873
2874 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2875
2876         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
2877         to inline a function that returns an unconstrained type, the return
2878         expression must be the first variable declared in the body of the
2879         function.
2880
2881 2006-02-17  Javier Miranda  <miranda@adacore.com>
2882
2883         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
2884         abstract interface type, the static analysis is not enough to know if
2885         the interface is implemented or not by the source tagged type. Hence
2886         we must pass the work to the expander to generate the required code to
2887         evaluate the conversion at run-time.
2888         (Resolve_Equality_Op): Do not apply previous
2889         transformation if expansion is disasbled, to prevent anomalies when
2890         locating global references in a generic unit.
2891
2892 2006-02-17  Vincent Celier  <celier@adacore.com>
2893
2894         * snames.ads, snames.adb: New standard names for new project attributes:
2895         archive_builder, archive_indexer, compiler_pic_option,
2896         config_body_file_name, config_body_file_name_pattern,
2897         config_file_switches, config_file_unique, config_spec_file_name,
2898         config_spec_file_name_pattern, default_builder_switches,
2899         default_global_compiler_switches, default_language,
2900         dependency_file_kind, global_compiler_switches, include_path,
2901         include_path_file, language_kind, linker_executable_option,
2902         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
2903         roots, runtime_project.
2904
2905 2006-02-17  Matthew Heaney  <heaney@adacore.com>
2906
2907         * a-convec.ads, a-convec.adb: 
2908         (operator "&"): handle potential overflow for large index types
2909         (Insert): removed Contraint_Error when using large index types
2910         (Insert_Space): removed Constraint_Error for large index types
2911         (Length): moved constraint check from Length to Insert
2912
2913         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
2914         as not null access.
2915         Explicit raise statements now include an exception message.
2916         (operator "&"): handle potential overflow for large index types
2917         (Insert): removed Contraint_Error when using large index types
2918         (Insert_Space): removed Constraint_Error for large index types
2919         (Length): moved constraint check from Length to Insert
2920
2921 2006-02-17  Robert Dewar  <dewar@adacore.com>
2922
2923         * s-wchcnv.adb: Document handling of [ on output (we do not change
2924         this to ["5B"] and the new comments say why not.
2925
2926         * gnat_ugn.texi: 
2927         Add note for -gnatVo that this now includes the cases of type
2928         conversions and qualified expressions.
2929         Add comments on handling of brackets encoding for Text_IO
2930
2931 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
2932             Thomas Quinot  <quinot@adacore.com>
2933             Robert Dewar  <dewar@adacore.com>
2934             Javier Miranda  <miranda@adacore.com>
2935
2936         * expander.adb: Fix typo in comment
2937
2938         * exp_pakd.adb: Fix typo
2939         Minor comment reformatting.
2940
2941         * g-dyntab.adb: Minor reformatting
2942
2943         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
2944         aliased subprograms to look for the abstract interface subprogram.
2945
2946 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2947
2948         * env.c (__gnat_setenv): Use size_t.
2949         (__gnat_unsetenv): Likewise.
2950         (__gnat_clearenv): Likewise.
2951
2952 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
2953
2954         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2955
2956 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
2957
2958         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
2959         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
2960         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
2961         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
2962         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
2963         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
2964         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
2965         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
2966         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
2967         no longer used.
2968
2969 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
2970
2971         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
2972         protection against race conditions is not needed.
2973         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
2974         fallback handler.
2975         (Set_Specific_Handler): Add mutual exclusive access to the specific
2976         handler.
2977         (Specific_Handler): Add mutual exclusive access for retrieving the
2978         specific handler.
2979
2980         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
2981         back handler.
2982
2983         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
2984         Fall_Back_Handler and Specific_Handler.
2985
2986         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
2987         termination handlers.
2988         Set two different owerflow depending on the maximal stack size.
2989
2990         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
2991         protection against race conditions is not needed when executing the
2992         task termination handler.
2993
2994 2006-02-13  Robert Dewar  <dewar@adacore.com>
2995
2996         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
2997         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
2998         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
2999         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
3000         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
3001         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
3002         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
3003         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
3004         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
3005         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
3006         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
3007         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
3008         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
3009         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
3010         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
3011         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
3012         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
3013         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
3014         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
3015         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
3016         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
3017         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
3018         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
3019         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
3020         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
3021         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
3022         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
3023         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
3024         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
3025         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
3026         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
3027         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
3028         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
3029         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
3030         reformatting.
3031
3032 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3033
3034         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
3035         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
3036         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
3037         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
3038         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
3039         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
3040         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
3041         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
3042         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
3043
3044 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3045
3046         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
3047         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
3048         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
3049         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
3050         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
3051         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
3052         replaced by anonymous access type.
3053         (pthread_sigmask): Now take an access sigset_t
3054
3055         * s-osinte-hpux.ads:  Ditto.
3056         (pthread_mutex_t, pthread_cond_t): Update definitions to support
3057         properly 32 and 64 bit ABIs.
3058
3059 2006-02-13  Pascal Obry  <obry@adacore.com>
3060
3061         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
3062         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
3063         s-taprop-linux.adb, s-taprop-solaris.adb,
3064         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
3065         adjustement is already done when calling this routine.
3066
3067 2006-02-13  Pascal Obry  <obry@adacore.com>
3068
3069         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
3070         table to take advantage of the 16 priority levels available on Windows
3071         2000 and XP. On NT4 there are only 7 priority levels, this is properly
3072         supported by this new mapping.
3073
3074 2006-02-13  Nicolas Setton  <setton@adacore.com>
3075
3076         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
3077         (get_encoding): New subprogram. Extracts the encodings from an encoded
3078         Ada name.
3079
3080 2006-02-13  Pascal Obry  <obry@adacore.com>
3081             Nicolas Roche  <roche@adacore.com>
3082             Arnaud Charlet  <charlet@adacore.com>
3083
3084         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
3085         support.
3086         (__gnat_try_lock): Add unicode support by using a specific section on
3087         Windows.
3088         (__gnat_get_current_dir): Idem.
3089         (__gnat_open_read): Idem.
3090         (__gnat_open_rw): Idem.
3091         (__gnat_open_create): Idem.
3092         (__gnat_create_output_file): Idem.
3093         (__gnat_open_append): Idem.
3094         (__gnat_open_new): Idem.
3095         (__gnat_file_time_name): Idem.
3096         (__gnat_set_file_time_name): Idem.
3097         (__gnat_stat): Idem.
3098         (win32_no_block_spawn): Idem.
3099         (__gnat_locate_exec_on_path): Idem.
3100         (__gnat_opendir): New routine.
3101         (__gnat_closedir): Idem.
3102         (__gnat_readdir): Add new parameter length (pointer to int). Update
3103         implementation to use it and add specific Win32 code for Unicode
3104         support.
3105         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
3106         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
3107         (convert_addresses): Do not define this dummy routine on VMS.
3108
3109         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
3110         runtime Unicode support will be activated.
3111         (S2WS): String to Wide-String conversion. This version just copy a
3112         string in non Unicode version.
3113         (WS2S): Wide-String to String conversion. This version just copy a
3114         string in non Unicode version.
3115
3116         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
3117         (Open): Now import __gnat_opendir from adaint.c.
3118         (Read): Change the implementation to support unicode characters. It is
3119         not possible to use strlen() on Windows as this version supports only
3120         standard ASCII characters. So the length of the directory entry is now
3121         returned from the imported __gnat_readdir routine.
3122         Update copyright notice.
3123
3124         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
3125         (opendir): Moved to adaint.c.
3126
3127         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
3128         (Get_Directory): Fix wrong indexing.
3129         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
3130         __gnat_getenv from env.c
3131         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
3132         from env.c
3133
3134         * env.h, env.c: New file.
3135
3136         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
3137         adaint.c by __gnat_getenv from env.c
3138
3139         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
3140         adaint.c by __gnat_getenv from env.c
3141
3142         * Make-lang.in: Add env.o in the list of C object needed by gnat1
3143         and gnatbind.
3144         Update dependencies.
3145
3146 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3147             Olivier Hainque  <hainque@adacore.com>
3148             Eric Botcazou  <ebotcazou@adacore.com>
3149
3150         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
3151         
3152         * gigi.h (value_factor_p): Add prototype and description, now public.
3153
3154         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
3155         promotion for field with rep clause if the associated size was proven
3156         to be in error.
3157         Expand comments describing attempts to use a packable type.
3158         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
3159         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
3160         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
3161         necessary since these are not different types and pointers may
3162         actually designate any subtype in this hierarchy.
3163         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
3164         discriminants but put them into record only if not Unchecked_Union;
3165         pass flag to components_to_record showing Unchecked_Union.
3166         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
3167         components before variants; don't set TYPE_UNCHECKED_UNION_P.
3168         (components_to_record): New argument UNCHECKED_UNION.
3169         Remove special case code for Unchecked_Union and instead use main code
3170         with small changes.
3171
3172         PR ada/26096
3173         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
3174         aligning variable with the expression being built, only its inner
3175         field.
3176
3177         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
3178         emit_sequence_entry_statements.
3179         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
3180         (establish_gnat_vms_condition_handler): Move before
3181         Subprogram_Body_to_gnu.
3182         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
3183         for a subprogram if it has a foreign convention or is exported.
3184         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
3185         substituted for a CONST_DECL.
3186         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
3187         Etype to assoc_to_constructor.
3188         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
3189         discriminants of Unchecked_Union.
3190         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses