OSDN Git Service

2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
2
3         * socket.c: Add extern int h_errno for rtems since networking header
4         files are not available at this point in a tool bootstrap. Newlib
5         only has basic C library header files.
6
7 2005-11-19  Richard Guenther  <rguenther@suse.de>
8         Roger Sayle  <roger@eyesopen.com>
9
10         PR ada/23717
11         * misc.c (internal_error_function): Don't use vsprintf to format
12         the error message text, instead use pp_format_text and the new
13         pretty printer APIs.  This allows handling of %qs, %w, etc.
14
15 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
16
17         PR ada/24857
18         * Makefile.in: Use s-auxdec-empty for RTEMS.
19
20 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21
22         PR ada/22333
23         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
24         a temporary if taking the address of something that is neither
25         reference, declaration, or constant, since the gimplifier
26         can't handle that case.
27
28 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
29
30         PR ada/24857
31         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
32         
33 2005-11-16  Richard Guenther  <rguenther@suse.de>
34
35         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
36
37 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
38
39         PR ada/24855
40         * raise-gcc.c: Add missing stdarg.h include.
41  
42 2005-11-16  Richard Guenther  <rguenther@suse.de>
43
44         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
45         (ada/misc.o): Likewise.
46
47 2005-11-14  Thomas Quinot  <quinot@adacore.com>
48
49         * g-soccon.ads: Minor reformatting. Update comments.
50
51         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
52         gain visibility on the declaration of struct timeval.
53
54         * g-soccon-freebsd.ads,
55         g-soccon-darwin.ads,
56         g-soccon-tru64.ads,
57         g-soccon-aix.ads,
58         g-soccon-irix.ads,
59         g-soccon-hpux.ads,
60         g-soccon-solaris.ads,
61         g-soccon-vms.ads,
62         g-soccon-mingw.ads,
63         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
64
65         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
66         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
67         g-soccon-linux-x86.ads: New files.
68
69         * g-socthi-mingw.adb: 
70         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
71
72         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
73         (time_t, suseconds_t): New types constructed to match the tv_sec
74         and tv_usec fields of C struct timeval.
75         (Timeval): Construct structure in terms of the new types.
76         (Host_Errno): New function (imported from socket.c), returns last hosts
77         database error.
78
79         * g-socthi-vxworks.adb:  Add error handling circuitry.
80
81         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
82         components of struct timeval.
83         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
84         (Check_Selector): In error conditions, clear internal socket sets to
85         avoid a memory leak.
86         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
87         Send_Timeout, Receive_Timeout.
88
89         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
90         the tv_sec and tv_usec fields of C struct timeval.
91         (Timeval): Construct structure in terms of the new types.
92         (Host_Errno): New function (imported from socket.c), returns last hosts
93         database error.
94
95         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
96         hosts database last error code.
97
98         * gen-soccon.c: Complete value expansion should not be performed on
99         TARGET, as it has the form of a math expression, and some components
100         may be platform-defined macros.
101         For VxWorks, generate the OK and ERROR values.
102         New constants giving the sizes of the components of C struct timeval.
103
104 2005-11-14  Robert Dewar  <dewar@adacore.com>
105             Ed Schonberg  <schonberg@adacore.com>
106
107         PR ada/18434
108
109         * types.ads: Include All_Checks in Suppress_Array
110
111         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
112         not(a=b), since we no longer do this rewriting, and hence it is not
113         needed.
114         (Elaboration_Checks_Suppressed): Add special casing to
115         deal with different cases of static and dynamic elaboration checks (all
116         checks does not count in the first case, but does in the second).
117         (Expr_Known_Valid): Do not assume that the result of any arbitrary
118         function call is valid, since this is not the case.
119         (Ensure_Valid): Do not apply validity check to a real literal
120         in a universal or fixed context
121
122         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
123         elementary types using the operator in standard. It is cleaner not to
124         modify the programmers intent, especially in the case of floating-point.
125         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
126         it did not matter because we always rewrote a/=b to not(a=b).
127         (Expand_Allocator_Expression): For an allocator expression whose nominal
128         subtype is an unconstrained packed type, convert the expression to its
129         actual constrained subtype.
130         Implement warning for <= or >= where < or > not possible
131         Fix to Vax_Float tests (too early in many routines, causing premature
132         Vax_Float expansions.
133
134         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
135         to be used with packages and generic packages as well as with
136         subprograms.
137         (Suppress): Set All_Checks, but not Elaboration_Check, for case
138         of pragma Suppress (All_Checks)
139         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
140         a string literal for precise control over warnings.
141         Avoid raise of pragma in case of unrecognized pragma and just return
142         instead.
143
144         * sem_prag.ads: Minor reformatting
145
146         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
147         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
148         Switch. Do not handle any exception.
149         Include -gnatwx as part of -gnatg (warn on redundant parens)
150         Allow optional = after -gnatm
151         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
152         longer sets Elaboration_Checks.
153         Code to set warning mode moved to Sem_Warn
154         so that it can be shared by pragma processing.
155
156         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
157         statement.
158
159         * s-taprop-solaris.adb: 
160         Change some <= to =, to avoid new warning
161
162         * a-exexda.adb, prj-proc.adb: 
163         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
164         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
165
166 2005-11-14  Robert Dewar  <dewar@adacore.com>
167
168         * exp_vfpt.adb: Handle /= case
169         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
170         so that we do not get duplicate scaling for fixed point conversions.
171
172         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
173
174 2005-11-14  Matthew Gingell  <gingell@adacore.com>
175
176         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
177         Increase default priority on Lynx from 15 to 17, and meet the Ada
178         requirement that Default_Priority be ((Priority'First +
179         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
180
181 2005-11-14  Vincent Celier  <celier@adacore.com>
182
183         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
184         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
185         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
186         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
187         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
188         mlib-tgt-lynxos.adb (DLL_Prefix): New function
189
190 2005-11-14  Doug Rupp  <rupp@adacore.com>
191
192         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
193         private part.
194
195 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
196
197         * s-traces-default.adb, s-trafor-default.ads,
198         s-tratas-default.adb: Fix compilation errors.
199
200 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
201
202         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
203         raising the exception so the memory used is freed.
204
205 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
206
207         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
208         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
209         (convert_address): Update comments and list of platforms using this.
210
211         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
212         no longer used.
213
214 2005-11-14  Pascal Obry  <obry@adacore.com>
215             Vincent Celier  <celier@adacore.com>
216
217         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
218         GNAT.Command_Line.
219
220         * memroot.adb: Remove redundant with/use clause on
221         System.Storage_Elements.
222
223 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
224
225         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
226         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
227         related code to a-exexpr.adb
228         (Save_Occurrence_And_Private): Move GCC EH related code to
229         a-exexpr-gcc.adb
230         (Raise_Current_Excep): Add new variable Id with pragma
231         volatile, to ensure that the variable lives on stack.
232
233         * a-exexpr-gcc.adb, raise-gcc.c: New file.
234
235         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
236         from a-except.adb.
237         Move GCC EH related code to a-exexpr-gcc.adb
238
239         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
240         64-bit Solaris
241         Split the Linux version of g-soccon into separate variants for 32 and 64
242         bit platforms.
243         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
244         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
245         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
246         of host variable $(RANLIB_FLAGS).
247         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
248         Code clean up: remove unused/obsolete targets.
249         (EH_MECHANISM): New variable introduced to differenciate between the
250         two EH mechanisms statically.
251         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
252         (LIBGNAT_OBJS): Add raise-gcc.o
253         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
254         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
255         supports VxWorks 6 RTPs.
256         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
257         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
258
259         * raise.c: Move all GCC EH-related routines to raise-gcc.c
260
261 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
262
263         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
264         deferral level, when abort is not allowed, to a later stage (the
265         Task_Wrapper).
266         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
267         it will not get changed by the generated code. It was previously done
268         in Create_Task.
269
270 2005-11-14  Thomas Quinot  <quinot@adacore.com>
271             Olivier Hainque  <hainque@adacore.com>
272             Eric Botcazou  <ebotcazou@adacore.com>
273
274         * decl.c:
275         Factor common code to build a storage type for an unconstrained object
276         from a fat or thin pointer type and a constrained object type.
277         (annotate_value): Handle BIT_AND_EXPR.
278         (annotate_rep): Don't restrict the back annotation of inherited
279         components to the type_annotate_only case.
280         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
281         we are not defining the type.
282         <E_Record_Type>: Likewise.
283         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
284         to get advantage of the new maybe_stabilize_reference interface, to
285         ensure that what we reference is indeed stabilized instead of relying
286         on assumptions on what the stabilizer does.
287         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
288         type imported through a limited_with clause, use its non-limited view.
289         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
290         differentiation.
291         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
292         of #if sections + explicit comparisons of convention identifiers.
293         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
294         before early-returning for certain types when code generation is
295         disabled.
296         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
297         nullification of gnu_expr we do for objects with address clause and
298         that we are not defining.
299         (elaborate_expression_1): Do not create constants when creating
300         variables needed by the debug info: the dwarf2 writer considers that
301         CONST_DECLs is used only to represent enumeration constants, and emits
302         nothing for them.
303         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
304         object with an address clause into an indirect reference, drop the
305         initializing expression.
306         Include "expr.h".
307         (STACK_CHECK_BUILTIN): Delete.
308         (STACK_CHECK_PROBE_INTERVAL): Likewise.
309         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
310         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
311         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
312         corresponding to the renamed object as ignored for debugging purposes.
313
314         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
315         related): For a prefix that is a dereference of a fat or thin pointer,
316         if there is an actual subtype provided by the front-end, use that
317         subtype to build an actual type with bounds template.
318         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
319         is provided by the front-end, use that subtype to compute the size of
320         the deallocated object.
321         (gnat_to_gnu): When adding a statement into an elaboration procedure,
322         check for a potential violation of a No_Elaboration_Code restriction.
323         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
324         with extra arguments to control whether to recurse through non-values
325         and to let the caller know if the stabilization has succeeded.
326         (gnat_stabilize_reference): Now a simple wrapper around
327         maybe_stabilize, for common uses without restriction on lvalues and
328         without need to check for the success indication.
329         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
330         pass false instead of 0 as the FORCE argument which is a bool.
331         (Identifier_to_gnu): Remove checks ensuring that an renamed object
332         attached to a renaming pointer has been properly stabilized, as no such
333         object is attached otherwise.
334         (call_to_gnu): Invoke create_var_decl to create the temporary when the
335         function uses the "target pointer" return mechanism.
336         Reinstate conversion of the actual to the type of the formal
337         parameter before any other specific treatment based on the passing
338         mechanism. This turns out to be necessary in order for PLACEHOLDER
339         substitution to work properly when the latter type is unconstrained.
340
341         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
342         common pattern.
343         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
344         with extra arguments to control whether to recurse through non-values
345         and to let the caller know if the stabilization has succeeded.
346
347         * utils2.c (gnat_build_constructor): Only sort the fields for possible
348         static output of record constructor if all the components are constant.
349         (gnat_build_constructor): For a record type, sort the list of field
350         initializers in increasing bit position order.
351         Factor common code to build a storage type for an unconstrained object
352         from a fat or thin pointer type and a constrained object type.
353         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
354         types variants, and process special cases of VIEW_CONVERT expressions
355         as their NOP_EXPR counterpart to ensure we get to the
356         CORRESPONDING_VARs associated with CONST_DECls.
357         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
358         on the right-hand side.
359
360         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
361         a common pattern.
362         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
363         are converting back to its original type.
364         (convert) <JM input>: Fallthrough regular conversion code instead of
365         extracting the object if converting to a type variant.
366         (create_var_decl): When a variable has an initializer requiring code
367         generation and we are at the top level, check for a potential violation
368         of a No_Elaboration_Code restriction.
369         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
370         SIZE and SIZE_UNIT which we need for later back-annotations.
371         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
372         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
373         is an unchecked union.
374         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
375         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
376         main variant, just replace the VIEW_CONVERT_EXPR.
377         <UNION_TYPE>: Revert 2005-03-02 change.
378
379         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
380
381         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
382
383 2005-11-14  Matthew Heaney  <heaney@adacore.com>
384
385         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
386         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
387         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
388         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
389         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
390         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
391         Compiles against the spec for ordered maps described in sections
392         A.18.6 of the most recent (August 2005) AI-302 draft.
393
394 2005-11-14  Olivier Hainque  <hainque@adacore.com>
395
396         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
397         to ensure bias adjustments take place when need be and to prevent
398         occurrences of intermediate overflows.
399
400 2005-11-14  Matthew Gingell  <gingell@adacore.com>
401             Olivier Hainque  <hainque@adacore.com>
402
403         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
404         ia64 HP-UX.
405
406         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
407         tracebacks on ia64 HP-UX and provide explanatory comment.
408         Enable backtraces on ia64 GNU/Linux.
409         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
410         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
411
412 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
413             Javier Miranda  <miranda@adacore.com>
414
415         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
416         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
417         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
418         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
419
420         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
421         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
422         assertions).
423
424         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
425         subprogram that generates the external name associated with a
426         secondary dispatch table.
427         (Get_Secondary_DT_External_Name): New subprogram that generates the
428         external name associated with a secondary dispatch table.
429
430 2005-11-14  Emmanuel Briot  <briot@adacore.com>
431
432         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
433         line in the ALI file to include both an instantiation reference, and a
434         returned value.
435
436 2005-11-14  Vincent Celier  <celier@adacore.com>
437
438         * clean.adb (Check_Project): Look for Ada code in extending project,
439         even if Ada is not specified as a language.
440         Use new function DLL_Prefix for DLL_Name
441         (Clean_Interface_Copy_Directory): New procedure
442         (Clean_Library_Directory): New procedure
443         (Clean_Directory): Remove procedure, no longer used
444         (Clean_Project): Do not delete any file in an externally built project
445
446         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
447         directory of an extending project, even when there are no Ada source
448         present.
449         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
450         (Set_Ada_Paths.Add.Recursive_Add): Ditto
451
452         * mlib-prj.adb (Check_Library): For all library projects, get the
453         library file timestamp.
454         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
455         (Build_Library): Use new function DLL_Prefix for the DLL_Name
456         (Clean): Remove procedure, no longer used
457         (Ultimate_Extension_Of): New function
458         (Build_Library): When cleaning the library directory, only remove an
459         existing library file and any ALI file of a source of the project.
460         When cleaning the interface copy directory, remove any source that
461         could be a source of the project.
462
463         * prj.ads, prj.adb (Project_Empty): Add values of new components
464         Library_TS and All_Imported_Projects.
465         (Project_Empty): Add values for new components of Project_Data:
466         Library_ALI_Dir and Display_Library_ALI_Dir
467
468         * prj-attr.adb: New project level attribute name Library_ALI_Dir
469
470         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
471         attribute Library_ALI_Dir.
472         (Check_Library_Attributes): The library directory cannot be the same as
473         any source directory of the project tree.
474         (Check_Stand_Alone_Library): The interface copy directory cannot be
475         the same as any source directory of the project tree.
476
477         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
478         all temporary files.
479
480 2005-11-14  Robert Dewar  <dewar@adacore.com>
481             Ed Schonberg  <schonberg@adacore.com>
482
483         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
484         (Check_Elab_Call): A call within a protected body is never an
485         elaboration call, and does not require checking.
486         (Same_Elaboration_Scope): Take into account protected types for both
487         entities.
488         (Activate_Elaborate_All_Desirable): New procedure
489
490         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
491         desirable
492
493         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
494         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
495
496         * lib-writ.ads, lib-writ.adb: 
497         Implement new AD/ED for Elaborate_All/Elaborate desirable
498         Use new Elaborate_All_Desirable flag in N_With_Clause node
499
500         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
501         N_Free_Statement nodes.
502         Define new class N_Subprogram_Instantiation
503         Add Elaborate_Desirable flag to N_With_Clause node
504         Add N_Delay_Statement (covering two kinds of delay)
505
506         * debug.adb: Introduce d.f flag for compiler
507         Add -da switch for binder
508
509 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
510             Cyrille Comar  <comar@adacore.com>
511
512         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
513         for task component, in the case of a limited aggregate. The enclosed
514         object declaration will create it earlier. Otherwise, in the case of a
515         nested aggregate, the object may appear in the wrong scope.
516         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
517         (Gen_Assign): If the component being assigned is an array type and the
518         expression is itself an aggregate, wrap the assignment in a block to
519         force finalization actions on the temporary created for each row of the
520         enclosing object.
521         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
522         structures are initialized after all discriminants are set so that
523         they can be accessed even when their offset is dynamic.
524
525 2005-11-14  Robert Dewar  <dewar@adacore.com>
526             Hristian Kirtchev  <kirtchev@adacore.com>
527
528         * sem_attr.adb: Implement Machine_Rounding attribute
529         (Analyze_Access_Attribute): The access attribute may appear within an
530         aggregate that has been expanded into a loop.
531         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
532         'Terminated whenever the prefix is of a task interface class-wide type.
533         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
534         the prefix is of a task interface class-wide type.
535
536         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
537         to avoid warnings.
538
539         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
540         Remove pragma Inline for [Unaligned_]Valid.
541         Add comments that Valid routines do not work for Vax_Float
542
543         * exp_attr.adb: Implement Machine_Rounding attribute
544
545         * snames.h: Add entry for Machine_Rounding attribute
546
547 2005-11-14  Javier Miranda  <miranda@adacore.com>
548             Robert Dewar  <dewar@adacore.com>
549             Hristian Kirtchev  <kirtchev@adacore.com>
550
551         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
552         and related): For a prefix that is an explicit dereference of an
553         access to unconstrained packed array type, annotate the dereference
554         with an actual subtype so GIGI can make a correct size computation.
555         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
556         'Unrestricted_Access, if the designated type is an interface we
557         add a type conversion to force the displacement of the pointer
558         to the secondary dispatch table.
559         Use Universal_Real instead of Long_Long_Float when we need a high
560         precision float type for the generated code (prevents gratuitous
561         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
562         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
563         'Terminated for task interface class-wide objects. Generate a call to
564         the predefined dispatching routine used to retrieve the _task_id from
565         a task corresponding record.
566         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
567
568         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
569         (Check_Dispatching_Operation): Protect the frontend againts
570         previously detected errors.
571
572         * Makefile.rtl: Add new instantiations of system.fat_gen
573
574         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
575         Change name of instantiated package for better consistency
576         with newly added system.fat_gen instantiations.
577
578         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
579         s-fvagfl.ads: New files.
580
581 2005-11-14  Cyrille Comar  <comar@adacore.com>
582             Thomas Quinot  <quinot@adacore.com>
583
584         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
585         assignment of a value of a tagged type that has been rewritten to a
586         block statement, it is known by construction that no checks are
587         necessary for the statements within the block: analyze it with checks
588         suppressed.
589         (Expand_N_If_Statement): When killing a dead then-branch in an
590         if-statement that has elsif_parts, recompute the Current_Value node
591         for any entity whose value is known from the condition of the first
592         elsif_part.
593         (Expand_N_Return_Statement): When returning a mutable record, convert
594         the return value into its actual subtype in order to help the backend
595         to return the actual size instead of the maximum. This is another
596         aftermath of not returning mutable records on the sec-stack anymore.
597
598         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
599         handling of error msg for suspicious reverse range iteration.
600         (Check_Possible_Current_Value_Condition): Move declaration from body to
601         spec, to allow this subprogram to be called from exp_ch5.
602
603 2005-11-14  Thomas Quinot  <quinot@adacore.com>
604
605         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
606         generate a set of nested array aggregates instead of a single flat
607         aggregate for multi-dimensional arrays.
608
609 2005-11-14  Pascal Obry  <obry@adacore.com>
610
611         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
612         by spawnve is a process handle, no need to convert. Add a parameter
613         close to control wether the process handle must be closed.
614         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
615         a process handle, not need to convert.
616         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
617
618         * g-expect.adb: (Kill): Document the new close parameter.
619         (Close): Do not release the process handle in the kill there as
620         waitpid() is using it.
621         (Send_Signal): Release the process handle.
622
623 2005-11-14  Robert Dewar  <dewar@adacore.com>
624
625         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
626         need a high precision float type for the generated code (prevents
627         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
628         used).
629
630         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
631         need a high precision float type for the generated code (prevents
632         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
633         used).
634         (Expand_Width_Attribute): In configurable run-time, the attribute is not
635         allowed on non-static enumeration subtypes. Force a load error to emit
636         the correct diagnostic.
637
638 2005-11-14  Thomas Quinot  <quinot@adacore.com>
639             Robert Dewar  <dewar@adacore.com>
640             Ed Schonberg  <schonberg@adacore.com>
641
642         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
643         subtype to compute the size of the designated object at run-time,
644         create such a subtype and store it in the Actual_Designated_Subtype
645         attribute of the N_Free_Statement.
646         Generate itype for classwide designated object in both cases of
647         user-specified storage pool: specific and class-wide, not only in the
648         specific case.
649         Raise CE when trying to set a not null access type object to null.
650         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
651         an explicit loop, because freeze nodes make its position variable.
652
653         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
654         null object.
655
656 2005-11-14  Javier Miranda  <miranda@adacore.com>
657
658         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
659         Build_Stream_Procedure): Add the null-excluding attribute to the first
660         formal.
661         This has no semantic meaning under Ada95 mode but it is a
662         requirement under Ada05 mode.
663
664         * par-ch3.adb (P_Access_Definition): Addition of warning message if
665         the null exclusion is used under Ada95 mode
666         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
667         (P_Access_Definition): Remove assertion that forbids the use of
668         the null-exclusion feature in Ada95.
669
670 2005-11-14  Robert Dewar  <dewar@adacore.com>
671
672         * impunit.adb: Exclude container helper units not intended for use by
673         users.
674
675 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
676
677         * freeze.adb (Freeze_Entity): For an access formal that is an access
678         to subprogram, freeze the anonymous subprogram type at the same time,
679         to prevent later freezing in the wrong scope, such as the enclosing
680         subprogram body.
681         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
682         subprogram whenever available.
683
684 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
685
686         PR ada/23732
687         * gnatvsn.ads (Library_Version): Bump to 4.1
688
689 2005-11-14  Robert Dewar  <dewar@adacore.com>
690
691         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
692         Storage_Offset to avoid wrap around causing invalid results.
693
694 2005-11-14  Pascal Obry  <obry@adacore.com>
695
696         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
697         cross-compiler.
698         (Scan_Bind_Arg): Fail with an error message if -M option is used
699         on a native compiler.
700
701 2005-11-14  Robert Dewar  <dewar@adacore.com>
702             Vincent Celier  <celier@adacore.com>
703
704         * gprep.adb: Implement -C switch to scan comments
705
706         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
707
708         * scans.ads: Comment updates (including new use of Tok_Comment in
709         preprocessing)
710
711         * opt.ads: Add documentation for flags that are used by gprmake,
712         currently and in the next version of gprmake.
713         (Verbosity_Level): New variable
714         Add Replace_In_Comments switch
715
716         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
717         and -vm.
718         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
719
720 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
721
722         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
723         message, friendlier.
724
725 2005-11-14  Robert Dewar  <dewar@adacore.com>
726
727         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
728
729 2005-11-14  Doug Rupp  <rupp@adacore.com>
730
731         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
732
733 2005-11-14  Robert Dewar  <dewar@adacore.com>
734
735         * interfac.ads: Change declarations of IEEE float types so that we no
736         longer need a separate version of this package for VMS.
737
738 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
739
740         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
741         internal entity created for the declaration of a child subprogram body
742         with no spec as coming from source, to generate proper cross-reference
743         information.
744
745 2005-11-14  Vincent Celier  <celier@adacore.com>
746
747         * make.adb (Compile_Sources): Change verbose message to minimum
748         verbosity level High for "is in an Ada library", "is a read-only
749         library" and "is an internal library",
750         (Create_Binder_Mapping_File): Path name of ALI file for library project
751         must include the library directory, not the object directory.
752         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
753         for new switches -vl, -vm and -vh.
754         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
755         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
756         (Compile_Sources): Do not attempt to compile if an ALI file is missing
757         in a project that is externally built.
758         (Compute_All_Imported_Projects): New procedure
759         (Gnatmake): Check if importing libraries should be regenerated because
760         at least an imported library is more recent.
761         (Initialize): For each project compute the list of the projects it
762         imports directly or indirectly.
763         (Add_Library_Search_Dir): New procedure, used in place of
764         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
765         put in the search paths.
766         (Add_Source_Search_Dir): New procedure, used in place of
767         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
768         put in the search paths.
769         (Mark_Directory): Resolve the absolute path the directory before marking
770         it.
771
772         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
773         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
774         Switch. Do not handle any exception.
775         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
776         so that the switch is recognized as valid.
777         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
778
779 2005-11-14  GNAT Script  <nobody@adacore.com>
780
781         * Make-lang.in: Makefile automatically updated
782
783 2005-11-14  Pascal Obry  <obry@adacore.com>
784
785         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
786         used.
787         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
788         In both cases the last argument was dropped.
789
790 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
791
792         * namet.h: (Column_Numbe): New type.
793         (Get_Column_Number): Define to sinput__get_column_number.
794         (Instantiation): Define to sinput__instantiation.
795         (Get_Column_Number): Declare.
796         (Instantiation): Likewise.
797
798 2005-11-14  Robert Dewar  <dewar@adacore.com>
799
800         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
801         syntax, which could cause compiler hangs.
802
803 2005-11-14  Vincent Celier  <celier@adacore.com>
804
805         * prj-ext.adb: Take into account new environment variable
806         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
807         are defined.
808         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
809         normalize its path name, making it absolute and resolving symbolic
810         links, and replace the original if resolved path is different.
811
812 2005-11-14  Vincent Celier  <celier@adacore.com>
813
814         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
815         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
816
817 2005-11-14  Emmanuel Briot  <briot@adacore.com>
818
819         * prj-pp.adb (Print): Do not output the with statement if the
820         associated name is empty, which happens for virtual extending projects.
821         (Print): Preserve the "extends all" attribute when printing the project.
822
823         * prj-tree.ads (String_Value_Of): Add comment about returned value for
824         a virtual extending project.
825
826 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
827
828         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
829         rhs of an assignment even if the type is unconstrained, when the
830         context is non-expanding.
831         In an inlined body, if the context type is private,
832         resolve with its full view, which must be a composite type.
833
834 2005-11-14  Robert Dewar  <dewar@adacore.com>
835             Ed Schonberg  <schonberg@adacore.com>
836
837         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
838         Do not give obsolescent warning on with of subprogram (since we
839         diagnose calls)
840         (Analyze_With_Clause): Add test for obsolescent package
841         (Install_Context_Clauses): If the unit is the body of a child unit, do
842         not install twice the private declarations of the parents, to prevent
843         circular lists of Use_Clauses in a parent.
844         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
845         compiling body of child unit.
846         Use new class N_Subprogram_Instantiation
847         (Expand_With_Clause): If this is a private with_clause for a child unit,
848         appearing in the context of a package declaration, then the implicit
849         with_clauses generated for parent units are private as well.
850         (License_Check): Do not generate message if with'ed unit is internal
851
852 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
853             Ed Schonberg  <schonberg@adacore.com>
854             Thomas Quinot  <quinot@adacore.com>
855
856         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
857         names are internal, because they will not have a corresponding partner
858         in the actual package.
859         (Analyze_Formal_Package): Move the setting of the formal package spec's
860         Generic_Parent field so that it occurs prior to analyzing the package,
861         to allow proper operation of Install_Parent_Private_Declarations.
862         (Analyze_Package_Instantiation): Set the instantiated package entity's
863         Package_Instantiation field.
864         (Get_Package_Instantiation_Node): Move declaration to package spec.
865         Retrieve the N_Package_Instantiation node when the Package_Instantiation
866         field is present.
867         (Check_Generic_Child_Unit): Within an inlined call, the only possible
868         instantiation is Unchecked_Conversion, for which no parents are needed.
869         (Inline_Instance_Body): Deinstall and record the use_clauses for all
870         parent scopes of a scope being removed prior to inlining an instance
871         body.
872         (Analyze_Package_Instantiation): Do not perform front-end inlining when
873         the current context is itself an instance within a non-instance child
874         unit, to prevent scope stack errors.
875         (Save_References): If the node is an aggregate that is an actual in a
876         call, rewrite as a qualified expression to preserve some type
877         information, to resolve possible ambiguities in the instance.
878         (Instance_Parent_Unit): New global variable to record the ultimate
879         parent unit associated with a generic child unit instance (associated
880         with the existing Parent_Unit_Visible flag).
881         (type Instance_Env): New component Instance_Parent_Unit for stacking
882         parents recorded in the global Instance_Parent_Unit.
883         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
884         stack.
885         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
886         it's not a top-level unit, and only do this if Instance_Parent_Unit is
887         not already set. Replace test of Is_Child_Unit with test of parent's
888         scope against package Standard. Add comments and a ??? comment.
889         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
890         on a child instance parent to test that the parent equals
891         Instance_Parent rather than simply checking that the unit is not a
892         child unit.
893         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
894         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
895         a formal interface are ancestors of the corresponding actual.
896         (Validate_Formal_Interface_Type): Additional legality checks.
897         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
898         interface types with ancestors.
899         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
900         to diagnose attempts to use generic within its own declaration.
901
902 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
903             Javier Miranda  <miranda@adacore.com>
904
905         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
906         discriminant.
907         (Build_Private_Derived_Type): The entity of the created full view of the
908         derived type does not come from source. If after installing the private
909         declarations of the parent scope the parent is still private, use its
910         full view to construct the full declaration of the derived type.
911         (Build_Derived_Record_Type): Relax the condition that controls the
912         execution of the check that verifies that the partial view and
913         the full view agree in the set of implemented interfaces. In
914         addition, this test now only takes into account the progenitors.
915         (Derive_Interface_Subprograms): No need to derive subprograms
916         of ancestors that are interfaces.
917         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
918         associated code.
919         Change name Is_Package to Is_Package_Or_Generic_Package
920         (Complete_Subprograms_Derivation): Handle the case in which the full
921         view is a transitive derivation of the ancestor of the partial view.
922         (Process_Full_View): Rename local subprogram Find_Interface_In_
923         Descendant to Find_Ancestor_Interface to leave the code more clear.
924         Remove wrong code that avoids the generation of an error message
925         when the immediate ancestor of the partial view is an interface.
926         In addition some minor reorganization of the code has been done to
927         leave it more clear.
928         (Analyze_Type_Declaration): If type has previous incomplete tagged
929         partial view, inherit properly its primitive operations.
930         (Collect_Interfaces): Make public, for analysis of formal
931         interfaces.
932         (Analyze_Interface_Declaration): New procedure for use for regular and
933         formal interface declarations.
934         (Build_Derived_Record_Type): Add support for private types to the code
935         that checks if a tagged type implements abstract interfaces.
936         (Check_Aliased_Component_Type): The test applies in the spec of an
937         instance as well.
938         (Access_Type_Declaration): Clean up declaration of malformed type
939         declared as an access to its own classwide type, to prevent cascaded
940         crash.
941         (Collect_Interfaces): For private extensions and for derived task types
942         and derived protected types, the parent may be an interface that must
943         be included in the interface list.
944         (Access_Definition): If the designated type is an interface that may
945         contain tasks, create Master_Id for it before analyzing the expression
946         of the declaration, which may be an allocator.
947         (Record_Type_Declaration): Set properly the interface kind, for use
948         in allocators, the creation of master id's for task interfaces, etc.
949
950 2005-11-14  Javier Miranda  <miranda@adacore.com>
951             Ed Schonberg  <schonberg@adacore.com>
952
953         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
954         omitted in case of stream attribute subprograms.
955         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
956         appear immediately after a subprogram body, when there is no previous
957         subprogram declaration.
958         Change name Is_Package to Is_Package_Or_Generic_Package
959         (Process_Formals): A non null qualifier on a non null named access
960         type is not an error, and is a warning only if Redundant_Constructs
961         are flagged.
962
963 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
964             Ed Schonberg  <schonberg@adacore.com>
965
966         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
967         nested within Analyze_Package_Specification to install the private
968         declarations and use clauses within each of the parent units of a
969         package instance of a generic child package.
970         (Analyze_Package_Specification): When entering a private part of a
971         package associated with a generic instance or formal package, the
972         private declarations of the parent must be installed (by calling new
973         procedure Install_Parent_Private_Declarations).
974         Change name Is_Package to Is_Package_Or_Generic_Package
975         (Preserve_Full_Attributes): For a synchronized type, the corresponding
976         record is absent in a generic context, which does not indicate a
977         compiler error.
978
979 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
980
981         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
982         not try to rewrite a renamed stream attribute, because the operations
983         on the type may not have been generated.
984         Handle properly a renaming_as_body generated for a stream operation
985         whose default is abstract because the object type itself is abstract.
986         (Find_Type): If the type is incomplete and appears as the prefix of a
987         'Class reference, it is tagged, and its list of primitive operations
988         must be initialized properly.
989         (Chain_Use_Clauses): When chaining the use clauses that appear in the
990         private declaration of a parent unit, prior to compiling the private
991         part of a child unit, find on the scope stack the proper parent entity
992         on which to link the use clause.
993         (Note_Redundant_Use): Emit a warning when a redundant use clause is
994         detected.
995         (Analyze_Object_Renaming): An attribute reference is not a legal object
996         if it is not a function call.
997
998 2005-11-14  Robert Dewar  <dewar@adacore.com>
999             Ed Schonberg  <schonberg@adacore.com>
1000
1001         * sem_eval.adb: Implement d.f flag
1002         (Subtype_Statically_Match): A generic actual type has unknown
1003         discriminants when the corresponding actual has a similar partial view.
1004         If the routine is called to validate the signature of an inherited
1005         operation in a child instance, the generic actual matches the full view,
1006
1007 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
1008             Ed Schonberg  <schonberg@adacore.com>
1009             Robert Dewar  <dewar@adacore.com>
1010             Thomas Quinot  <quinot@adacore.com>
1011
1012         * sem_res.adb (Resolve_Call): Provide a better error message whenever
1013         a procedure call is used as a select statement trigger and is not an
1014         entry renaming or a primitive of a limited interface.
1015         (Valid_Conversion): If the operand has a single interpretation do not
1016         remove address operations.
1017         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
1018         statement to inhibit warning.
1019         (Resolve_Unary_Op): Do not produce a warning when
1020         processing an expression of the form -(A mod B)
1021         Use Universal_Real instead of Long_Long_Float when we need a high
1022         precision float type for the generated code (prevents gratuitous
1023         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
1024         (Resolve_Concatenation_Arg): Improve error message when argument is an
1025         ambiguous call to a function that returns an array.
1026         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
1027         there is an implicit operator in the given scope if we are within an
1028         instance: legality check has been performed on the generic.
1029         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
1030         after resolving operand, to avoid false warnings on overloaded calls.
1031
1032 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1033             Javier Miranda  <miranda@adacore.com>
1034
1035         PR ada/15604
1036
1037         * sem_type.adb (Covers): In an inlined body, a composite type matches
1038         a private type whose full view is a composite type.
1039         (Interface_Present_In_Ancestor): Protect the frontend against
1040         previously detected errors to ensure that its compilation
1041         with assertions enabled gives the same output that its
1042         compilation without assertions.
1043         (Interface_Present_In_Ancestor): Add support for private types.
1044         Change name In_Actual to In_Generic_Actual (clean up)
1045         (Disambiguate): New predicate In_Actual, to recognize expressions that
1046         appear in the renaming declaration generated for generic actuals, and
1047         which must be resolved in the outer context.
1048
1049 2005-11-14  Robert Dewar  <dewar@adacore.com>
1050             Thomas Quinot  <quinot@adacore.com>
1051             Hristian Kirtchev  <kirtchev@adacore.com>
1052             Ed Schonberg  <schonberg@adacore.com>
1053
1054         * sem_util.ads, sem_util.adb: Change name Is_Package to
1055         Is_Package_Or_Generic_Package.
1056         (Check_Obsolescent): New procedure.
1057         (Set_Is_Public): Remove obsolete junk test.
1058         (Set_Public_Status): Do not set Is_Public on an object whose declaration
1059         occurs within a handled_sequence_of_statemets.
1060         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
1061         for a parameterless procedure.
1062         (Enter_Name): Recognize renaming declarations created for private
1063         component of a protected type within protected operations, so that
1064         the source name of the component can be used in the debugger.
1065
1066 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1067             Robert Dewar  <dewar@adacore.com>
1068
1069         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
1070         of a generic subprogram are not visible outside the body.
1071         (Set_Warning_Switch): New procedure (code to set warning mode moved
1072         here from Switch.C so that it can be shared by pragma processing.
1073         (Check_References): Special case warning for non-modified non-imported
1074         volatile objects.
1075         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
1076         form with a string literal argument
1077
1078 2005-11-14  Javier Miranda  <miranda@adacore.com>
1079
1080         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
1081         anonymous access.
1082         (Write): Addition of "not null" to the anonymous access.
1083         (Read): Addition of "not null" to the anonymous access.
1084         (Write): Addition of "not null" to the anonymous access.
1085
1086         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
1087         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
1088         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
1089         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
1090         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
1091         "not null" to the anonymous access.
1092
1093 2005-11-14  Robert Dewar  <dewar@adacore.com>
1094
1095         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
1096         offset values
1097
1098 2005-11-14  Vincent Celier  <celier@adacore.com>
1099
1100         * switch.adb (Bad_Switch): New procedure
1101         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
1102         message when in error.
1103
1104         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
1105         Too_Many_Output_Files): Remove declarations, no longer used.
1106         (Scan_Nat): New parameter Switch
1107         (Scan_Pos): Ditto
1108         (Bad_Switch): New procedure
1109
1110         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
1111         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
1112         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
1113         to Osint.Fail. Do not handle any exception.
1114
1115 2005-11-14  Vincent Celier  <celier@adacore.com>
1116
1117         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
1118         designates a non existent directory.
1119
1120 2005-11-14  Robert Dewar  <dewar@adacore.com>
1121
1122         * xgnatugn.adb: Replace invalid membership test by 'Valid
1123
1124 2005-11-14  Vincent Celier  <celier@adacore.com>
1125
1126         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
1127         there is no object directory.
1128
1129 2005-11-14  Robert Dewar  <dewar@adacore.com>
1130
1131         * usage.adb: Minor adjustment to output format, use nn instead of nnn
1132         (so that -gnateInnn does not run into next column)
1133
1134 2005-11-14  Ed Falis  <falis@adacore.com>
1135
1136         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
1137         "constrained"
1138
1139 2005-11-14  Cyrille Comar  <comar@adacore.com>
1140
1141         * s-chepoo.ads: Add comments on Dereference.
1142         Remove unnecessary inherited abstract primitives.
1143         Cosmetic cleanup.
1144
1145 2005-11-14  Robert Dewar  <dewar@adacore.com>
1146
1147         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
1148         node parameter, not needed, since it is available as Declaration_Node.
1149
1150 2005-11-14  Geert Bosch  <bosch@adacore.com>
1151
1152         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
1153         grammatically correct.
1154
1155 2005-11-14  Vincent Celier  <celier@adacore.com>
1156
1157         * s-fileio.ads: Correct spelling error in comment
1158
1159 2005-11-14  Cyrille Comar  <comar@adacore.com>
1160             Robert Dewar  <dewar@adacore.com>
1161             Vincent Celier  <celier@adacore.com>
1162             Ben Brosgol  <brosgol@adacore.com>
1163             Jose Ruiz  <ruiz@adacore.com>
1164             Pascal Obry  <obry@adacore.com>
1165
1166         * gnat_ugn.texi: 
1167         Document that -fstack-check is needed for strict compliance with the
1168         Ada 95 Reference Manual.
1169         Correct reference to VAX systems to meet HP guidelines
1170         Add documentation for new gnatmake switches -vl, -vm and -vh
1171         Replace DEC Ada by HP Ada
1172         Replace DIGITAL by HP
1173         Remove empty section on tools in compatibility section
1174         Clarify the Windows convention semantics.
1175         Document the Win32 calling convention.
1176         The Stdcall, Win32 and DLL convention are synonyms.
1177         Add a note in -gnatR description about zero size record components
1178         Note on new >= and <= warnings for -gnatwc
1179         Document that equal sign after -gnatm is optional.
1180         Note that strip is working fine on DLL built with a Library
1181         Project. The restriction apply only to DLL built with gnatdll.
1182         Update section about the way to debug a DLL.
1183         Update information about the DLL convention.
1184         Document -C switch for gnatprep
1185         Document new attribute Library_ALI_Dir
1186         Update elaboration doc to include implicit Elaborate pragmas now
1187         generated for subprogram instantiations.
1188         Document limitation on executable names that include spaces for --GCC,
1189         --GNATBIND, and --GNATLINK switches.
1190         Document that -w causes -gnatws to be added at start of gcc switches
1191
1192         * gnat_rm.texi: Document that -mieee is needed for generating infinite
1193         and NaN values in case of overflow on machines that are not fully
1194         compliant with the IEEE floating-point standard.
1195         Create a section describing the set of compiler options needed for
1196         strict compliance with the Ada 95 Reference Manual.
1197         Add documentation for pragma Obsolescent applied to a package
1198         Clarify potential issues of mixed language programs related to the
1199         I/O buffering enabling in the elaboration of the GNAT runtime.
1200         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
1201         This documentation only patch adds extra documentsion for pragma
1202         Restrictions (No_Elaboration_Code), explaining why it is not possible
1203         to document this restriction in terms of allowed source constructs.
1204         Document string literal form of pragma Warnings
1205         Document new attribute Library_ALI_Dir
1206         Add documentation on stable attributes in project files that was missing
1207
1208         * gnat-style.texi: Indicate that paragraphs within a single comment
1209         should be separated by empty comment lines
1210
1211         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
1212         /05 respectively)
1213
1214         * bindusg.adb: Minor cleanup, put -m before -M for consistency
1215
1216 2005-11-14  Robert Dewar  <dewar@adacore.com>
1217
1218         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
1219         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
1220         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
1221         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
1222         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
1223         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
1224         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
1225         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
1226         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
1227         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
1228         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
1229         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
1230         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
1231         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
1232         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
1233         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
1234         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
1235         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
1236         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
1237         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
1238         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
1239         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
1240         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
1241         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
1242         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
1243         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
1244         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
1245         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
1246         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
1247         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
1248         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
1249         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
1250         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
1251         system-interix.ads, system-solaris-sparc.ads,
1252         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
1253         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
1254         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
1255         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
1256         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
1257         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
1258         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
1259         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
1260         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
1261         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
1262         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
1263         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
1264         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
1265         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
1266         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
1267         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
1268         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
1269         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
1270         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
1271         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
1272         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
1273         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
1274         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
1275         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
1276         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
1277         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
1278         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
1279         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
1280         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
1281         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
1282         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
1283         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
1284         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
1285         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
1286         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
1287         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
1288         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
1289         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
1290         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
1291         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
1292         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
1293         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
1294         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
1295         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
1296         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
1297         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
1298         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
1299         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
1300         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
1301         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
1302         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
1303         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
1304         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
1305         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
1306         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
1307         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
1308         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
1309         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
1310         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
1311         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
1312         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
1313         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
1314         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
1315         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
1316         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
1317         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
1318         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
1319         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
1320         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
1321         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
1322         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1323         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
1324         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
1325         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
1326         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
1327         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
1328         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
1329         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
1330         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
1331         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
1332         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
1333         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
1334         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
1335         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
1336         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
1337         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
1338         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
1339         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
1340         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
1341         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
1342         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
1343         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
1344         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
1345         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
1346         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
1347         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
1348         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
1349         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
1350         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
1351         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
1352         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
1353         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
1354         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
1355         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
1356         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
1357         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
1358         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
1359         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
1360         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
1361         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
1362         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
1363         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
1364         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
1365         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
1366         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
1367         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
1368         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
1369         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
1370         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
1371         a-numaux-darwin.ads, a-numaux-darwin.adb,
1372         a-swuwha.ads, a-stunha.ads: Minor reformatting
1373
1374 2005-11-14  Robert Dewar  <dewar@adacore.com>
1375
1376         PR ada/18434
1377         * osint-m.adb: Add pragma Elaborate_All for Osint
1378
1379 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1380
1381         PR ada/23995
1382         * trans.c (call_to_gnu): Restore statement lost in translation.
1383
1384 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1385
1386         * init.c: Use the Linux-specific section for the IA-64/Linux target.
1387         (__gnat_adjust_context_for_raise): Add conditional code so that the
1388         IA-64 is also supported.
1389
1390 2005-11-03  James E Wilson  <wilson@specifix.com>
1391
1392         PR ada/23427
1393         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1394         TREE_OVERFLOW check.
1395
1396 2005-09-21  Olivier Hainque  <hainque@adacore.com>
1397
1398         PR ada/22418
1399         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
1400         as we create them to store a size in bits.
1401
1402 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1403
1404         PR ada/21937
1405         PR ada/22328
1406         PR ada/22381
1407         PR ada/22383
1408         PR ada/22419
1409         PR ada/22420
1410         * utils2.c (build_return_expr): New helper function.
1411         * gigi.h (build_return_expr): Declare it.
1412         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
1413         of manually building the RETURN_EXPR tree.
1414         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
1415         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
1416         build_binary_op for the "target pointer" case.  Use build_return_expr
1417         instead of manually building the RETURN_EXPR tree.
1418
1419 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
1420
1421         PR ada/23788
1422         * s-tpinop.ads: Make this unit Preelaborate.
1423
1424 2005-09-16  Andreas Jaeger  <aj@suse.de>
1425
1426         * socket.c: Add string.h for memcpy.
1427
1428 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
1429
1430         * dec-io.ads, dec-io.adb: Removed, no longer used.
1431
1432 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
1433
1434         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
1435
1436         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
1437         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
1438         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
1439         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
1440         dependent units are Preelaborate.
1441         (Initialize): Call Interrupt_Managemeent.Initialize and
1442         OS_Primitives.Initialize to ensure proper initialization of this unit.
1443         Remove use of System.Soft_Links
1444         Make this unit Preelaborate.
1445
1446         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
1447         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
1448         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
1449         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
1450         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
1451         s-tratas.ads, s-tasinf.ads: Minor reformatting.
1452         Add pragma Preelaborate, since these packages are suitable for this
1453         categorization.
1454         Update comments.
1455
1456         * s-traent-vms.ads, s-intman-dummy.adb,
1457         s-taprop-dummy.adb: Make this unit Preelaborate.
1458
1459         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
1460         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
1461         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
1462         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
1463         s-intman-solaris.adb, s-intman-irix-athread.adb,
1464         s-intman-irix.adb: Mark this unit Preelaborate.
1465         (Initialize): New procedure.
1466         Update comments.
1467
1468         * s-taspri-linux.ads: Removed.
1469
1470         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
1471         as done by other implementations (e.g. posix).
1472
1473         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
1474         responsible for deferring abort.
1475         Mark this unit Preelaborate.
1476
1477         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
1478         proper initialization of the tasking run-time.
1479
1480         * s-tasdeb.ads: Mark this unit Preelaborate.
1481         (Known_Tasks): Add explicit default value to avoid elaboration code.
1482
1483         * s-inmaop-vms.adb (Elaboration code): Add call to
1484         Interrupt_Management.Initialize since the elaboration code depends on
1485         proper initialization of this package.
1486
1487         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
1488         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
1489         s-osprim-posix.adb: Make this unit Preelaborate.
1490
1491         * a-calend.adb: Add call to OS_Primitives.Initialize
1492
1493         * a-elchha.adb: Update use of Except.Id.Full_Name.
1494         Minor reformatting.
1495         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
1496
1497         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
1498         Move with clauses outside Warnings Off now that dependent units are
1499         Preelaborate.
1500         Use raise xxx with "..."; Ada 2005 form.
1501
1502         * a-taside.ads, a-taside.adb:
1503         Remove some dependencies, to make it easier to make this unit truly
1504         Preelaborate.
1505         Rewrite some code to be conformant with Preelaborate rules.
1506
1507         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
1508         marked Preelaborate in the future.
1509
1510         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
1511         these units Preelaborate.
1512
1513         * s-exctab.adb: Update use of Except.Id.Full_Name.
1514
1515         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
1516         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
1517         Set_Exc_Stack_Addr): Removed, no longer used.
1518         Remove reference to *Machine_State_Addr*, no longer needed.
1519
1520         * s-stalib.ads: Mark this unit as Preelaborate[_05].
1521         (Exception_Data): Full_Name is now a System.Address so that this unit
1522         can be made Preelaborate.
1523         Clean up/simplify code thanks to Full_Name being a System.Address.
1524         Remove obsolete pragma Suppress (All_Checks), no longer needed.
1525
1526         * s-taskin.ads, s-taskin.adb:
1527         Move with clauses outside Warnings Off now that dependent units are
1528         Preelaborate.
1529         Make this unit Preelaborate.
1530         (Initialize): New proceduure, replace elaboration code and makes the
1531         set up of the tasking run-time cleaner.
1532         (Detect_Blocking): Now a function instead of a deferred boolean, to
1533         obey Preelaborate rules.
1534
1535         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
1536         soft links, no longer used.
1537
1538         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
1539         packages are suitable for this categorization.
1540
1541         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
1542         since we compile run-time sources in Ada 2005 mode.
1543         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
1544         avoid having s-taprop*.adb depend on s-soflin and to avoid code
1545         duplication.
1546         Remove reference to *Machine_State_Addr*, no longer needed.
1547
1548 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
1549
1550         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
1551         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
1552         Remove reference to System.Exceptions.
1553
1554         * s-mastop-x86.adb: Removed, no longer used.
1555
1556         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
1557
1558         * a-excach.adb: Minor reformatting.
1559
1560         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
1561         instead fix new warnings that were hidden by this change.
1562         (AAA, ZZZ): Removed, replaced by...
1563         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
1564         are used instead of constants, to help make Ada.Exception truly
1565         preelaborate.
1566         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
1567         Raise_Storage_Error): File is now a System.Address, to simplify code.
1568         (Elab code): Removed, no longer used.
1569         (Null_Occurrence): Remove Warnings Off and make this construct
1570         preelaborate.
1571         Remove code related to front-end zero cost exception handling, since
1572         it is no longer used.
1573         Remove -gnatL/-gnatZ switches.
1574
1575         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
1576         Update use of Except.Msg.
1577
1578         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
1579         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
1580         to front-end zero cost exception handling, since it is no longer used.
1581         Remove -gnatL/-gnatZ switches.
1582
1583         * lib-writ.ads: Minor reformatting
1584         Remove doc of UX
1585
1586         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
1587
1588         * Make-lang.in: Remove references to s-except.ads
1589
1590         * s-except.ads: Removed, no longer used.
1591
1592         * s-mastop.ads, s-mastop.adb:
1593         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
1594         Remove reference to System.Exceptions.
1595
1596         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
1597         switch-b.adb: Remove code related to front-end zero cost exception
1598         handling, since it is no longer used.
1599         Remove -gnatL/-gnatZ switches.
1600
1601 2005-09-01  Robert Dewar  <dewar@adacore.com>
1602             Gary Dismukes  <dismukes@adacore.com>
1603             Javier Miranda  <miranda@adacore.com>
1604
1605         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
1606         type by valid test and generate warning.
1607         (Tagged_Membership): Generate call to the run-time
1608         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
1609         Change formal name Subtype_Mark to Result_Definition in several calls to
1610         Make_Function_Specification.
1611         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
1612         check for proper accessibility of the operand of a class-wide allocator.
1613         The check can be left out if checks are suppressed or if the expression
1614         has a specific tagged type whose level is known to be safe.
1615
1616         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
1617         generates the run-time check associated with null-excluding entities.
1618         (Expand_N_Return_Statement): Add tests to determine if the accessibility
1619         check on the level of the return expression of a class-wide function
1620         can be elided. The check usually isn't needed if the expression has a
1621         specific type (unless it's a conversion or a formal parameter). Also
1622         add a test for whether accessibility checks are suppressed. Augment
1623         the comments to describe the conditions for performing the check.
1624
1625 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
1626             Javier Miranda  <miranda@adacore.com>
1627             Gary Dismukes  <dismukes@adacore.com>
1628             Ed Schonberg  <schonberg@adacore.com>
1629
1630         * a-tags.adb (IW_Membership): Give support to
1631         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
1632         subprogram has been extended to look for the tag in the ancestors tag
1633         table.
1634         Update the structure of the GNAT Dispatch Table to reflect the
1635         additional two tables used in dispatching selects.
1636         Introduce appropriate array types and record components in
1637         Type_Specific_Data to reflect the two tables.
1638         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
1639         the TSD of a tag, indexed by position.
1640         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
1641         operation kind in the TSD of a tag, indexed by position.
1642
1643         * a-tags.ads: Introduce an enumeration type to capture different
1644         primitive operation kinds. Define a constant reflecting the number of
1645         predefined primitive operations.
1646         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
1647         of an entry wrapper.
1648         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
1649         callable entity of a primitive operation.
1650
1651         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
1652         primitive operations used in dispatching selects for limited
1653         interfaces, limited tagged, task and protected types what implement a
1654         limited interface.
1655         (Freeze_Type): Generate the bodies of the primitive operations used in
1656         dispatching selects for limited tagged, task and protected types that
1657         implement a limited interface. Generate statements to populate the two
1658         auxiliary tables used for dispatching in select statements.
1659         (Freeze_Record_Type): Add call to initialize the dispatch table entries
1660         associated with predefined interface primitive operations.
1661         (Build_Dcheck_Function): Change Set_Subtype_Mark to
1662         Set_Result_Definition.
1663         (Build_Variant_Record_Equality): Change Subtype_Mark to
1664         Result_Definition.
1665         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
1666         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
1667         (Build_Assignment): Simplify the code that adds the run-time-check.
1668         (Expand_N_Object_Declaration): Code cleanup.
1669
1670         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
1671         entries when there is a protected type that implements a limited
1672         interface.
1673
1674         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
1675         common routines used in expansion of dispatching selects.
1676         (Add_Private_Declarations): Select the appropriate protection type when
1677         there is a protected type that implements a limited interface.
1678         (Build_Parameter_Block): Generate a wrapped parameter block.
1679         (Build_Protected_Subprogram_Body): Select the appropriate type for
1680         locking entries when there is a protected type that implements a
1681         limited interface.
1682         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
1683         classified as entry wrappers.
1684         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
1685         asynchronous selects.
1686         (Expand_N_Conditional_Entry_Call): Add support for expansion of
1687         dispatching conditional selects.
1688         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
1689         protection when there is a protected type that implements limited
1690         interfaces.
1691         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
1692         timed selects.
1693         (Extract_Dispatching_Call): Extract the entity of the name of a
1694         dispatching call, the object parameter, actual parameters and
1695         corresponding formals.
1696         (Make_Initialize_Protection): Correct logic of protection initialization
1697         when there is a protected type that implements a limited interface.
1698         (Parameter_Block_Pack): Populate a wrapped parameter block with the
1699         values of actual parameters.
1700         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
1701         block and assign them to the original actual parameters.
1702
1703         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
1704         (Build_Protected_Sub_Specification): Change the type and name of the
1705         last formal to account for the increased variety of protection modes.
1706
1707         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
1708         entities. Used to save the value of the Is_Hidden attribute when the
1709         limited-view is installed.
1710         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
1711         the attribute of procedures classified as entry wrappers.
1712         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
1713         entity of a primitive wrapper.
1714         (Write_Entity_Flags): Output the name and value of the
1715         Is_Primitive_Wrapper attribute.
1716         (Write_Field27_Name): Output the name and entity of the field Wrapped_
1717         Entity.
1718         (Underlying_Type): If we have an incomplete entity that comes from
1719         the limited view then we return the Underlying_Type of its non-limited
1720         view if it is already available.
1721         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
1722         including operators.
1723         (Write_Field26_Name): Add entry for Overridden_Operation
1724         (Overridden_Operation): New attribute of functions and procedures.
1725
1726         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
1727         predefined position in the dispatch table for the primitive operations
1728         used in dispatching selects.
1729         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
1730         predefined primitive operations and replace it with
1731         Default_Prim_Op_Count.
1732         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
1733         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
1734         the names of the generated primitive operations used in dispatching
1735         selects.
1736         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
1737         case of abstract interface types. They will be inherit by the objects
1738         implementing the interface.
1739         (Make_DT): There is no need to inherit the dispatch table of the
1740         ancestor interface for the elaboration of abstract interface types.
1741         The dispatch table will be inherited by the object implementing the
1742         interface.
1743         (Copy_Secondary_DTs): Add documentation.
1744         (Validate_Position): Improve this static check in case of
1745         aliased subprograms because aliased subprograms must have
1746         the same position.
1747         (Init_Predefined_Interface_Primitives): New subprogram that initializes
1748         the entries associated with predefined primitives of all the secondary
1749         dispatch tables.
1750         (Build_Anonymous_Access_Type): Removed.
1751         (Expand_Interface_Actuals): With the previous cleanup there is no need
1752         to build an anonymous access type. This allows further cleanup in the
1753         code generated by the expander.
1754         (Expand_Interface_Conversion): If the actual is an access type then
1755         build an internal function to handle the displacement. If the actual
1756         is null this function returns null because no displacement is
1757         required; otherwise performs a type conversion that will be
1758         expanded in the code that returns the value of the displaced actual.
1759         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
1760         conversions that have no effect in the generated code because no
1761         displacement is required. Code cleanup; use local variables to
1762         avoid repeated calls to the subprogram directly_designated_type().
1763
1764         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1765         Classify the primitive operations used in dispatching selects as
1766         predefined.
1767         (Implements_Limited_Interface): Determine whether some type either
1768         directly implements a limited interface or extends a type that
1769         implements a limited interface.
1770         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
1771         (Expand_Subtype_From_Expr): Do not build actual subtype if the
1772         expression is limited.
1773         (Find_Interface_Tag): Add code to handle class-wide types and
1774         entities from the limited-view.
1775
1776         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
1777         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
1778         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
1779         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
1780         Set_Prim_Op_Kind.
1781
1782         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
1783         of procedure name or prefix that appears as a trigger in a triggering
1784         alternative.
1785
1786         * uintp.ads: Introduce constants Uint_11 and Uint_13.
1787
1788 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
1789
1790         * s-tataat.adb, a-tasatt.adb:
1791         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
1792
1793         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
1794         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
1795         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
1796         longer used.
1797
1798 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
1799             Jose Ruiz  <ruiz@adacore.com>
1800
1801         * s-taprop-vxworks.adb:
1802         Move with clauses outside Warnings Off now that dependent units are
1803         Preelaborate.
1804         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
1805         initialization of this unit.
1806         (Specific): Add new procedures Initialize and Delete so that this
1807         package can be used for VxWorks 5.x and 6.x
1808         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
1809         differences between VxWorks 5.x and 6.x
1810         Minor reformatting.
1811         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
1812         caller.
1813         Use only Preelaborate-compatible constructs.
1814
1815         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
1816         Primitives.Operations.
1817         (Delete, Initialize): New procedures.
1818
1819         * s-osinte-vxworks.adb: Body used to handle differences between
1820         VxWorks 5.x and 6.x
1821         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
1822
1823         * s-osinte-vxworks.ads: Minor reformatting.
1824         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
1825         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
1826         and 6.
1827         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
1828         between Vxworks 5 and 6.
1829         (taskLock, taskUnlock): Removeed, no longer used.
1830
1831         * adaint.c: The wait.h header is not located in the sys directory on
1832         VxWorks when using RTPs.
1833         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
1834         using RTPs.
1835         (__gnat_dup): dup is available on Vxworks when using RTPs.
1836         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
1837
1838         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
1839
1840         * expect.c: The wait.h header is not located in the sys directory on
1841         VxWorks when using RTPs.
1842
1843 2005-09-01  Thomas Quinot  <quinot@adacore.com>
1844
1845         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
1846
1847         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
1848
1849         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
1850         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
1851         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
1852         g-soccon-freebsd.ads: Add new constants:
1853          IP_MULTICAST_IF
1854          SO_RCVTIMEO/SO_SNDTIMEO
1855          IOV_MAX
1856
1857         * gen-soccon.c:
1858         Move all target-specific file inclusions and macro definitions to
1859         gsocket.h, in order to ensure that any C code in socket.c will see a
1860         set of constants that is consistent with the contents of g-soccon.ads.
1861
1862         * gsocket.h: Code imported from gen-soccon.c:
1863         Move all target-specific file inclusions and macro definitions to
1864         gsocket.h, in order to ensure that any C code in socket.c will see a set
1865         of constants that is consistent with the contents of g-soccon.ads.
1866         This change also makes gen-soccon self-contained (removing dependencies
1867         upon GCC internal headers).
1868
1869         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
1870         iovecs at a time.
1871         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
1872
1873         * socket.c: Minor reformatting.
1874
1875 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
1876             Thomas Quinot  <quinot@adacore.com>
1877
1878         * fname-sf.adb, mlib-tgt.ads,
1879         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
1880         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
1881         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
1882         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
1883         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
1884         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
1885         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
1886         makegpr.adb: Remove redundant use_clauses.
1887
1888 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
1889
1890         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
1891         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
1892         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
1893         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
1894         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
1895         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
1896         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
1897         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
1898         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
1899         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
1900         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
1901         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
1902         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
1903         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
1904         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
1905         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1906         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
1907         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
1908         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
1909         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1910         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
1911         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
1912         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
1913         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
1914         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
1915         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
1916         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
1917         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
1918         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
1919         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
1920         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
1921         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
1922         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
1923         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
1924         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
1925         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
1926         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
1927         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
1928         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
1929         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
1930         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
1931         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
1932         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
1933         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
1934         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
1935         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
1936         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
1937         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
1938         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
1939         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
1940         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
1941         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
1942         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
1943         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
1944         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
1945         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
1946         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
1947         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
1948         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
1949         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
1950         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
1951         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
1952         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
1953         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
1954         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
1955         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
1956         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
1957         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
1958         and always use the no parameter form for consistency.
1959
1960         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
1961
1962 2005-09-01  Robert Dewar  <dewar@adacore.com>
1963
1964         * binde.adb: Minor reformatting
1965         (Find_Elab_Order): Output warning if -p used with static elab order
1966
1967 2005-09-01  Robert Dewar  <dewar@adacore.com>
1968
1969         * checks.adb (Check_Needed): New procedure, deals with removing checks
1970         based on analysis of short-circuited forms. Also generates warnings for
1971         improper use of non-short-circuited forms.
1972         Code clean ups.
1973
1974 2005-09-01  Robert Dewar  <dewar@adacore.com>
1975
1976         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
1977         with 'Valid tests.
1978
1979 2005-09-01  Robert Dewar  <dewar@adacore.com>
1980
1981         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
1982         spec.
1983         Implement new insertion char < (conditional warning)
1984         * errutil.adb, erroutc.adb: Implement new insertion char <
1985         (conditional warning).
1986         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
1987         (Error_Msg_Warn): New variable for < insertion char.
1988         * prj-nmsc.adb: Implement new errout insertion char < (conditional
1989         warning).
1990         (Check_For_Source): Change value of Source_Id only after the current
1991         source has been dealt with.
1992
1993 2005-09-01  Robert Dewar  <dewar@adacore.com>
1994             Doug Rupp  <rupp@adacore.com>
1995
1996         * exp_attr.adb: Handle vax fpt for 'Valid attribute
1997         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
1998         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
1999         (Valid_D, Valid_F, Valid_G): New functions
2000
2001 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2002             Hristian Kirtchev  <kirtchev@adacore.com>
2003             Javier Miranda  <miranda@adacore.com>
2004
2005         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
2006         from object notation, the original node is unanalyzed and carries no
2007         semantic information, so that accessiblity checks must be performed on
2008         the type of the actual itself.
2009         (Expand_N_Subprogram_Declaration): Change last actual parameter for
2010         compatibility with Build_Protected_Sub_Specification.
2011         (Check_Overriding_Inherited_Interfaces): Add suport to handle
2012         overloaded primitives.
2013         (Register_Interface_DT_Entry): Use the new name of the formal
2014         the the calls to Expand_Interface_Thunk
2015
2016         * exp_dbug.ads: Augment comments on encoding of protected types to
2017         include the generation of dispatching subprograms when the type
2018         implements at least one interface.
2019
2020         * lib.ads: Extend information in Load_Stack to include whether a given
2021         load comes from a Limited_With_Clause.
2022
2023         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
2024         whether a potential circularity is harmless, because it includes units
2025         loaded through a limited_with clause. Extends previous treatment which
2026         did not handle properly arbitrary combinations of limited and
2027         non-limited clauses.
2028
2029 2005-09-01  Nicolas Setton  <setton@adacore.com>
2030
2031         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
2032         to be encoded as typ___XBLU_lowerbound__upperbound instead of
2033         typ___XB_lowerbound__upperbound.
2034
2035 2005-09-01  Thomas Quinot  <quinot@adacore.com>
2036
2037         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
2038         dummy access formal for RACW/RAS TypeCode TSS.
2039         (Build_TypeCode_Call): Do not generate dummy null access actual for
2040         calls to the TypeCode TSS.
2041
2042 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2043
2044         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
2045         fully qualified name, to distinguish instances with the same local name.
2046
2047         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
2048         fully qualified.
2049
2050 2005-09-01  Robert Dewar  <dewar@adacore.com>
2051
2052         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
2053         packed arrays.
2054
2055 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
2056
2057         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
2058         (Free): New deallocation procedure for filter elements
2059         (Close): Deallocate any existing filter for the concerned connection
2060
2061 2005-09-01  Laurent Pautet  <pautet@adacore.com>
2062
2063         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
2064         position set is provided, we compute one in order to reduce the maximum
2065         length of the keys.  This computation first selects a character
2066         position between 1 and the minimum length of the keys in order to
2067         avoid reducing one of the keys to an empty string.
2068         (Initialize, Compute): When the ratio V to K is too low, the algorithm
2069         does not converge. The initialization procedure now comes with a
2070         maximum number of iterations such that when exceeded, an exception is
2071         raised in Compute. The user can initialize this ratio to another value
2072         and try again
2073         Reformating and updated headers.
2074
2075 2005-09-01  Javier Miranda  <miranda@adacore.com>
2076
2077         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
2078         that given an entity T creates and returns an Itype that duplicates the
2079         contents of T. The returned Itype has the null-exclusion
2080         attribute set to True, and its Etype attribute references T
2081         to keep the association between the two entities.
2082         Update copyright notice
2083
2084         * sem_aggr.adb (Check_Can_Never_Be_Null,
2085         Aggregate_Constraint_Checks, Resolve_Aggregate,
2086         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
2087
2088         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
2089
2090 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
2091             Robert Dewar  <dewar@adacore.com>
2092             Hristian Kirtchev  <kirtchev@adacore.com>
2093
2094         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
2095         Result_Definition.
2096
2097         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
2098         function specs.
2099         Call Set_Result_Definition instead of Set_Subtype_Mark.
2100         (P_Subprogram_Specification): Add parsing of anonymous access result
2101         plus null exclusions. Call Set_Result_Definition instead of
2102         Set_Subtype_Mark.
2103
2104         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
2105         (P_Access_Type_Definition): Add parsing for an anonymous access result
2106         subtype, plus parsing for null exclusions. Call Set_Result_Definition
2107         instead of Set_Subtype_Mark.
2108
2109         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
2110         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
2111         (Result_Definition): New function for N_Function_Specifications.
2112         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
2113         N_Function_Specification.
2114         (Set_Null_Exclusion_Present): Allow this flag for
2115         N_Function_Specification.
2116         (Set_Result_Definition): New procedure for N_Function_Specifications.
2117         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
2118         and N_Function_Specification.
2119
2120         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
2121         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
2122         Add support for LIMITED NEW for Ada 2005 AI-419
2123         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
2124         syntax for anonymous access results.
2125         Replace Subtype_Mark field by Result_Definition in
2126         N_Function_Specification and N_Access_Definition specs.
2127         Add Null_Exclusion_Present to spec of N_Function_Specification.
2128         (Result_Definition): New function for N_Function_Specification and
2129         N_Access_Function_Definition.
2130         (Set_Result_Definition): New procedure for N_Function_Specification and
2131         N_Access_Function_Definition.
2132
2133         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
2134         Result_Definition for cases of N_Access_Function_Definition and
2135         N_Function_Specification.
2136         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
2137
2138 2005-09-01  Vincent Celier  <celier@adacore.com>
2139
2140         * lib-writ.adb: Update Copyright notice
2141         (Write_With_Lines): On platforms where file names are case-insensitive,
2142         record the file names in lower case.
2143         (Write_ALI): For D lines, on platforms where file names are
2144         case-insensitive, record the file names in lower case.
2145
2146 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2147             Emmanuel Briot  <briot@adacore.com>
2148
2149         * lib-xref.adb (Output_Overridden_Op): Display information on
2150         overridden operation.
2151
2152         * lib-xref.ads: Add documentation on overridden operations.
2153
2154         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
2155         information.
2156
2157         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
2158         overriding entity information.
2159
2160 2005-09-01  Vincent Celier  <celier@adacore.com>
2161
2162         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
2163         including those that are inherited.
2164
2165 2005-09-01  Robert Dewar  <dewar@adacore.com>
2166
2167         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
2168
2169         * par-prag.adb: Implement new pragma Debug_Policy
2170
2171         * sem_prag.adb Implement new pragma Debug_Policy
2172         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
2173         Component_Size attribute specification. Give warning for ignored pragma
2174         Pack.
2175
2176         * snames.h, snames.ads, snames.adb: Introduce entries in
2177         Preset_Names for Name_Disp_Asynchronous_Select,
2178         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
2179         Name_Disp_Timed_Select.
2180         New pragma Debug_Policy
2181
2182         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
2183         explicitly.
2184         Switch -gnata also sets Debug_Pragmas_Enabled
2185
2186         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
2187         handle an explicit -gnata when compiling predefined files.
2188
2189 2005-09-01  Vincent Celier  <celier@adacore.com>
2190
2191         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
2192         directories of projects that have no Ada sources.
2193
2194 2005-09-01  Robert Dewar  <dewar@adacore.com>
2195
2196         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
2197         (makes a difference for wide characters)
2198
2199         * widechar.adb, widechar.ads:
2200         Add Wide_Char_Byte_Count feature to count chars vs bytes
2201
2202 2005-09-01  Thomas Quinot  <quinot@adacore.com>
2203             Ed Schonberg  <schonberg@adacore.com>
2204             Robert Dewar  <dewar@adacore.com>
2205
2206         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
2207         'Address attribute reference with an overloaded prefix, use the
2208         location of the prefix (not the location of the attribute reference) as
2209         the error location.
2210         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
2211         a function renaming thereof, is a valid prefix for 'Size (where it is
2212         intepreted as a function call).
2213         (Statically_Denotes_Entity): New predicate to determine whether the
2214         prefix of an array attribute can be considered static.
2215
2216         PR ada/9087
2217         (Eval_Attr): Fix failure to evaluate Component_Size for
2218         unconstrained arrays (resulted in wrong value in packed case, since
2219         back end cannot handle this case)
2220
2221 2005-09-01  Robert Dewar  <dewar@adacore.com>
2222
2223         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
2224         error msgs for most common cases.
2225         Use new errout insertion char < (conditional warning)
2226
2227 2005-09-01  Javier Miranda  <miranda@adacore.com>
2228             Ed Schonberg  <schonberg@adacore.com>
2229
2230         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
2231         become local to the whole package.
2232         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
2233         the package was already analyzed the new algorithm "replaces" the
2234         real entities by the shadow ones. This is required to ensure that
2235         the order of these entities in the homonym chains does not change;
2236         otherwise we can have undefined references at linking time because
2237         in case of conflicts the external name of the entities will have
2238         a suffix that depends on the order of the entities in the chain.
2239         (Remove_Limited_With_Clause): Complementary code that completes the
2240         new algorithm and replaces the shadow entities by the real ones.
2241         (Install_Limited_Withed_Unit): When unchaining entities before the
2242         installation of the shadow entities, only regular entities of the
2243         public part must be taken into account. This is required to
2244         keep this routine in synch with the work done by Remove_Limited_
2245         With_Clause
2246         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
2247         even if unit is analyzed, because the analysis of the unit is
2248         idempotent in any case, and the limited view of the unit may have to
2249         be installed for proper visibility.
2250         (Expand_Limited_With_Clause): Even if the unit in the implicit
2251         with_clause has been analyzed already, a limited view of the package
2252         must be built for the current context, if it does not exist yet.
2253
2254 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2255             Javier Miranda  <miranda@adacore.com>
2256             Gary Dismukes  <dismukes@adacore.com>
2257
2258         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
2259         defining entity for the instance body, make a new defining identifier
2260         rather than copying the entity of the spec, to prevent accidental
2261         sharing of the entity list.
2262         (Check_Private_View): When exchanging views of private types, build the
2263         list of exchanged views as a stack, to ensure that on exit the exchanges
2264         are undone in the proper order.
2265         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
2266         Restore the compilation environment in case of instantiation_error.
2267         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
2268         for an anonymous access result.
2269         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
2270         (Formal_Entity): Handle properly the case of a formal package that
2271         denotes a generic package renaming.
2272
2273 2005-09-01  Thomas Quinot  <quinot@adacore.com>
2274
2275         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
2276         clause if the array aggregate is surrounded by parentheses.
2277
2278 2005-09-01  Cyrille Comar  <comar@adacore.com>
2279             Gary Dismukes  <dismukes@adacore.com>
2280             Ed Schonberg  <schonberg@adacore.com>
2281             Javier Miranda  <miranda@adacore.com>
2282
2283         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
2284         underlying type
2285         to check if a type is Constrained in cases related to code generation
2286         (rather than semantic checking) since otherwise we do not generate
2287         similar code for mutable private types depending if their
2288         discriminants are visible or not.
2289         (Check_Abstract_Overriding): Do not complain about failure to override
2290         the primitive operations used in dispatching selects since they will
2291         always be overriden at the freeze point of the type.
2292         (Access_Definition): Separate out handling for resetting the scope
2293         of an anonymous access function result type. Retrieve the scope
2294         of the associated function rather than using Current_Scope, which
2295         does not have a consistent value (depends on whether we're in the
2296         middle of analyzing formal parameters). Add ??? comment about
2297         finding a cleaner way to handle the special cases of scope setting.
2298         (Process_Incomplete_Dependents): A protected operation is never a
2299         dispatching operation (only its wrapper may be).
2300         (Build_Derived_Record_Type): In case of tagged private types that
2301         implement interfaces add derivation of predefined primitive
2302         operations.
2303         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
2304         by two parameters that are used in case of derivation from abstract
2305         interface types: No_Predefined_Prims is used to avoid the derivation
2306         of predefined primitives from the interface, and Predefined
2307         Prims_Only is used to complete the derivation predefined primitives
2308         in case of private tagged types implementing interfaces.
2309         Fix typo in comments
2310         (Find_Interface_In_Descendant): Protect the frontend against
2311         wrong code with large circularity chains.
2312         (Is_Private_Overriding): Add support for entities overriding interface
2313         subprograms. The test failed because Entities associated with overriden
2314         interface subprograms are always marked as hidden (and used to build
2315         the secondary dispatch table); in this case the overriden entity is
2316         available through the field abstract_interface_alias (cf. override_
2317         dispatching_operation)
2318         (Access_Definition): Set the scope of the type to Current_Scope for the
2319         case of a function with an anonymous access result type.
2320         (Access_Subprogram_Declaration): Handle creation of the type entity for
2321         an access-to-function type with an anonymous access result.
2322         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
2323         in handling for N_Access_Function_Definition.
2324         (Analyze_Subtype_Declaration): Modify the text of error message.
2325         (Derived_Type_Declaration): Modify the text of error message.
2326         (Process_Subtype): Modify the text of error message plus cleanup
2327         of one redundant error message.
2328         (Analyze_Component_Declaration): Code cleanup.
2329         (Analyze_Object_Declaration): Code cleanup.
2330         (Analyze_Subtype_Declaration): Propagate the null-exclusion
2331         attribute in case of access types. Code cleanup.
2332         (Array_Type_Declaration): Code cleanup.
2333         (Process_Discriminants): Create the new null-excluding itype
2334         if required. Code cleanup.
2335         (Process_Subtype): Create the new null-excluding itype if
2336         required. Code cleanup.
2337         (Build_Derived_Record_Type): Code cleanup to avoid calling
2338         twice the subprogram derive_subprograms in case of private
2339         types that implement interfaces. In this particular case the
2340         subprogram Complete_Subprograms_Derivation already does the
2341         job associated with the second call.
2342
2343         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
2344         conversion to the full view when generating an operation for a
2345         discriminant whose type may currently be private.
2346
2347 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2348             Javier Miranda  <miranda@adacore.com>
2349
2350         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
2351         V (Obj.F), the rewriting does not involve the indexed component, but
2352         only the selected component itself.
2353         Do not apply the transformation if the analyzed node is an actual of a
2354         call to another subprogram.
2355         (Complete_Object_Operation): Retain the entity of the
2356         dispatching operation in the selector of the rewritten node. The
2357         entity will be used in the expansion of dispatching selects.
2358         (Analyze_One_Call): Improve location of the error message associated
2359         with interface.
2360         (Analyze_Selected_Component): No need to resolve prefix when it is a
2361         function call, resolution is done when parent node is resolved, as
2362         usual.
2363         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
2364         when attempting to resolve a call transformed from its object notation.
2365         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
2366         of the argument list for each interpretation of the operation.
2367         (Try_Object_Operation): The designated type of an access parameter may
2368         be an incomplete type obtained through a limited_with clause, in which
2369         case the primitive operations of the type are retrieved from its full
2370         view.
2371         (Analyze_Call): If this is an indirect call, and the return type of the
2372         access_to_subprogram is incomplete, use its full view if available.
2373
2374 2005-09-01  Javier Miranda  <miranda@adacore.com>
2375             Gary Dismukes  <dismukes@adacore.com>
2376
2377         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
2378         access types the null-exclusion and access-to-constant attributes must
2379         also match.
2380         (Analyze_Return_Statement): When the result type is an anonymous access
2381         type, apply a conversion of the return expression to the access type
2382         to ensure that appropriate accessibility checks are performed.
2383         (Analyze_Return_Type): For the case of an anonymous access result type,
2384         generate the Itype and set Is_Local_Anonymous_Access on the type.
2385         Add ??? placeholder for check to disallow returning a limited object
2386         in Ada 2005 unless it's an aggregate or a result of a function call.
2387         Change calls from Subtype_Mark to Result_Definition.
2388         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
2389         Result_Definition in call to Make_Function_Specification.
2390         (Build_Body_To_Inline): Change Set_Subtype_Mark to
2391         Set_Result_Definition.
2392         (Make_Inequality_Operator): Change formal Subtype_Mark to
2393         Result_Definition in call to Make_Function_Specification.
2394         (Process_Formals): Create the new null-excluding itype if required.
2395         (New_Overloaded_Entity): For an entity overriding an interface primitive
2396         check if the entity also covers other abstract subprograms in the same
2397         scope. This is required to handle the general case, that is, overriding
2398         other interface primitives and overriding abstract subprograms inherited
2399         from some abstract ancestor type.
2400         (New_Overloaded_Entity): For an overriding entity that comes from
2401         source, note the operation that it overrides.
2402         (Check_Conformance, Type_Conformant): Addition of one new formal
2403         to skip controlling formals in the analysis. This is used to
2404         handle overloading of abstract interfaces.
2405         (Base_Types_Match): Add missing case for types imported from
2406         limited-with clauses
2407         (New_Overloaded_Entity): Add barrier to protect the use of
2408         the "alias" attribute.
2409
2410 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2411
2412         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
2413         verify that the procedure and the entry are mode conformant.
2414         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
2415         as a different operator, which is often a cut-and-paste error.
2416
2417 2005-09-01  Javier Miranda  <miranda@adacore.com>
2418             Ed Schonberg  <schonberg@adacore.com>
2419
2420         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
2421         used in controlling parameters exclude null because it is necessary to
2422         read the tag to dispatch, and null has no tag.
2423         (Override_Dispatching_Operation): If the previous operation is inherited
2424         from an interface, it becomes hidden  and does not participate in later
2425         name resolution.
2426
2427 2005-09-01  Javier Miranda  <miranda@adacore.com>
2428             Ed Schonberg  <schonberg@adacore.com>
2429             Gary Dismukes  <dismukes@adacore.com>
2430
2431         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
2432         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
2433         the expander will generate the corresponding run-time check to evaluate
2434         the expression.
2435         (Resolve_Call): Check for legal type of procedure name or prefix that
2436         appears as a trigger in a triggering alternative.
2437         (Valid_Conversion): If expression is ambiguous and the context involves
2438         an extension of System, remove System.Address interpretations.
2439         (Resolve_Qualified_Expression): Reject the case of a specific-type
2440         qualification applied to a class-wide argument. Enhance comment
2441         to explain checking of Original_Node.
2442         (Resolve_Type_Conversion): The location of the error message was not
2443         general enough to handle the general case and hence it has been removed.
2444         In addition, this patch improves the text of the message.
2445         (Resolve_Type_Conversion): Add missing support for access to interface
2446         types.
2447         (Resolve_Type_Conversion): If the target is a class-wide interface type,
2448         do not expand if the expression is the actual in a call, because proper
2449         expansion will take place when the call itself is expanded.
2450         (Resolve_Allocator): If the context is an unchecked conversion, the
2451         allocator inherits its storage pool, if any, from the target type of
2452         the conversion.
2453
2454 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2455             Javier Miranda  <miranda@adacore.com>
2456
2457         * sem_type.adb (Add_One_Interp): If a candidate operation is an
2458         inherited interface operation that has an implementation, use the
2459         implementation to avoid spurious ambiguities.
2460         (Interface_Present_In_Ancestor): In case of concurrent types we can't
2461         use the Corresponding_Record_Typ attribute to look for the interface
2462         because it is set by the expander (and hence it is not always
2463         available). For this reason we traverse the list of interfaces
2464         (available in the parent of the concurrent type).
2465         (Interface_Present_In_Ancestor): Handle entities from the limited view
2466
2467 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2468
2469         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
2470         from the list of required components.
2471         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
2472         primitive procedure of a limited interface with a controlling first
2473         parameter.
2474         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
2475         of an entry.
2476         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
2477         capture if it is generated in the second operand of a short-circuit
2478         operation.
2479         Do not capture values for variables with address clauses.
2480         (Is_Object_Reference): Treat a function call as an object reference only
2481         if its type is not Standard_Void_Type.
2482
2483 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2484
2485         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
2486         to a variable that is statically known to be constant.
2487
2488 2005-09-01  Geert Bosch  <bosch@adacore.com>
2489             Robert Dewar  <dewar@adacore.com>
2490
2491         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
2492         (VAXGF_Safe_First): Idem.
2493
2494 2005-09-01  Robert Dewar  <dewar@adacore.com>
2495             Arnaud Charlet  <charlet@adacore.com>
2496
2497         * g-dirope.ads: Minor reformatting
2498         Document that bounds of result of Base_Name match the input index
2499         positions.
2500         Add documentation on environment variable syntax for Expand_Path
2501
2502         * gnat_ugn.texi: Update documentation to include mention of -m switches
2503         Document new treatment of wide characters in max line length
2504         style check.
2505         Remove -gnatL/-gnatZ switches, no longer used.
2506         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
2507         of -gnata switch.
2508
2509         * gnat_rm.texi: Add doc for two argument form of pragma
2510         Float_Representation.
2511         Add documentation for pragma No_Strict_Aliasing
2512         Add note that explicit component clause overrides pragma Pack.
2513         Add documentation of pragma Debug_Policy
2514
2515 2005-09-01  Matthew Heaney  <heaney@adacore.com>
2516
2517         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
2518         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
2519         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
2520         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
2521         draft (Draft 13, August 2005) of Ada Amendment 1.
2522
2523 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
2524
2525         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
2526         Note that the platform-specific version of g-soccon.ads for VMS is now
2527         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
2528         really is a package spec).
2529         Replace s-taspri-linux.ads by s-taspri-posix.ads
2530         Remove references to s-mastop-x86.adb
2531
2532         * system-vxworks-xscale.ads: Removed, no longer used.
2533         * s-vxwork-xscale.ads: Removed, no longer used.
2534
2535 2005-09-01  Robert Dewar  <dewar@adacore.com>
2536
2537         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
2538         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
2539         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
2540         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
2541         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
2542         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
2543         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
2544         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
2545         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
2546         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
2547         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
2548         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
2549         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
2550         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
2551         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
2552         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
2553         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
2554         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
2555         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
2556         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
2557         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
2558
2559 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
2560
2561         PR ada/23187
2562         * adaint.c
2563         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
2564
2565 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
2566             Doug Rupp  <rupp@adacore.com>
2567
2568         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
2569         when needed.
2570         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
2571         this code in the GNAT run-time.
2572
2573         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
2574
2575         PR ada/21053
2576         * init.c (__gnat_error_handler [many]): Mark "msg" as const
2577         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
2578
2579         (__gnat_inside_elab_final_code): Moved here from
2580         Standard_Library and only defined for the compiler.
2581         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
2582         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
2583         using RTPs because directly vectored Interrupt routines are not
2584         supported on this configuration.
2585         (getpid): Do not redefine this function on VxWorks when using RTPs
2586         because this primitive is well supported by the RTP libraries.
2587         (copy_msg): Correct the code that checks for buffer overflow.
2588         Discovered during code reading.
2589
2590 2005-08-29  Olivier Hainque  <hainque@adacore.com>
2591
2592         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
2593         a library level mutable variable with an initializer, tell
2594         build_allocator to ignore the initializer's size. It may not be large
2595         enough for all the values that might be assigned to the variable later
2596         on.
2597
2598 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
2599             Eric Botcazou  <ebotcazou@adacore.com>
2600
2601         * trans.c: Protect < in error msg with quote
2602         Replace GCC_ZCX by Back_End_Exceptions.
2603         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
2604         has been sufficiently aligned in the record.
2605
2606 2005-08-15  James E. Wilson  <wilson@specifix.com>
2607
2608         * system-linux-alpha.ads: Change ia64 to alpha.
2609
2610 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
2611
2612         * decl.c, utils.c: Fix comment typos.
2613
2614 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
2615
2616         * decl.c, init.c, initialize.c: Fix comment typos.
2617
2618 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2619
2620         Make CONSTRUCTOR use VEC to store initializers.
2621         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
2622         CONSTRUCTOR_ELTS.
2623         * trans.c (extract_values): Likewise.
2624         * utils.c (convert, remove_conversions): Likewise.
2625         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
2626         gnat_build_constructor): Likewise.
2627
2628 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
2629
2630         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
2631         DECL_SECTION_NAME.
2632         (compare_field_bitpos): Likewise.
2633
2634 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
2635
2636         * utils.c (create_var_decl): Only set DECL_COMMON on
2637         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
2638         VAR_OR_FUNCTION_DECL_P.
2639
2640 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2641
2642         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
2643         removed.
2644
2645 2005-07-07  Pascal Obry  <obry@adacore.com>
2646
2647         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
2648         returned type on Windows.
2649
2650         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
2651         routine.
2652
2653         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
2654         exception in this case.
2655         Simplify the code as "Image (Image'Range)" = "Image".
2656
2657 2005-07-07  Vincent Celier  <celier@adacore.com>
2658
2659         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
2660         the destructor/constructor attributes for <lib>final/<lib>init.
2661
2662         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
2663
2664 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2665
2666         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
2667         type if the parameter is not passed by copy but reference by default.
2668
2669 2005-07-07  Javier Miranda  <miranda@adacore.com>
2670
2671         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
2672         Reimplementation of the support for abstract interface types in order
2673         to leave the code more clear and easy to maintain.
2674
2675         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
2676         abstract interface types in order to leave the code clearer and easier
2677         to maintain.
2678
2679         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
2680         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
2681         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
2682         appropriate entry of the secondary dispatch table.
2683         (Make_DT): Add code to inherit the secondary dispatch tables of
2684         the ancestors.
2685
2686         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
2687         implementing both functionalities by means of a common routine, each
2688         routine has its own code.
2689
2690 2005-07-07  Javier Miranda  <miranda@adacore.com>
2691
2692         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
2693
2694         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
2695         types:
2696         --
2697           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
2698         --
2699
2700         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
2701         use of tag incomplete types.
2702
2703         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
2704         give support to tagged incomplete types.
2705
2706         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
2707         expression is a discriminant reference and its type is private, as can
2708         happen within a stream operation for a mutable record, use the full
2709         view of the type to resolve the case alternatives.
2710         (Analyze_Assignment): Check wrong dereference of incomplete types.
2711
2712         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
2713         types.
2714
2715         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
2716         incomplete types.
2717
2718         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
2719         N_Incomplete_Type_Declaration nodes.
2720
2721         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
2722         Tag_Present to give support to tagged incomplete types:
2723         --
2724           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
2725         --
2726
2727 2005-07-07  Olivier Hainque  <hainque@adacore.com>
2728
2729         PR ada/22301
2730
2731         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
2732         definitions for the Unwind wrappers in the compiler case.
2733
2734 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
2735             Javier Miranda  <miranda@adacore.com>
2736
2737         * par-load.adb (Load): If a child unit is loaded through a limited_with
2738         clause, each parent must be loaded as a limited unit as well.
2739
2740         * sem_ch10.adb (Previous_Withed_Unit): Better name for
2741         Check_Withed_Unit. Return true if there is a previous with_clause for
2742         this unit, whether limited or not.
2743         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
2744         the current unit.
2745         (Is_Visible_Through_Renamings): New local subprogram of install_limited
2746         _withed_unit that checks if some package installed through normal with
2747         clauses has a renaming declaration of package whose limited-view is
2748         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
2749         of the current Draft document for Ada 2005.
2750         (Analyze_Context): Complete the list of compilation units that
2751         are allowed to contain limited-with clauses. It also contains
2752         checks that were previously done by Install_Limited_Context_Clauses.
2753         This makes the code more clear and easy to maintain.
2754         (Expand_Limited_With_Clause) It is now a local subprogram of
2755         Install_Limited_Context_Clauses, and contains the code that adds
2756         the implicit limited-with clauses for parents of child units.
2757         This functionality was prevously done by Analyze_Context.
2758
2759         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
2760         incomplete type.
2761
2762         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
2763         been erroneously named in a limited-with clause of its own context.
2764         In this case the error has been previously notified by Analyze_Context.
2765
2766 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
2767
2768         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
2769         generic package that contains local declarations with the same name.
2770         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
2771
2772 2005-07-07  Bernard Banner  <banner@adacore.com>
2773
2774         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
2775         ia64 platform only on platforms that you the GCC unwind library
2776         rather than the system unwind library.
2777
2778 2005-07-07  Thomas Quinot  <quinot@adacore.com>
2779
2780         * expect.c: Minor reformatting
2781
2782 2005-07-07  Sergey Rybin  <rybin@adacore.com>
2783
2784         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
2785         --no-separate-is
2786
2787         * gnat_ugn.texi: Add description for new gnatpp option
2788         (--no-separate-is)
2789
2790 2005-07-04  Thomas Quinot  <quinot@adacore.com>
2791
2792         * g-expect-vms.adb, g-expect.ads, g-expect.adb
2793         (Get_Command_Output): New subprogram to launch a process and get its
2794         standard output as a string.
2795
2796 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
2797             Olivier Hainque  <hainque@adacore.com>
2798
2799         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
2800         fetch a code-range descriptor associated with the machine state. On
2801         failure set the machine state's PC to 0; on success, pass the
2802         descriptor to exc_virtual_unwind.
2803
2804         * init.c (Tru64 section): New function __gnat_set_code_loc.
2805
2806 2005-07-04  Vincent Celier  <celier@adacore.com>
2807
2808         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2809         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
2810         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
2811         Remove all auto-initialization code, as this is now done through the
2812         constructor mechanism.
2813
2814         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
2815         __gnat_sals_init_using_constructors): New functions.
2816
2817         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
2818         Linker_Constructor and Linker_Destructor when switch -a is used.
2819
2820         * bindusg.adb: Add line for new switch -a
2821
2822         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
2823         (Gnatbind): When switch -a is used, check if it is allowed
2824
2825         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
2826
2827 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
2828
2829         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
2830         This prevents us from hitting a limitation during the debug info
2831         generation when using stabs.
2832         (Prims_Ptr): Likewise.
2833
2834 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
2835             Ed Schonberg  <schonberg@adacore.com>
2836             Javier Miranda  <miranda@adacore.com>
2837
2838         * checks.adb (Null_Exclusion_Static_Checks): In the case of
2839         N_Object_Declaration, only perform the checks if the Object_Definition
2840         is not an Access_Definition.
2841
2842         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
2843         where the parent of an the access definition is an N_Object_Declaration
2844         when determining the Associated_Node_For_Itype and scope of an
2845         anonymous access-to-subprogram type.
2846
2847         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
2848         Corresponding_Spec on the body created for a null procedure. Add ???
2849         comment. Remove New_Copy_Tree call on body argument to
2850         Set_Body_To_Inline.
2851
2852         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
2853         discriminants, use the type of the actual as well, because the
2854         discriminants may be read by the called subprogram.
2855
2856         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
2857         access type we do not need to handle non-limited views.
2858         (Build_Derived_Record_Type): Additional check to check that in case of
2859         private types, interfaces are only allowed in private extensions.
2860
2861 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
2862
2863         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
2864         <Pragma_Linker_Destructor>: Likewise.
2865
2866         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
2867         Pragma_Linker_Destructor.
2868
2869         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
2870         ATTR_LINK_DESTRUCTOR.
2871         (static_ctors, static_dtors): New variables.
2872
2873         * misc.c (gnat_expand_body): Output current function as constructor
2874         and destructor if requested.
2875
2876         * par-prag.adb: Add processing for pragma Linker_Constructor and
2877         Linker_Destructor.
2878
2879         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
2880         extracted from Check_Interrupt_Or_Attach_Handler.
2881         (Check_Interrupt_Or_Attach_Handler): Invoke it.
2882         Implement pragma Linker_Constructor and Linker_Destructor with the
2883         help of Find_Unique_Parameterless_Procedure.
2884         Replace Name_Alias with Name_Target for pragma Linker_Alias.
2885
2886         * snames.h, snames.ads, snames.adb:
2887         Add Name_Linker_Constructor and Name_Linker_Destructor.
2888         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
2889         * snames.adb: Remove Name_Alias.
2890
2891         * trans.c: Include cgraph.h.
2892         (build_global_cdtor): New function.
2893         (Compilation_Unit_to_gnu): Build global constructor and destructor if
2894         needed.
2895         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
2896         of objects too.
2897         (addressable_p) <COMPONENT_REF>: Unconditionally test
2898         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
2899
2900         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
2901         variable if it is external.
2902
2903         (static_ctors, static_dtors): New global variables.
2904         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
2905         <ATTR_LINK_DESTRUCTOR>: Likewise.
2906         (end_subprog_body): Chain function as constructor and destructor
2907         if requested.
2908
2909         * exp_util.adb (Force_Evaluation): Unconditionally invoke
2910         Remove_Side_Effects with Variable_Ref set to true.
2911         (Remove_Side_Effects): Handle scalar types first. Use a renaming
2912         for non-scalar types even if Variable_Ref is true and for class-wide
2913         expressions.
2914
2915 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
2916
2917         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
2918         to prevent spurious warnings.
2919
2920 2005-07-04  Thomas Quinot  <quinot@adacore.com>
2921
2922         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
2923         Itypes. Itypes are really unexpected there.
2924         (Build_TypeCode_Function): Generalise special processing for Itypes to
2925         handle the case of numeric implicit base types as well as enumerated
2926         ones.
2927
2928 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
2929
2930         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
2931         controlled, indicate the expected type of the dereference that is
2932         created for the call to Deep_Finalize, to prevent spurious errors when
2933         the designated type is private and completed with a derivation from
2934         another private type.
2935
2936 2005-07-04  Vincent Celier  <celier@adacore.com>
2937
2938         * make.adb (Change_To_Object_Directory): When unable to change the
2939         current dir to the object directory, output the full path of the
2940         directory.
2941
2942 2005-07-04  Matthew Gingell  <gingell@adacore.com>
2943
2944         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
2945
2946         * indepsw-linux.adb: Replace by...
2947
2948         * indepsw-gnu.adb: ...this new file
2949
2950 2005-07-04  Vincent Celier  <celier@adacore.com>
2951
2952         * mlib-prj.adb (Auto_Initialize): New constant String
2953         (SALs_Use_Constructors): New Boolean function
2954         (Build_Library): Call gnatbind with Auto_Initialize switch when
2955         SALs_Use_Constructors returns True.
2956
2957         * mlib-tgt.ads: Minor reformatting
2958
2959         * mlib-utl.ads: Minor reformatting
2960
2961         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
2962
2963 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
2964
2965         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
2966         single protected declarations can have an interface list.
2967         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
2968         with seriously malformed entry declarations, and lead to compilation
2969         abandoned messages.
2970
2971 2005-07-04  Javier Miranda  <miranda@adacore.com>
2972
2973         * par-load.adb: Load the context items in two rounds.
2974
2975 2005-07-04  Robert Dewar  <dewar@adacore.com>
2976
2977         * scng.adb: Do not consider Mod used as an attribute to be a keyword
2978
2979 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
2980             Javier Miranda  <miranda@adacore.com>
2981
2982         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
2983         type extension needs a limited view.
2984         Remove previous restriction on private types available through the
2985         limited-view (only tagged private types were previously allowed).
2986         (Install_Withed_Unit): In the code that implements the
2987         legality rule given in AI-377, exclude a child unit with the name
2988         Standard, because it is a homonym of the Standard environment package.
2989
2990 2005-07-04  Thomas Quinot  <quinot@adacore.com>
2991
2992         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
2993         overloaded function call, carry interpretations from the original tree
2994         to the copy.
2995
2996 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
2997
2998         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
2999         types check whether some designated type is a limited view, and use
3000         the non-limited view if available.
3001
3002 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
3003
3004         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
3005         constraint of full view of a private view T1 if present, when T2 is a
3006         discriminated full view.
3007
3008 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3009
3010         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
3011         actual that is a view conversion of a bit packed array reference.
3012
3013 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3014
3015         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
3016         present before checking whether an interface type covers a synchronized
3017         type.
3018
3019 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3020
3021         * sem_util.adb (Is_Object_Reference): An indexed or selected component
3022         whose prefix is an implicit dereference is an object reference. Removes
3023         spurious errors when compiling with -gnatc.
3024
3025 2005-07-04  Robert Dewar  <dewar@adacore.com>
3026
3027         PR ada/22039
3028
3029         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
3030
3031 2005-07-04  Matthew Gingell  <gingell@adacore.com>
3032
3033         * tracebak.c: Enable tracebacks on ia64 platforms
3034
3035 2005-07-04  Vincent Celier  <celier@adacore.com>
3036
3037         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
3038         the GNAT BIND command, as gnatbind accepts multiples ALI files with
3039         the -L or -n switches.
3040
3041 2005-07-04  Vincent Celier  <celier@adacore.com>
3042
3043         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
3044         correctly computed and the main project data is not modified while
3045         doing so.
3046         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
3047         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
3048         c++linker as this does not work on some platforms.
3049
3050 2005-07-04  Matthew Heaney  <heaney@adacore.com>
3051
3052         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
3053         was changed.
3054         * a-coinve.adb: Perform constraint checks explicitly.
3055
3056 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3057             Thomas Quinot  <quinot@adacore.com>
3058
3059         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
3060         new target gen-soccon.
3061
3062 2005-07-04  Robert Dewar  <dewar@adacore.com>
3063
3064         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
3065
3066 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3067
3068         * g-socket.ads (Check_Selector): Minor rewording of comment.
3069
3070 2005-07-04  Vincent Celier  <celier@adacore.com>
3071
3072         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
3073
3074 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3075
3076         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
3077
3078 2005-07-04  Sergey Rybin  <rybin@adacore.com>
3079
3080         * gnat_ugn.texi: Add description of --eol gnatpp option
3081
3082 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3083             Thomas Quinot  <quinot@adacore.com>
3084
3085         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
3086         if the user wants all calls of a subprogram to be flagged,
3087         independently of whether they are made from within the same unit or
3088         another unit.
3089         Mention restriction for pragma Linker_Alias on some platforms.
3090         Document pragma Linker_Constructor and Linker_Destructor.
3091         Rewrite documentation of Weak_External, Linker_Section and
3092         Linker_Alias pragmas.
3093
3094 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
3095
3096         * s-stausa.ads, s-stausa.adb: New files.
3097
3098 2005-06-30  Kelley Cook
3099
3100         * all files:  Update FSF address in copyright headers.
3101         * gen-soccon.co (main): Output new FSF address in generated files.
3102
3103 2005-06-28  Paul Brook  <paul@codesourcery.com>
3104
3105         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
3106
3107 2005-06-14  Olivier Hainque  <hainque@adacore.com>
3108             Eric Botcazou  <ebotcazou@adacore.com>
3109
3110         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
3111         exc_unwind, now that we are generating proper .debug_frame output for
3112         that target.
3113
3114         * tracebak.c: Remove the mips-irix section, as we are now using the
3115         s-mastop based unwinder again.
3116         Under SPARC/Solaris, take into account the stack bias to compute the
3117         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
3118         ABI.
3119
3120 2005-06-14  Doug Rupp  <rupp@adacore.com>
3121
3122         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
3123
3124         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
3125
3126 2005-06-14  Pascal Obry  <obry@adacore.com>
3127
3128         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
3129         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
3130         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
3131         package name).
3132
3133         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
3134         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
3135         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
3136         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
3137         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
3138         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
3139         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
3140         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
3141         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
3142         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
3143         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
3144         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
3145         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
3146         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
3147         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
3148         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
3149         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
3150         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
3151         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
3152         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
3153         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
3154         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
3155         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
3156         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
3157         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
3158         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
3159         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
3160         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
3161         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
3162         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
3163         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
3164         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
3165         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
3166         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
3167         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
3168         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
3169         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
3170         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
3171         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
3172         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
3173         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
3174         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
3175         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
3176         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
3177         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
3178         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
3179         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
3180         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
3181         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
3182         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
3183         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
3184         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
3185         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
3186         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
3187         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
3188         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
3189         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
3190         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
3191         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
3192         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
3193         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
3194         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
3195         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
3196         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
3197         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
3198         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
3199         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
3200         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
3201         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
3202         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
3203         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
3204         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
3205         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
3206         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
3207         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
3208         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
3209         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
3210         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
3211         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
3212         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
3213         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
3214         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
3215         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,