aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2007-08-14 11:19:30 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2007-08-14 11:19:30 +0200
commitab6328d08ef84c5b98c78a1e439f62d88edf4eb6 (patch)
tree31ae4158402501d8c8c55a85dc3774e6293f379a
parent38aa612c51df995df40324b0e9afcc0fc7a03bcf (diff)
downloadgcc-ab6328d08ef84c5b98c78a1e439f62d88edf4eb6.zip
gcc-ab6328d08ef84c5b98c78a1e439f62d88edf4eb6.tar.gz
gcc-ab6328d08ef84c5b98c78a1e439f62d88edf4eb6.tar.bz2
Resync
From-SVN: r127476
-rw-r--r--gcc/ada/ChangeLog1406
1 files changed, 1406 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index e27901c..4cd1c60d 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