diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index e27901c2934..4cd1c60d34b 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,1409 @@ +2007-08-14 Thomas Quinot <quinot@adacore.com> + + * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, + s-osinte-interix.ads, system-interix.ads: Removed. + +2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove + calls to Check_Within_Time_Bounds. + ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds. + (Difference): Account for possible rounding of the resulting difference + +2007-08-14 Robert Dewar <dewar@adacore.com> + + * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb, + par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb, + s-osinte-solaris.adb, s-osinte-solaris.ads, + s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting. + + * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style + switch -gnatyS. Enable -gnatyS in GNAT style check mode + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: + Suppress unmodified in-out parameter warning in some cases + This patch is a also fairly significant change to the way suppressible + checks are handled. + + * checks.ads, checks.adb (Install_Null_Excluding_Check): No check + needed for access to concurrent record types generated by the expander. + (Generate_Range_Check): When generating a temporary to capture the + value of a conversion that requires a range check, set the type of the + temporary before rewriting the node, so that the type is always + properly placed for back-end use. + (Apply_Float_Conversion_Check): Handle case where the conversion is + truncating. + (Get_Discriminal): Code reformatting. Climb the scope stack looking + for a protected type in order to examine its discriminants. + +2007-08-14 Robert Dewar <dewar@adacore.com> + Gary Dismukes <dismukes@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Thomas Quinot <quinot@adacore.com> + + * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, + a-stwisu.adb, a-strsup.adb: Fix warnings for range + tests optimized out. + + * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out. + (Get_Allocator_Final_List): For the case of an anonymous access type + that has a specified Associated_Final_Chain, do not go up to the + enclosing scope. + (Expand_N_Type_Conversion): Test for the case of renamings of access + parameters when deciding whether to apply a run-time accessibility + check. + (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded + aggregate code before allocator, and ahead of declaration for + temporary, to prevent access before elaboration when the allocator is + an actual for an access parameter. + (Expand_N_Type_Conversion): On an access type conversion involving an + access parameter, do not apply an accessibility check when the + operand's original node was an attribute other than 'Access. We now + create access conversions for the expansion of 'Unchecked_Access and + 'Unrestricted_Access in certain cases and clearly accessibility should + not be checked for those. + + * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that + includes a type conversion of a packed component that has been expanded, + recover the original expression for the object, and use this expression + in the post-call assignment statement, so that the assignment is made + to the object and not to a back-end temporary. + (Freeze_Subprogram): In case of primitives of tagged types not defined + at the library level force generation of code to register the primitive + in the dispatch table. In addition some code reorganization has been + done to leave the implementation clear. + (Expand_Call): When expanding an inherited implicit conversion, + preserve the type of the inherited function after the intrinsic + operation has been expanded. + + * exp_ch2.ads, exp_ch2.adb + (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference + of an entry formal appearing in an assignment statement does not assign + to the formal. + (Expand_Current_Value): Instead of calling a routine to determine + whether the prefix of an attribute reference should be optimized or + not, prevent the optimization of such prefixes all together. + + * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected + component whose prefix is known to be of an access type is an implicit + dereference and does not assign to the prefix. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + + * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and + itype is visited, make an entry into table to link associated node and + new itype. + Add comments and correct harmless error in Build_NCT_Hash_Tables + (Array_Aggr_Subtype): Associate each itype created for an index type to + the corresponding range construct, and not to the aggregate itself. to + maintain a one-to-one correspondence between itype and its associated + node, to prevent errors when complex expression is copied. + Fix mishandling of multiple levels of parens + + * sem_aggr.adb: Create a limited view of an incomplete type, to make + treatment of limited views uniform for all visible declarations in a + limited_withed package. + (New_Copy_Tree): If hash table is being used and itype is visited, + make an entry into table to link associated node and new itype. + (Resolve_Record_Aggregate): Do not add an others box association for a + discriminated record component that has only discriminants, when there + is a box association for the component itself. + + * par-ch4.adb: Fix mishandling of multiple levels of parens + +2007-08-14 Robert Dewar <dewar@adacore.com> + + * comperr.adb: Fix problem with suppressing warning messages from gigi + + * erroutc.ads, erroutc.adb, errout.ads, + errout.adb (Write_Eol): Remove trailing spaces before writing the line + (Write_Eol_Keep_Blanks): New procedure to write a line, including + possible trailing spaces. + (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line + Fix problem with suppressing warning messages from back end + Improve handling of deleted warnings + + * gnat1drv.adb: + Fix problem with suppressing warning messages from back end + Handle setting of Static_Dispatch_Tables flag. + + * prepcomp.adb: + Fix problem with suppressing warning messages from back end + + * exp_intr.adb: Improve handling of deleted warnings + +2007-08-14 Robert Dewar <dewar@adacore.com> + + * debug.adb: Improve -gnatdI to cover all cases of serialization + Add documentation of dZ, d.t + + * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of + serialization. + (Sprint_Node_Actual): Generate new output associated with implicit + importation and implicit exportation of object declarations. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + Robert Dewar <dewar@adacore.com> + Javier Miranda <miranda@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * einfo.ads, einfo.adb: Create a limited view of an incomplete type, + to make treatment of limited views uniform for all visible declarations + in a limited_withed package. + Improve warnings for in out parameters + (Set_Related_Interaface/Related_Interface): Allow the use of this + attribute with constants. + (Write_Field26_Name): Handle attribute Related_Interface in constants. + Warn on duplicate pragma Preelaborable_Initialialization + + * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the + generation of a freezing node to ensure proper management of null + excluding access types in the backend. + (Create_Extra_Formals): Test base type of the formal when checking for + the need to add an extra accessibility-level formal. Pass the entity E + on all calls to Add_Extra_Formal (rather than Scope (Formal) as was + originally being done in a couple of cases), to ensure that the + Extra_Formals list gets set on the entity E when the first entity is + added. + (Conforming_Types): Add missing calls to Base_Type to the code that + handles anonymous access types. This is required to handle the + general case because Process_Formals builds internal subtype entities + to handle null-excluding access types. + (Make_Controlling_Function_Wrappers): Create wrappers for constructor + functions that need it, even when not marked Requires_Overriding. + Improve warnings for in out parameters + (Analyze_Function_Return): Warn for disallowed null return + Warn on return from procedure with unset out parameter + Ensure consistent use of # in error messages + (Check_Overriding_Indicator): Add in parameter Is_Primitive. + (Analyze_Function_Return): Move call to Apply_Constraint_Check before + the implicit conversion of the expression done for anonymous access + types. This is required to generate the code of the null excluding + check (if required). + + * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable): + A formal parameter is never publicly referenceable outside of its body. + (Check_References): For an unreferenced formal parameter in an accept + statement, use the same warning circuitry as for subprogram formal + parameters. + (Warn_On_Unreferenced_Entity): New subprogram, taken from + Output_Unreferenced_Messages, containing the part of that routine that + is now reused for entry formals as described above. + (Goto_Spec_Entity): New function + (Check_References): Do not give IN OUT warning for dispatching operation + Improve warnings for in out parameters + (Test_Ref): Check that the entity is not undefinite before calling + Scope_Within, in order to avoid infinite loops. + Warn on return from procedure with unset out parameter + Improved warnings for unused variables + +2007-08-14 Robert Dewar <dewar@adacore.com> + Javier Miranda <miranda@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit + (Expand_N_Attribute_Reference): Further unify the handling of the + three forms of access attributes, using common code now for all three + cases. Add a test for the case of applying an access attribute to + an explicit dereference when the context is an access-to-interface + type. In that case we need to apply the conversion to the prefix + of the explicit dereference rather than the prefix of the attribute. + (Attribute_Version, UET_Address): Set entity as internal to ensure + proper dg output of implicit importation. + (Expand_Access_To_Type): Removed. + (Expand_N_Attribute_Reference): Merge the code from the three cases + of access attributes, since the processing is largely identical for + these cases. The substantive fix here is to process the case of a + type name prefix (current instance case) before handling the case + of interface prefixes. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Javier Miranda <miranda@adacore.com> + Robert Dewar <dewar@adacore.com> + + * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram. + (Freeze_Array_Type, Freeze_Record_Type): For the case of a component + type that is an anonymous access to controlled object, establish + an associated finalization chain to avoid corrupting the global + finalization list when a dynamically allocated object designated + by such a component is deallocated. + (Make_Controlling_Function_Wrappers): Create wrappers for constructor + functions that need it, even when not marked Requires_Overriding. + (Initialize_Tag): Replace call to has_discriminants by call to + Is_Variable_Size_Record in the circuitry that handles the + initialization of secondary tags. + (Is_Variable_Size_Record): New implementation. + (Expand_N_Object_Declaration): Suppress call to init proc if there is a + Suppress_Initialization pragma for a derived type. + (Is_Variable_Size_Record): New subprogram. + (Build_Offset_To_Top_Functions): New implementation that simplifies the + initial version of this routine and also fixes problems causing + incomplete initialization of the table of interfaces. + (Build_Init_Procedure): Improve the generation of code to initialize the + the tag components of secondary dispatch tables. + (Init_Secondary_Tags): New implementation that simplifies the previous + version of this routine. + (Make_DT): Add parameter to indicate when type has been frozen by an + object declaration, for diagnostic purposes. + (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to + diagnose attemps to freeze a subprogram when some untagged type of its + profile is a private type whose full view has not been analyzed yet. + (Freeze_Array_Type): Generate init proc for packed array if either + Initialize or Normalize_Scalars is set. + (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when + constructing the new profile, copy the null_exclusion indicator for each + parameter, to ensure full conformance of the new body with the spec. + + * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers): + Create wrappers for constructor functions that need it, even when not + marked Requires_Overriding. + (Covers): Handle properly designated types of anonymous access types, + whose non-limited views are themselves incomplete types. + (Add_Entry): Use an entity to store the abstract operation which hides + an interpretation. + (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op. + (Collect_Interps): Use Empty as an actual for Abstract_Op in the + initialization aggregate. + (Function_Interp_May_Be_Hidden): Rename to + Function_Interp_Has_Abstract_Op. + (Has_Compatible_Type): Remove machinery that skips interpretations if + they are labeled as potentially hidden by an abstract operator. + (Has_Hidden_Interp): Rename to Has_Abstract_Op. + (Set_May_Be_Hidden): Rename to Set_Abstract_Op. + (Write_Overloads): Output the abstract operator if present. + (Add_Entry): Before inserting a new entry into the interpretation table + for a node, determine whether the entry will be disabled by an abstract + operator. + (Binary_Op_Interp_May_Be_Hidden): New routine. + (Collect_Interps): Add value for flag May_Be_Hidden in initialization + aggregate. + (Function_Interp_May_Be_Hidden): New routine. + (Has_Compatible_Type): Do not consider interpretations hidden by + abstract operators when trying to determine whether two types are + compatible. + (Has_Hidden_Interp): New routine. + (Set_May_Be_Hidden_Interp): New routine. + (Write_Overloads): Write the status of flag May_Be_Hidden. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + Javier Miranda <miranda@adacore.com> + + * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged + types declared in the declarative part of a nested package body or in + the proper body of a stub. + (Set_All_DT_Position): Add missing check to avoid wrong assignation + of the same dispatch table slot to renamed primitives. + (Make_Select_Specific_Data_Table): Handle private types. + (Tagged_Kind): Handle private types. + (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg + output of implicit importation and exportation. + (Expand_Interface_Thunk): Fix bug in the expansion assuming that the + first formal of the thunk is always associated with the controlling + type. In addition perform the following code cleanup: remove formal + Thunk_Alias which is no longer required, cleanup evaluation of the + the controlling type, and update the documentation. + Replace occurrence of Default_Prim_Op_Count by + Max_Predef_Prims. Addition of compile-time check to verify + that the value of Max_Predef_Prims is correct. + (Check_Premature_Freezing): Apply check in Ada95 mode as well. + (Make_DT): Add parameter to indicate when type has been frozen by an + object declaration, for diagnostic purposes. + (Build_Static_Dispatch_Tables): New subprogram that takes care of the + construction of statically allocated dispatch tables. + (Make_DT): In case of library-level tagged types export the declaration + of the primary tag. Remove generation of tags (now done by Make_Tags). + Additional modifications to handle non-static generation of dispatch + tables. Take care of building tables for asynchronous interface types + (Make_Tags): New subprogram that generates the entities associated with + the primary and secondary tags of Typ and fills the contents of Access_ + Disp_Table. In case of library-level tagged types imports the forward + declaration of the primary tag that will be declared later by Make_DT. + (Expand_Interface_Conversion): In case of access types to interfaces + replace an itype declaration by an explicit type declaration to avoid + problems associated with the scope of such itype in transient blocks. + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + Javier Miranda <miranda@adacore.com> + + * exp_util.ads, exp_util.adb: + This patch replaces a number of occurrences of explicit tests for N_Null + with calls to Known_Null. This improves tracking of null values, since + Known_Null also catches null constants, and variables currently known to + be null, so we get better tracking. + (Ensure_Defined): create an itype reference only in the scope of the + itype. + (Side_Effect_Free): A selected component of an access type that + denotes a component with a rep clause must be treated as not + side-effect free, because if it is part of a linked structure its + value may be affected by a renaming. + (Expand_Subtype_From_Expr): For limited objects initialized with build + in place function calls, do nothing; otherwise we prematurely introduce + an N_Reference node in the expression initializing the object, which + breaks the circuitry that detects and adds the additional arguments to + the called function. Bug found working in the new patch for statically + allocated dispatch tables. + (Is_Library_Level_Tagged_Type): New subprogram. + (Remove_Side_Effects): If the expression of an elementary type is an + operator treat as a function call. + (Make_Literal_Range): If the index type of the array is not integer, use + attributes properly to compute the constraint on the resulting aggregate + which is a string. + + * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a + class-wide type whose base type is an incomplete private type, leave + class-wide type unfrozen so that freeze nodes can be generated + properly at a later point. + (Freeze_Entity, array case): Handle case of pragma Pack and component + size attributre clause for same array. + +2007-08-14 Vincent Celier <celier@adacore.com> + + * prj.ads, prj.adb: Update Project Manager to new attribute names for + gprbuild. + Allow all valid declarations in configuration project files + (Reset): Initialize all tables and hash tables in the project tree data + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + (Slash_Id): Change type to be Path_Name_Type + (Slash): Return a Path_Name_Type instead of a File_Name_Type + + * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by + gprbuild. + Update Project Manager to new attribute names for ghprbuild + Allow all valid declarations in configuration project files + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-com.ads: + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case + insensitive flag for attributes with optional index. + (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative + array attribute, put the index in lower case. + Update Project Manager to new attribute names for ghprbuild + Allow all valid declarations in configuration project files + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-env.ads, prj-env.adb: + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + (Get_Reference): Change type of parameter Path to Path_Name_Type + + * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after + removing '-' from the path to start with the first character of the + next directory. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-nmsc.ads, prj-nmsc.adb: + Update Project Manager to new attribute names for ghprbuild + Allow all valid declarations in configuration project files + (Search_Directories): Detect subunits that are specified with an + attribute Body in package Naming. Do not replace a source/unit in the + same project when the order of the source dirs are known. Detect + duplicate sources/units in the same project when the order of the + source dirs are not known. + (Check_Ada_Name): Allow all identifiers that are not reserved words + in Ada 95. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + (Look_For_Sources): If the list of sources is empty, set the object + directory of non extending project to nil. + Change type of path name variables to be Path_Name_Type + (Locate_Directory): Make sure that on Windows '/' is converted to '\', + otherwise creating missing directories will fail. + + * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, + prj-part.ads, prj-part.adb: + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + + * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case + insensitive flag for attributes with optional index. + (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative + array attribute, put the index in lower case. + (Parse_Variable_Reference): Allow the current project name to be used in + the prefix of an attribute reference. + + * prj-util.ads, prj-util.adb + (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index, + defaulted to False. When True, always check against indexes in lower + case. + + * snames.ads, snames.h, snames.adb: + Update Project Manager to new attribute names for gprbuild + Allow all valid declarations in configuration project files + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * opt.ads: Warning for non-local exception propagation now off by + default + New switch -gnatI to disable representation clauses + Implement new pragma Implicit_Packing + + * usage.adb: + Warning for non-local exception propagation now off by default + Add warning for unchecked conversion of pointers wi different + conventions. + New switch -gnatI to disable representation clauses + + * usage.adb: new switch -gnatyS + + * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a + note that aggregates of anonymous array types are not flagged. + -gnatwc now includes membership tests optimized away + -gnatw.x warnings are now off by default + Added conditional compilation Appendix + Add documentation of -gnatI + Add documentation for new -gnatyS style check + Update documentation about SAL and auto-init on Windows. + + * gnat_rm.texi: + Add documentation for pragma Check_Name and 'Enabled attribute + Document that Eliminate on dispatching operation is ignored + Document IDE attributes VCS_Repository_Root and VCS_Patch_Root. + Document pragma Main + Document pragma Implicit_Packing + + * sem_ch13.adb: Add warning for unchecked conversion of pointers wi + different conventions + New switch -gnatI to disable representation clauses + + * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not + recognized, report the invalid characters including "-gnat" instead of + just the first character in the switch. + New switch -gnatI to disable representation clauses + Set Warn_On_Object_Renames_Function true for -gnatg + + * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES + Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS + Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent + to switch -aP (add directory to project search dir). + + * par-prag.adb: Implement new pragma Implicit_Packing + + * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the + type as having a non-standard representation, to force expansion on + conversion to related types. + (Analyze_Pragma): Warn on misspelled pragma + (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg + Ensure consistent use of # in error messages + Implement pragma Implicit_Packing + +2007-08-14 Olivier Hainque <hainque@adacore.com> + Eric Botcazou <ebotcazou@adacore.com> + + * targtyps.c (get_target_maximum_default_alignment): New function. + Maximum alignment + that the compiler might choose by default for a type or object. + (get_target_default_allocator_alignment): New function. Alignment known + to be honored by the target default allocator. + (get_target_maximum_allowed_alignment): New function. Maximum alignment + we might accept for any type or object on the target. + (get_target_maximum_alignment): Now synonym of maximum_default_alignment + + * gigi.h (get_target_maximum_default_alignment): Declare new function. + (get_target_default_allocator_alignment): Likewise. + (get_target_maximum_allowed_alignment): Likewise. + + PR ada/19037 + * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the + result of a function call, first try to use a stabilized reference for + a constant renaming too. + (validate_alignment): Use target_maximum_allowed_alignment instead of + MAX_OFILE_ALIGNMENT as the upper bound to what we accept. + (gnat_to_gnu_entity): Use common nodes directly. + (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate + alignment and size for the object. + (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call + and N_Procedure_Call_Statement. + (takes_address): Rename to lvalue_required_p, add third parameter + 'aliased' and adjust recursive calls. + <N_Indexed_Component>: Update 'aliased' from the array type. + <N_Selected_Component>: New case. + <N_Object_Renaming_Declaration>: New Likewise. + (Identifier_to_gnu): Adjust for above changes. + (maybe_stabilize_reference) <CONST_DECL>: New case. + + * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion + between type variants. + (build_simple_component_ref): Likewise. + (build_call_alloc_dealloc): Use target_default_allocator_alignment + instead of BIGGEST_ALIGNMENT as the threshold to trigger the super + aligning type circuitry for allocations from the default storage pool. + (build_allocator): Likewise. + (build_simple_component_ref): Manually fold the reference for a + constructor if the record type contains a template. + + * utils.c (value_zerop): Delete. + (gnat_init_decl_processing): Emit debug info for common types. + (rest_of_record_type_compilation): If a union contains a field + with a non-constant qualifier, treat it as variable-sized. + (finish_record_type): Give the stub TYPE_DECL a name. + (rest_of_record_type_compilation): Likewise. + (convert) <CONSTRUCTOR>: New case. Build a new constructor if + types are equivalent array types. + (create_field_decl): Claim fields of any ARRAY_TYPE are addressable, + even if the type is not passed by reference. + (static_ctors, static_dtors): Delete. + (end_subprog_body): Do not record constructors and destructors. + (build_global_cdtor): Delete. + (gnat_write_global_declarations): Do not call build_global_cdtor. + + * lang-specs.h: If TARGET_VXWORKS_RTP is defined, append -mrtp when + -fRTS=rtp is specified. + If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is + specified. + + * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name + of the personality function with SJLJ exceptions. + + * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for + the name of the personality function with SJLJ exceptions. + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * par.ads, par.adb: Improve handling of extra right parens. + (Par): Remove flag From_Limited_With_Clause. + + * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint + Improve handling of extra right parens. + +2007-08-14 Robert Dewar <dewar@adacore.com> + + * par-tchk.adb (TF_Semicolon): Improve error recovery + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For + enumeration type, mark all literals as referenced. + (Eval_Attribute, case 'Image): If the argument is an enumeration + literal and names are available, constant-fold but mark nevertheless as + non-static. + Clean up function names. + (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify + comment. + (Requires_Simple_Name_Prefix): Removed. + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * sem_ch11.adb: Improved warnings for unused variables + + * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor + is a synchronized interface, the derived type is limited. + (Analyze_Object_Declaration): Mark the potential coextensions in the + definition and expression of an object declaration node. + (Build_Derived_Type): For the completion of a private type declaration + with a derived type declaration, chain the parent type's representation + items to the last representation item of the derived type (not the + first one) if they are not present already. + (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete + object declaration of forward references to tags. + (Access_Subprogram_Declaration): In Ada2005, anonymous access to + subprogram types can appear as access discriminants of synchronized + types. + (OK_For_Limited_Init_In_05): The initialization is legal is it is a call + given in prefixed form as a selected component. + (Process_Discriminants): If not all discriminants have defaults, place + error message on a default that is present. + (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to + extend a synchronized tagged type. + Improved warnings for unused variables + (Is_Visible_Component): Fix a visibility hole on a component inherited + by a private extension when parent is itself declared as a private + extension, and the derivation is in a child unit. + (Find_Hidden_Interface): Move spec from the package body. + +2007-08-14 Robert Dewar <dewar@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * sem_ch5.adb: Improve warnings on redundant assignments + + * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk + parameter + (Is_Synchronized_Tagged_Type): New subprogram that returns true + in case of synchronized tagged types (AARM 3.9.4 (6/2)). + (Safe_To_Capture_Value): Can now return True for constants, even if Cond + is set to False. Improves handling of Known_[Not_]Null. + (Wrong_Type): Special case address arithmetic attempt + (Collect_Abstract_Interfaces): Add new formal to allow collecting + abstract interfaces just using the partial view of private types. + (Has_Abstract_Interfaces): Add new formal to allow checking types + covering interfaces using the partial view of private types. + (Is_Fully_Initialized_Type): Special VM case for uTag component. This + component still needs to be defined in this case, but is never + initialized as VMs are using other dispatching mechanisms. + (Abstract_Interface_List): For a protected type, use base type to get + proper declaration. + Improve warnings on redundant assignments + (Is_Variable): Handle properly an implicit dereference of a prefixed + function call. + (Build_Actual_Subtype): If this is an actual subtype for an + unconstrained formal parameter, use the sloc of the body for the new + declaration, to prevent anomalises in the debugger. + +2007-08-14 Robert Dewar <dewar@adacore.com> + + * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for + dispatching operation + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + Gary Dismukes <dismukes@adacore.com> + + * exp_aggr.ads, + exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place + expanded aggregate code before allocator, and ahead of declaration for + temporary, to prevent access before elaboration when the allocator is + an actual for an access parameter. + (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing + the TSD and the table of interfaces. + (Convert_To_Assignments): Augment the test for delaying aggregate + expansion for limited return statements to include the case of extended + returns, to prevent creation of an unwanted transient scope. + (Is_Static_Dispatch_Table_Aggregate): New subprogram. + (Expand_Array_Aggregate): Handle aggregates associated with + statically allocated dispatch tables. + (Expand_Record_Aggregate): Handle aggregates associated with + statically allocated dispatch tables. + (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators + of anonymous access type. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + + * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment + is a variable that renames a slice, use the variable itself in the + expannsion when the renamed expression itself may be modified between + the declaration of the renaming and the array assignment. + +2007-08-14 Jerome Guitton <guitton@adacore.com> + + * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, + s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, + s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks): + New functions; dummy implementations. + + * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New + functions, used to implement the multi-tasks mode routines on VxWorks. + + * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop): + New functions, thin + binding to the VxWorks routines which have changed between VxWorks 5 + and 6. + (Int_Lock, Int_Unlock): New function, thin binding to kernel routines + which are not callable from a RTP. + + * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions, + implemented for the multi-tasks mode on VxWorks 5 and 6. + + * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions. + + * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New + functions. + +2007-08-14 Vincent Celier <celier@adacore.com> + + * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, + gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb + mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, + mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, + mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, + mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb, + mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New + procedure. + (Major_Id_Name): New function. + mlib-tgt.ads/mlib.tgt.adb: + (Library_Major_Minor_Id_Supported): New function, default returns True + Most mlib-tgt-*.adb that support shared libraries and symbolic links: + (Build_Dynamic_Library): Add support for major/minor ids for shared libs + Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi): + Implementation of Library_Major_Minor_Id_Supported returns False + clean.adb: + (Clean_Library_Directory): If major/minor ids are supported, clean all + library files. + Major update of the Project Manager and of the project aware tools, + including gprmake, so that the same sources in the GNAT repository + can be used by gprbuild. + +2007-08-14 Olivier Hainque <hainque@adacore.com> + + * system-solaris-x86.ads (ZCX_By_Default): Switch to True. + (GCC_ZCX_Support): Switch to True. + + * s-intman-solaris.adb (Notify_Exception): Call + Adjust_Context_For_Raise before raising, as expected for signal + handlers in general. + + * s-intman-posix.adb (Notify_Exception): Remove declaration of + Adjust_Context_For_Raise, moved to the spec of this unit to be visible + to other implementation bodies. + + * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to + be visible by multiple implementation bodies. + + * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context + only for conditions coming from hardware. + [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement, + adjustments to signal context prior to exception raise from signal + handler. + (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP + mode. + Solaris section: (__gnat_adjust_context_for_raise): New function. + Implementation of the machine context adjustments to perform prior to + raise from a signal handler. Version for both sparc and x86. + (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define. + (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it + prior to raising as expected for any handler, before possible nested + faults to make sure all the contexts in a chain have been adjusted by + the time we propagate. + +2007-08-14 Pascal Obry <obry@adacore.com> + + * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows. + (SYSTEM_INFO): New record. + (SetThreadIdealProcessor): New imported routine needed for supporting + task_info pragma on Windows. + + * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task + info can be applied to the current host. + (Create_Task): Set the ideal processor if information is present. + + * s-tasinf-mingw.adb, s-tasinf-mingw.ads, + a-exetim-mingw.adb, a-exetim-mingw.ads: New files. + +2007-08-14 Olivier Hainque <hainque@adacore.com> + + * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the + stack size and initial stack pointer value for a given task. + (Enter_Task): Get the stack attributes of the task we are entering and + let the stack checking engine know about them. + + * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram. + Let the stack-checking engine know about the initial sp value and stack + size associated with the current task. + (Set_Stack_Info): If a stack base has been notified for the current + task, honor it. Fallback to the previous less accurate method otherwise. + + * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch10.adb: Create a limited view of an incomplete type, to make + treatment of limited views uniform for all visible declarations in a + limited_withed package. + Set flag indicating that a subprogram body for a child unit has a + generated spec. + (Analyze_Compilation_Unit): If unit is a subprogram body that has no + separate declaration, remove the unit name from visibility after + compilation, so that environment is clean for subsequent compilations. + (Install_Limited_Context_Clauses): Do not install a + limited_private_with_clause unless the current unit is a body or a + private child unit. + (Analyze_Subunit, Install_Parents): Treat generic and non-generic units + in the same fashion. + (Install_Limited_Withed_Unit): Do not install a limited with clause if + it applies to the declaration of the current package body. + (Remove_Private_With_Clauses): If there is a regular with_clause for + the unit, delete Private_With_Clause from context, to prevent improper + hiding when processing subsequent nested packages and instantiations. + +2007-08-14 Jose Ruiz <ruiz@adacore.com> + + * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept + dir/file, device:/dir/file, and device:drive_letter:/dir/file as + representing absolute path names. + __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues. + + * cstreams.c (__gnat_full_name for VxWorks): Use + __gnat_is_absolute_path to detect whether we need to add the current + directory to normalize the path. + +2007-08-14 Javier Miranda <miranda@adacore.com> + + * a-tags.ads, + a-tags.adb (Displace): Associate a message with the raised CE + exception. + (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr, + To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr, + To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package + spec. + (Default_Prim_Op_Count): Removed. + (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind, + Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind): + Remove pragma Inline_Always. + + * rtsfind.ads (Default_Prim_Op_Count): Removed + (Max_Predef_Prims): New entity + (RE_Expanded_Name): Removed + (RE_HT_Link): Removed + (RE_Iface_Tag): Remmoved + (RE_Ifaces_Table): Removed + (RE_Interfaces_Array): Removed + (RE_Interface_Data_Element): Removed + (RE_Nb_Ifaces): Removed + (RE_RC_Offset): Removed + (RE_Static_Offset_To_Top): Removed + + * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new + formal. + (Build_Inherit_Predefined_Prims): Replace occurrences of Default_ + Prim_Op_Count by Max_Predef_Prims. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + Vincent Celier <celier@adacore.com> + + * binde.adb (Elab_All_Links): Remove unnecessary call to + Generic_Separately_Compiled (if a unit satisfies this predicate, there + won't be an associated Afile). + (Elab_All_Links): Fail if a referenced unit cannot be found + + * bindgen.adb: + Fix comments in bindgen regarding consistency checks done in Bcheck: + the checks are made across units within a partition, not across several + partitions. + Fix generation of C binder file for VxWorks. + + * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to + Generic_May_Lack_ALI, more descriptive of the current use of the + predicate, and update documentation. + + * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code + reorganization and documentation update for the case of predefined + library generics (for which we do not reference an Afile). + +2007-08-14 Robert Dewar <dewar@adacore.com> + + * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads, + s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, + s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb, + s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb, + s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb, + s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads, + s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads, + s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb, + exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads, + s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb, + s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads, + a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads, + s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads, + g-altcon.adb: Minor reformatting + + ada-tree.h: Delete empty line. + + ali.ads: Minor reformatting + Clarification of comments. + Minor spelling correction + + * exp_dbug.adb: Add Warnings Off to suppress new warning + + * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode + formal + + * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old + value + + * a-textio.adb (Write): Remove an unnecessary IN OUT mode from + + * a-textio.ads: Reorder the standard input/output/error declarations + for consistency. + + * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call + + * par-ch2.adb: Recognize RM specially in errout + Change 'R'M to RM in all error messages + + * scng.adb: Recognize RM specially in errout + + * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename + N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology. + + * s-direio.adb: Add missing routine header box. + + * sem_attr.ads: Add ??? comments + + * sem_eval.adb: Recognize RM specially in errout + Change 'R'M to RM in all error messages + + * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes + + * s-tasinf.ads: Fix minor comment typo. + + * a-cihama.adb: Minor comment addition + + * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode + formal + + * s-tasinf-tru64.ads: Fix minor comment typo. + + * itypes.ads: Comment update. + + * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed + anymore. + + * argv.c: Added protection against null gnat_argv and gnat_envp. + + * bcheck.adb (Check_Consistency): Use correct markup character ({) in + warning message when Tolerate_Consistency_Errors is True. + + * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for + Any_Id, as this subprogram is only applicable to *type* entities (it + sets RM_Size). Instead initialize just Esize and Alignment. + +2007-08-14 Bob Duff <duff@adacore.com> + + * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, + a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, + a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, + a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads, + a-coorse.ads (Next): Applied pragma Inline. + Make all Containers packages Remote_Types (unless they are already + Pure). + (Previous): applied pragma Inline + (Elements_Type): is now a record instead of an array + +2007-08-14 Thomas Quinot <quinot@adacore.com> + + * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms + of Set_Item. + (Set_Item): When the new item is an element of the currently allocated + table passed by reference, save a copy on the stack if we're going + to reallocate. Also, in Table.Set_Item, make sure we test the proper + variable to determine whether to call Set_Last. + + * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb, + symbols-vms.adb, symbols-processing-vms-alpha.adb, + symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace + some occurrences of the pattern + T.Increment_Last; + T.Table (T.Last) := Value; + with a cleaner call to + T.Append (Value); + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + Gary Dismukes <dismukes@adacore.com> + Thomas Quinot <quinot@adacore.com> + + * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a + derived type with interface progenitors use the analyzed formal as the + parent of the actual, to create renamings for all the inherited + operations in Derive_Subprograms. + (Collect_Previous_Instances): new procedure within of + Load_Parent_Of_Generic, to instantiate all bodies in the compilation + unit being loaded, to ensure that the generation of global symbols is + consistent in different compilation modes. + (Is_Tagged_Ancestor): New function testing the ancestor relation that + takes progenitor types into account. + (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by + traversing over the primitives of the formal and actual types to locate + any abstract subprograms of the actual type that correspond to a + nonabstract subprogram of the formal type's ancestor type(s), and issue + an error if such is found. + (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation, + Instantiate_Package_Body, Instantiate_Subprogram_Body): + Remove bogus guard around calls to Inherit_Context. + (Reset_Entity): If the entity is the selector of a selected component + that denotes a named number, propagate constant-folding to the generic + template only if the named number is global to the generic unit. + (Set_Instance_Env): Only reset the compilation switches when compiling + a predefined or internal unit. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first + parameter to determine whether operation applies to the prefix. + (Complete_Object_Operation): If actual has an access type and + controlling formal is not an in_parameter, reject the actual if it is + an access_to_constant type. + (Try_Primitive_Operation): If the type of the prefix is a formal tagged + type, the candidate operations are found in the scope of declaration of + the type, because the type has no primitive subprograms. + (Analyze_Selected_Component): If prefix is class-wide, and root type is + a private extension, only examine visible components before trying to + analyze as a prefixed call. + Change Entity_List to Type_To_Use, for better readability. + (Has_Fixed_Op): Use base type when checking whether the type of an + operator has a user-defined multiplication/division + (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when + user-defined operators are available for fixed-point types. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New + formal At_Any_Place indicating, when True, that we want to test for + availability of the stream attribute at any place (as opposed to the + current visibility context only). + (Missing_Read_Write_Attributes): A stream attribute is missing for the + purpose of enforcing E.2.2(8) only if it is not available at any place. + Take into account the Ada2005 pragma Has_Preelaborable_Initialization + when checking the legality of an extension aggregate in a preelaborable + package. Treat the literal null as a valid default expression in a + component declaration for a type with preelaborable initialization. + A limited interface is a legal progenitor for the designated type of a + remote access to class-wide type. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + Ed Schonberg <schonberg@adacore.com> + + * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute + reference): Use correct entity as denoted entity for the selector of + the rewritten node. + (Find_Direct_Name): Add comment about Generate_Reference incorrectly + setting the Referenced_As_LHS flag for entities that are implicitly + dereferenced. + (Find_Type): If the type is an internally generated incomplete type, + mark the full view as referenced, to prevent spurious warnings. + (Find_Selected_Component, Has_Components): Handle properly non-limited + views that are themselves incomplete types. + Handle interfaces visible through limited-with clauses. + (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a + subprogram generic actual for which we have generated a renaming. + Warn when the renaming introduces a homonym of + the renamed entity, and the renamed entity is directly visible. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + Hristian Kirtchev <kirtchev@adacore.com> + + * sem_res.adb (Resolve_Allocator): Propagate any coextensions that + appear in the subtree to the current allocator if it is not a static + coextension. + (Resolve_Allocator): Perform cleanup if resolution has determined that + the allocator is not a coextension. + (Resolve): Skip an interpretation hidden by an abstract operator only + when the type of the interpretation matches that of the context. + (Resolve): When looping through all possible interpretations of a node, + do not consider those that are hidden by abstract operators. + (Resolve_Actuals): When verifying that an access to class-wide object + is an actual for a controlling formal, ignore anonymous access to + subprograms whose return type is an access to class_wide type. + (Resolve_Slice): If the prefix of the slice is a selected component + whose type depends on discriminants, build its actual subtype before + applying range checks on the bounds of the slice. + (Valid_Conversion): In an instance or inlined body, compare root types, + to prevent anomalies between private and public views. + (Resolve): Improve error message for ambiguous fixed multiplication + expressions that involve universal_fixed multiplying operations. + +2007-08-14 Javier Miranda <miranda@adacore.com> + Hristian Kirtchev <kirtchev@adacore.com> + + * exp_ch9.adb (Build_Protected_Entry): Propagate the original source + location to allow the correct generation of errors in case of + restrictions applied to the expanded code. + (Expand_Entry_Barrier): Remove all generated renamings for a barrier + function if the condition does not reference them. + (Expand_Entry_Body_Declarations): Mark the index constant as having a + valid value. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + + * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating + typecode parameters for a union (in a variant record), remove + extraneous layer of Any wrapping for member label. + (Expand_Receiving_Stubs_Bodies): For an RCI package body that has + elabration statements, register the package with the name server + at the beginning, not at the end, of the elaboration statements so + that they can create remote access to subprogram values that designate + remote subprograms from the package. + +2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> + + * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time + values to compute the number of seconds since the Unix Epoc in order to + account for Daylight Savings Time. Perform special processing for dates + that are earlier than the Unix Epoc to obtain a negative number. + +2007-08-14 Emmanuel Briot <briot@adacore.com> + + * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing + switches. + +2007-08-14 Eric Botcazou <ebotcazou@adacore.com> + + * gnatlink.adb (Gnatlink): Pass switches to the linker even if the + binder-generated file is not in Ada. + Pass -mrtp to the linker if it is GCC and --RTS=rtp has been + recorded in the ALI file. + Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded. + +2007-08-14 Vincent Celier <celier@adacore.com> + + * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value + (Output_Source): Do nothing if parameter is No_Sdep_Id + + * make.adb (Gnatmake): Do not rebuild an archive simply because a + shared library it imports has a later time stamp. + (Check): Resolve the symbolic links in the path name of the object + directory. + Check that the ALI file is in the correct object directory + Check if a file name does not correspond to the mapping of units + to file names. + (Display_Version): New procedure + (Initialize): Process switches --version and --help + Use type Path_Name_Type for path name + +2007-08-14 Paul Hilfinger <hilfinger@adacore.com> + + * impunit.adb: Re-organize System.Random_Numbers and + GNAT.Random_Numbers and add to builds. + + * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert* + + * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files. + + * a-assert.ads, a-assert.adb: New files. + +2007-08-14 Gary Dismukes <dismukes@adacore.com> + + * layout.adb (Layout_Type): In the case of access-to-subprogram types, + if AAMP_On_Target is True, then the size of the type encompasses two + addresses (a static link and a subprogram address), except in the case + of library-level access types. + +2007-08-14 Vincent Celier <celier@adacore.com> + + * output.ads, output.adb (Write_Eol): Remove trailing spaces before + writing the line. + (Write_Eol_Keep_Blanks): New procedure to write a line, including + possible trailing spaces. + (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line + +2007-08-14 Javier Miranda <miranda@adacore.com> + + * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with + null-excluding access types. + +2007-08-14 Javier Miranda <miranda@adacore.com> + + * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code + that is common to Analyze_Protected_Type and Analyze_Task_Type. In case + of private types add missing check on matching interfaces in the + partial and full declarations. + (Analyze_Protected_Type): Code cleanup. + (Analyze_Task_Type): Code cleanup. + +2007-08-14 Javier Miranda <miranda@adacore.com> + + * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a + generated interface thunk. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + + * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent + obsolescent warning on application of 'Class to an incomplete type. + + * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to + prevent obsolescent warning on application of 'Class to an incomplete + type. + +2007-08-14 Pascal Obry <obry@adacore.com> + + * s-fileio.adb (Is_Open): Add check for usability of the underlying + file stream. + +2007-08-14 Cyrille Comar <comar@adacore.com> + + * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent + since it is potentially used in cases implying double finalization of + the same object. + +2007-08-14 Jose Ruiz <ruiz@adacore.com> + + * s-tasini.adb (Get_Stack_Info): Move this function to + System.Soft_Links.Tasking because it is common to the full and the + restricted run times. + (Init_RTS): Do not set the Get_Stack_Info soft link because it is done + in SSL.Tasking.Init_Tasking_Soft_Links. + + * s-solita.adb (Get_Stack_Info): Function moved from + System.Tasking.Initialization because it is common to the full and the + restricted run times. + (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info. + +2007-08-14 Arnaud Charlet <charlet@adacore.com> + + * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb, + s-taskin.ads (Requeue_With_Abort): Rename field With_Abort. + (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort + parameter. + + * s-tassta.adb (Task_Wrapper): Increased value of the small overflow + guard to 12K. + +2007-08-14 Gary Dismukes <dismukes@adacore.com> + + * s-veboop.adb (SU): New named number initialized to + System.Storage_Unit. + (True_Val): The initialization expression is revised to use SU (= + Storage_Unit) rather than assuming 8 for the component size of an + unpacked Boolean array. + +2007-08-14 Tristan Gingold <gingold@adacore.com> + + * tracebak.c: Use tb-ivms.c on OpenVMS Itanium. + + * tb-ivms.c: New file. + + * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2 + +2007-08-14 Geert Bosch <bosch@adacore.com> + + * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads, + s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: + Add required linker pragmas for automatically linking with the gnalasup + linear algebra support library, and the systems math library. + Rename cdot to cdotu and zdot to zdotu. + Update header comment to describe purpose of package. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + + * exp_ch7.adb (Find_Final_List): For an anonymous access type that has + an explicitly specified Associated_Final_Chain, use that list. + (Expand_N_Package_Body): Build dispatch tables of library level tagged + types. + (Expand_N_Package_Declaration): Build dispatch tables of library level + tagged types. Minor code cleanup. + +2007-08-14 Vincent Celier <celier@adacore.com> + + * gnatchop.adb (Terminate_Program): Remove exception and use + Types.Terminate_Program instead. + + * osint.ads, osint.adb (Current_Exit_Status): New global variable + (Find_Program_Name): Added protection against empty name. + (OS_Exit_Through_Exception): New procedure + + * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body + (OS_Exit_Default): New procedure that contains the previous + implementation of procedure OS_Exit. + (Final_Value): Remove obsolete Interix stuff. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + + * g-socket.ads: Reorganize example code so that it also works on + Windows XP. + +2007-08-14 Tristan Gingold <gingold@adacore.com> + + * g-trasym.ads: AIX now supports symbolic backtraces. + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + + * lib-load.adb (From_Limited_With_Chain): Always scan the stack of + units being loaded to detect circularities. A circularity may be + present even if the current chain of pending units to load starts from + a limited_with_clause. + + * lib-load.ads: Change profile of Load_Unit to use a with_clause + rather than a boolean flag, in order to detect circularities in + with_clauses. + + * par-load.adb: Use current with_clause in calls to Load_Unit, rather + than propagating the From_Limited_With flag, in order to handle + properly circularities involving with_clauses. + +2007-08-14 Nicolas Setton <setton@adacore.com> + + * link.c (FreeBSD): Add "const" keyword where needed, to eliminate + warnings. + +2007-08-14 Arnaud Charlet <charlet@adacore.com> + + * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects + to build for libgnala. + libgnat: Add rules to build libgnala.a + (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from + target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5. + Add s-osinte-vxworks-kernel.adb to the target pairs of the + kernel run-time lib for VxWorks 6, which would provide a different + implementation for Task_Cont and Task_Stop than the VxWorks 5 version. + x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now + running ZCX by default. + Add g-sttsne-locking to LynxOS version. + Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead. + On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads. + + * system-darwin-x86.ads: New file. + + * Make-lang.in: Delete files before copying onto them, so if they are + read-only, the copy won't fail. + Update dependencies + +2007-08-14 Pascal Obry <obry@adacore.com> + + * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries + naming scheme. + +2007-08-14 Vincent Celier <celier@adacore.com> + + * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access + (Gcc): Initialize Gcc_Name at the first call + +2007-08-14 Ed Schonberg <schonberg@adacore.com> + + * sem_ch7.adb (Analyze_Package_Specification): Do not install private + with_clauses of the enclosing unit when analyzing the package + specification of a nested instance. + +2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> + + * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed. + (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines. + Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the + layout of N_Allocator. + +2007-08-14 Thomas Quinot <quinot@adacore.com> + + * rtsfind.adb (Check_RPC): Add PCS version check. + + * gnatvsn.ads, gnatvsn.adb: Add PCS version. + (Gnat_Free_Software): New function. + + * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns + the PCS_Version value from s-parint, used to check that it is consistent + with what exp_dist expects. + + * s-parint.ads (PCS_Version): New entity for checking consistency + between exp_dist and PCS. + + * gen-soccon.c: (SO_REUSEPORT): New constant. + +2007-08-14 Hristian Kirtchev <kirtchev@adacore.com> + + * a-calfor.adb (Image (Duration; Boolean)): Change type of local + variable Sub_Second to Duration in order to accomodate a larger range + of arithmetic operations. + +2007-08-14 Bob Duff <duff@adacore.com> + + * g-sttsne-locking.ads: Move comments from spec to body. + * g-sttsne-locking.adb: Move comments from spec to body. + * g-sttsne-vxworks.ads: Removed. + * g-sttsne-vxworks.adb: Removed. + 2007-08-11 Ian Lance Taylor <iant@google.com> * misc.c (gnat_get_alias_set): Change return type to