1 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3 * gnat_rm.texi (Implementation Defined Characteristics)
4 (Standard Library Routines): Use @smallexample for indented
5 text. Drop Indentation outside examples.
6 * gnat_ugn.texi: Likewise.
8 2008-06-13 Olivier Hainque <hainque@adacore.com>
10 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
12 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
13 realignment with force_align_arg_pointer attribute on foreign
14 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
16 2008-06-13 Olivier Hainque <hainque@adacore.com>
18 * utils.c (rest_of_record_type_compilation): When computing
19 encodings for the components of a variable size type, early
20 strip conversions on the current position expression to make
21 sure it's shape is visible. Use remove_conversions for this
24 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
26 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
27 constrained subtype of a discriminated type, discard the fields that
28 are beyond its limits according to its size.
30 2008-06-10 Olivier Hainque <hainque@adacore.com>
32 * utils.c (create_subprog_decl): If this is for the 'main' entry
33 point according to the asm name, redirect main_identifier_node.
35 2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
37 * decl.c (components_to_record): Adjust the packedness for the
38 qualified union as well.
40 2008-06-09 Arnaud Charlet <charlet@adacore.com>
42 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
45 2008-06-07 Samuel Tardieu <sam@rfc1149.net>
47 * sem_res.adb (Large_Storage_Type): A type is large if it
48 requires as many bits as Positive to store its values and its
49 bounds are known at compile time.
50 * sem_ch13.adb (Minimum_Size): Note that this function returns
51 0 if the size is not known at compile time.
53 2008-06-06 Nicolas Setton <setton@adacore.com>
54 Olivier Hainque <hainque@adacore.com>
56 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
57 attribute, parallel descriptive type attached to another
58 type for debug info generation purposes.
59 * utils.c (add_parallel_type): New function, register
60 parallel type to be attached to a type.
61 (get_parallel_type): New function, fetch a registered
62 parallel type, if any.
63 (rest_of_record_type_compilation): Register the parallel
64 type we make for variable size records.
65 * gigi.h (add_parallel_type, get_parallel_type): Declare.
66 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
67 parallel debug types we make.
68 * trans.c (extract_encoding, decode_name): New functions.
69 (gigi): If the DWARF attribute extensions are available, setup
71 * lang.opt: Register language specific processing request
73 * misc.c (gnat_dwarf_extensions): New global variable. How much
74 do we want of our DWARF extensions. 0 by default.
75 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
76 (gnat_post_options): Map gnat_dwarf_extensions to the
77 commonuse_gnu_debug_info_extensions for later processing.
79 2008-06-04 Samuel Tardieu <sam@rfc1149.net>
81 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
83 2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
85 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
86 * gnat_ugn.texi (Style Checking)
87 (Adding the Results of Compiler Checks to gnatcheck Output)
88 (Example of Binder Output File): Fix typos.
89 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
90 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
91 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
92 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
93 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
94 sinfo.ads, utils.c: Fix typos in comments.
95 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
97 2008-05-29 Thomas Quinot <quinot@adacore.com>
99 * sem_eval.adb: Minor reformatting
101 2008-05-29 Ed Schonberg <schonberg@adacore.com>
103 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
104 is abstract, do not apply abstractness check on subprogram if this is
105 a renaming declaration.
107 2008-05-29 Arnaud Charlet <charlet@adacore.com>
110 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
111 allow recognition of program suffix in addition to prefix.
113 * gnatchop.adb (Locate_Executable): Add support for prefix.
115 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
116 mlib-utl.adb: Adjust calls to Program_Name.
118 2008-05-29 Robert Dewar <dewar@adacore.com>
120 * sem_ch3.adb: Minor reformatting
121 * sem_prag.adb: Minor reformatting
122 * sem_res.adb: Minor reformatting
123 * sinput-p.ads: Minor reformatting
125 2008-05-29 Javier Miranda <miranda@adacore.com>
128 (Abstract_Interface_List): Add missing support for full type-declaration
129 associated with synchronized types.
131 2008-05-29 Robert Dewar <dewar@adacore.com>
133 * sem_eval.adb (Is_Same_Value): Take care of several more cases
135 2008-05-28 Ed Schonberg <schonberg@adacore.com>
137 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
138 access type, wrap the expression in a conversion to force an
141 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
142 accessibility checks even when expansion is disabled in order to
143 generate messages in the presence of previous errors or in
146 2008-05-28 Eric Botcazou <ebotcazou@adacore.com>
148 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
149 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
151 2008-05-28 Vincent Celier <celier@adacore.com>
154 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
155 preprocessing expressions
157 2008-05-28 Vincent Celier <celier@adacore.com>
159 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
162 * sinput-p.ads: Minor comment update and reformatting
164 2008-05-28 Ed Schonberg <schonberg@adacore.com>
166 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
167 type has a deeper level than any master only when it is the type of an
170 2008-05-28 Javier Miranda <miranda@adacore.com>
172 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
174 2008-05-28 Javier Miranda <miranda@adacore.com>
176 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
177 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
178 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
179 Add code that was previously located in
180 Find_Overridden_Synchronized_Primitive because it is only used here.
182 2008-05-28 Sergey Rybin <rybin@adacore.com>
184 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
185 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
187 2008-05-28 Robert Dewar <dewar@adacore.com>
190 Add missing restrictions, and properly label all GNAT defined ones
193 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
194 Add entry for Ada.Task_Termination.Set_Specific_Handler
195 Add entry for Ada.Task_Termination.Specific_Handler
198 Add missing restrictions and properly mark all gnat defined ones
201 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
204 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
206 * gnat_rm.texi: Add missing restrictions, and properly label all
209 2008-05-28 Robert Dewar <dewar@adacore.com>
212 (Check_Restriction): violation of restriction No_Finalization is
213 treated as a serious error to stop expansion
215 2008-05-28 Robert Dewar <dewar@adacore.com>
217 * exp_util.adb: Minor reformatting
218 * exp_util.ads: Minor reformatting.
220 2008-05-28 Arnaud Charlet <charlet@adacore.com>
222 * Make-lang.in: Remove gprmake.
224 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
226 2008-05-28 Ed Schonberg <schonberg@adacore.com>
228 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
229 improper progenitor names, and avoid cascaded errors.
231 2008-05-28 Robert Dewar <dewar@adacore.com>
233 * gnat_rm.texi: Add note on Old giving warning when applied to constant
235 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
238 2008-05-28 Robert Dewar <dewar@adacore.com>
240 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
243 2008-05-28 Robert Dewar <dewar@adacore.com>
246 (Expand_Simple_Function_Return): Copy unaligned result into temporary
248 2008-05-28 Javier Miranda <miranda@adacore.com>
250 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
251 for user-defined predefined primitives.
253 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
254 (Find_Overridden_Synchronized_Primitive): Ditto.
256 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
258 2008-05-27 Arnaud Charlet <charlet@adacore.com>
260 * a-ststio.adb, s-direio.adb:
261 Further code clean up of previous change.
264 2008-05-27 Vincent Celier <celier@adacore.com>
266 * prj-nmsc.adb: Minor reformatting
268 2008-05-27 Bob Duff <duff@adacore.com>
270 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
271 untagged private type with a tagged full type, where the full type has
272 a self reference, create the corresponding class-wide type early, in
273 case the self reference is "access T'Class".
275 2008-05-27 Ed Schonberg <schonberg@adacore.com>
277 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
278 tasks and context is an object declaration. create master entity before
281 2008-05-27 Robert Dewar <dewar@adacore.com>
283 * mlib-prj.adb: Minor reformatting
285 * prj-part.adb: Minor reformatting
287 * prj.ads: Minor reformatting
289 * exp_ch3.adb: Minor reformatting.
291 * sem_ch3.ads: Minor reformatting
293 * sem_eval.adb: Minor reformatting
295 2008-05-27 Vincent Celier <celier@adacore.com>
298 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
300 2008-05-27 Ed Schonberg <schonberg@adacore.com>
302 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
303 tasks, create an activation chain now, before the expansion into
304 assignments and build-in-place calls that require the presence of an
306 (Backend_Processing_Possible): If the component type is inherently
307 limited, the aggregate must be expanded into individual built-in-place
310 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
311 determine whether an allocation extra parameter must be built, to
312 handle case of a private type whose full type is a discriminated type
315 2008-05-27 Bob Duff <duff@adacore.com>
318 Document the new behavior regarding trampolines.
320 2008-05-27 Arnaud Charlet <charlet@adacore.com>
322 * a-direio.adb, a-sequio.adb: Replace address clause by
323 unrestricted_access, simpler and compatible with .NET.
325 2008-05-27 Vincent Celier <celier@adacore.com>
328 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
329 a project file, so that symbolic links are not resolved.
331 2008-05-27 Arnaud Charlet <charlet@adacore.com>
333 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
334 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
335 portable across GNAT targets, since this kind of address clause is not
336 supported by VM back-ends (.NET/JGNAT).
338 2008-05-27 Arnaud Charlet <charlet@adacore.com>
340 * bindgen.adb: Update comments.
342 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
344 2008-05-27 Vincent Celier <celier@adacore.com>
346 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
347 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
348 mlib-tgt.adb, prj-env.adb, prj-env.ads:
349 (Path_Information): New record type
350 Use component of type Path_Information when there are two paths, one in
351 canonical format and one in display format.
352 Update the project manager to these new components.
354 2008-05-27 Robert Dewar <dewar@adacore.com>
356 * makeutl.adb: Minor reformatting
357 * prj-nmsc.adb: Minor reformatting
358 * s-stausa.adb: Minor reformatting
359 * s-stausa.ads: Minor reformatting
360 * sem_ch6.adb: Minor reformatting
362 2008-05-27 Thomas Quinot <quinot@adacore.com>
364 * sem_res.adb: Minor comment fixes
366 2008-05-27 Thomas Quinot <quinot@adacore.com>
368 * makeutl.adb: Minor code reorganization
370 * exp_aggr.adb: Add ??? comment
373 * exp_ch6.adb: Minor reformatting
375 2008-05-27 Quentin Ochem <ochem@adacore.com>
377 * s-stausa.adb (Initialize): Updated result initialization, and
378 initialization of environment stack.
379 (Fill_Stack): Improved computation of the pattern zone, taking into
380 account already filled at the calling point.
381 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
382 Measure and Overflow_Guard.
383 (Report_Result): Fixed computation of the result using new fields of
386 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
387 params by more explicit Stack_Size / Max_Pattern_Size params.
388 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
389 Added Stack_Used_When_Filling field.
390 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
391 Min_Measure and Max_Measure fields.
393 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
395 2008-05-27 Vincent Celier <celier@adacore.com>
398 (Check_File): Make sure that a unit that replaces the same unit in a
399 project being extended is properly processed.
401 2008-05-27 Ed Schonberg <schonberg@adacore.com>
404 (Get_Discr_Value): Remove obsolete code that failed to find the value
405 of a discriminant for an inherited task component appearing in a type
408 2008-05-27 Thomas Quinot <quinot@adacore.com>
410 (System.File_IO.{Close, Delete, Reset}):
411 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
413 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
414 Pass File parameter by reference.
416 2008-05-27 Vincent Celier <celier@adacore.com>
419 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
420 sources of the same project that have the same object file name.
421 (Find_Explicit_Sources): Always remove a source exception that was not
424 2008-05-27 Thomas Quinot <quinot@adacore.com>
426 * sem_ch3.adb: Minor reformatting
428 2008-05-27 Ed Schonberg <schonberg@adacore.com>
431 (Is_Interface_Conformant): Handle properly a primitive operation that
432 overrides an interface function with a controlling access result.
433 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
434 inherited and overriding operations, omit as well the conformance check
435 on result types, to prevent spurious errors.
437 2008-05-27 Vincent Celier <celier@adacore.com>
439 * makeutl.ads, makeutl.adb:
440 (Set_Location): New procedure
441 (Get_Location): New function
442 (Update_Main): New procedure
444 2008-05-27 Vincent Celier <celier@adacore.com>
447 (Check_Library): Allow standard project to be extended as a static
449 (Get_Mains): Do not inherit attribute Main in an extending library
452 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
454 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
455 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
456 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
457 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
458 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
459 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
460 * system-mingw.ads (Always_Compatible_Rep): Likewise.
461 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
462 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
463 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
465 2008-05-27 Ed Schonberg <schonberg@adacore.com>
467 * sem_attr.adb: add guard to previous patch.
469 2008-05-27 Ed Schonberg <schonberg@adacore.com>
471 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
472 a synchronized tagged type, do not attempt to build dispatch table for
473 full view. The table is built for the corresponding record type, which
474 has its own declaration.
476 2008-05-27 Gary Dismukes <dismukes@adacore.com>
478 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
479 to the known type entity E, rather than setting it to Any_Type. Fixes
480 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
481 for objects whose type had an illegal constraint.
483 2008-05-27 Vincent Celier <celier@adacore.com>
486 Add succinct documentation for attribute Excluded_Source_List_File
488 2008-05-27 Vincent Celier <celier@adacore.com>
490 * prj-attr.adb: Add new project level attribute Map_File_Option
492 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
494 * prj.ads: Minor reformatting and comment update
495 (Project_Configuration): New component Map_File_Option
497 * snames.adb: New standard name Map_File_Option
499 * snames.ads: New standard name Map_File_Option
501 2008-05-27 Vincent Celier <celier@adacore.com>
503 * xsnames.adb: Remove unused variable Oname
505 2008-05-27 Doug Rupp <rupp@adacore.com>
508 (Expand_N_Function_Call): Fix comments. Minor reformatting.
511 (Expand_Vax_Foreign_Return): Fix comments.
513 2008-05-27 Thomas Quinot <quinot@adacore.com>
515 * exp_dist.adb: Minor reformating
517 2008-05-26 Gary Dismukes <dismukes@adacore.com>
519 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
520 No_Default_Initialization, which is now delayed until the freeze point
521 of the object. Add a comment about deferral of the check.
523 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
524 on objects is moved here.
526 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
528 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
529 (Compare_Array_S16): Adjust for above change.
530 * s-casi32.adb (Uword): Likewise.
531 (Compare_Array_S32): Likewise.
532 * s-casi64.adb (Uword): Likewise.
533 (Compare_Array_S64): Likewise.
534 * s-caun16.adb (Uhalf): Likewise.
535 (Compare_Array_U16): Likewise.
536 * s-caun32.adb (Uword): Likewise.
537 (Compare_Array_U32): Likewise.
538 * s-caun64.adb (Uword): Likewise.
539 (Compare_Array_U64): Likewise.
541 2008-05-26 Robert Dewar <dewar@adacore.com>
543 * exp_ch6.adb: Add ??? comment for previous change
545 * exp_vfpt.adb: Minor reformatting
547 * exp_vfpt.ads: Add ??? comment for last change
549 * sem_attr.adb: Add some ??? comments for previous change
551 * s-vaflop.ads: Add comments for previous change
553 2008-05-26 Doug Rupp <rupp@adacore.com>
555 * s-vaflop-vms-alpha.adb:
556 Remove System.IO use clause, to prevent spurious ambiguities when
557 package is access through rtsfind.
559 2008-05-26 Sergey Rybin <rybin@adacore.com>
561 * tree_io.ads (ASIS_Version_Number): Update because of the changes
564 2008-05-26 Ed Schonberg <schonberg@adacore.com>
567 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
568 converted to S (A)'address only if A .. B is known to be a non-null
571 2008-05-26 Doug Rupp <rupp@adacore.com>
574 (Return_D, Return_F, Return_G): New functions.
577 (Return_D, Return_F, Return_G): New functions.
580 (Expand_Vax_Foreign_Return): New procedure
583 (Expand_Vax_Foreign_Return): New procedure
586 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
587 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
591 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
593 * s-vaflop-vms-alpha.adb:
594 (Return_D, Return_F, Return_G): New functions.
596 2008-05-26 Gary Dismukes <dismukes@adacore.com>
598 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
599 init proc entity when there is actual default initialization associated
600 with the component type, to avoid spurious errors on objects of scalar
601 array types that are marked Is_Public when No_Default_Initialization
604 2008-05-26 Thomas Quinot <quinot@adacore.com>
606 * rtsfind.ads, rtsfind.adb:
607 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
608 (Check_RPC): Support per-PCS-kind API versioning.
610 exp_dist.ads, exp_dist.adb:
611 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
612 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
613 library function Get_RACW.
614 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
615 library function Get_Reference.
616 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
617 through an intermediate Any.
618 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
619 going through an intermediate Any.
621 * sem_dist.adb: Minor reformatting.
623 2008-05-26 Javier Miranda <miranda@adacore.com>
625 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
626 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
627 (Is_Internal): Adding documentation on internal entities that have
628 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
630 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
631 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
632 Added assertion to force entities with this attribute to have
633 attribute Is_Internal set to True.
634 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
636 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
637 renamed as Derive_Progenitor_Subprograms. In addition, its code is
638 a new implementation.
639 (Add_Interface_Tag_Components): Remove special management of
640 synchronized interfaces.
641 (Analyze_Interface_Declaration): Minor reformating
642 (Build_Derived_Record_Type): Minor reformating
643 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
644 predefined primitive inherited from interface type because the body of
645 internally generated predefined primitives of tagged types are generated
647 (Derive_Subprogram): Avoid generating an internal name if the parent
648 subprogram overrides an interface primitive.
649 (Derive_Subprograms): New implementation that keeps separate the
650 management of tagged types not implementing interfaces, from tagged
651 types that implement interfaces.
652 (Is_Progenitor): New implementation.
653 (Process_Full_View): Add documentation
654 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
655 by call to Derive_Progenitor_Subprograms.
657 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
658 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
659 Skip_Controlling_Formals.
661 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
662 (Check_Conventions): New implementation. Remove local subprogram
663 Skip_Check. Remove formal Search_From of routine Check_Convention.
664 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
665 Skip_Controlling_Formals.
666 (New_Overloaded_Entity): Enable addition of predefined dispatching
670 (Find_Primitive_Covering_Interface): New subprogram.
672 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
673 the task body procedure as a primitive of the corresponding tagged
675 (Check_Operation_From_Private_Type): Avoid adding twice an entity
676 to the list of primitives.
677 (Find_Primitive_Covering_Interface): New subprogram.
678 (Override_Dispatching_Operation): Add documentation.
680 * sem_type.adb (Covers): Minor reformatings
682 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
685 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
686 (Implements_Interface): New subprogram.
687 (Is_Parent): Removed.
688 (Primitive_Names_Match): New subprogram.
689 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
690 (Ultimate_Alias): New subprogram.
692 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
694 Remove special management for synchronized types. Rename formal. Remove
695 internal subprograms Interface_Present_In_Parent and Add_Interface.
696 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
697 on non-record types by code to return false in such case.
698 (Implements_Interface): New subprogram.
699 (Is_Parent): Removed. No special management is now required for
700 synchronized types covering interfaces.
701 (Primitive_Names_Match): New subprogram.
702 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
703 (Ultimate_Alias): New subprogram.
705 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
706 Add internal entities associated with secondary dispatch tables to
707 the list of tagged type primitives that are not interfaces.
708 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
709 (Make_Predefined_Primitive_Specs): Code reorganization to improve
710 the management of predefined equality operator. In addition, if
711 the type has an equality function corresponding with a primitive
712 defined in an interface type, the inherited equality is abstract
713 as well, and no body can be created for it.
715 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
716 exp_util to exp_disp.
717 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
718 an entity corresponds with one of the predefined primitives required
719 to implement interfaces.
720 Update copyright notice.
722 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
723 final check on abstract subprograms all the primitives associated with
724 interface primitives because they must be visible in the public and
726 (Write_DT): Use Find_Dispatching_Type to locate the name of the
727 interface type. This allows the use of this routine, for debugging
728 purposes, when the tagged type is not fully decorated.
729 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
730 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
731 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
732 entity corresponds with one of the predefined primitives required to
733 implement interfaces.
735 * exp_util.adb (Find_Interface_ADT): New implementation
736 (Find_Interface): Removed.
738 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
739 list of interfaces associated with nodes
740 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
742 2008-05-26 Thomas Quinot <quinot@adacore.com>
744 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
745 condition for assignment to temporary.
747 2008-05-26 Ed Schonberg <schonberg@adacore.com>
749 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
750 checks on the upper bound if the index type is a modular type, to
751 prevent wrap-around computations when size is close to upper bound of
754 2008-05-26 Robert Dewar <dewar@adacore.com>
756 * sem_ch3.adb: Minor reformatting
758 2008-05-26 Ed Schonberg <schonberg@adacore.com>
760 * sem_ch12.adb (Remove_Parent): Use specification of instance
761 to retrieve generic parent,
762 to handle properly the case where the instance is a child unit.
763 Add guard to handle properly wrapper packages.
766 2008-05-26 Thomas Quinot <quinot@adacore.com>
768 * sinfo.ads: Minor reformatting
770 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
772 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
773 Generate a tag check when the result subtype of a function, defined by
774 an access definition, designates a specific tagged type.
775 (Make_Tag_Check): New routine.
777 2008-05-26 Arnaud Charlet <charlet@adacore.com>
779 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
781 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
783 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
784 (builtin_decl_for): Likewise.
785 * trans.c (gigi): Likewise.
786 * utils.c (def_builtin_1): Fix formatting.
788 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
790 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
791 Create the statements which map a string name to protected or task
794 * exp_ch9.adb: Add with and use clause for Stringt.
795 Minor code reformatting.
796 (Build_Entry_Names): New routine.
797 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
798 for flag Build_Entry_Names which controls the allocation of the data
799 structure for the string names of entries.
801 * exp_ch9.ads (Build_Entry_Names): New subprogram.
803 * exp_util.adb (Entry_Names_OK): New function.
805 * exp_util.ads (Entry_Names_OK): New function.
807 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
808 enumerations RE_Id and RE_Unit_Table.
810 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
811 (Free_Entry_Names_Array): New routine.
813 * s-taskin.ads: Comment reformatting.
814 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
815 Add component Entry_Names to record Ada_Task_Control_Block.
816 (Free_Entry_Names_Array): New routine.
818 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
819 dynamically allocate an array
820 of string pointers. This structure holds string entry names.
821 (Free_Entry_Names): New routine.
822 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
823 (Set_Entry_Names): New routine.
826 (Create_Task): Add formal Build_Entry_Names. The flag is used to
827 control the allocation of the data structure which stores entry names.
828 (Set_Entry_Name): New routine.
831 Add with and use clause for Ada.Unchecked_Conversion.
832 (Finalize): Deallocate the entry names array.
833 (Free_Entry_Names): New routine.
834 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
835 create an array of string pointers to hold the entry names.
836 (Set_Entry_Name): New routine.
839 Add field Entry_Names to record Protection_Entries.
840 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
841 (Set_Entry_Name): New routine.
843 2008-05-26 Vincent Celier <celier@adacore.com>
846 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
849 (Project_Configuration): New component Shared_Lib_Driver
851 2008-05-26 Ed Schonberg <schonberg@adacore.com>
854 (Cleanup_Scopes): For a protected operation, transfer finalization list
855 to protected body subprogram, to force cleanup actions when needed.
857 2008-05-26 Robert Dewar <dewar@adacore.com>
859 * sem_cat.adb: Minor reformatting
861 * gnatname.adb: Minor reformatting
863 * osint.ads: Minor reformatting
865 * s-carun8.ads: Minor reformatting
867 * g-heasor.ads: Minor comment fix (unit is now pure)
869 2008-05-26 Robert Dewar <dewar@adacore.com>
872 (Expand_Current_Value): Properly type generated integer literal
874 2008-05-26 Sergey Rybin <rybin@adacore.com>
876 * gnat_ugn.texi: Add description for the new gnatcheck rule -
877 Separate_Numeric_Error_Handlers.
879 2008-05-26 Pascal Obry <obry@adacore.com>
881 * sem_aggr.adb: Minor reformatting.
883 2008-05-26 Jose Ruiz <ruiz@adacore.com>
886 (To_Target_Priority): Setting the time slice value to 0 or greater sets
887 the scheduling policy to FIFO within priorities or round-robin
889 Hence, the priority must be set in this case to the one selected by the
892 2008-05-26 Ed Schonberg <schonberg@adacore.com>
895 (Remove_Parent): If the enclosing scope is an instance whose generic
896 parent is declared within some parent scope of the just completed
897 instance, make full views of the entities in that parent visible, when
900 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
902 * mingw32.h (STD_MINGW): Set to true for target w64.
904 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
906 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
907 instead of TREE_STATIC on the ADDR_EXPR.
909 2008-05-24 Eric Botcazou <ebotcazou@adacore.com>
911 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
912 (Sloc_to_locus): Do not overwrite known GCC locations when translating
913 GNAT standard locations.
915 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
917 * gigi.h (mark_visited): Declare.
918 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
919 only the topmost node of expressions.
920 (elaborate_expression_1): Look deeper for read-only variables.
921 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
922 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
923 (mark_visited_r): New function.
925 2008-05-23 Vincent Celier <celier@adacore.com>
927 * snames.adb: New standard name Excluded_Source_List_File.
929 * snames.ads: New standard name Excluded_Source_List_File.
931 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
933 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
934 Get excluded sources from
935 file indicated by attribute Excluded_Source_List_File, when present and
936 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
938 2008-05-23 Robert Dewar <dewar@adacore.com>
940 * exp_dist.adb: Minor reformatting
942 2008-05-23 Ed Schonberg <schonberg@adacore.com>
944 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
945 slice, convert it to an indexed component, which is equivalent, more
946 efficient, and usable even if the slice itself is not addressable.
948 2008-05-23 Olivier Hainque <hainque@adacore.com>
950 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
951 convention also allows access to named compiler built-in subprograms
952 such as the GCC __builtin family.
954 2008-05-23 Vincent Celier <celier@adacore.com>
956 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
957 sep. If there are several possibilities, choose the one with the
960 2008-05-23 Vincent Celier <celier@adacore.com>
962 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
963 back end switches when executable specified with --GCC= is same as
964 default, even if there are additional options.
967 Document when the back end switches from the ALI file are taken into
968 account when gnatlink is invoked with --GCC=
970 2008-05-23 Thomas Quinot <quinot@adacore.com>
973 (copy_File): Do not open destination file if source file is unreadable.
975 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
977 * utils.c (handle_type_generic_attribute): Adjust to accept
978 fixed arguments before an elipsis.
980 2008-05-21 Thomas Quinot <quinot@adacore.com>
982 * g-sothco.ads, g-sothco.adb: New files.
984 2008-05-20 Thomas Quinot <quinot@adacore.com>
986 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
988 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
989 Add missing "with" of Ada.Unchecked_Conversion
991 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
992 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
993 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
994 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
995 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
996 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
997 Move common code out of GNAT.Sockets.Thin implementations and into
999 New constant SIZEOF_fd_set
1000 New flag Has_Sockaddr_Len
1001 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1003 * g-stsifd-sockets.adb
1004 (Create): Remove call to Set_Length; use Set_Family to set the family
1005 and (on appropriate platforms) length fields in struct sockaddr.
1007 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
1008 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
1009 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
1010 Move common code out of GNAT.Sockets.Thin implementations and into
1013 * g-socket.ads, g-socket.adb:
1014 Move common code out of GNAT.Sockets.Thin implementations and into
1016 (Connect_Socket, Accept_Socket): Provide new versions of these two
1017 routines that operate with a user specified timeout.
1018 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
1019 this is now handled automatically by Set_Family on platforms that
1023 Move common code out of GNAT.Sockets.Thin implementations and into
1025 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
1026 this constant to 0 (not -1) because we use it to initialize an
1027 unsigned_char value.
1028 Align values for numeric constants only.
1029 Handle the case of systems that do not support AF_INET6.
1030 New constant SIZEOF_fd_set
1031 New flag Has_Sockaddr_Len
1032 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1034 * gsocket.h: New flag Has_Sockaddr_Len
1035 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
1037 2008-05-20 Santiago Uruena <uruena@adacore.com>
1039 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
1041 2008-05-20 Arnaud Charlet <charlet@adacore.com>
1043 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
1044 the underlying issue with malloc/free has been fixed. Remove associated
1047 Related to PR ada/24533
1049 2008-05-20 Robert Dewar <dewar@adacore.com>
1051 * ali.adb: Correct casing of ASCII.NUL
1053 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
1056 2008-05-20 Robert Dewar <dewar@adacore.com>
1057 Gary Dismukes <dismukes@adacore.com>
1059 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
1060 overflow if result converted to wider integer type.
1061 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
1062 discriminated types when discriminant checks are suppressed.
1064 2008-05-20 Vincent Celier <celier@adacore.com>
1066 * cstand.adb (Print_Standard): Issue the correct Size clause for type
1067 Wide_Wide_Character.
1069 2008-05-20 Tristan Gingold <gingold@adacore.com>
1071 * decl.c: Do not emit a variable for a object that has an address
1072 representation clause whose value is known at compile time.
1073 When a variable has an address clause whose value is known at compile
1074 time, refer to this variable by using directly the address instead of
1075 dereferencing a pointer.
1077 2008-05-20 Robert Dewar <dewar@adacore.com>
1080 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
1081 subtypes, always False for non-modular types.
1082 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
1083 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
1084 for Shared_Storage package.
1085 (Is_RACW_Stub_Type): New entity flag.
1088 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
1089 case where we have a modular type with a non-binary modules.
1090 Comments reformattings.
1092 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
1095 2008-05-20 Javier Miranda <miranda@adacore.com>
1098 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
1099 tests did not covered the case in which the type of the aggregate has
1100 no progenitors but some its parents has progenitors.
1102 2008-05-20 Gary Dismukes <dismukes@adacore.com>
1103 Hristian Kirtchev <kirtchev@adacore.com>
1106 (Expand_N_Object_Declaration): Correct the condition which triggers the
1107 generation of a call to Displace when initializing a class-wide object.
1108 (Build_Dcheck_Functions): Build discriminant-checking for null variants
1109 when Frontend_Layout_On_Target is true to ensure that they're available
1110 for calling when a record variant size function is built in Layout.
1112 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1114 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1115 procedure for a derived type retrieve the discriminant values from the
1116 parent using the corresponding discriminant.
1117 (Expand_N_Assignment_Statement): Skip generation of implicit
1118 if-statement associated with controlled types if we are
1119 compiling with restriction No_Finalization.
1121 2008-05-20 Vincent Celier <celier@adacore.com>
1123 * prj.adb (Hash (Project_Id)): New function
1124 (Project_Empty): Add new component Interfaces_Defined
1126 * prj.ads (Source_Data): New component Object_Linked
1127 (Language_Config): New components Object_Generated and Objects_Linked
1128 (Hash (Project_Id)): New function
1129 (Source_Data): New Boolean components In_Interfaces and
1130 Declared_In_Interfaces.
1131 (Project_Data): New Boolean component Interfaces_Defined
1134 New project level attribute Object_Generated and Objects_Linked
1135 Add new project level attribute Interfaces
1137 * prj-dect.adb: Use functions Present and No throughout
1138 (Parse_Variable_Declaration): If a string type is specified as a simple
1139 name and is not found in the current project, look for it also in the
1140 ancestors of the project.
1143 Replace procedure Make with procedures Initialize, Process and Finalize
1144 to implement H414-023: process different directories with different
1146 Use functions Present and No throughout
1149 Replace procedure Make with procedures Initialize, Process and Finalize
1152 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
1153 the language configuration.
1154 (Process_Project_Level_Array_Attributes): Process new attributes
1155 Object_Generated and Object_Linked.
1156 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
1157 False, to indicate that the erreor/warning is a continuation.
1158 (Check): Call Report_No_Sources with Contnuation = True after the first
1160 (Error_Msg): Process successively contnuation character and warning
1162 (Find_Explicit_Sources): Check that all declared sources have been found
1163 (Check_File): Indicate in hash table Source_Names when a declared source
1165 (Check_File): Set Other_Part when found
1166 (Find_Explicit_Sources): In multi language mode, check if all exceptions
1167 to the naming scheme have been found. For Ada, report an error if an
1168 exception has not been found. Otherwise, disregard the exception.
1169 (Check_Interfaces): New procedure
1170 (Add_Source): When Other_Part is defined, set mutual pointers in spec
1172 (Check): In multi-language mode, call Check_Interfaces
1173 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
1174 for an excluded source.
1175 (Remove_Source): A source replacing a source in the interfaces is also
1178 * prj-pars.adb: Use function Present
1180 * prj-part.adb: Use functions Present and No throughout
1181 (Parse_Single_Project): Set the parent project for child projects
1182 (Create_Virtual_Extending_Project): Register project with no qualifier
1183 (Parse_Single_Project): Allow an abstract project to be extend several
1184 times. Do not allow an abstract project to extend a non abstract
1187 * prj-pp.adb: Use functions Present and No throughout
1188 (Print): Take into account the full associative array attribute
1191 * prj-proc.adb: Use functions Present and No throughout
1192 (Expression): Call itself with the same From_Project_Node for the
1193 default value of an external reference.
1195 * prj-strt.adb: Use functions Present and No throughout
1196 (Parse_Variable_Reference): If a variable is specified as a simple name
1197 and is not found in the current project, look for it also in the
1198 ancestors of the project.
1200 * prj-tree.ads, prj-tree.adb (Present): New function
1202 Use functions Present and No throughout
1203 (Parent_Project_Of): New function
1204 (Set_Parent_Project_Of): New procedure
1206 * snames.ads, snames.adb:
1207 Add new standard names Object_Generated and Objects_Linked
1209 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
1211 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
1212 and the derived type are of the same kind.
1213 (Expand_Call): Generate type conversions for actuals of
1214 record or array types when the parent and the derived types differ in
1215 size and/or packed status.
1217 2008-05-20 Javier Miranda <miranda@adacore.com>
1218 Ed Schonberg <schonberg@adacore.com>
1220 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
1221 generating dispatch tables of locally defined tagged types statically.
1222 Remove implicit if-statement that is no longer required.
1223 (Expand_Dispatching_Call): If this is a call to an instance of the
1224 generic dispatching constructor, the type of the first argument may be
1225 a subtype of Tag, so always use the base type to recognize this case.
1227 2008-05-20 Thomas Quinot <quinot@adacore.com>
1230 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
1231 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
1232 assigning NULL into the result, to avoid a spurious warning.
1233 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
1235 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
1237 (Build_From_Any_Function, Build_To_Any_Function,
1238 Build_TypeCode_Function): For a type that has user-specified stream
1239 attributes, use an opaque sequence of octets as the representation.
1241 2008-05-20 Kevin Pouget <pouget@adacore.com>
1243 * exp_smem.ads, exp_smem.adb: Construction of access and assign
1244 routines has been replaced by an instantiation of
1245 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
1246 shared variable declaration.
1247 Calls to access and assign routines have been replaced by calls to
1248 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
1249 instantiated package.
1251 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
1252 It identifies the new generic package added in s-shasto.
1254 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
1255 is instantiated for each shared passive variable. It provides
1256 supporting procedures called upon each read or write access by the
1260 For this runtime unit (always compiled in GNAT mode), we allow
1261 stream attributes references for limited types for the case where
1262 shared passive objects are implemented using stream attributes,
1263 which is the default in GNAT's persistent storage implementation.
1265 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1268 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
1269 convention from its base type, do not set the type to that of integer,
1270 because it may inherit a size clause.
1271 Warn on a size clause with a size different
1272 from that of Integer, if the type has convention C.
1274 2008-05-20 Vincent Celier <celier@adacore.com>
1277 (Scan_Args): Rewrite to take into account new switch --and to separate
1278 arguments into sections.
1279 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
1280 section, then Finalize.
1282 2008-05-20 Tristan Gingold <gingold@adacore.com>
1284 * init.c: Enable stack probing on ppc-linux.
1286 * tracebak.c: Add symbolic traceback for ppc-linux.
1288 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
1290 2008-05-20 Arnaud Charlet <charlet@adacore.com>
1293 (common-tools): New rule, to avoid parallel build failure on gnat tools.
1294 Reenable parallel builds on this Makefile.
1296 * Make-lang.in: Update dependencies.
1298 2008-05-20 Robert Dewar <dewar@adacore.com>
1300 * opt.ads (Treat_Restrictions_As_Warnings): New switch
1302 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
1303 Treat_Restrictions_As_Warnings.
1305 * switch-c.adb: Recognize new switch -gnatr
1307 * usage.adb: Add line for -gnatr
1309 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
1312 (P_Access_Definition): Change the error message when parsing "access
1313 all" in Ada 95 mode. The message no longer forces the user to recompile
1314 in 05 mode only to discover that anonymous access types are not allowed
1317 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
1320 (P_Protected): Update the error message on missing "-gnat05" switch when
1321 using interfaces in conjunction with protected types. Remove the
1322 incorrect error message associated with the presence of "private" after
1325 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1327 * sem_aggr.adb: Update comments.
1328 Improve previous change for PR ada/17985
1330 2008-05-20 Thomas Quinot <quinot@adacore.com>
1333 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
1334 the visible part of the spec of a remote types unit.
1335 (Validate_Remote_Access_Object_Type_Declaration):
1336 New local subprogram Is_Valid_Remote_Object_Type, replaces
1337 Is_Recursively_Limited_Private.
1338 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
1339 non-controlling formals (and the return type, even though this is not
1340 explicit in the standard) must support external streaming.
1341 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
1342 as above for of RAS types and RCI subprograms. (The return type is not
1344 Update comments related to RACWs designating limited interfaces per
1345 ARG ruling on AI05-060.
1347 * sem_util.ads, sem_util.adb
1348 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
1349 Is_Remote_Call_Interface to identify RACW types in a stable and
1350 consistent way. We used to rely in this predicate on the privateness of
1351 the designated type and its ancestors, but depending on the currently
1352 visible private parts, this caused false negatives. We now uniformly
1353 rely on checks made at the point where the RACW type is declared.
1354 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
1356 2008-05-20 Javier Miranda <miranda@adacore.com>
1357 Ed Schonberg <schonberg@adacore.com>
1358 Hristian Kirtchev <kirtchev@adacore.com>
1361 (Analyze_Object_Declaration): Fix over-conservative condition
1362 restricting use of predefined assignment with tagged types that have
1364 (Analyze_Object_Declaration): Relax the check regarding deferred
1365 constants declared in scopes other than packages since they can be
1366 completed with pragma Import.
1367 Add missing escaping of all-caps word 'CPP' in error messages.
1368 (Build_Discriminated_Subtype): Do not inherit representation clauses
1369 from parent type if subtype already carries them, because they are
1370 inherited earlier during derivation and already include those that may
1371 come from a partial view.
1373 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
1374 Check the declarations of a subprogram body for proper deferred
1375 constant completion.
1377 * sem_ch7.ads, sem_ch7.adb
1378 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
1380 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1381 Thomas Quinot <quinot@adacore.com>
1384 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
1385 F is a parameterless function that returns an array, and S is a subtype
1387 (Analyze_Call): Insert dereference when the prefix is a parameterless
1388 function that returns an access to subprogram and the call has
1390 Reject a non-overloaded call whose name resolves to denote
1391 a primitive operation of the stub type generated to support a remote
1392 access-to-class-wide type.
1394 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1397 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
1398 when there is a use clause for the same entity in the context.
1399 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
1400 created for a stream attribute of an abstract type or interface type.
1402 2008-05-20 Thomas Quinot <quinot@adacore.com>
1404 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
1408 (Add_One_Interp): Ignore any interpretation that is a primitive
1409 operation of an RACW stub type (these primitives are only executed
1410 through dispatching, never through static calls).
1411 (Collect_Interps): When only one interpretation has been found, set N's
1412 Entity and Etype to that interpretation, otherwise Entity and Etype may
1413 still refer to an interpretation that was ignored by Add_One_Interp,
1414 in which case would end up with being marked as not overloaded but with
1415 an Entity attribute not pointing to its (unique) correct interpretation.
1417 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1420 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
1421 denotes the whole array of its prefix.
1423 2008-05-20 Robert Dewar <dewar@adacore.com>
1425 * sem_res.adb (Resolve_Op_Not): Warn on double negation
1427 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1430 (Print_Itype): Do not modify the sloc of the component type of a
1431 (packed) array itype, because it is an unrelated type whose source
1432 location is independent of the point of creation of the itype itself.
1434 2008-05-20 Thomas Quinot <quinot@adacore.com>
1436 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
1439 2008-05-20 Robert Dewar <dewar@adacore.com>
1440 Vincent Celier <celier@adacore.com>
1442 * vms_data.ads: Add entry for -gnatr
1443 Put GNAT SYNC section in proper alpha order
1444 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
1446 * gnat_ugn.texi: Add documentation for new gnatname switch --and
1447 Update the style checks section
1448 Add documentation of -gnatr
1449 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
1450 subsection the explanation how compiler checks should be disabled for
1452 Update the list of Ada 95 reserved words used by in the project language
1453 Add documentation for project qualifiers.
1454 Document that abstract projects may be extended by different projects in
1455 the same project tree.
1456 Add documentation for gnatmake switch -d
1458 * ug_words: Add -gnatyy VMS equivalence string.
1459 Add entry for -gnatr
1461 2008-05-20 Bob Duff <duff@adacore.com>
1464 (Set_Handler): Remove code from both of these that implements
1465 RM-D.15(15/2), because it causes a race condition and potential
1467 (Process_Queued_Events): Add comment explaining "exception when others
1468 => null". Add clarifying ".all", even though implicit .all is legal
1471 2008-05-20 Arnaud Charlet <charlet@adacore.com>
1473 * s-winext.ads: Replace representation clause by pragma Pack. Gives
1474 equivalent representation, but has the advantage of allowing
1475 compilation of this file under 64 bits platforms.
1477 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
1479 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
1482 Don't define dummy implementation of convert_addresses on ppc-linux.
1484 2008-05-20 Ed Schonberg <schonberg@adacore.com>
1487 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
1488 if expression is aggregate component.
1490 2008-05-20 Robert Dewar <dewar@adacore.com>
1492 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
1493 sem_ch12.adb: Update comments. Minor reformatting.
1497 * s-unstyp.ads: Fixed some typos in comments.
1499 2008-05-20 Arnaud Charlet <charlet@adacore.com>
1501 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
1504 * g-socthi-vxworks.ads: Update to latest socket changes.
1506 * a-caldel-vms.adb: Resync with a-caldel spec.
1508 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
1511 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
1513 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
1514 for dummy types pointed to by the converted pointer types.
1516 2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
1518 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
1519 of records and unions.
1520 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
1522 2008-05-14 Samuel Tardieu <sam@rfc1149.net>
1523 Robert Dewar <dewar@adacore.com>
1525 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
1526 restrictions to the prefix of 'Old.
1527 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
1528 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
1531 2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
1535 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
1536 expression to an integral type with lower precision, use NOP_EXPR
1537 directly in a couple of special cases.
1539 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
1540 Ed Schonberg <schonberg@adacore.com>
1542 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
1543 constraint expressions.
1545 2008-05-12 Tomas Bily <tbily@suse.cz>
1547 * utils2.c (known_alignment, contains_save_expr_p)
1548 (gnat_mark_addressable): Use CASE_CONVERT.
1549 * decl.c (annotate_value): Likewise.
1550 * trans.c (maybe_stabilize_reference): Likewise.
1551 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
1552 * utils.c (rest_of_record_type_compilation): Likewise.
1553 * trans.c (protect_multiple_eval, Attribute_to_gnu)
1554 (protect_multiple_eval): Likewise.
1556 2008-05-08 Andreas Schwab <schwab@suse.de>
1558 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
1559 DECL_IS_PURE to DECL_PURE_P.
1561 2008-05-05 Eric Botcazou <ebotcazou@adacore.com>
1563 * decl.c (maybe_pad_type): Add ??? comment.
1565 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
1567 * decl.c (components_to_record): Zero the alignment of the qualified
1568 union built for the variant part upon creating it.
1570 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
1572 * decl.c (maybe_pad_type): Try to get a form of the type with integral
1573 mode even if the alignment is not a factor of the original size. But
1574 make sure to create the inner field with the original size. Reorder.
1575 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
1576 record as always addressable.
1577 * utils.c (convert): Deal specially with conversions between original
1578 and packable versions of a record type.
1579 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
1580 recognizing an assignment between padded objects.
1582 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
1584 * decl.c (make_packable_type): Resize the last component to its RM size
1585 only if it is of an aggregate type.
1586 * trans.c (call_to_gnu): Fix nit in comment.
1587 (gnat_to_gnu): Likewise.
1589 2008-04-30 Samuel Tardieu <sam@rfc1149.net>
1591 * Makefile.in: Adapt sh4-linux target.
1593 2008-04-29 Ed Schonberg <schonberg@adacore.com>
1596 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
1597 tagged type by an untagged protected or task type.
1599 2008-04-28 Eric Botcazou <ebotcazou@adacore.com>
1600 Tristan Gingold <gingold@adacore.com>
1603 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
1604 of aliased objects with an unconstrained nominal subtype.
1605 Cap the promotion to the effective alignment of the word mode.
1607 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1609 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
1610 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
1611 Use '&&' instead of ';'.
1613 2008-04-24 Olivier Hainque <hainque@adacore.com>
1615 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
1616 doesn't require signed arithmetic anymore.
1618 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
1620 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
1621 (call_to_gnu): Don't set TREE_INVARIANT.
1622 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
1624 2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
1626 * s-osinte-rtems.adb: Add sigalstack function.
1627 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
1628 function. Add Alternate_Stack and Alternate_Stack_Size.
1629 Add missing process_shared field to pthread_condattr_t
1630 and change ss_low_priority to int from timespec.
1632 2008-04-22 Samuel Tardieu <sam@rfc1149.net>
1634 * i-forbla.adb: Link against -llapack and -lblas by default
1635 instead of the private -lgnalasup.
1637 2008-04-21 Olivier Hainque <hainque@adacore.com>
1639 Access to most C builtins from Ada
1640 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
1641 (handle_pure_attribute, handle_novops_attribute,
1642 handle_nonnull_attribute, handle_sentinel_attribute,
1643 handle_noreturn_attribute, handle_malloc_attribute,
1644 handle_type_generic_attribute): New attribute handlers, from C fe.
1645 (gnat_internal_attribute_table): Map the new handlers.
1646 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
1647 (init_gigi_decls): ... here.
1648 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
1649 Move to a section dedicated to builtins processing.
1650 (build_void_list_node, builtin_type_for_size): New functions.
1651 (def_fn_type, get_nonnull_operand): Likewise.
1652 (install_builtin_elementary_type, install_builtin_function_types,
1653 install_builtin_attributes): Likewise.
1654 (fake_attribute_handler): Fake handler for attributes we don't
1656 (def_builtin_1): New function, worker for DEF_BUILTIN.
1657 (install_builtin_functions): New function.
1658 (gnat_install_builtins): Move to the builtins processing section.
1659 Now calling the newly introduced installers.
1661 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
1663 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
1664 constant objects, but not exceptions.
1665 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
1667 * utils.c (create_var_decl_1): Likewise.
1668 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
1669 the type when copying to padded object and the source is a constructor.
1671 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
1673 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
1674 alignment, reset it to zero if it would end up not being greater
1675 than that of the type.
1677 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
1679 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
1680 the padded type has a variable size.
1682 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
1684 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
1685 target pointer mechanism as soon as the size is not constant.
1687 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
1689 * gigi.h (create_var_decl_1): Declare.
1690 (create_var_decl): Turn into a macro invoking create_var_decl_1.
1691 (create_true_var_decl): Likewise.
1692 * utils.c (create_var_decl_1): Make global and reorder parameters.
1693 (create_var_decl): Delete.
1694 (create_true_var_decl): Likewise.
1696 2008-04-17 Eric Botcazou <ebotcazou@adacore.com>
1698 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
1700 * fe.h (Debug_Flag_Dot_A): Delete.
1701 * debug.adb (-gnatd.a): Update documentation.
1703 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
1705 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
1706 "not null" parameter.
1708 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
1710 * g-socket.adb: Add a message "IPv6 not supported" to the
1711 Socket_Error exception.
1713 2008-04-16 Samuel Tardieu <sam@rfc1149.net>
1716 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
1717 the type is known instead of the underlying type.
1719 2008-04-15 Ed Schonberg <schonberg@adacore.com>
1722 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
1723 procedure for a derived type retrieve the discriminant values from
1724 the parent using the corresponding discriminant.
1726 2008-04-15 Samuel Tardieu <sam@rfc1149.net>
1727 Gary Dismukes <dismukes@adacore.com>
1730 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
1731 which is not an entity (and hence not a package).
1732 (End_Use_Package): Ditto.
1734 2008-04-15 Ed Schonberg <schonberg@adacore.com>
1737 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
1738 protected operation that matches the signature, not only an entry, a
1739 regular subprogram or a literal.
1741 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
1743 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
1744 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
1745 if a size or alignment is specified. Do not take into account
1746 alignment promotions for the computation of the object's size.
1747 <type>: Call maybe_pad_type only if a size or alignment is specified.
1748 (maybe_pad_type): Really reuse the RM_Size of the original type if
1750 * trans.c (Attribute_to_gnu): Fix a couple of nits.
1751 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
1752 statements. Use the padded view of the type when copying between
1753 padded objects of the same underlying type.
1755 2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1757 * vms_data.ads: Fix typo in constant.
1758 * gen-soccon.c: Fix typo in error string.
1759 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
1761 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
1762 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
1763 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
1764 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
1765 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
1766 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
1767 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
1768 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
1769 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
1770 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
1771 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
1772 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
1773 sinfo.ads: Fix typos in comments.
1775 2008-04-14 Robert Dewar <dewar@adacore.com>
1777 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
1778 to every non-object and change error message.
1780 2008-04-14 Robert Dewar <dewar@adacore.com>
1782 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
1783 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
1786 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
1789 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
1790 apply pragma Linker_Section on type.
1792 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
1795 * sem_prag.adb (Error_Pragma_Ref): New.
1796 (Process_Convention): Specialized message for non-local
1797 subprogram renaming. Detect the problem in homonyms as well.
1799 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
1802 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
1803 * sem_ch12.adb (Instantiate_Object): Use it.
1804 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
1805 storage pool denotes a variable as per RM 13.11(15).
1807 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
1809 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
1810 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
1812 2008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
1815 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
1816 line endings even on non-Unix platforms.
1818 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
1821 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
1822 renaming information.
1824 2008-04-13 Samuel Tardieu <sam@rfc1149.net>
1827 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
1830 2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1832 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
1833 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
1834 snames.ads, sprint.adb, stand.ads, stringt.ads,
1835 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
1836 switch.ads, sysdep.c, table.adb, table.ads,
1837 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
1838 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
1839 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
1840 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
1841 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
1842 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
1845 * sem_ch10.adb, sem_ch10.ads,
1846 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
1847 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
1848 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1849 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
1850 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
1851 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
1852 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
1853 sem_warn.ads: Fix comment typos.
1855 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
1856 s-soflin.ads, s-stalib.ads, s-stausa.adb,
1857 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
1858 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
1859 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
1860 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
1861 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
1862 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
1863 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
1864 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
1865 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
1866 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
1867 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
1868 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
1869 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
1870 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
1871 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
1872 sem_cat.adb, sem_cat.ads: Fix comment typos.
1874 2008-04-12 Joel Sherrill <joel@oarcorp.com>
1877 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
1879 2008-04-12 Arnaud Charlet <charlet@adacore.com>
1881 * s-linux-hppa.ads: Fix syntax errors.
1883 2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1885 * gnat_ugn.texi: Fix typos.
1886 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
1887 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
1888 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
1889 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
1890 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
1891 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
1892 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
1893 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
1894 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
1895 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
1896 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
1897 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
1898 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
1899 s-osinte-darwin.ads, s-osinte-freebsd.ads,
1900 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
1901 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
1902 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
1903 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
1904 s-parame-hpux.ads, s-parame-vms-alpha.ads,
1905 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
1906 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
1907 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
1908 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
1909 s-rident.ads: Fix comment typos.
1911 2008-04-09 Samuel Tardieu <sam@rfc1149.net>
1914 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
1915 environment if generic instance is a top-level one.
1917 2008-04-09 Doug Rupp <rupp@adacore.com>
1919 * decl.c (validate_size): Set minimum size for fat pointers same as
1920 access types. Code clean ups.
1922 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
1923 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
1925 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
1927 * s-crtl.ads (malloc32) New function, alias for malloc
1928 (realloc32) New function, alias for realloc
1930 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
1932 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
1933 allocator size is 32 and default pointer size is 64.
1934 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
1935 lhs type if smaller, whatever the modes.
1937 * gigi.h (malloc32_decl): New macro definition
1939 * utils.c (init_gigi_decls): New malloc32_decl
1940 Various code clean ups.
1942 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
1943 Task_Address vice System.Address.
1945 * s-taspri-vms.ads: Import System.Aux_DEC
1946 (Task_Address): New subtype of System.Aux_DEC.Short_Address
1947 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
1949 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
1950 Task_Address vice System.Address.
1952 * s-inmaop-vms.adb: Import System.Task_Primitives
1953 (To_Address): Unchecked convert to Task_Address vice System.Address
1955 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
1957 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
1958 (To_Address) Unchecked convert to Task_Address vice System.Address
1960 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
1962 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
1964 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
1966 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
1967 (fdesc_type_node): Define.
1968 (null_fdesc_node): Likewise.
1969 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
1970 uses descriptors for vtables and the type comes from a dispatch table,
1971 return the descriptor type.
1972 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
1973 uses descriptors for vtables and the type comes from a dispatch table,
1974 build a descriptor in the static case and copy the existing one in the
1976 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
1977 the type is a pointer-to-subprogram coming from a dispatch table,
1978 return the null descriptor.
1979 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
1980 vtables, the source type is the descriptor type and the target type
1981 is a pointer type, first build the pointer.
1982 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
1983 build the descriptor type and the null descriptor.
1985 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
1987 * decl.c (prepend_attributes): Fix typo.
1988 * trans.c (Pragma_to_gnu): Likewise.
1989 * utils.c (gnat_genericize): Likewise.
1991 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
1992 Richard Kenner <kenner@adacore.com>
1994 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
1995 * decl.c (gnat_to_gnu_entity): Adjust for above change.
1996 <E_Record_Type>: Try to get a better form of the component for
1997 packing, even if it has an integral mode.
1998 <E_Record_Subtype>: Likewise.
1999 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
2000 exception suppressing the final conversion between record types.
2002 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
2004 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
2005 alignment for space, promote the alignment of non-scalar variables with
2006 no size and alignment.
2007 * gigi.h (gnat_types_compatible_p): Declare.
2008 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
2009 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
2010 * utils.c (gnat_types_compatible_p) : New predicate.
2011 (convert): Use it throughout to test for cases where a mere view
2012 conversion is sufficient.
2013 * utils2.c (build_binary_op): Minor tweaks.
2014 (build_unary_op): Likewise.
2016 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
2018 * decl.c (adjust_packed): Expand comment.
2020 2008-04-08 Arnaud Charlet <charlet@adacore.com>
2022 * s-tasuti.ads: Use Task_Address instead of System.Address.
2024 * makeutl.adb (Path_Or_File_Name): New function
2026 * nlists.ads, itypes.ads: Update comments.
2028 * s-crtl.ads (malloc32, realloc32): New functions.
2030 * s-auxdec.ads (Short_Address_Size): New constant.
2032 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
2034 * s-ststop.ads, s-ststop.adb: New file.
2036 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
2039 2008-04-08 Pascal Obry <obry@adacore.com>
2041 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
2042 (Stop_Bits_Number): New type.
2043 (Parity_Check): Likewise.
2044 (Set): Add parameter to set the number of stop bits and
2045 the parity. Parameter timeout is now a duration instead
2048 * g-sercom-linux.adb:
2049 Implement the stop bits and parity support for GNU/Linux.
2050 Fix handling of timeout, it must be given in tenth of seconds.
2052 * g-sercom-mingw.adb:
2053 Implement the stop bits and parity support for Windows.
2054 Use new s-win32.ads unit instead of declaring Win32 services
2055 directly into this body.
2056 Update handling of timeout as now a duration.
2058 * s-win32.ads, s-winext.ads: New files.
2060 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
2061 Arnaud Charlet <charlet@adacore.com>
2063 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
2065 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
2066 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
2068 * s-osinte-lynxos-3.ads,
2069 (Alternate_Stack): Remove when not needed. Simplify declaration
2071 (Alternate_Stack_Size): New constant.
2073 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
2074 'Unrestricted_Access.
2076 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
2077 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
2078 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
2079 s-osinte-solaris.ads, s-osinte-vms.ads
2080 (SA_ONSTACK): New constant.
2081 (stack_t): New record type.
2082 (sigaltstack): New imported function.
2083 (Alternate_Stack): New imported variable.
2084 (Alternate_Stack_Size): New constant.
2086 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
2088 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
2089 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
2090 s-taspri-vms.ads (Task_Address): New subtype of System.Address
2091 (Task_Address_Size): New constant size of System.Address
2092 (Alternate_Stack_Size): New constant.
2094 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
2095 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
2096 Establish the alternate stack if the platform makes use of n alternate
2097 signal stack for stack overflows.
2098 (Create_Task): Take into account the alternate stack in the stack size.
2099 (Initialize): Save the address of the alternate stack into the ATCB for
2100 the environment task.
2101 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
2103 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
2105 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
2107 * s-intman-posix.adb:
2108 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
2109 alternate signal stack for stack overflows.
2111 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
2112 x86-64, adjust the saved value of the stack pointer if the signal was
2113 raised by a stack checking probe.
2114 (HP-UX section): Use global __gnat_alternate_stack as signal handler
2115 stack and only for SIGSEGV.
2116 (Linux section): Likewise on x86 and x86-64.
2118 (__gnat_map_signal): Now static.
2119 (__gnat_error_handler): Not static any more.
2120 (__gnat_adjust_context_for_raise): New function. Signal context
2121 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
2122 propagation circuitry.
2123 (__gnat_error_handler): Second argument of a sigaction handler is a
2124 pointer, not an int, and is unused.
2125 Adjust signal context before mapping to exception.
2126 Install signal handlers for LynxOS case.
2128 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
2129 (Task_Id): Set size to Task_Address_Size
2130 (To_Task_id): Unchecked convert from Task_Address vice System.Address
2131 (To_Address): Unchecked convert to Task_Address vice System.Address
2133 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
2134 address into the ATCB if the platform makes use of an alternate signal
2135 stack for stack overflows.
2136 (Free_Task): Add call to Finalize_Attributes_Link.
2137 Add argument Relative_Deadline to pass the value specified for
2138 the task. This is not yet used for any target.
2140 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
2141 the value specified for the task.
2143 2008-04-08 Arnaud Charlet <charlet@adacore.com>
2145 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
2146 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
2147 s-vxwext-rtp.adb): New files.
2149 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
2150 Minor updates to accomodate changes above.
2152 2008-04-08 Pascal Obry <obry@adacore.com>
2154 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
2155 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
2156 Use new s-win32.ads unit instead of declaration
2157 from s-osinte-mingw.ads.
2159 * s-osinte-mingw.ads:
2160 Move all non tasking based interface to s-win32.ads.
2162 * s-osprim-mingw.adb:
2163 Remove duplicated declarations and use s-win32.ads
2166 2008-04-08 Vincent Celier <celier@adacore.com>
2167 Arnaud Charlet <charlet@adacore.com>
2169 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
2170 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
2171 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
2172 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2173 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
2175 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
2176 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
2177 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
2178 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
2179 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
2180 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
2181 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
2182 mlib-tgt-specific-mingw.adb: New names.
2185 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
2187 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
2188 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
2189 Minor updates for VMS
2191 * gnatbl.c: Removed.
2193 2008-04-08 Thomas Quinot <quinot@adacore.com>
2195 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
2196 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
2197 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
2198 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
2199 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
2200 ASCII.NUL throughout.
2202 2008-04-08 Arnaud Charlet <charlet@adacore.com>
2203 Matthew Heaney <heaney@adacore.com>
2205 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
2208 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
2209 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
2210 to convention for non-RM specs.
2211 Add descriptive header, and documented each operation
2212 document each operation
2214 2008-04-08 Robert Dewar <dewar@adacore.com>
2215 Bob Duff <duff@adacore.com>
2216 Gary Dismukes <dismukes@adacore.com>
2217 Ed Schonberg <schonberg@adacore.com>
2219 * alloc.ads: Add entries for Obsolescent_Warnings table
2221 * einfo.ads, einfo.adb: Minor reformatting.
2222 (Is_Discriminal): New subprogram.
2223 (Is_Prival): New subprogram.
2224 (Is_Protected_Component): New subprogram.
2225 (Is_Protected_Private): Removed.
2226 (Object_Ref, Set_Object_Ref): Removed.
2227 (Prival, Set_Prival): Change assertion.
2228 (Privals_Chain, Set_Privals_Chain): Removed.
2229 (Prival_Link, Set_Prival_Link): New subprogram.
2230 (Protected_Operation, Set_Protected_Operation): Removed.
2231 (Protection_Object, Set_Protection_Object): New subprogram.
2232 (Write_Field17_Name): Remove case for Object_Ref.
2233 (Write_Field20_Name): Add case for Prival_Link.
2234 (Write_Field22_Name): Remove case for Protected_Operation,
2236 Add case for Protection_Object.
2237 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
2239 (Overlays_Constant): New flag
2240 (Is_Constant_Object): New predicate
2241 (Is_Standard_Character_Type): New predicate
2242 (Optimize_Alignment_Space): New flag
2243 (Optimize_Alignment_Time): New flag
2244 (Has_Postconditions): New flag
2245 (Obsolescent_Warrning): Field removed
2246 (Spec_PPC_List): New field
2247 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
2248 subprograms to get and set the relative deadline associated to a task.
2250 * exp_attr.adb (May_Be_External_Call): Account for the case where the
2251 Access attribute is part of a named parameter association.
2252 (Expand_Access_To_Protected_Op): Test for the attribute occurring
2253 within an init proc and use that directly as the scope rather than
2254 traversing up to the protected operation's enclosing scope. Only apply
2255 assertion on Is_Open_Scopes in the case the scope traversal is done.
2256 For the init proc case use the address of the first formal (_init) as
2257 the protected object reference.
2258 Implement Invalid_Value attribute
2259 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
2260 contents of the dispatch table there is no need to duplicate the
2261 itypes associated with record types (i.e. the implicit full view
2263 Implement Enum_Val attribute
2264 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
2265 within _Postconditions procedure
2266 (Expand_N_Attribute_Reference, case Result): Implement new attribute
2268 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
2269 a return statement calls a function that is not available in
2270 configurable runtime.
2271 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
2272 (Expand_Non_Function_Return): Generate call to _Postconditions proc
2273 (Expand_Simple_Function_Return): Ditto
2275 * frontend.adb: Add call to Sem_Aux.Initialize
2277 * sem_aux.ads, sem_aux.adb: New file.
2279 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
2280 Add new Pragma_Relative_Deadline.
2281 Add support for pragmas Check and Check_Policy
2283 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
2284 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
2285 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
2286 missing check because they are not allowed in CPP tagged types.
2287 Add Sure parameter to Note_Possible_Modification calls
2288 Add implementation of Invalid_Value attribute
2289 Implement new attribute Has_Tagged_Values
2290 Implement Enum_Val attribute
2291 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
2292 generated attributes.
2293 (Analyze_Attribute, case Result): If prefix of the attribute is
2294 overloaded, it always resolves to the enclosing function.
2295 (Analyze_Attribute, case Result): Properly deal with analysis when
2296 Postconditions are not active.
2297 (Resolve_Attribute, case Result): Properly deal with appearence during
2298 preanalysis in spec.
2299 Add processing for attribute Result
2301 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
2303 (Analyze_Subprogram_Body): Install private_with_clauses when the body
2305 (Check_Inline_Pragma): recognize an inline pragma that appears within
2306 the subprogram body to which it applies.
2307 (Analyze_Function_Return): Check that type of the expression of a return
2308 statement in a function with a class-wide result is not declared at a
2309 deeper level than the function.
2310 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
2311 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
2312 user- defined operators.
2313 (Install_Formals): Moved to spec to allow use from Sem_Prag for
2314 analysis of precondition/postcondition pragmas.
2315 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
2316 Last_Formal, along with lots of comments on what this is about
2317 (Analyze_Subprogram_Body): Fix case where we move entities from the
2318 spec to the body when there are no body entities (now possible with
2319 precondition and postcondition pragmas).
2320 (Process_PPCs): New procedure
2321 (Analyze_Subprogram_Body): Add call to Process_PPCs
2323 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
2325 (Pop_Scope): Restore Check_Policy_List on scope exit
2326 (Push_Scope): Save Check_Policy_List on scope entry
2327 Change name In_Default_Expression => In_Spec_Expression
2328 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2329 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
2330 (Analyze_Object_Renaming): Allow 'Reference as object
2331 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
2332 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
2333 of restriction identifier.
2334 Add Sure parameter to Note_Possible_Modication calls
2336 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
2337 Don't check for primitive operations when calling Rep_Item_Too_Late.
2338 (Process_Import_Or_Interface): Do not place flag on formal
2340 (Analyze_Pragma, case Export): If the entity is a deferred constant,
2341 propagate information to full view, which is the one elaborated by the
2343 (Make_Inline): the pragma is effective if it applies to an internally
2344 generated subprogram declaration for a body that carries the pragma.
2345 (Analyze_Pragma, case Optimize_Alignment): Set new flag
2346 Optimize_Alignment_Local.
2347 (Analyze_PPC_In_Decl_Part): New procedure
2348 (Get_Pragma_Arg): Moved to outer level
2349 (Check_Precondition_Postcondition): Change to allow new visibility
2350 rules for package spec
2351 (Analyze_Pragma, case Check_Policy): Change placement rules to be
2352 same as pragma Suppress/Unsuppress.
2353 Change name In_Default_Expression => In_Spec_Expression
2354 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2355 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
2356 (Check_Precondition_Postcondition): Do proper visibility preanalysis
2357 for the case of these pragmas appearing in the spec.
2358 (Check_Enabled): New function
2359 (Initialize): New procedure
2360 (Tree_Read): New procedure
2361 (Tree_Write): New procedure
2362 (Check_Precondition_Postcondition): New procedure
2363 Implement pragmas Check and Check_Policy
2364 Merge Assert processing with Check
2366 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
2367 New warning flag -gnatw.e
2369 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
2370 returning whether a task (or main procedure) has a pragma
2372 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
2373 (or main procedure) has a pragma Relative_Deadline.
2374 Add Next_Pragma field to N_Pragma node
2375 (PPC_Enabled): New flag
2376 (Next_Pragma): Now used for Pre/Postcondition processing
2378 * snames.h, snames.ads, snames.adb: New standard name
2380 Add entry for 'Invalid_Value attribute
2381 Add entry for new attribute Has_Tagged_Values
2382 Add entry for Enum_Val attribute
2383 Add new standard names Aggregate, Configuration and Library.
2386 Add Pragma_Precondition
2387 Add Pragma_Postcondition
2388 Add Attribute_Result
2389 New standard name Archive_Builder_Append_Option
2390 (Preset_Names): Add _relative_deadline and relative_deadline definitions
2391 There was also a missing non_preemptive_within_priorities.
2392 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
2394 Add support for pragmas Check and Check_Policy
2396 * tree_gen.adb: Call Sem_Aux.Tree_Write
2398 * tree_in.adb: Call Sem_Aux.Tree_Read
2400 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
2403 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
2406 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
2407 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
2409 (Expand_Pragma_Check): New procedure
2411 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
2414 * sinfo.adb (PPC_Enabled): New flag
2416 2008-04-08 Robert Dewar <dewar@adacore.com>
2417 Gary Dismukes <dismukes@adacore.com>
2418 Javier Miranda <miranda@adacore.com>
2419 Ed Schonberg <schonberg@adacore.com>
2421 * fe.h: Remove global Optimize_Alignment flag, no longer used
2423 * layout.adb: Test Optimize_Alignment flags rather than global switch
2425 * lib.ads, lib.adb: New OA_Setting field in library record
2427 * lib-load.adb: New OA_Setting field in library record
2429 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
2430 units mentioned in limited_with_ clauses in the ali file, with an
2432 New Ox fields in U line
2434 * opt.adb: New flag Optimize_Alignment_Local
2435 (Check_Policy_List[_Config]): New flags
2437 * opt.ads (Invalid_Value_Used): New flag
2438 New switch Optimize_Alignment_Local
2439 (Warn_On_Parameter_Order): New flag
2440 (Check_Policy_List[_Config]): New flags
2442 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
2443 limited_with clauses.
2444 New data structures for Optimize_Alignment
2446 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
2448 (Check_Consistent_Optimize_Alignment): Rework for new structure
2449 (Check_Consistent_Restrictions): Fix incorrect error message
2451 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
2452 created class-wide type (to the Parent field of the specific type).
2453 (Install_Siblings): Handle properly private_with_clauses on subprogram
2454 bodies and on generic units.
2455 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
2456 illegal limited_with_clause that names a non-existent package.
2457 (Check_Body_Required): Determine whether a unit named a limited_with
2458 clause needs a body.
2459 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
2460 Capture Optimize_Alignment settings to set new OA_Setting field in
2462 (Build_Limited_Views): Include task and protected type declarations.
2464 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
2465 case of a possible constant redeclaration where the current object is
2466 an entry index constant.
2467 (Analyze_Object_Declaration): Generate an error in case of CPP
2468 class-wide object initialization.
2469 (Analyze_Object_Declaration): Add extra information on warnings for
2470 declaration of unconstrained objects.
2471 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
2472 conflicts with the setting of Stored_Constraint in the case where the
2473 access type entity has already been created as an E_Incomplete_Type due
2474 to a limited with clause.
2475 Use new Is_Standard_Character_Type predicate
2476 (Analyze_Object_Declaration): Apply access_constant check only after
2477 expression has been resolved, given that it may be overloaded with
2478 several access types.
2479 (Constant_Redeclaration): Additional legality checks for deferred
2480 constant declarations tha involve anonymous access types and/or null
2481 exclusion indicators.
2482 (Analyze_Type_Declaration): Set Optimize_Alignment flags
2483 (Analyze_Subtype_Declaration): Ditto
2484 (Analyze_Object_Declaration): Ditto
2485 (Analyze_Object_Declaration): Don't count tasks in generics
2486 Change name In_Default_Expression => In_Spec_Expression
2487 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2488 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
2489 (Process_Discriminants): Additional check for illegal use of default
2490 expressions in access discriminant specifications in a type that is not
2492 (Check_Abstract_Overriding): If an inherited function dispaches on an
2493 access result, it must be overridden, even if the type is a null
2495 (Derive_Subprogram): The formals of the derived subprogram have the
2496 names and defaults of the parent subprogram, even if the type is
2497 obtained from the actual subprogram.
2498 (Derive_Subprogram): In the presence of interfaces, a formal of an
2499 inherited operation has the derived type not only if it descends from
2500 the type of the formal of the parent operation, but also if it
2501 implements it. This is relevant for the renamings created for the
2502 primitive operations of the actual for a formal derived type.
2503 (Is_Progenitor): New predicate, to determine whether the type of a
2504 formal in the parent operation must be replaced by the derived type.
2506 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
2507 predicate recursive to handle components that have a user-defined
2508 Initialize procedure. Handle controlled derived types whose ancestor
2509 has a user-defined Initialize procedured.
2510 (Note_Possible_Modification): Add Sure parameter, generate warning if
2511 sure modification of constant
2512 Use new Is_Standard_Character_Type predicate
2513 (Find_Parameter_Type): when determining whether a protected operation
2514 implements an interface operation, retrieve the type of the formal from
2515 the entity when the formal is an access parameter or an
2516 anonymous-access-to-subprogram.
2517 Move Copy_Parameter_List to sem_util, for use when building stubbed
2519 (Has_Access_Values): Tagged types now return False
2520 (Within_HSS_Or_If): New procedure
2521 (Set_Optimize_Alignment_Flags): New procedure
2522 Change name In_Default_Expression => In_Spec_Expression
2523 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
2524 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
2526 2008-04-08 Tristan Gingold <gingold@adacore.com>
2528 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
2530 2008-04-08 Tristan Gingold <gingold@adacore.com>
2534 * cuintp.c: Fix 16 bits issue for AVR.
2535 On AVR, integer is 16 bits, so it can't be used to do math with
2537 So use long_integer instead.
2539 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
2541 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
2542 System.OS_Primitives.
2543 Change type of various constants, parameters and local variables from
2544 Time to representation type OS_Time.
2545 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
2546 Remove the declaration of constant Mili_F from several routines. New
2547 body for internal package Conversions_Operations.
2548 (Time_Of): Add default parameters for several formals.
2550 * a-caldel.adb: Minor reformatting
2552 * a-calend.ads, a-calend.adb: New body for internal package
2553 Conversions_Operations.
2554 (Time_Of): Add default parameters for several formals.
2556 * Makefile.rtl: Add a-ststop
2557 Add Ada.Calendar.Conversions to the list of runtime files.
2560 * a-calcon.adb, a-calcon.ads: New files.
2562 2008-04-08 Jose Ruiz <ruiz@adacore.com>
2563 Tristan Gingold <gingold@adacore.com>
2565 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
2566 (Install_Restricted_Handlers): New procedure
2567 which is a simplified version of Install_Handlers that does not store
2568 previously installed.
2570 * s-interr-vxworks.adb: Fix ACATS cxc3001
2571 On VxWorks interrupts can't be detached.
2572 (Install_Restricted_Handlers): New procedure.
2574 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
2577 2008-04-08 Olivier Hainque <hainque@adacore.com>
2579 * s-intman-vxworks.ads, s-intman-vxworks.adb
2580 (Map_And_Raise_Exception): Remove. Was an import of only part of the
2581 required services already implemented elsewhere.
2582 (Notify_Exception): Delete body, import __gnat_error_handler instead.
2583 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
2584 argument passed to the handler, which we need for ZCX propagation
2587 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
2589 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
2591 * g-timsta.adb, g-timsta.ads: New files.
2593 2008-04-08 Robert Dewar <dewar@adacore.com>
2595 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
2596 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
2597 (Raise_Exception_Always): Fix documentation accordingly
2599 2008-04-08 Robert Dewar <dewar@adacore.com>
2601 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
2604 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
2607 2008-04-08 Javier Miranda <miranda@adacore.com>
2608 Robert Dewar <dewar@adacore.com>
2609 Ed Schonberg <schonberg@adacore.com>
2611 * a-tags.adb (Register_Interface_Offset): New subprogram.
2612 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
2613 (To_Predef_Prims_Table_Ptr): Removed.
2614 (Acc_Size): Removed.
2615 (To_Acc_Size): Removed.
2616 (Parent_Size): Modified to the call the subprogram returning the size of
2617 the parent by means of the new TSD component Size_Func.
2619 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
2620 (DT_Offset_To_Top_Offset): New constant value that is used to generate
2621 code referencing the Offset_To_Top component of the dispatch table's
2623 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
2624 use of 'address to initialize dispatch table slots.
2625 (Size_Func): New component of the TSD. Used by the run-time to call the
2626 size primitive of the tagged type.
2628 * checks.adb (Apply_Access_Check): Avoid check when accessing the
2629 Offset_To_Top component of a dispatch table.
2630 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
2631 deferred constant declaration. do not add a null expression, to prevent
2632 spurious errors when full declaration is analyzed.
2633 (Apply_Discriminant_Check): If both discriminant constraints share a
2634 node which is not static but has no side effects, do not generate a
2635 check for that discriminant.
2636 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
2637 subexpr, since the prefix of an attribute is a name.
2639 * checks.ads: Fix nit in comment.
2641 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
2642 and body of predefined primitives in case of CPP tagged type
2644 (Freeze_Type): Deal properly with no storage pool case
2645 (Make_Predefined_Primitive_Specs): Generate specification of abstract
2646 primitive Deep_Adjust if a nonlimited interface is derived from a
2648 (Build_Dcheck_Functions): Create discriminant-checking functions only
2649 for variants that have some component(s).
2650 (Build_Slice_Assignment): In expanded code for slice assignment, handle
2651 properly the case where the slice bounds extend to the last value of the
2652 underlying representation.
2653 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
2654 (Is_Variable_Size_Record): An array component has a static size if
2655 index bounds are enumeration literals.
2657 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
2658 an external tag has been specified for the type.
2659 (Building_Static_DT): Add missing support for private types.
2660 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
2661 to the entity associated with the parent of Typ. This is done to
2662 avoid wrong access when the parent is a private type.
2663 (Expand_Interface_Conversion): Improve error message when the
2664 configurable runtime has no support for dynamic interface conversion.
2665 (Expand_Interface_Thunk): Add missing support to interface types in
2666 configurable runtime.
2667 (Expand_Dispatching_Call): remove obsolete code.
2668 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
2669 ensure that all subtypes and aggregates associated with dispatch
2670 tables have the attribute Is_Dispatch_Table_Entity set to true.
2671 (Register_Primitive): Rename one variable to improve code reading.
2672 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
2673 of the pointer to the 'size primitive in the TSD.
2675 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
2676 (RE_Offset_To_Top_Ptr): New entity.
2677 (RE_Register_Interface_Offset): New entity.
2678 (RE_Set_Dynamic_Offset_To_Top): New entity.
2679 (RE_Set_Offset_To_Top): Removed entity.
2680 (RE_Prim_Ptr): New entity
2681 (RE_Size_Func): New entity
2682 (RE_Size_Ptr): New entity
2683 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
2684 (Ada_Dispatching_Child): Define this new subrange.
2685 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
2686 RE_Time_Span, and RE_Time_Span_Zero).
2687 (RE_Unit_Table): Add new required run-time calls
2689 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
2692 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
2693 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
2694 initializes the Offset_To_Top component of a dispatch table.
2695 (Build_Predef_Prims): Removed.
2696 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
2698 (Build_Set_Size_Function): New subprogram.
2700 * exp_ch13.adb: Do not generate storage variable for storage_size zero
2701 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
2703 2008-04-08 Robert Dewar <dewar@adacore.com>
2705 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
2706 computing Fore when Exp > 0
2708 2008-04-08 Robert Dewar <dewar@adacore.com>
2710 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
2712 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
2713 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
2715 * fmap.adb: Remove Big_String declarations (now in Types)
2716 (No_Mapping_File): New Boolean global variable
2717 (Initialize): When mapping file cannot be read, set No_Mapping_File to
2719 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
2720 tables were empty before adding entries, open the mapping file
2721 with Truncate = True, instead of delete/re-create.
2723 * fname-sf.adb: Remove Big_String declarations (now in Types)
2725 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
2726 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
2729 * table.ads: Add for Table_Ptr'Storage_Size use 0
2731 * types.ads: Add Big_String declarations
2732 Add Size_Clause of zero for big pointer types
2734 2008-04-08 Vincent Celier <celier@adacore.com>
2736 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
2737 (Usage): Add line for switch --subdirs=
2738 Add new switch -eL, to follow symbolic links when processing project
2741 * gnatcmd.adb: Process switches -eL and --subdirs=
2742 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
2743 Program_Name to get proper tool names when AAMP_On_Target is set.
2744 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
2745 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
2746 Osint.Program_Name).
2748 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
2749 (Usage): Add lines for switches -eL and --subdirs=
2751 * makeusg.adb: Add line for switch --subdirs=
2754 (Source_Data): New Boolean component Compiled, defaulted to True
2755 (Empty_File_Name: New global variable in private part, initialized in
2756 procedure Initialize.
2757 (Subdirs_Option): New constant string
2758 (Subdirs): New String_Ptr global variable
2759 (Language_Config): New component Include_Compatible_Languages
2760 (Project_Qualifier): New type for project qualifiers
2761 (Project_Data): New component Qualifier
2762 (Project_Configuration): New component Archive_Builder_Append_Option
2764 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
2765 another imported project indicate the name of this imported project.
2766 (Check_File): When a unit is in two project files, indicate the project
2767 names and the paths of the source files for each project.
2768 (Add_Source): Set Compiled to False if compiler driver is empty. Only
2769 set object, dependency and switches file names if Compiled is True.
2770 (Process_Compiler): Allow the empty string for value of attribute Driver
2771 (Get_Directories): When Subdirs is not null and Object_Dir is not
2772 specified, locate and create if necessary the actual object dir.
2773 (Locate_Directory): When Subdirs is not empty and Create is not the
2774 empty string, locate and create if necessary the actual directory
2775 as a subdirectory of directory Name.
2776 (Check_Library_Attributes.Check_Library): Allow a project where the only
2777 "sources" are header files of file based languages to be imported by
2778 library projects, in multi-language mode (gprbuild).
2779 (Check_Library_Attributes.Check_Library): In multi-language mode
2780 (gprbuild), allow a library project to import a project with no
2781 sources, even when this is not declared explicitly.
2782 (Check_If_Externally_Built): A virtual project extending an externally
2783 built project is also externally built.
2784 (Check_Library_Attributes): For a virtual project extending a library
2785 project, inherit the library directory.
2786 (Process_Project_Level_Array_Attributes): Process new attribute
2787 Inherit_Source_Path.
2788 For projects with specified qualifiers "standard", "library" or
2789 "abstract", check that the project conforms to the qualifier.
2790 (Process_Project_Level_Simple_Attributes): Process new attribute
2791 Archive_Builder_Append_Option.
2793 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
2794 (Normalize_Compiler_Switches): Only keep compiler switches that are
2795 passed to gnat1 by the gcc driver and that are stored in the ALI file
2797 Do not take into account switc -save-temps
2799 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
2800 gprmake is called with -eL.
2801 (Scan_Arg): Recognize switch -eL
2802 (Usage): Add line for switch -eL
2804 * prj.adb (Initialize): Initialize Empty_File_Name
2805 (Project_Empty): New component Qualifier
2807 * prj-attr.ads, prj-attr.adb: New project level attribute
2808 Inherit_Source_Path.
2809 New project level attribute Archive_Builder_Append_Option
2811 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
2813 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
2814 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
2815 upward compatibility.
2817 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
2818 each Trying ..." on different lines.
2819 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
2820 is "configuration" when not in configuration. Fail when in configuration
2821 when a specified qualifier is other than "configuration".
2823 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
2824 full associative array together.
2825 (Recursive_Process): Put the project qualifier in the project data
2827 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
2828 (Set_Project_Qualifier_Of): New procedure
2830 2008-04-08 Robert Dewar <dewar@adacore.com>
2832 * errout.ads: Update comments for new handling of info: messages
2834 * erroutc.adb (Matches): New procedure
2835 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
2836 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
2837 info messages as well as style messages.
2839 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
2841 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
2843 (Check_A_Call): Special "info: " warnings now have ? in the text
2844 (Elab_Warning): Use info message in static case
2846 2008-04-08 Ed Schonberg <schonberg@adacore.com>
2848 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
2849 whether an array aggregate with static bounds and scalar components
2850 should be expanded into a static constant.
2852 2008-04-08 Gary Dismukes <dismukes@adacore.com>
2853 Ed Schonberg <schonberg@adacore.com>
2854 Robert Dewar <dewar@adacore.com>
2856 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
2857 Has_Stream_Attribute_ Definition when checking for available stream
2858 attributes on parameters of a limited type in Ada 2005. Necessary for
2859 proper recognition of visible stream attribute clauses.
2860 (Has_Stream_Attribute_Definition): If the type is derived from a
2861 private type, then use the derived type's underlying type for checking
2862 whether it has stream attributes.
2863 (Validate_Object_Declaration): The check for a user-defined Initialize
2864 procedure applies also to types with controlled components or a
2865 controlled ancestor.
2866 Reject an object declaration in a preelaborated unit if the type is a
2867 controlled type with an overriding Initialize procedure.
2868 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
2869 checking when the parent of a dereference is a selected component and
2870 the name has not been analyzed.
2872 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
2873 prefixes that are invalid explicit dereferences of remote
2874 access-to-class-wide values, first checking whether the selected
2875 component is a prefixed form of call to a tagged operation.
2876 (Analyze_Call): Remove code that issues an error for limited function
2877 calls in illegal contexts, as we now support all of the contexts that
2878 were forbidden here.
2879 Allow a function call that returns a task.and appears as the
2880 prefix of a selected component.
2881 (Analyze_Reference): Give error message if we try to make a 'Reference
2882 for an object that is atomic/aliased without its type having the
2883 corresponding attribute.
2884 (Analyze_Call): Remove condition checking for attributes to allow
2885 calls to functions with inherently limited results as prefixes of
2886 attributes. Remove related comment about Class attributes.
2887 (Analyze_Selected_Component): If the prefix is a remote type, check
2888 whether this is a prefixed call before reporting an error.
2889 (Complete_Object_Operation): If the controlling formal is an access to
2890 variable reject an actual that is a constant or an access to one.
2891 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
2892 primitive operations from base type.
2894 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
2896 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
2897 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
2898 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
2899 (Expand_N_Slice): Test for prefix that is a build-in-place function call
2900 and call Make_Build_In_Place_Call_In_Anonymous_Context.
2901 (Analyze_Call): Remove code that issues an error for limited function
2902 calls in illegal contexts, as we now support all of the contexts that
2903 were forbidden here.
2904 New calling sequence for Get_Simple_Init_Val
2905 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
2906 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
2908 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
2909 Ed Schonberg <schonberg@adacore.com>
2910 Robert Dewar <dewar@adacore.com>
2912 * exp_ch2.adb: Minor reformatting.
2913 (Expand_Entry_Index_Parameter): Set the type of the identifier.
2914 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
2915 (Expand_Protected_Component): New routine.
2916 (Expand_Protected_Private): Removed.
2917 Add Sure parameter to Note_Possible_Modification calls
2919 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
2920 generated subprogram declaration must inherit the overriding indicator
2921 from the instantiation node.
2922 (Validate_Access_Type_Instance): If the designated type of the actual is
2923 a limited view, use the available view in all cases, not only if the
2924 type is an incomplete type.
2925 (Instantiate_Object): Actual is illegal if the formal is null-excluding
2926 and the actual subtype does not exclude null.
2927 (Process_Default): Handle properly abstract formal subprograms.
2928 (Check_Formal_Package_Instance): Handle properly defaulted formal
2929 subprograms in a partially parameterized formal package.
2930 Add Sure parameter to Note_Possible_Modification calls
2931 (Validate_Derived_Type_Instance): if the formal is non-limited, the
2932 actual cannot be limited.
2933 (Collect_Previous_Instances): Generate instance bodies for subprograms
2936 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
2938 Add Sure parameter to Note_Possible_Modification calls
2939 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
2940 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
2941 constant overlaid by variable and issue warning.
2942 Use new Is_Standard_Character_Type predicate
2943 (Analyze_Record_Representation_Clause): Check that the specified
2944 Last_Bit is not less than First_Bit - 1.
2945 (Analyze_Attribute_Definition_Clause, case Address): Check for
2946 self-referential address clause
2948 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
2949 detection mechanism when the lhs is a prival.
2950 (Analyze_Assignment): Call Check_Unprotected_Access to detect
2951 assignment of a pointer to protected data, to an object declared
2952 outside of the protected object.
2953 (Analyze_Loop_Statement): Check for unreachable code after loop
2954 Add Sure parameter to Note_Possible_Modication calls
2955 Protect analysis from previous syntax error such as a scope mismatch
2957 (Analyze_Assignment_Statement): The assignment is illegal if the
2958 left-hand is an interface.
2960 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
2961 violation of restriction No_Implicit_Conditionals
2962 Add Sure parameter to Note_Possible_Modication calls
2963 Use new Is_Standard_Character_Type predicate
2964 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
2965 call as operator. Fixes problems (e.g. validity checking) which
2966 come from the result looking as though it does not come from source).
2967 (Resolve_Call): Check case of name in named parameter if style checks
2969 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
2970 from the checking that such calls should not occur from an entry body.
2971 (Resolve_Call): If the return type of an Inline_Always function
2972 requires the secondary stack, create a transient scope for the call
2973 if the body of the function is not available for inlining.
2974 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
2975 that are actuals for in-out formals.
2976 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
2977 primitive operations from base type.
2978 (Analyze_Selected_Component): If the context is a call to a protected
2979 operation the parent may be an indexed component prior to expansion.
2980 (Resolve_Actuals): If an actual is of a protected subtype, use its
2981 base type to determine whether a conversion to the corresponding record
2983 (Resolve_Short_Circuit): Handle pragma Check
2985 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
2986 Use new Is_Standard_Character_Type predicate
2987 (Eval_Relational_Op): Catch more cases of string comparison
2989 2008-04-08 Robert Dewar <dewar@adacore.com>
2990 Gary Dismukes <dismukes@adacore.com>
2992 * s-rident.ads: Add No_Default_Initialization restriction
2995 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
2996 (Set_TSS): Handle No_Default_Initialization case
2998 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
2999 No_Default_Initialization
3000 (Expand_N_Subprogram_Body): Remove redundant initialization of out
3001 parameters when Normalize_Scalars is active.
3002 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
3003 Fix casing error in formal parameter name in call
3004 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
3005 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3006 dispatching call on VM targets.
3008 2008-04-08 Gary Dismukes <dismukes@adacore.com>
3009 Thomas Quinot <quinot@adacore.com>
3011 * exp_ch7.adb (Find_Final_List): Change the test for generating a
3012 selected component from an access type's Associated_Final_Chain to
3013 check for the presence of that field, rather than assuming it exists
3014 for all named access types.
3015 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
3016 procedure to call at the end of the generated cleanup procedure.
3017 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
3018 and an At_End_Proc already exists in the handled sequence of statements
3019 for which cleanup actions are being expanded, the original cleanup
3020 action must be preserved.
3022 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
3023 Ed Schonberg <schonberg@adacore.com>
3024 Robert Dewar <dewar@adacore.com>
3025 Gary Dismukes <dismukes@adacore.com>
3027 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
3028 Build_Unprotected_Subprogram_Body): Generate debug info for
3029 declarations related to the handling of private data in task and
3031 (Debug_Private_Data_Declarations): New subprogram.
3032 (Install_Private_Data_Declarations): Remove all debug info flagging.
3033 This is now done by Debug_Private_Data_Declarations at the correct
3035 (Build_Simple_Entry_Call): If the task name is a function call, expand
3036 the prefix into an object declaration, and make the surrounding block a
3038 (Build_Master_Entity): An internal block is a master if it wraps a call.
3039 Code reformatting, update comments. Code clean up.
3040 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
3041 (Replicate_Entry_Formals): If the formal is an access parameter or
3042 anonymous access to subprogram, copy the original tree to create new
3043 entities for the formals of the subprogram.
3044 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
3045 for tasks to store the value passed using pragma Relative_Deadline.
3046 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
3047 run-time call to create a task.
3048 (Build_Wrapper_Spec): If the controlling argument of the interface
3049 operation is an access parameter with a non-null indicator, use the
3050 non-null indicator on the wrapper.
3052 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
3053 present, which it may not be in the case where the type entity is an
3054 incomplete view brought in by a limited with.
3055 (Analyze_Task_Type): Only retrieve the full view when present, which it
3056 may not be in the case where the type entity is an incomplete view brought
3057 in by a limited with.
3058 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
3059 private components of a protected type, to prevent the generation of freeze
3060 nodes for which there is no proper scope of elaboration.
3062 * exp_util.ads, exp_util.adb
3063 (Remove_Side_Effects): If the expression is a function call that returns a
3064 task, expand into a declaration to invoke the build_in_place machinery.
3065 (Find_Protection_Object): New routine.
3066 (Remove_Side_Effects): Also make a copy of the value
3067 for attributes whose result is of an elementary type.
3068 (Silly_Boolean_Array_Not_Test): New procedure
3069 (Silly_Boolean_Array_Xor_Test): New procedure
3070 (Is_Volatile_Reference): New function
3071 (Remove_Side_Effects): Use Is_Volatile_Reference
3072 (Possible_Bit_Aligned_Component): Handle slice case properly
3074 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
3075 case test to Exp_Util
3076 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
3078 2008-04-08 Thomas Quinot <quinot@adacore.com>
3080 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
3082 (Add_RACW_Features): When processing an RACW in another unit than the
3083 main unit, set Body_Decls to No_List to indicate that the bodies of
3084 the type's TSS must not be generated.
3085 (GARLIC_Support.Add_RACW_Read_Attribute,
3086 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
3087 Body_Decls is No_List.
3088 (PolyORB_Support.Add_RACW_Read_Attribute,
3089 PolyORB_Support.Add_RACW_Write_Attribute,
3090 PolyORB_Support.Add_RACW_From_Any,
3091 PolyORB_Support.Add_RACW_To_Any,
3092 PolyORB_Support.Add_RACW_TypeCode): Same.
3093 (Transmit_As_Unconstrained): New function.
3094 (Build_Ordered_Parameters_List): Use the above to order parameters.
3095 (GARLIC_Support.Build_General_Calling_Stubs):
3096 Use the above to determine which parameters to unmarshall using 'Input
3097 at the point where their temporary is declared (as opposed to later on
3099 (PolyORB_Support.Build_General_Calling_Stubs):
3100 Use the above to determine which parameters to unmarshall using From_Any
3101 at the point where their temporary is declared (as opposed to later on
3102 with an assignment).
3104 2008-04-08 Ed Schonberg <schonberg@adacore.com>
3106 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
3107 an Input function for an access type, do not perform default
3108 initialization on the local variable that receives the value, to
3109 prevent spurious warnings when the type is null-excluding.
3111 2008-04-08 Robert Dewar <dewar@adacore.com>
3112 Ed Schonberg <schonberg@adacore.com>
3114 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
3116 (Size_Known): Generic formal scalar types have known at compile
3117 time size, so remove check.
3118 Fix casing error in formal parameter name in call
3119 (Freeze_Subprogram): If the subprogram is a user-defined operator,
3120 recheck its overriding indication.
3122 2008-04-08 Vincent Celier <celier@adacore.com>
3124 * gnat1drv.adb: Send all messages indicating an error to standard error
3126 2008-04-08 Robert Dewar <dewar@adacore.com>
3128 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
3129 (List_Applicable_Restrictions): Do not list existing restrictions
3131 2008-04-08 Thomas Quinot <quinot@adacore.com>
3133 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
3134 add a pointer to generic sockets literature
3135 do not mention that the given example is "typical" usage.
3136 Remove obsolete comment about multicast not being supported on Windows.
3137 (Connect_Socket): Make Server mode IN rather than IN OUT
3138 since this formal is never modified.
3140 2008-04-08 Robert Dewar <dewar@adacore.com>
3142 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
3143 the declaration for some different entity.
3144 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
3145 list is precent (following the parent subtype indication), display
3146 appropriate "and" keyword.
3148 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
3149 Remove unnecessary calls to Init_Size_Align and Init_Esize.
3150 Add notes on use of Parent field of an Itype
3152 2008-04-08 Ed Schonberg <schonberg@adacore.com>
3153 Robert Dewar <dewar@adacore.com>
3154 Gary Dismukes <dismukes@adacore.com>
3156 * lib-xref.adb (Is_On_LHS): Remove dead code
3157 (Output_Overriden_Op): If the overridden operation is itself inherited,
3158 list the ancestor operation, which is the one whose body or absstract
3159 specification is actually being overridden. For source navigation
3162 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
3163 operation is primitive for the type.
3164 (Declare_Inherited_Private_Subprograms): If the new operation overrides
3165 an inherited private subprogram, set properly the Overridden_Operation
3166 attribute, for better cross-reference information.
3167 (Analyze_Package_Specification): Do late analysis of spec PPCs
3168 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
3169 properly the full view and underlying full views of a private type in a
3170 child unit, whose full view is derived from a private type in a parent
3171 unit, and whose own full view becomes visible in the child body.
3173 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
3174 primitive operation after the type has been frozen, add an explicit
3175 reference to the type and the operation, because other primitive
3176 references have been emitted already.
3177 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
3178 dispatching call on VM targets.
3180 2008-04-08 Vincent Celier <celier@adacore.com>
3181 Thomas Quinot <quinot@adacore.com>
3183 * make.adb: (Gnatmake_Called): Remove, no longer necessary
3184 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
3185 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
3186 (Insert_Project_Sources): Take into account index in multi-unit source
3188 After building a library project, delete all temporary files.
3189 (Initialize): Reset current output after parsing project file.
3190 (Collect_Arguments_And_Compile): Never insert in the queue the sources
3191 of library projects that are externally built.
3192 Put file name in error and inform messages if -df is used
3193 (Display): If invoked with -d7, do not display path names, but only
3196 * makeutl.ads (Path_Or_File_Name): New function
3197 (Path_Or_File_Name): New function
3199 2008-04-08 Arnaud Charlet <charlet@adacore.com>
3201 * Make-lang.in: Disable warnings during first stage of bootstrap
3203 Update dependencies.
3205 2008-04-08 Vincent Celier <celier@adacore.com>
3207 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
3208 case to decide if ALI object file is included in library.
3209 (Build_Library): Never attempt to build a library if the project is
3212 2008-04-08 Thomas Quinot <quinot@adacore.com>
3214 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
3215 (No_List) is defined to return Empty.
3217 2008-04-08 Jose Ruiz <ruiz@adacore.com>
3219 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
3222 (Read_Default_Search_Dirs): Do not consider spaces as path separators
3223 because spaces may be part of legal paths.
3225 2008-04-08 Robert Dewar <dewar@adacore.com>
3227 * par-ch11.adb (P_Exception_Handler): Check indentation level for
3230 2008-04-08 Ed Schonberg <schonberg@adacore.com>
3232 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
3233 in a type declaration, if this is not an interface declaration or
3234 private type extension.
3236 2008-04-08 Vincent Celier <celier@adacore.com>
3238 * prj-util.adb (Executable_Of): New String parameter Language. When
3239 Ada_Main is False and Language is not empty, attempt to remove the body
3240 suffix or the spec suffix of the language to get the base of the
3241 executable file name.
3242 (Put): New Boolean parameter Lower_Case, defauilted to False. When
3243 Lower_Case is True, put the value in lower case in the name list.
3244 (Executable_Of): If there is no executable suffix in the configuration,
3245 then do not modify Executable_Extension_On_Target.
3247 * prj-util.ads (Executable_Of): New String parameter Language,
3248 defaulted to the empty string.
3249 (Put): New Boolean parameter Lower_Case, defauilted to False
3251 2008-04-08 Robert Dewar <dewar@adacore.com>
3253 * scng.adb (Scan_Identifier): Handle case of identifier starting with
3254 wide character using UTF-8 encoding.
3256 2008-04-08 Javier Miranda <miranda@adacore.com>
3258 * sem.adb (Analyze): Consider case in which we analyze an empty node
3259 that was generated by a call to a runtime function that is not
3260 available under the configurable runtime.
3262 * sem.ads (Inside_Freezing_Actions): New flag.
3263 (Save_Check_Policy_List): New field in scope stack entry
3265 2008-04-08 Ed Schonberg <schonberg@adacore.com>
3266 Robert Dewar <dewar@adacore.com>
3268 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
3269 the ancestor part of an extension aggregate for a limited type.
3270 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
3271 enumeration index bounds.
3272 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
3273 when array is too short.
3274 (Check_Expr_OK_In_Limited_Aggregate): Move function
3275 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
3277 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
3278 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
3279 component associations.
3280 (Check_Non_Limited_Type): Moved to outer level and renamed.
3281 (Resolve_Record_Aggregate): In an extension aggregate, an association
3282 with a box initialization can only designate a component of the
3283 extension, not a component inherited from the given ancestor
3285 * sem_case.adb: Use new Is_Standard_Character_Type predicate
3287 2008-04-08 Robert Dewar <dewar@adacore.com>
3289 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
3291 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
3292 Properly handle case where Aft > Scale and input number is less than
3295 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
3297 * s-stoele.ads, s-soflin.ads: Move the location of
3298 Dummy_Communication_Block from System.Storage_Elements to
3301 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
3302 emulate Communication_Block in certain scenarios.
3304 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
3306 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
3308 Add new subtype S_WWC, unchecked conversion routines From_WWC and
3310 (I_WWC, O_WWC): New routines for input and output of
3311 Wide_Wide_Character.
3313 2008-04-08 Robert Dewar <dewar@adacore.com>
3315 * stringt.adb (Write_String_Table_Entry): Handle wide characters
3318 2008-04-08 Robert Dewar <dewar@adacore.com>
3320 * styleg.adb (Check_Comment): Allow special char after -- in
3321 non-end-of-line case
3323 2008-04-08 Robert Dewar <dewar@adacore.com>
3325 * stylesw.adb: Implement -gnaty + - y options
3326 (Set_GNAT_Style_Check_Options): Includ I in style check string
3328 * stylesw.ads: Add comments for new style switch options
3330 2008-04-08 Sergey Rybin <rybin@adacore.com>
3332 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
3333 to the set of the GNAT components needed by ASIS.
3335 2008-04-08 Bob Duff <duff@adacore.com>
3337 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
3339 2008-04-08 Tristan Gingold <gingold@adacore.com>
3341 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
3342 Improve error message generation.
3344 2008-04-08 Vincent Celier <celier@adacore.com>
3346 * a-direct.adb (Start_Search): Check for Name_Error before checking for
3347 Use_Error, as specified in the RM. Check if directory is open and raise
3348 Use_Error if it is not.
3350 2008-04-08 Vincent Celier <celier@adacore.com>
3351 Robert Dewar <dewar@adacore.com>
3353 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
3354 AAMP_On_Target is set.
3356 * vms_data.ads: Add NOxxx to style check switch list
3357 Add entry COMPONENTS for -gnatVe
3358 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
3360 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
3361 Add qualifiers for gnatmetric coupling options
3362 Add note that -gnata enables all checks
3363 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
3364 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
3365 New warning flag -gnatw.e
3367 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
3368 Add entry for -gnatyN (forgotten before)
3369 Line for new warning switch -gnatw.p
3370 New warning flag -gnatw.e
3372 * gnat_ugn.texi: Add documentation fpr project file switch -aP
3373 Document -gnaty - + y
3374 Replace occurences of "package specification" with "package spec"
3375 Define preprocessing symbols in documentation of gnatprep
3376 Clarify reason for distinguishing overflow checking
3377 Add documentation for project-aware tool switches -eL and --subdirs=
3378 Complete list of configuration pragmas
3379 Specify that, even when gnatmake switch -x is used, mains on the command
3380 line need to be sources of project files.
3381 Editing of gnatcheck/gnatmetric doc.
3382 Add documentation for -gnatw.p/-gnatw.P
3383 Add missing documentation for -fno-inline-functions.
3384 Add documentation for -gnatw.e
3386 * gnat_rm.texi: Add documentation for No_Default_Initialization
3387 Replace occurences of "package specification" with "package spec"
3388 Document use of * in Warnings Off string
3389 Update documentation of alignment/component clauses.
3390 Add documentation for Invalid_Value
3391 Document new consistency rule for Optimize_Alignment
3392 Add documentation for Precondition and Postcondition pragmas
3393 Add documentation for Check and Check_Policy pragmas
3394 Document new Enum_Val attribute
3395 Remove requirement for static string in pragma Assert
3396 Add documentation on GNAT.Time_Stamp
3398 * ug_words: add entry for -gnatVe
3399 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
3400 Add entry for -gnatw.e
3402 * debug.adb: Add missing documentation for d.a flag
3403 Document new -gnatd.a switch.
3404 Add documentation for new gnatmake debug switch -df
3406 2008-04-08 Thomas Quinot <quinot@adacore.com>
3408 * gen-soccon.c: Bump year in copyright notices.
3410 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
3412 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
3414 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
3417 2008-04-08 Robert Dewar <dewar@adacore.com>
3418 Bob Duff <duff@adacore.com>
3420 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
3421 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
3423 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
3425 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
3427 * g-trasym.ads: Minor comment improvements
3429 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
3431 * a-sequio.ads, a-direio.ads: improve message for tagged type
3433 * a-strunb.ads: Minor reformatting
3435 * a-tifiio.adb: Minor reformatting
3437 * atree.adb (Fix_Parents): Use clearer names for formals
3438 Cleanup and simplify code
3439 Use named notation in calls
3441 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
3444 * uintp.adb: Used named notation for some confusing calls
3446 * bindusg.adb: Minor change in one line of output
3448 * cstand.adb: Minor reformatting of src representation of Standard
3450 * a-assert.ads: Add comment.
3452 * g-decstr.adb: Fix bad indentation
3454 * expander.ads, expander.adb: Code clean up.
3456 * sem_dist.ads: Minor comment improvement
3458 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
3459 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
3461 * i-cstrin.adb: Fix casing error in formal parameter name in call
3463 2008-04-08 Ed Schonberg <schonberg@adacore.com>
3465 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
3466 mentioned in limited_with_clauses to do create semantic dependencies
3467 even though they appear in the ali file.
3469 2008-04-08 Emmanuel Briot <briot@adacore.com>
3471 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
3473 (Get_Configuration): New subprogram.
3475 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
3476 These optional parameters help preserve the casing of the project's name
3477 when pretty-printing.
3479 2008-04-08 Jerome Lambourg <lambourg@adacore.com>
3480 Arnaud Charlet <charlet@adacore.com>
3482 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
3483 then use __gnat_set_exit_status to report the returned status code.
3485 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
3486 messages on .NET, since some constructs of the language are not
3489 * gnatlink.adb (Gnatlink): In case the command line is too long for the
3490 .NET linker, gnatlink now concatenate all .il files and pass this to
3493 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
3494 Xavier Grave <grave@ipno.in2p3.fr>
3496 * Makefile.in: Add make ifeq define for mips/mipsel support.
3497 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
3498 system-linux-mips.ads: New files.
3500 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
3502 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
3503 detect systems using GNU libc.
3509 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
3511 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
3512 constant constant for sysconf call.
3513 (bit_field): New packed boolean type used by cpu_set_t.
3514 (cpu_set_t): New type corresponding to the C type with
3515 the same name. Note that on the Ada side we use a bit
3516 field array for the affinity mask. There is not need
3517 for the C macro for setting individual bit.
3518 (pthread_setaffinity_np): New imported routine.
3519 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
3522 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3524 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
3526 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3528 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
3529 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
3530 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
3531 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
3532 Return by Depressed Stack Pointer.
3534 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
3536 * decl.c (is_variable_size): Do not unconditionally return false
3537 on non-strict alignment platforms.
3539 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
3541 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
3542 used to process all the variants of the specified type.
3543 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
3544 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
3545 (rest_of_type_decl_compilation): Likewise.
3546 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
3548 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
3550 * gigi.h (insert_block): Kill.
3551 * utils.c (insert_block): Kill.
3553 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
3555 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
3556 type has self-referential size, get the size from the initializing
3557 expression directly if it is also a constant whose nominal type
3558 has self-referential size.
3560 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3563 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
3566 * env.c: Always include crt_externs.h if __APPLE__ is defined.
3567 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
3569 2008-04-01 Andreas Jaeger <aj@suse.de>
3571 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
3574 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3576 * g-table.adb, g-tasloc.adb, g-traceb.ads,
3577 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
3578 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
3579 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
3580 gnatlink.adb, gnatmem.adb, gprep.adb,
3581 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
3582 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
3583 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
3584 lib-xref.ads, lib.adb, link.c, live.ads,
3585 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
3586 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
3587 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
3588 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
3589 namet.adb, namet.h, nlists.adb, nlists.ads,
3590 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
3591 osint-c.ads, osint.adb, osint.ads, output.ads,
3592 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
3593 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
3594 par-endh.adb, par-labl.adb, par-prag.adb,
3595 par-sync.adb, par-tchk.adb, par-util.adb,
3596 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
3597 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
3598 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
3599 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
3601 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
3603 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
3604 size if it has overflowed.
3606 2008-03-31 Olivier Hainque <hainque@adacore.com>
3607 Eric Botcazou <ebotcazou@adacore.com>
3609 * utils2.c (find_common_type): Document assumption on t1/t2 vs
3610 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
3612 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3614 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
3615 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
3616 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
3617 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
3618 exp_tss.ads, exp_util.adb, exp_util.ads,
3619 exp_vfpt.adb, freeze.adb, freeze.ads,
3620 frontend.adb, g-alleve.adb, g-altcon.adb,
3621 g-altive.ads, g-alveop.ads, g-alvevi.ads,
3622 g-arrspl.adb, g-busorg.ads, g-calend.adb,
3623 g-calend.ads, g-casuti.ads, g-cgideb.adb,
3624 g-comlin.adb, g-comlin.ads, g-curexc.ads,
3625 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
3626 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
3627 g-dyntab.adb, g-encstr.ads, g-excact.ads,
3628 g-except.ads, g-expect.ads, g-heasor.adb,
3629 g-hesora.adb, g-hesorg.adb, g-htable.ads,
3630 g-locfil.ads, g-md5.adb, g-md5.ads,
3631 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
3632 g-pehage.adb, g-pehage.ads, g-regexp.adb,
3633 g-regexp.ads, g-regpat.adb, g-regpat.ads,
3634 g-soccon-aix.ads, g-soccon-darwin.ads,
3635 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
3636 g-soccon-hpux.ads, g-soccon-irix.ads,
3637 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
3638 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
3639 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
3640 g-soccon-solaris.ads, g-soccon-tru64.ads,
3641 g-soccon-vms.ads, g-soccon-vxworks.ads,
3642 g-soccon.ads, g-socket.adb, g-socket.ads,
3643 g-socthi-mingw.adb, g-socthi-vms.adb,
3644 g-socthi-vxworks.adb, g-soliop-mingw.ads,
3645 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
3646 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
3649 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
3651 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
3652 if the procedure is imported.
3654 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3656 * adaint.c: Fix warnings.
3658 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3660 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
3662 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3664 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
3665 Fix problem of status check for null file
3667 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3669 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
3670 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
3671 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
3672 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
3673 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
3676 2008-03-26 Thomas Quinot <quinot@adacore.com>
3679 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
3680 Get_Socket_Option): Add support for Receive_Packet_Info.
3682 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
3683 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
3684 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
3685 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
3686 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
3687 new constants SO_REUSEPORT and IP_PKTINFO
3689 2008-03-26 Robert Dewar <dewar@adacore.com>
3691 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
3692 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
3693 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
3694 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
3695 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
3696 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
3697 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
3698 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3699 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
3700 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
3701 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
3702 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
3703 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
3704 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
3705 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
3706 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
3707 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
3708 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
3709 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
3710 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
3711 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
3712 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
3713 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
3714 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
3715 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
3716 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
3717 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
3718 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
3719 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
3720 s-tasloc.adb: Minor reformatting.
3722 Remove "used for" sections from comments.
3724 2008-03-26 Robert Dewar <dewar@adacore.com>
3726 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
3727 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
3728 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
3729 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
3730 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
3731 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
3732 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
3733 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
3734 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
3735 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
3736 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
3737 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
3738 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
3739 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
3740 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
3741 double spaced if it fits on one line and otherwise single spaced.
3743 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3745 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
3746 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
3747 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
3748 or task info if the thread could not be created.
3750 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3752 * gnatvsn.ads (Library_Version): Bump to 4.4.
3753 (Current_Year): Bump to 2008.
3755 2008-03-26 Robert Dewar <dewar@adacore.com>
3757 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
3759 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
3761 * debug.adb: Add debug flags d.r and d.v
3762 Add debug flag .T (Optimize_Alignment (Time))
3763 Add debug flag .S (Optimize_Alignment (Space))
3765 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
3766 depending on setting of relevant debug flags.
3767 Replace use of Warnings_Off by Has_Warnings_Off
3768 (Freeze_Entity): In circuit for warning on suspicious convention
3769 actuals, do not give warning if subprogram has same entity as formal
3770 type, or if subprogram does not come from source.
3771 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
3772 if Optimize_Alignment set to Space.
3774 * frontend.adb: Add call to Sem_Warn.Initialize
3775 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
3776 Reset Optimize_Alignment mode from debug switches .S and .T
3778 * layout.adb (Layout_Composite_Object): Rewritten for
3779 Optimize_Aligment pragma.
3781 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
3784 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
3786 * par-prag.adb (N_Pragma): Chars field removed, use Chars
3787 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
3788 this change. Add entry for pragma Optimize_Alignment
3790 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
3791 (Pragma_Identifier (..
3792 instead, adjustments throughout to accomodate this change.
3793 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
3794 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
3795 Add implementation of pragma Optimize_Alignment
3797 2008-03-26 Vincent Celier <celier@adacore.com>
3799 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
3800 Improve memory usage to avoid use of stack.
3802 2008-03-26 Robert Dewar <dewar@adacore.com>
3804 * a-teioed.ads: Correct value of Default_Fill
3806 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
3808 2008-03-26 Robert Dewar <dewar@adacore.com>
3810 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
3811 with Current_Output (introduce Self).
3813 2008-03-26 Robert Dewar <dewar@adacore.com>
3815 * checks.adb (Ensure_Valid): Capture valid status if possible
3818 2008-03-26 Robert Dewar <dewar@adacore.com>
3820 * stand.ads: Deal with reordering of package standard declarations
3822 * cstand.adb: Put package Standard declarations in proper order
3824 2008-03-26 Robert Dewar <dewar@adacore.com>
3826 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
3827 (Pragma_Identifier (.. instead.
3828 (OK_To_Reorder_Components): New flag
3829 (Has_Entries): Code cleanup.
3830 (Warnings_Off_Used): New flag
3831 (Warnings_Off_Used_Unmodified): New flag
3832 (Warnings_Off_Used_Unreferenced): New flag
3833 (Has_Warnings_Off): New function
3834 (Has_Unmodified): New function
3835 (Has_Unreferenced): New function
3836 (Is_Trivial_Subprogram): New flag
3837 (Is_Static_Dispatch_Table_Entity): New attribute.
3838 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
3839 (more consistent with other similar names)
3840 (Access_Subprogram_Type): New classification function
3842 2008-03-26 Robert Dewar <dewar@adacore.com>
3844 * errout.ads: Document new !! insertion sequence
3846 * errout.adb (N_Pragma): Chars field removed, use Chars
3847 (Pragma_Identifier (.. instead.
3848 Replace use of Warnings_Off by Has_Warnings_Off
3849 (Error_Msg_Internal): Don't delete warning ending in !!
3851 2008-03-26 Robert Dewar <dewar@adacore.com>
3853 * par.adb (Check_No_Right_Paren): Removed no longer used
3855 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
3856 (Pragma_Identifier (.. instead.
3858 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
3860 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
3861 par-ch4.adb: Minor improvements in error recovery and messages.
3863 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
3866 * par-ch9.adb: Minor improvements in error recovery and messages
3867 (P_Protected): Better error recovery for "protected type x;"
3869 * par-util.adb: Minor improvements in error recovery and messages
3870 (Check_No_Right_Paren): Removed no longer used
3872 2008-03-26 Ed Schonberg <schonberg@adacore.com>
3874 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
3875 that the prefix of an attribute is the type of the aggregate being