1 2005-11-19 Richard Guenther <rguenther@suse.de>
2 Roger Sayle <roger@eyesopen.com>
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.
9 2005-11-18 Laurent GUERBY <laurent@guerby.net>
12 * Makefile.in: Use s-auxdec-empty for RTEMS.
14 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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.
22 2005-11-17 Laurent GUERBY <laurent@guerby.net>
25 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
27 2005-11-16 Richard Guenther <rguenther@suse.de>
29 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
31 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
34 * raise-gcc.c: Add missing stdarg.h include.
36 2005-11-16 Richard Guenther <rguenther@suse.de>
38 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
39 (ada/misc.o): Likewise.
41 2005-11-14 Thomas Quinot <quinot@adacore.com>
43 * g-soccon.ads: Minor reformatting. Update comments.
45 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
46 gain visibility on the declaration of struct timeval.
48 * g-soccon-freebsd.ads,
57 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
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.
64 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
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
73 * g-socthi-vxworks.adb: Add error handling circuitry.
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
80 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
81 Send_Timeout, Receive_Timeout.
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
89 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
90 hosts database last error code.
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.
98 2005-11-14 Robert Dewar <dewar@adacore.com>
99 Ed Schonberg <schonberg@adacore.com>
103 * types.ads: Include All_Checks in Suppress_Array
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
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
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.
128 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
129 to be used with packages and generic packages as well as with
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
138 * sem_prag.ads: Minor reformatting
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.
150 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
153 * s-taprop-solaris.adb:
154 Change some <= to =, to avoid new warning
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)
160 2005-11-14 Robert Dewar <dewar@adacore.com>
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.
166 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
168 2005-11-14 Matthew Gingell <gingell@adacore.com>
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.
175 2005-11-14 Vincent Celier <celier@adacore.com>
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
184 2005-11-14 Doug Rupp <rupp@adacore.com>
186 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
189 2005-11-14 Arnaud Charlet <charlet@adacore.com>
191 * s-traces-default.adb, s-trafor-default.ads,
192 s-tratas-default.adb: Fix compilation errors.
194 2005-11-14 Jose Ruiz <ruiz@adacore.com>
196 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
197 raising the exception so the memory used is freed.
199 2005-11-14 Arnaud Charlet <charlet@adacore.com>
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.
205 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
208 2005-11-14 Pascal Obry <obry@adacore.com>
209 Vincent Celier <celier@adacore.com>
211 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
214 * memroot.adb: Remove redundant with/use clause on
215 System.Storage_Elements.
217 2005-11-14 Arnaud Charlet <charlet@adacore.com>
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
224 (Raise_Current_Excep): Add new variable Id with pragma
225 volatile, to ensure that the variable lives on stack.
227 * a-exexpr-gcc.adb, raise-gcc.c: New file.
229 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
231 Move GCC EH related code to a-exexpr-gcc.adb
233 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
235 Split the Linux version of g-soccon into separate variants for 32 and 64
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.
253 * raise.c: Move all GCC EH-related routines to raise-gcc.c
255 2005-11-14 Jose Ruiz <ruiz@adacore.com>
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
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
264 2005-11-14 Thomas Quinot <quinot@adacore.com>
265 Olivier Hainque <hainque@adacore.com>
266 Eric Botcazou <ebotcazou@adacore.com>
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
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
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
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.
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.
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.
335 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
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.
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.
354 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
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.
373 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
375 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
377 2005-11-14 Matthew Heaney <heaney@adacore.com>
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.
388 2005-11-14 Olivier Hainque <hainque@adacore.com>
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.
394 2005-11-14 Matthew Gingell <gingell@adacore.com>
395 Olivier Hainque <hainque@adacore.com>
397 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
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.
406 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
407 Javier Miranda <miranda@adacore.com>
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.
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
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.
424 2005-11-14 Emmanuel Briot <briot@adacore.com>
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
430 2005-11-14 Vincent Celier <celier@adacore.com>
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
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
443 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
444 (Set_Ada_Paths.Add.Recursive_Add): Ditto
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.
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
462 * prj-attr.adb: New project level attribute name Library_ALI_Dir
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.
471 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
474 2005-11-14 Robert Dewar <dewar@adacore.com>
475 Ed Schonberg <schonberg@adacore.com>
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
482 (Activate_Elaborate_All_Desirable): New procedure
484 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
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.
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
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)
500 * debug.adb: Introduce d.f flag for compiler
501 Add -da switch for binder
503 2005-11-14 Ed Schonberg <schonberg@adacore.com>
504 Cyrille Comar <comar@adacore.com>
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
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.
519 2005-11-14 Robert Dewar <dewar@adacore.com>
520 Hristian Kirtchev <kirtchev@adacore.com>
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.
530 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
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
537 * exp_attr.adb: Implement Machine_Rounding attribute
539 * snames.h: Add entry for Machine_Rounding attribute
541 2005-11-14 Javier Miranda <miranda@adacore.com>
542 Robert Dewar <dewar@adacore.com>
543 Hristian Kirtchev <kirtchev@adacore.com>
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
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.
566 * Makefile.rtl: Add new instantiations of system.fat_gen
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.
572 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
573 s-fvagfl.ads: New files.
575 2005-11-14 Cyrille Comar <comar@adacore.com>
576 Thomas Quinot <quinot@adacore.com>
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
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
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.
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.
597 2005-11-14 Thomas Quinot <quinot@adacore.com>
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.
603 2005-11-14 Pascal Obry <obry@adacore.com>
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.
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.
617 2005-11-14 Robert Dewar <dewar@adacore.com>
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)
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)
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.
632 2005-11-14 Thomas Quinot <quinot@adacore.com>
633 Robert Dewar <dewar@adacore.com>
634 Ed Schonberg <schonberg@adacore.com>
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
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.
647 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
650 2005-11-14 Javier Miranda <miranda@adacore.com>
652 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
653 Build_Stream_Procedure): Add the null-excluding attribute to the first
655 This has no semantic meaning under Ada95 mode but it is a
656 requirement under Ada05 mode.
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.
664 2005-11-14 Robert Dewar <dewar@adacore.com>
666 * impunit.adb: Exclude container helper units not intended for use by
669 2005-11-14 Ed Schonberg <schonberg@adacore.com>
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
675 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
676 subprogram whenever available.
678 2005-11-14 Arnaud Charlet <charlet@adacore.com>
681 * gnatvsn.ads (Library_Version): Bump to 4.1
683 2005-11-14 Robert Dewar <dewar@adacore.com>
685 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
686 Storage_Offset to avoid wrap around causing invalid results.
688 2005-11-14 Pascal Obry <obry@adacore.com>
690 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
692 (Scan_Bind_Arg): Fail with an error message if -M option is used
693 on a native compiler.
695 2005-11-14 Robert Dewar <dewar@adacore.com>
696 Vincent Celier <celier@adacore.com>
698 * gprep.adb: Implement -C switch to scan comments
700 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
702 * scans.ads: Comment updates (including new use of Tok_Comment in
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
710 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
712 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
714 2005-11-14 Arnaud Charlet <charlet@adacore.com>
716 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
719 2005-11-14 Robert Dewar <dewar@adacore.com>
721 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
723 2005-11-14 Doug Rupp <rupp@adacore.com>
725 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
727 2005-11-14 Robert Dewar <dewar@adacore.com>
729 * interfac.ads: Change declarations of IEEE float types so that we no
730 longer need a separate version of this package for VMS.
732 2005-11-14 Ed Schonberg <schonberg@adacore.com>
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
739 2005-11-14 Vincent Celier <celier@adacore.com>
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
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.
773 2005-11-14 GNAT Script <nobody@adacore.com>
775 * Make-lang.in: Makefile automatically updated
777 2005-11-14 Pascal Obry <obry@adacore.com>
779 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
781 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
782 In both cases the last argument was dropped.
784 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
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.
792 2005-11-14 Robert Dewar <dewar@adacore.com>
794 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
795 syntax, which could cause compiler hangs.
797 2005-11-14 Vincent Celier <celier@adacore.com>
799 * prj-ext.adb: Take into account new environment variable
800 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
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.
806 2005-11-14 Vincent Celier <celier@adacore.com>
808 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
809 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
811 2005-11-14 Emmanuel Briot <briot@adacore.com>
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.
817 * prj-tree.ads (String_Value_Of): Add comment about returned value for
818 a virtual extending project.
820 2005-11-14 Ed Schonberg <schonberg@adacore.com>
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.
828 2005-11-14 Robert Dewar <dewar@adacore.com>
829 Ed Schonberg <schonberg@adacore.com>
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
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
846 2005-11-14 Gary Dismukes <dismukes@adacore.com>
847 Ed Schonberg <schonberg@adacore.com>
848 Thomas Quinot <quinot@adacore.com>
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
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
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
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
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.
896 2005-11-14 Ed Schonberg <schonberg@adacore.com>
897 Javier Miranda <miranda@adacore.com>
899 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
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
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
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
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
932 (Access_Type_Declaration): Clean up declaration of malformed type
933 declared as an access to its own classwide type, to prevent cascaded
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.
944 2005-11-14 Javier Miranda <miranda@adacore.com>
945 Ed Schonberg <schonberg@adacore.com>
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
957 2005-11-14 Gary Dismukes <dismukes@adacore.com>
958 Ed Schonberg <schonberg@adacore.com>
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
973 2005-11-14 Ed Schonberg <schonberg@adacore.com>
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
989 (Analyze_Object_Renaming): An attribute reference is not a legal object
990 if it is not a function call.
992 2005-11-14 Robert Dewar <dewar@adacore.com>
993 Ed Schonberg <schonberg@adacore.com>
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,
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>
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.
1026 2005-11-14 Ed Schonberg <schonberg@adacore.com>
1027 Javier Miranda <miranda@adacore.com>
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.
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>
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.
1060 2005-11-14 Ed Schonberg <schonberg@adacore.com>
1061 Robert Dewar <dewar@adacore.com>
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
1069 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
1070 form with a string literal argument
1072 2005-11-14 Javier Miranda <miranda@adacore.com>
1074 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
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.
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.
1087 2005-11-14 Robert Dewar <dewar@adacore.com>
1089 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
1092 2005-11-14 Vincent Celier <celier@adacore.com>
1094 * switch.adb (Bad_Switch): New procedure
1095 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
1096 message when in error.
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
1102 (Bad_Switch): New procedure
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.
1109 2005-11-14 Vincent Celier <celier@adacore.com>
1111 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
1112 designates a non existent directory.
1114 2005-11-14 Robert Dewar <dewar@adacore.com>
1116 * xgnatugn.adb: Replace invalid membership test by 'Valid
1118 2005-11-14 Vincent Celier <celier@adacore.com>
1120 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
1121 there is no object directory.
1123 2005-11-14 Robert Dewar <dewar@adacore.com>
1125 * usage.adb: Minor adjustment to output format, use nn instead of nnn
1126 (so that -gnateInnn does not run into next column)
1128 2005-11-14 Ed Falis <falis@adacore.com>
1130 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
1133 2005-11-14 Cyrille Comar <comar@adacore.com>
1135 * s-chepoo.ads: Add comments on Dereference.
1136 Remove unnecessary inherited abstract primitives.
1139 2005-11-14 Robert Dewar <dewar@adacore.com>
1141 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
1142 node parameter, not needed, since it is available as Declaration_Node.
1144 2005-11-14 Geert Bosch <bosch@adacore.com>
1146 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
1147 grammatically correct.
1149 2005-11-14 Vincent Celier <celier@adacore.com>
1151 * s-fileio.ads: Correct spelling error in comment
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>
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
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
1202 * gnat-style.texi: Indicate that paragraphs within a single comment
1203 should be separated by empty comment lines
1205 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
1208 * bindusg.adb: Minor cleanup, put -m before -M for consistency
1210 2005-11-14 Robert Dewar <dewar@adacore.com>
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
1368 2005-11-14 Robert Dewar <dewar@adacore.com>
1371 * osint-m.adb: Add pragma Elaborate_All for Osint
1373 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
1376 * trans.c (call_to_gnu): Restore statement lost in translation.
1378 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
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.
1384 2005-11-03 James E Wilson <wilson@specifix.com>
1387 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1388 TREE_OVERFLOW check.
1390 2005-09-21 Olivier Hainque <hainque@adacore.com>
1393 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
1394 as we create them to store a size in bits.
1396 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
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.
1413 2005-09-16 Laurent GUERBY <laurent@guerby.net>
1416 * s-tpinop.ads: Make this unit Preelaborate.
1418 2005-09-16 Andreas Jaeger <aj@suse.de>
1420 * socket.c: Add string.h for memcpy.
1422 2005-09-05 Arnaud Charlet <charlet@adacore.com>
1424 * dec-io.ads, dec-io.adb: Removed, no longer used.
1426 2005-09-01 Arnaud Charlet <charlet@adacore.com>
1428 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
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.
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
1450 * s-traent-vms.ads, s-intman-dummy.adb,
1451 s-taprop-dummy.adb: Make this unit Preelaborate.
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.
1462 * s-taspri-linux.ads: Removed.
1464 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
1465 as done by other implementations (e.g. posix).
1467 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
1468 responsible for deferring abort.
1469 Mark this unit Preelaborate.
1471 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
1472 proper initialization of the tasking run-time.
1474 * s-tasdeb.ads: Mark this unit Preelaborate.
1475 (Known_Tasks): Add explicit default value to avoid elaboration code.
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.
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.
1485 * a-calend.adb: Add call to OS_Primitives.Initialize
1487 * a-elchha.adb: Update use of Except.Id.Full_Name.
1489 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
1491 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
1492 Move with clauses outside Warnings Off now that dependent units are
1494 Use raise xxx with "..."; Ada 2005 form.
1496 * a-taside.ads, a-taside.adb:
1497 Remove some dependencies, to make it easier to make this unit truly
1499 Rewrite some code to be conformant with Preelaborate rules.
1501 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
1502 marked Preelaborate in the future.
1504 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
1505 these units Preelaborate.
1507 * s-exctab.adb: Update use of Except.Id.Full_Name.
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.
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.
1520 * s-taskin.ads, s-taskin.adb:
1521 Move with clauses outside Warnings Off now that dependent units are
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.
1529 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
1530 soft links, no longer used.
1532 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
1533 packages are suitable for this categorization.
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
1540 Remove reference to *Machine_State_Addr*, no longer needed.
1542 2005-09-01 Arnaud Charlet <charlet@adacore.com>
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.
1548 * s-mastop-x86.adb: Removed, no longer used.
1550 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
1552 * a-excach.adb: Minor reformatting.
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
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
1565 Remove code related to front-end zero cost exception handling, since
1566 it is no longer used.
1567 Remove -gnatL/-gnatZ switches.
1569 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
1570 Update use of Except.Msg.
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.
1577 * lib-writ.ads: Minor reformatting
1580 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
1582 * Make-lang.in: Remove references to s-except.ads
1584 * s-except.ads: Removed, no longer used.
1586 * s-mastop.ads, s-mastop.adb:
1587 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
1588 Remove reference to System.Exceptions.
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.
1595 2005-09-01 Robert Dewar <dewar@adacore.com>
1596 Gary Dismukes <dismukes@adacore.com>
1597 Javier Miranda <miranda@adacore.com>
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.
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.
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>
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
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.
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.
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
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
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.
1664 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
1665 entries when there is a protected type that implements a limited
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
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
1685 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
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.
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.
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_
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.
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
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
1737 (Copy_Secondary_DTs): Add documentation.
1738 (Validate_Position): Improve this static check in case of
1739 aliased subprograms because aliased subprograms must have
1741 (Init_Predefined_Interface_Primitives): New subprogram that initializes
1742 the entries associated with predefined primitives of all the secondary
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().
1758 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1759 Classify the primitive operations used in dispatching selects as
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.
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,
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
1780 * uintp.ads: Introduce constants Uint_11 and Uint_13.
1782 2005-09-01 Arnaud Charlet <charlet@adacore.com>
1784 * s-tataat.adb, a-tasatt.adb:
1785 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
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
1792 2005-09-01 Arnaud Charlet <charlet@adacore.com>
1793 Jose Ruiz <ruiz@adacore.com>
1795 * s-taprop-vxworks.adb:
1796 Move with clauses outside Warnings Off now that dependent units are
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
1805 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
1807 Use only Preelaborate-compatible constructs.
1809 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
1810 Primitives.Operations.
1811 (Delete, Initialize): New procedures.
1813 * s-osinte-vxworks.adb: Body used to handle differences between
1815 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
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
1821 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
1822 between Vxworks 5 and 6.
1823 (taskLock, taskUnlock): Removeed, no longer used.
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
1829 (__gnat_dup): dup is available on Vxworks when using RTPs.
1830 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
1832 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
1834 * expect.c: The wait.h header is not located in the sys directory on
1835 VxWorks when using RTPs.
1837 2005-09-01 Thomas Quinot <quinot@adacore.com>
1839 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
1841 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
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:
1848 SO_RCVTIMEO/SO_SNDTIMEO
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.
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).
1863 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
1865 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
1867 * socket.c: Minor reformatting.
1869 2005-09-01 Ed Schonberg <schonberg@adacore.com>
1870 Thomas Quinot <quinot@adacore.com>
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.
1882 2005-09-01 Arnaud Charlet <charlet@adacore.com>
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.
1954 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
1956 2005-09-01 Robert Dewar <dewar@adacore.com>
1958 * binde.adb: Minor reformatting
1959 (Find_Elab_Order): Output warning if -p used with static elab order
1961 2005-09-01 Robert Dewar <dewar@adacore.com>
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.
1968 2005-09-01 Robert Dewar <dewar@adacore.com>
1970 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
1973 2005-09-01 Robert Dewar <dewar@adacore.com>
1975 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
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
1984 (Check_For_Source): Change value of Source_Id only after the current
1985 source has been dealt with.
1987 2005-09-01 Robert Dewar <dewar@adacore.com>
1988 Doug Rupp <rupp@adacore.com>
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
1995 2005-09-01 Ed Schonberg <schonberg@adacore.com>
1996 Hristian Kirtchev <kirtchev@adacore.com>
1997 Javier Miranda <miranda@adacore.com>
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
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.
2014 * lib.ads: Extend information in Load_Stack to include whether a given
2015 load comes from a Limited_With_Clause.
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.
2023 2005-09-01 Nicolas Setton <setton@adacore.com>
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.
2029 2005-09-01 Thomas Quinot <quinot@adacore.com>
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.
2036 2005-09-01 Ed Schonberg <schonberg@adacore.com>
2038 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
2039 fully qualified name, to distinguish instances with the same local name.
2041 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
2044 2005-09-01 Robert Dewar <dewar@adacore.com>
2046 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
2049 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
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
2055 2005-09-01 Laurent Pautet <pautet@adacore.com>
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
2067 Reformating and updated headers.
2069 2005-09-01 Javier Miranda <miranda@adacore.com>
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
2078 * sem_aggr.adb (Check_Can_Never_Be_Null,
2079 Aggregate_Constraint_Checks, Resolve_Aggregate,
2080 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
2082 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
2084 2005-09-01 Gary Dismukes <dismukes@adacore.com>
2085 Robert Dewar <dewar@adacore.com>
2086 Hristian Kirtchev <kirtchev@adacore.com>
2088 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
2091 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
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
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.
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.
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.
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.
2132 2005-09-01 Vincent Celier <celier@adacore.com>
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.
2140 2005-09-01 Ed Schonberg <schonberg@adacore.com>
2141 Emmanuel Briot <briot@adacore.com>
2143 * lib-xref.adb (Output_Overridden_Op): Display information on
2144 overridden operation.
2146 * lib-xref.ads: Add documentation on overridden operations.
2148 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
2151 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
2152 overriding entity information.
2154 2005-09-01 Vincent Celier <celier@adacore.com>
2156 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
2157 including those that are inherited.
2159 2005-09-01 Robert Dewar <dewar@adacore.com>
2161 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
2163 * par-prag.adb: Implement new pragma Debug_Policy
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
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
2176 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
2178 Switch -gnata also sets Debug_Pragmas_Enabled
2180 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
2181 handle an explicit -gnata when compiling predefined files.
2183 2005-09-01 Vincent Celier <celier@adacore.com>
2185 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
2186 directories of projects that have no Ada sources.
2188 2005-09-01 Robert Dewar <dewar@adacore.com>
2190 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
2191 (makes a difference for wide characters)
2193 * widechar.adb, widechar.ads:
2194 Add Wide_Char_Byte_Count feature to count chars vs bytes
2196 2005-09-01 Thomas Quinot <quinot@adacore.com>
2197 Ed Schonberg <schonberg@adacore.com>
2198 Robert Dewar <dewar@adacore.com>
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
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.
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)
2215 2005-09-01 Robert Dewar <dewar@adacore.com>
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)
2221 2005-09-01 Javier Miranda <miranda@adacore.com>
2222 Ed Schonberg <schonberg@adacore.com>
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_
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.
2248 2005-09-01 Ed Schonberg <schonberg@adacore.com>
2249 Javier Miranda <miranda@adacore.com>
2250 Gary Dismukes <dismukes@adacore.com>
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.
2267 2005-09-01 Thomas Quinot <quinot@adacore.com>
2269 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
2270 clause if the array aggregate is surrounded by parentheses.
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>
2277 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
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
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.
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.
2341 2005-09-01 Ed Schonberg <schonberg@adacore.com>
2342 Javier Miranda <miranda@adacore.com>
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
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
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
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.
2368 2005-09-01 Javier Miranda <miranda@adacore.com>
2369 Gary Dismukes <dismukes@adacore.com>
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
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.
2404 2005-09-01 Ed Schonberg <schonberg@adacore.com>
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.
2411 2005-09-01 Javier Miranda <miranda@adacore.com>
2412 Ed Schonberg <schonberg@adacore.com>
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
2421 2005-09-01 Javier Miranda <miranda@adacore.com>
2422 Ed Schonberg <schonberg@adacore.com>
2423 Gary Dismukes <dismukes@adacore.com>
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
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
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
2448 2005-09-01 Ed Schonberg <schonberg@adacore.com>
2449 Javier Miranda <miranda@adacore.com>
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
2461 2005-09-01 Ed Schonberg <schonberg@adacore.com>
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
2468 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
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
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.
2477 2005-09-01 Ed Schonberg <schonberg@adacore.com>
2479 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
2480 to a variable that is statically known to be constant.
2482 2005-09-01 Geert Bosch <bosch@adacore.com>
2483 Robert Dewar <dewar@adacore.com>
2485 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
2486 (VAXGF_Safe_First): Idem.
2488 2005-09-01 Robert Dewar <dewar@adacore.com>
2489 Arnaud Charlet <charlet@adacore.com>
2491 * g-dirope.ads: Minor reformatting
2492 Document that bounds of result of Base_Name match the input index
2494 Add documentation on environment variable syntax for Expand_Path
2496 * gnat_ugn.texi: Update documentation to include mention of -m switches
2497 Document new treatment of wide characters in max line length
2499 Remove -gnatL/-gnatZ switches, no longer used.
2500 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
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
2509 2005-09-01 Matthew Heaney <heaney@adacore.com>
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.
2517 2005-09-01 Arnaud Charlet <charlet@adacore.com>
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
2526 * system-vxworks-xscale.ads: Removed, no longer used.
2527 * s-vxwork-xscale.ads: Removed, no longer used.
2529 2005-09-01 Robert Dewar <dewar@adacore.com>
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
2553 2005-08-29 Arnaud Charlet <charlet@adacore.com>
2557 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
2559 2005-08-29 Arnaud Charlet <charlet@adacore.com>
2560 Doug Rupp <rupp@adacore.com>
2562 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
2564 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
2565 this code in the GNAT run-time.
2567 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
2570 * init.c (__gnat_error_handler [many]): Mark "msg" as const
2571 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
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.
2584 2005-08-29 Olivier Hainque <hainque@adacore.com>
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
2592 2005-08-29 Arnaud Charlet <charlet@adacore.com>
2593 Eric Botcazou <ebotcazou@adacore.com>
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.
2600 2005-08-15 James E. Wilson <wilson@specifix.com>
2602 * system-linux-alpha.ads: Change ia64 to alpha.
2604 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
2606 * decl.c, utils.c: Fix comment typos.
2608 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
2610 * decl.c, init.c, initialize.c: Fix comment typos.
2612 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
2614 Make CONSTRUCTOR use VEC to store initializers.
2615 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
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.
2622 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
2624 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
2626 (compare_field_bitpos): Likewise.
2628 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
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.
2634 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
2636 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
2639 2005-07-07 Pascal Obry <obry@adacore.com>
2641 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
2642 returned type on Windows.
2644 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
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".
2651 2005-07-07 Vincent Celier <celier@adacore.com>
2653 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
2654 the destructor/constructor attributes for <lib>final/<lib>init.
2656 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
2658 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
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.
2663 2005-07-07 Javier Miranda <miranda@adacore.com>
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.
2669 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
2670 abstract interface types in order to leave the code clearer and easier
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
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.
2684 2005-07-07 Javier Miranda <miranda@adacore.com>
2686 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
2688 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
2691 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
2694 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
2695 use of tag incomplete types.
2697 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
2698 give support to tagged incomplete types.
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.
2706 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
2709 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
2712 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
2713 N_Incomplete_Type_Declaration nodes.
2715 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
2716 Tag_Present to give support to tagged incomplete types:
2718 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
2721 2005-07-07 Olivier Hainque <hainque@adacore.com>
2725 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
2726 definitions for the Unwind wrappers in the compiler case.
2728 2005-07-07 Ed Schonberg <schonberg@adacore.com>
2729 Javier Miranda <miranda@adacore.com>
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.
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
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.
2753 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
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.
2760 2005-07-07 Ed Schonberg <schonberg@adacore.com>
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.
2766 2005-07-07 Bernard Banner <banner@adacore.com>
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.
2772 2005-07-07 Thomas Quinot <quinot@adacore.com>
2774 * expect.c: Minor reformatting
2776 2005-07-07 Sergey Rybin <rybin@adacore.com>
2778 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
2781 * gnat_ugn.texi: Add description for new gnatpp option
2784 2005-07-04 Thomas Quinot <quinot@adacore.com>
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.
2790 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
2791 Olivier Hainque <hainque@adacore.com>
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.
2798 * init.c (Tru64 section): New function __gnat_set_code_loc.
2800 2005-07-04 Vincent Celier <celier@adacore.com>
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.
2808 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
2809 __gnat_sals_init_using_constructors): New functions.
2811 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
2812 Linker_Constructor and Linker_Destructor when switch -a is used.
2814 * bindusg.adb: Add line for new switch -a
2816 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
2817 (Gnatbind): When switch -a is used, check if it is allowed
2819 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
2821 2005-07-04 Joel Brobecker <brobecker@adacore.com>
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.
2828 2005-07-04 Gary Dismukes <dismukes@adacore.com>
2829 Ed Schonberg <schonberg@adacore.com>
2830 Javier Miranda <miranda@adacore.com>
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.
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.
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
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.
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.
2855 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
2857 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
2858 <Pragma_Linker_Destructor>: Likewise.
2860 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
2861 Pragma_Linker_Destructor.
2863 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
2864 ATTR_LINK_DESTRUCTOR.
2865 (static_ctors, static_dtors): New variables.
2867 * misc.c (gnat_expand_body): Output current function as constructor
2868 and destructor if requested.
2870 * par-prag.adb: Add processing for pragma Linker_Constructor and
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.
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.
2885 * trans.c: Include cgraph.h.
2886 (build_global_cdtor): New function.
2887 (Compilation_Unit_to_gnu): Build global constructor and destructor if
2889 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
2891 (addressable_p) <COMPONENT_REF>: Unconditionally test
2892 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
2894 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
2895 variable if it is external.
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
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
2909 2005-07-04 Ed Schonberg <schonberg@adacore.com>
2911 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
2912 to prevent spurious warnings.
2914 2005-07-04 Thomas Quinot <quinot@adacore.com>
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
2922 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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.
2930 2005-07-04 Vincent Celier <celier@adacore.com>
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
2936 2005-07-04 Matthew Gingell <gingell@adacore.com>
2938 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
2940 * indepsw-linux.adb: Replace by...
2942 * indepsw-gnu.adb: ...this new file
2944 2005-07-04 Vincent Celier <celier@adacore.com>
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.
2951 * mlib-tgt.ads: Minor reformatting
2953 * mlib-utl.ads: Minor reformatting
2955 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
2957 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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
2965 2005-07-04 Javier Miranda <miranda@adacore.com>
2967 * par-load.adb: Load the context items in two rounds.
2969 2005-07-04 Robert Dewar <dewar@adacore.com>
2971 * scng.adb: Do not consider Mod used as an attribute to be a keyword
2973 2005-07-04 Ed Schonberg <schonberg@adacore.com>
2974 Javier Miranda <miranda@adacore.com>
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.
2984 2005-07-04 Thomas Quinot <quinot@adacore.com>
2986 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
2987 overloaded function call, carry interpretations from the original tree
2990 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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.
2996 2005-07-04 Gary Dismukes <dismukes@adacore.com>
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.
3002 2005-07-04 Thomas Quinot <quinot@adacore.com>
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.
3007 2005-07-04 Ed Schonberg <schonberg@adacore.com>
3009 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
3010 present before checking whether an interface type covers a synchronized
3013 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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.
3019 2005-07-04 Robert Dewar <dewar@adacore.com>
3023 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
3025 2005-07-04 Matthew Gingell <gingell@adacore.com>
3027 * tracebak.c: Enable tracebacks on ia64 platforms
3029 2005-07-04 Vincent Celier <celier@adacore.com>
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.
3035 2005-07-04 Vincent Celier <celier@adacore.com>
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
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.
3044 2005-07-04 Matthew Heaney <heaney@adacore.com>
3046 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
3048 * a-coinve.adb: Perform constraint checks explicitly.
3050 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3051 Thomas Quinot <quinot@adacore.com>
3053 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
3054 new target gen-soccon.
3056 2005-07-04 Robert Dewar <dewar@adacore.com>
3058 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
3060 2005-07-04 Thomas Quinot <quinot@adacore.com>
3062 * g-socket.ads (Check_Selector): Minor rewording of comment.
3064 2005-07-04 Vincent Celier <celier@adacore.com>
3066 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
3068 2005-07-04 Thomas Quinot <quinot@adacore.com>
3070 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
3072 2005-07-04 Sergey Rybin <rybin@adacore.com>
3074 * gnat_ugn.texi: Add description of --eol gnatpp option
3076 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
3077 Thomas Quinot <quinot@adacore.com>
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
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.
3088 2005-07-04 Arnaud Charlet <charlet@adacore.com>
3090 * s-stausa.ads, s-stausa.adb: New files.
3092 2005-06-30 Kelley Cook
3094 * all files: Update FSF address in copyright headers.
3095 * gen-soccon.co (main): Output new FSF address in generated files.
3097 2005-06-28 Paul Brook <paul@codesourcery.com>
3099 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
3101 2005-06-14 Olivier Hainque <hainque@adacore.com>
3102 Eric Botcazou <ebotcazou@adacore.com>
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
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
3114 2005-06-14 Doug Rupp <rupp@adacore.com>
3116 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
3118 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
3120 2005-06-14 Pascal Obry <obry@adacore.com>
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
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.
3261 2005-06-14 Jose Ruiz <ruiz@adacore.com>
3262 Arnaud Charlet <charlet@adacore.com>
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.
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.
3279 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
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.
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
3294 (Set_False): Add this procedure that sets the state of the suspension
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
3305 (Finalize): Add this procedure for finalizing the suspension object,
3306 destroying the mutex and the condition variable.
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.
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.
3325 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
3326 (Setup_Interrupt_Mask): New procedure.
3328 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
3330 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
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.
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
3340 2005-06-14 Robert Dewar <dewar@adacore.com>
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).
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
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
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
3371 * a-ztenau.adb: Add with of Ada.Characters.Conversions
3373 * a-chacon.ads, a-chacon.adb: New files.
3375 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
3376 categorization violations.
3378 * a-strmap.ads: Add pragma Pure_05 for AI-362
3379 * a-strmap.ads: Add note on implicit categorization for AI-362
3381 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
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
3388 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
3389 when needed for proper processing of categorization stuff
3392 For several cases, make errors in preealborate units warnings,
3393 instead of errors, if GNAT_Mode is set. For AI-362.
3395 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
3396 preelaborate unit is now warning if in GNAT mode
3398 * s-stoele.ads: Document AI-362 for pragma preelaborate
3400 2005-06-14 Doug Rupp <rupp@adacore.com>
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.
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
3411 2005-06-14 Vincent Celier <celier@adacore.com>
3413 * gnatsym.adb: Adapt to modification of package Symbols: procedure
3414 Process is now in package Processing.
3416 * symbols.ads, symbols.adb:
3417 (Processing): New package, containing procedure Process
3419 * symbols-vms-alpha.adb:
3420 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
3422 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
3423 symbols-processing-vms-ia64.adb: New files.
3425 2005-06-14 Pascal Obry <obry@adacore.com>
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.
3432 2005-06-14 Doug Rupp <rupp@adacore.com>
3433 Pascal Obry <obry@adacore.com>
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.
3444 2005-06-14 Robert Dewar <dewar@adacore.com>
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
3450 2005-06-14 Robert Dewar <dewar@adacore.com>
3452 * ali-util.adb, gnatbind.adb: Remove references to
3453 Force_RM_Elaboration_Order.
3455 * switch-b.adb: Remove recognition of -f switch
3457 2005-06-14 Pascal Obry <obry@adacore.com>
3459 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
3460 implementation which is slightly more efficient.
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>
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.
3473 (Tagged_Membership): Modified to gives support to abstract interface
3476 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
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
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.
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.
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).
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
3534 (Collect_All_Interfaces): New subprogram that collects the whole list
3535 of interfaces that are directly or indirectly implemented by a tagged
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
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
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
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
3572 (Check_Anonymous_Access_Types): Before full analysis of a record type
3573 declaration, create anonymous access types for each self-referential
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
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
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
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
3625 * debug.adb: Complete documentation of flag "-gnatdZ"
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
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
3639 (Expand_N_Object_Declaration): Do not generate an initialization for
3640 a scalar temporary marked as internal.
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
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.
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
3665 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
3666 previous ones that return the corresponding tag and access_disp_table
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.
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
3679 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
3680 "constant access" and "aliased [constant] access" when not compiling
3682 Suppress Ada 2005 keyword warning if -gnatwY used
3683 (P_Identifier_Declarations): Add support for object declarations with
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.
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
3699 (Analyze_Formal_Package): Establish Instantiation source for the copy of
3700 the generic that is created to represent the formal package.