X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fada%2FChangeLog;h=74728b2ae3e12595be1b08be72b6462c758b19ce;hp=f7305e8ef4f7c2ec6923130b4c01ceec7a3d968f;hb=a4970f2bc2de008ad17979079dad54a5a1bfa694;hpb=b3dd8cfdf12682bc531009fd05556a5c54db216f diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index f7305e8ef4f..74728b2ae3e 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,916 @@ +2008-06-20 John David Anglin + + PR ada/36573 + * s-osinte-hpux-dce.ads (SA_ONSTACK): Define. + +2008-06-15 Ralf Wildenhues + + * gnat_rm.texi (Implementation Defined Characteristics) + (Standard Library Routines): Use @smallexample for indented + text. Drop Indentation outside examples. + * gnat_ugn.texi: Likewise. + +2008-06-13 Olivier Hainque + + * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0 + if undefined. + (gnat_to_gnu_entity) : Request stack + realignment with force_align_arg_pointer attribute on foreign + convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN. + +2008-06-13 Olivier Hainque + + * utils.c (rest_of_record_type_compilation): When computing + encodings for the components of a variable size type, early + strip conversions on the current position expression to make + sure it's shape is visible. Use remove_conversions for this + purpose. + +2008-06-12 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : In the case of a + constrained subtype of a discriminated type, discard the fields that + are beyond its limits according to its size. + +2008-06-10 Olivier Hainque + + * utils.c (create_subprog_decl): If this is for the 'main' entry + point according to the asm name, redirect main_identifier_node. + +2008-06-09 Eric Botcazou + + * decl.c (components_to_record): Adjust the packedness for the + qualified union as well. + +2008-06-09 Arnaud Charlet + + * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle + checks non fatal. + +2008-06-07 Samuel Tardieu + + * sem_res.adb (Large_Storage_Type): A type is large if it + requires as many bits as Positive to store its values and its + bounds are known at compile time. + * sem_ch13.adb (Minimum_Size): Note that this function returns + 0 if the size is not known at compile time. + +2008-06-06 Nicolas Setton + Olivier Hainque + + * ada-tree.h (DECL_PARALLEL_TYPE): New language specific + attribute, parallel descriptive type attached to another + type for debug info generation purposes. + * utils.c (add_parallel_type): New function, register + parallel type to be attached to a type. + (get_parallel_type): New function, fetch a registered + parallel type, if any. + (rest_of_record_type_compilation): Register the parallel + type we make for variable size records. + * gigi.h (add_parallel_type, get_parallel_type): Declare. + * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the + parallel debug types we make. + * trans.c (extract_encoding, decode_name): New functions. + (gigi): If the DWARF attribute extensions are available, setup + to use them. + * lang.opt: Register language specific processing request + for -gdwarf+. + * misc.c (gnat_dwarf_extensions): New global variable. How much + do we want of our DWARF extensions. 0 by default. + (gnat_handle_option) : Increment gnat_dwarf_extensions. + (gnat_post_options): Map gnat_dwarf_extensions to the + commonuse_gnu_debug_info_extensions for later processing. + +2008-06-04 Samuel Tardieu + + * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP. + +2008-06-03 Ralf Wildenhues + + * Makefile.in (common_tools): Fix typos in $(exeext) extension. + * gnat_ugn.texi (Style Checking) + (Adding the Results of Compiler Checks to gnatcheck Output) + (Example of Binder Output File): Fix typos. + * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb, + exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads, + s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb, + s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, + sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads, + sinfo.ads, utils.c: Fix typos in comments. + * sem_ch6.adb, vms_data.ads: Fix typos in strings. + +2008-05-29 Thomas Quinot + + * sem_eval.adb: Minor reformatting + +2008-05-29 Ed Schonberg + + * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type + is abstract, do not apply abstractness check on subprogram if this is + a renaming declaration. + +2008-05-29 Arnaud Charlet + + PR ada/864 + * osint.ads, osint.adb (Program_Name): New parameter "Prog" to + allow recognition of program suffix in addition to prefix. + + * gnatchop.adb (Locate_Executable): Add support for prefix. + + * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb, + mlib-utl.adb: Adjust calls to Program_Name. + +2008-05-29 Robert Dewar + + * sem_ch3.adb: Minor reformatting + * sem_prag.adb: Minor reformatting + * sem_res.adb: Minor reformatting + * sinput-p.ads: Minor reformatting + +2008-05-29 Javier Miranda + + * sem_util.adb: + (Abstract_Interface_List): Add missing support for full type-declaration + associated with synchronized types. + +2008-05-29 Robert Dewar + + * sem_eval.adb (Is_Same_Value): Take care of several more cases + +2008-05-28 Ed Schonberg + + * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous + access type, wrap the expression in a conversion to force an + accessibility check. + + * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force + accessibility checks even when expansion is disabled in order to + generate messages in the presence of previous errors or in + semantics-only mode. + +2008-05-28 Eric Botcazou + + * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False. + * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False. + +2008-05-28 Vincent Celier + + PR ada/34446 + * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in + preprocessing expressions + +2008-05-28 Vincent Celier + + * sinput-p.adb (Source_File_Is_Subunit): Allow special character used + for preprocessing + + * sinput-p.ads: Minor comment update and reformatting + +2008-05-28 Ed Schonberg + + * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram + type has a deeper level than any master only when it is the type of an + access parameter. + +2008-05-28 Javier Miranda + + * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation. + +2008-05-28 Javier Miranda + + * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed. + * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed. + * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal. + Add code that was previously located in + Find_Overridden_Synchronized_Primitive because it is only used here. + +2008-05-28 Sergey Rybin + + * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set + Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION. + +2008-05-28 Robert Dewar + + * restrict.ads: + Add missing restrictions, and properly label all GNAT defined ones + + * rtsfind.ads: + Add entry for Ada_Real_Time.Timing_Events.Timing_Event + Add entry for Ada.Task_Termination.Set_Specific_Handler + Add entry for Ada.Task_Termination.Specific_Handler + + * s-rident.ads: + Add missing restrictions and properly mark all gnat defined ones + + * sem_ch3.adb: + (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction + + * sem_res.adb: + (Resolve_Call): Check violation of No_Specific_Termination_Handlers + + * gnat_rm.texi: Add missing restrictions, and properly label all + GNAT defined ones + +2008-05-28 Robert Dewar + + * restrict.adb: + (Check_Restriction): violation of restriction No_Finalization is + treated as a serious error to stop expansion + +2008-05-28 Robert Dewar + + * exp_util.adb: Minor reformatting + * exp_util.ads: Minor reformatting. + +2008-05-28 Arnaud Charlet + + * Make-lang.in: Remove gprmake. + + * gprmake.adb, makegpr.ads, makegpr.adb: Removed. + +2008-05-28 Ed Schonberg + + * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving + improper progenitor names, and avoid cascaded errors. + +2008-05-28 Robert Dewar + + * gnat_rm.texi: Add note on Old giving warning when applied to constant + + * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is + a constant + +2008-05-28 Robert Dewar + + * exp_fixd.adb (Build_Multiply): Correct one-off error in computing + size + +2008-05-28 Robert Dewar + + * exp_ch5.adb: + (Expand_Simple_Function_Return): Copy unaligned result into temporary + +2008-05-28 Javier Miranda + + * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support + for user-defined predefined primitives. + + * sem_util.adb (Matches_Prefixed_View_Profile): Ditto. + (Find_Overridden_Synchronized_Primitive): Ditto. + + * sem_ch6.adb (Check_Synchronized_Overriding): Ditto. + +2008-05-27 Arnaud Charlet + + * a-ststio.adb, s-direio.adb: + Further code clean up of previous change. + Update comments. + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: Minor reformatting + +2008-05-27 Bob Duff + + * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an + untagged private type with a tagged full type, where the full type has + a self reference, create the corresponding class-wide type early, in + case the self reference is "access T'Class". + +2008-05-27 Ed Schonberg + + * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes + tasks and context is an object declaration. create master entity before + expansion. + +2008-05-27 Robert Dewar + + * mlib-prj.adb: Minor reformatting + + * prj-part.adb: Minor reformatting + + * prj.ads: Minor reformatting + + * exp_ch3.adb: Minor reformatting. + + * sem_ch3.ads: Minor reformatting + + * sem_eval.adb: Minor reformatting + +2008-05-27 Vincent Celier + + * gnatcmd.adb: + -gnat stack spawns gnatstack, not -gnatstack + +2008-05-27 Ed Schonberg + + * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains + tasks, create an activation chain now, before the expansion into + assignments and build-in-place calls that require the presence of an + activation chain. + (Backend_Processing_Possible): If the component type is inherently + limited, the aggregate must be expanded into individual built-in-place + assignments. + + * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to + determine whether an allocation extra parameter must be built, to + handle case of a private type whose full type is a discriminated type + with defaults. + +2008-05-27 Bob Duff + + * gnat_rm.texi: + Document the new behavior regarding trampolines. + +2008-05-27 Arnaud Charlet + + * a-direio.adb, a-sequio.adb: Replace address clause by + unrestricted_access, simpler and compatible with .NET. + +2008-05-27 Vincent Celier + + * prj-part.adb: + (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find + a project file, so that symbolic links are not resolved. + +2008-05-27 Arnaud Charlet + + * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb: + Replace heavy address clause by 'Unrestricted_Access, cleaner and more + portable across GNAT targets, since this kind of address clause is not + supported by VM back-ends (.NET/JGNAT). + +2008-05-27 Arnaud Charlet + + * bindgen.adb: Update comments. + + * s-tasinf-mingw.adb: Add "with" of System.OS_Interface + +2008-05-27 Vincent Celier + + * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb, + prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb, + mlib-tgt.adb, prj-env.adb, prj-env.ads: + (Path_Information): New record type + Use component of type Path_Information when there are two paths, one in + canonical format and one in display format. + Update the project manager to these new components. + +2008-05-27 Robert Dewar + + * makeutl.adb: Minor reformatting + * prj-nmsc.adb: Minor reformatting + * s-stausa.adb: Minor reformatting + * s-stausa.ads: Minor reformatting + * sem_ch6.adb: Minor reformatting + +2008-05-27 Thomas Quinot + + * sem_res.adb: Minor comment fixes + +2008-05-27 Thomas Quinot + + * makeutl.adb: Minor code reorganization + + * exp_aggr.adb: Add ??? comment + Fix typo + + * exp_ch6.adb: Minor reformatting + +2008-05-27 Quentin Ochem + + * s-stausa.adb (Initialize): Updated result initialization, and + initialization of environment stack. + (Fill_Stack): Improved computation of the pattern zone, taking into + account already filled at the calling point. + (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of + Measure and Overflow_Guard. + (Report_Result): Fixed computation of the result using new fields of + Stack_Analyzer. + + * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard + params by more explicit Stack_Size / Max_Pattern_Size params. + (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields. + Added Stack_Used_When_Filling field. + (Task_Result): Replaced Measure / Overflow_Guard by more explicit + Min_Measure and Max_Measure fields. + + * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer. + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: + (Check_File): Make sure that a unit that replaces the same unit in a + project being extended is properly processed. + +2008-05-27 Ed Schonberg + + * sem_ch3.adb: + (Get_Discr_Value): Remove obsolete code that failed to find the value + of a discriminant for an inherited task component appearing in a type + extension. + +2008-05-27 Thomas Quinot + + (System.File_IO.{Close, Delete, Reset}): + Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr". + + (Ada.*_IO.{Close, Delete, Reset, Set_Mode}): + Pass File parameter by reference. + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: + (Process_Sources_In_Multi_Language_Mode): Check that there are not two + sources of the same project that have the same object file name. + (Find_Explicit_Sources): Always remove a source exception that was not + found. + +2008-05-27 Thomas Quinot + + * sem_ch3.adb: Minor reformatting + +2008-05-27 Ed Schonberg + + * sem_ch6.adb: + (Is_Interface_Conformant): Handle properly a primitive operation that + overrides an interface function with a controlling access result. + (Type_Conformance): If Skip_Controlling_Formals is true, when matching + inherited and overriding operations, omit as well the conformance check + on result types, to prevent spurious errors. + +2008-05-27 Vincent Celier + + * makeutl.ads, makeutl.adb: + (Set_Location): New procedure + (Get_Location): New function + (Update_Main): New procedure + +2008-05-27 Vincent Celier + + * prj-nmsc.adb: + (Check_Library): Allow standard project to be extended as a static + library project. + (Get_Mains): Do not inherit attribute Main in an extending library + project. + +2008-05-27 Eric Botcazou + + * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False. + * system-darwin-x86.ads (Always_Compatible_Rep): Likewise. + * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise. + * system-linux-ppc.ads (Always_Compatible_Rep): Likewise. + * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise. + * system-linux-x86.ads (Always_Compatible_Rep): Likewise. + * system-mingw.ads (Always_Compatible_Rep): Likewise. + * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise. + * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise. + * system-solaris-x86.ads (Always_Compatible_Rep): Likewise. + +2008-05-27 Ed Schonberg + + * sem_attr.adb: add guard to previous patch. + +2008-05-27 Ed Schonberg + + * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by + a synchronized tagged type, do not attempt to build dispatch table for + full view. The table is built for the corresponding record type, which + has its own declaration. + +2008-05-27 Gary Dismukes + + * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype + to the known type entity E, rather than setting it to Any_Type. Fixes + possible blowup in function Base_Init_Proc, as called from Freeze_Entity + for objects whose type had an illegal constraint. + +2008-05-27 Vincent Celier + + * gnat_ugn.texi: + Add succinct documentation for attribute Excluded_Source_List_File + +2008-05-27 Vincent Celier + + * prj-attr.adb: Add new project level attribute Map_File_Option + + * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option + + * prj.ads: Minor reformatting and comment update + (Project_Configuration): New component Map_File_Option + + * snames.adb: New standard name Map_File_Option + + * snames.ads: New standard name Map_File_Option + +2008-05-27 Vincent Celier + + * xsnames.adb: Remove unused variable Oname + +2008-05-27 Doug Rupp + + * exp_ch6.adb: + (Expand_N_Function_Call): Fix comments. Minor reformatting. + + * exp_vfpt.ads: + (Expand_Vax_Foreign_Return): Fix comments. + +2008-05-27 Thomas Quinot + + * exp_dist.adb: Minor reformating + +2008-05-26 Gary Dismukes + + * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for + No_Default_Initialization, which is now delayed until the freeze point + of the object. Add a comment about deferral of the check. + + * freeze.adb (Freeze_Entity): The check for No_Default_Initialization + on objects is moved here. + +2008-05-26 Eric Botcazou + + * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment. + (Compare_Array_S16): Adjust for above change. + * s-casi32.adb (Uword): Likewise. + (Compare_Array_S32): Likewise. + * s-casi64.adb (Uword): Likewise. + (Compare_Array_S64): Likewise. + * s-caun16.adb (Uhalf): Likewise. + (Compare_Array_U16): Likewise. + * s-caun32.adb (Uword): Likewise. + (Compare_Array_U32): Likewise. + * s-caun64.adb (Uword): Likewise. + (Compare_Array_U64): Likewise. + +2008-05-26 Robert Dewar + + * exp_ch6.adb: Add ??? comment for previous change + + * exp_vfpt.adb: Minor reformatting + + * exp_vfpt.ads: Add ??? comment for last change + + * sem_attr.adb: Add some ??? comments for previous change + + * s-vaflop.ads: Add comments for previous change + +2008-05-26 Doug Rupp + + * s-vaflop-vms-alpha.adb: + Remove System.IO use clause, to prevent spurious ambiguities when + package is access through rtsfind. + +2008-05-26 Sergey Rybin + + * tree_io.ads (ASIS_Version_Number): Update because of the changes + made in front-end + +2008-05-26 Ed Schonberg + + * sem_attr.adb: + (Resolve_Attribute, case 'address): S (A .. B)' address can be safely + converted to S (A)'address only if A .. B is known to be a non-null + range. + +2008-05-26 Doug Rupp + + * s-vaflop.adb: + (Return_D, Return_F, Return_G): New functions. + + * s-vaflop.ads: + (Return_D, Return_F, Return_G): New functions. + + * exp_vfpt.adb: + (Expand_Vax_Foreign_Return): New procedure + + * exp_vfpt.ads: + (Expand_Vax_Foreign_Return): New procedure + + * rtsfind.ads: + (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids + (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements + + * exp_ch6.adb: + Import Exp_Vfpt + (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return. + + * s-vaflop-vms-alpha.adb: + (Return_D, Return_F, Return_G): New functions. + +2008-05-26 Gary Dismukes + + * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy + init proc entity when there is actual default initialization associated + with the component type, to avoid spurious errors on objects of scalar + array types that are marked Is_Public when No_Default_Initialization + applies. + +2008-05-26 Thomas Quinot + + * rtsfind.ads, rtsfind.adb: + (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint. + (Check_RPC): Support per-PCS-kind API versioning. + + exp_dist.ads, exp_dist.adb: + (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms. + (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime + library function Get_RACW. + (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime + library function Get_Reference. + (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going + through an intermediate Any. + (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of + going through an intermediate Any. + + * sem_dist.adb: Minor reformatting. + +2008-05-26 Javier Miranda + + * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias. + (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. + (Is_Internal): Adding documentation on internal entities that have + attribute Interface_Alias (old attribute Abstract_Interface_Alias) + + * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias. + (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias. + Added assertion to force entities with this attribute to have + attribute Is_Internal set to True. + (Next_Tag_Component): Simplify assertion using attribute Is_Tag. + + * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been + renamed as Derive_Progenitor_Subprograms. In addition, its code is + a new implementation. + (Add_Interface_Tag_Components): Remove special management of + synchronized interfaces. + (Analyze_Interface_Declaration): Minor reformating + (Build_Derived_Record_Type): Minor reformating + (Check_Abstract_Overriding): Avoid reporting error in case of abstract + predefined primitive inherited from interface type because the body of + internally generated predefined primitives of tagged types are generated + later by Freeze_Type + (Derive_Subprogram): Avoid generating an internal name if the parent + subprogram overrides an interface primitive. + (Derive_Subprograms): New implementation that keeps separate the + management of tagged types not implementing interfaces, from tagged + types that implement interfaces. + (Is_Progenitor): New implementation. + (Process_Full_View): Add documentation + (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms + by call to Derive_Progenitor_Subprograms. + + * sem_ch6.ads (Is_Interface_Conformant): New subprogram. + (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument + Skip_Controlling_Formals. + + * sem_ch6.adb (Is_Interface_Conformant): New subprogram. + (Check_Conventions): New implementation. Remove local subprogram + Skip_Check. Remove formal Search_From of routine Check_Convention. + (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument + Skip_Controlling_Formals. + (New_Overloaded_Entity): Enable addition of predefined dispatching + operations. + + * sem_disp.ads + (Find_Primitive_Covering_Interface): New subprogram. + + * sem_disp.adb (Check_Dispatching_Operation): Disable registering + the task body procedure as a primitive of the corresponding tagged + type. + (Check_Operation_From_Private_Type): Avoid adding twice an entity + to the list of primitives. + (Find_Primitive_Covering_Interface): New subprogram. + (Override_Dispatching_Operation): Add documentation. + + * sem_type.adb (Covers): Minor reformatings + + * sem_util.ads (Collect_Abstract_Interfaces): Renamed as + Collect_Interfaces. + Rename formal. + (Has_Abstract_Interfaces): Renamed as Has_Interfaces. + (Implements_Interface): New subprogram. + (Is_Parent): Removed. + (Primitive_Names_Match): New subprogram. + (Remove_Homonym): Moved here from Derive_Interface_Subprograms. + (Ultimate_Alias): New subprogram. + + * sem_util.adb (Collect_Abstract_Interfaces): Renamed as + Collect_Interfaces. + Remove special management for synchronized types. Rename formal. Remove + internal subprograms Interface_Present_In_Parent and Add_Interface. + (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion + on non-record types by code to return false in such case. + (Implements_Interface): New subprogram. + (Is_Parent): Removed. No special management is now required for + synchronized types covering interfaces. + (Primitive_Names_Match): New subprogram. + (Remove_Homonym): Moved here from Derive_Interface_Subprograms. + (Ultimate_Alias): New subprogram. + + * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram. + Add internal entities associated with secondary dispatch tables to + the list of tagged type primitives that are not interfaces. + (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities + (Make_Predefined_Primitive_Specs): Code reorganization to improve + the management of predefined equality operator. In addition, if + the type has an equality function corresponding with a primitive + defined in an interface type, the inherited equality is abstract + as well, and no body can be created for it. + + * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from + exp_util to exp_disp. + (Is_Predefined_Interface_Primitive): New subprogram. Returns True if + an entity corresponds with one of the predefined primitives required + to implement interfaces. + Update copyright notice. + + * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the + final check on abstract subprograms all the primitives associated with + interface primitives because they must be visible in the public and + private part. + (Write_DT): Use Find_Dispatching_Type to locate the name of the + interface type. This allows the use of this routine, for debugging + purposes, when the tagged type is not fully decorated. + (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp. + Factorize code calling new subprogram Is_Predefined_Interface_Primitive. + (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an + entity corresponds with one of the predefined primitives required to + implement interfaces. + + * exp_util.adb (Find_Interface_ADT): New implementation + (Find_Interface): Removed. + + * sprint.adb (Sprint_Node_Actual): Generate missing output for the + list of interfaces associated with nodes + N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration. + +2008-05-26 Thomas Quinot + + * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on + condition for assignment to temporary. + +2008-05-26 Ed Schonberg + + * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint + checks on the upper bound if the index type is a modular type, to + prevent wrap-around computations when size is close to upper bound of + type. + +2008-05-26 Robert Dewar + + * sem_ch3.adb: Minor reformatting + +2008-05-26 Ed Schonberg + + * sem_ch12.adb (Remove_Parent): Use specification of instance + to retrieve generic parent, + to handle properly the case where the instance is a child unit. + Add guard to handle properly wrapper packages. + Minor reformatting + +2008-05-26 Thomas Quinot + + * sinfo.ads: Minor reformatting + +2008-05-26 Hristian Kirtchev + + * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting. + Generate a tag check when the result subtype of a function, defined by + an access definition, designates a specific tagged type. + (Make_Tag_Check): New routine. + +2008-05-26 Arnaud Charlet + + * ceinfo.adb, csinfo.adb: Remove warnings. Update headers. + +2008-05-26 Eric Botcazou + + * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker. + (builtin_decl_for): Likewise. + * trans.c (gigi): Likewise. + * utils.c (def_builtin_1): Fix formatting. + +2008-05-26 Hristian Kirtchev + + * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables. + Create the statements which map a string name to protected or task + entry indix. + + * exp_ch9.adb: Add with and use clause for Stringt. + Minor code reformatting. + (Build_Entry_Names): New routine. + (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value + for flag Build_Entry_Names which controls the allocation of the data + structure for the string names of entries. + + * exp_ch9.ads (Build_Entry_Names): New subprogram. + + * exp_util.adb (Entry_Names_OK): New function. + + * exp_util.ads (Entry_Names_OK): New function. + + * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to + enumerations RE_Id and RE_Unit_Table. + + * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation. + (Free_Entry_Names_Array): New routine. + + * s-taskin.ads: Comment reformatting. + Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access. + Add component Entry_Names to record Ada_Task_Control_Block. + (Free_Entry_Names_Array): New routine. + + * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set, + dynamically allocate an array + of string pointers. This structure holds string entry names. + (Free_Entry_Names): New routine. + (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array. + (Set_Entry_Names): New routine. + + * s-tassta.ads: + (Create_Task): Add formal Build_Entry_Names. The flag is used to + control the allocation of the data structure which stores entry names. + (Set_Entry_Name): New routine. + + * s-tpoben.adb: + Add with and use clause for Ada.Unchecked_Conversion. + (Finalize): Deallocate the entry names array. + (Free_Entry_Names): New routine. + (Initialize_Protection_Entries): When flag Build_Entry_Names is set, + create an array of string pointers to hold the entry names. + (Set_Entry_Name): New routine. + + * s-tpoben.ads: + Add field Entry_Names to record Protection_Entries. + (Initialize_Protection_Entries): Add formal Build_Entry_Names. + (Set_Entry_Name): New routine. + +2008-05-26 Vincent Celier + + * prj-nmsc.adb: + (Process_Project_Level_Simple_Attributes): process attribute Library_GCC + + * prj.ads: + (Project_Configuration): New component Shared_Lib_Driver + +2008-05-26 Ed Schonberg + + * inline.adb: + (Cleanup_Scopes): For a protected operation, transfer finalization list + to protected body subprogram, to force cleanup actions when needed. + +2008-05-26 Robert Dewar + + * sem_cat.adb: Minor reformatting + + * gnatname.adb: Minor reformatting + + * osint.ads: Minor reformatting + + * s-carun8.ads: Minor reformatting + + * g-heasor.ads: Minor comment fix (unit is now pure) + +2008-05-26 Robert Dewar + + * exp_ch2.adb: + (Expand_Current_Value): Properly type generated integer literal + +2008-05-26 Sergey Rybin + + * gnat_ugn.texi: Add description for the new gnatcheck rule - + Separate_Numeric_Error_Handlers. + +2008-05-26 Pascal Obry + + * sem_aggr.adb: Minor reformatting. + +2008-05-26 Jose Ruiz + + * s-osinte-aix.adb: + (To_Target_Priority): Setting the time slice value to 0 or greater sets + the scheduling policy to FIFO within priorities or round-robin + respectively. + Hence, the priority must be set in this case to the one selected by the + user. + +2008-05-26 Ed Schonberg + + * sem_ch12.adb: + (Remove_Parent): If the enclosing scope is an instance whose generic + parent is declared within some parent scope of the just completed + instance, make full views of the entities in that parent visible, when + applicable. + +2008-05-26 Kai Tietz + + * mingw32.h (STD_MINGW): Set to true for target w64. + +2008-05-25 Eric Botcazou + + * trans.c (Attribute_to_gnu) : Set TREE_NO_TRAMPOLINE + instead of TREE_STATIC on the ADDR_EXPR. + 2008-05-24 Eric Botcazou * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.