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