OSDN Git Service

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