OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2011] - Rev 749

Go to most recent revision | Compare with Previous | Blame | View Log

2011-12-23  Pascal Obry  <obry@adacore.com>

        * prj.ads (For_Every_Project_Imported): Add In_Aggregate_Lib
        parameter to generic formal procedure.
        * prj.adb (For_Every_Project_Imported): Update accordingly.
        (Recursive_Check): Likewise. Do not parse imported project for
        aggregate library. This is needed as the imported projects are
        there just to handle dependencies.
        (Look_For_Sources): Likewise.
        (Recursive_Add): Likewise.
        * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb:
        Add In_Aggregate_Lib parameter to routines used with
        For_Every_Project_Imported generic procedure.
        * prj-nmsc.adb (Tree_Processing_Data): Add In_Aggregate_Lib field.
        (Check): Move where it is used. Fix implementation
        to not check libraries that are inside aggregate libraries.
        (Recursive_Check): Add In_Aggregate_Lib parameter.

2011-12-23  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch7.adb (Analyze_Package_Body, Has_Referencer): A generic
        package is a referencer regardless of whether there is a
        subsequent subprogram with an Inline pragma.

2011-12-23  Geert Bosch  <bosch@adacore.com>

        * sem_ch3.adb (Can_Derive_From): Check matching Float_Rep on VMS.

2011-12-23  Pascal Obry  <obry@adacore.com>

        * gnatcmd.adb, prj.adb, prj-nmsc.adb: Minor reformatting.

2011-12-22  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Create the objects
        associated with exception handling unconditionally.
        (Build_Adjust_Statements): Create the objects associated with
        exception handling unconditionally.
        (Build_Components): Create the objects associated with exception
        handling unconditionally.
        (Build_Finalize_Statements): Create the objects associated with
        exception handling unconditionally.
        (Build_Initialize_Statements): Create the objects associated with
        exception handling unconditionally.
        (Build_Object_Declarations): Set the proper location of the data
        record when exception propagation is forbidden.

2011-12-22  Gary Dismukes  <dismukes@adacore.com>

        * a-tienio.adb (Put): Test validity of Item parameters before
        applying Image, and raise Constraint_Error for invalid values.

2011-12-22  Bob Duff  <duff@adacore.com>

        * a-stwima.ads (Initialize,Adjust,Finalize): Add overriding indicators.
        * a-ststio.ads (AFCB_Allocate,AFCB_Close,AFCB_Free,Read,Write): Add
        overriding indicators.

2011-12-22  Arnaud Charlet  <charlet@adacore.com>

        * s-osinte-hpux-dce.ads: Update header to GPLv3

2011-12-22  Ed Schonberg  <schonberg@adacore.com>

        * a-cohase.ads, a-cohase.adb: Update to latest RM version. Add
        aspect Constant_Reference to set type, and corresponding
        functions.
        * a-cihama.ads, a-cihama.adb: Update to latest RM version. Add
        function Reference to provide a proper element iterator construct
        over indefinite maps.

2011-12-22  Ed Schonberg  <schonberg@adacore.com>

        * exp_attr.adb (Expand_N_Attribute, case 'Access): Do not insert
        implicit conversion on prefix of Unrestricted_Access when prefix
        is an explicit dereference.

2011-12-22  Vincent Pucci  <pucci@adacore.com>

        * sem_dim.adb: Addressed all ??? comments. Replacement of warnings by
        errors using continuation marks.
        (Error_Dim_Msg_For_?): Renaming of Error_Dim_For_?.

2011-12-22  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch3.ads, sem_prag.adb: Minor code clean up.

2011-12-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * s-oscons-tmplt.c [__alpha__ && __osf__] (_XOPEN_SOURCE): Define.

2011-12-21  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.ads, sem_ch3.adb (Check_CPP_Type): New subprogram.
        (Process_Full_View): Invoke Check_CPP_Type if processing the
        full-view of a CPP type.
        * sem_prag.adb (Process_Import_Or_Interface): Add missing support
        for importing a CPP type that has an incomplete declaration. Move
        to new routine Check_CPP_Type the code that verifies that
        components of imported CPP types do not have default expressions.

2011-12-21  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Report_No_Sources): Remove argument Lang. Report
        no sources even for languages that are not allowed.
        (Add_Source): Get the source even when the language is not allowed.

2011-12-21  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb (Process_Formals): Add defensive code.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch7.adb, sem_ch13.adb (Analyze_Package_Specification): Build the
        invariant procedure of a type declaration that is a completion and has
        aspect specifications.
        (Build_Invariant_Procedure): If the procedure is built for a
        type declaration that is a completion, analyze body expliitly
        because all private declarations have been already analyzed.

2011-12-21  Claire Dross  <dross@adacore.com>

        * a-cfdlli.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
        a-cofove.adb: Minor reformating on formal containers

2011-12-21  Vincent Celier  <celier@adacore.com>

        * makeutl.adb (Mains.Complete_Mains.Do_Complete): Remove
        any main that is not in the list of restricted languages.
        (Insert_Project_Sources.Do_Insert): Only add sources of languages
        in the list of restricted languages.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Valid_Conversion): A type conversion is valid when
        the target type is an anonymous access type and the operand is a
        rewriting of an allocator. The conversion is typically inserted
        when the designated type is an interface.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch9.adb (Establish_Task_Master): If the enclosing block
        has no declarations, create new declarative list for it.

2011-12-21  Matthew Heaney  <heaney@adacore.com>

        * a-rbtgbk.adb (Generic_Conditional_Insert): Fixed incorrect comment.

2011-12-21  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
        ignore representation attributes in Alfa mode, since formal
        verification backend does not depend on actual physical
        representation, but code may still refer to attribute values.

2011-12-21  Yannick Moy  <moy@adacore.com>

        * par-ch13.adb (P_Aspect_Specifications): Recognize the cases
        where a comma between two aspects is missing, or erroneously
        replaced by a semicolon, issue an error and proceed with next
        aspect.
        * par.adb, sinfo.ads: Fix typos.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.adb (Mark_Coextensions): A coextension for an
        object that is part of the expression in a return statement,
        or part of the return object in an extended return statement,
        must be allocated dynamically.

2011-12-21  Matthew Heaney  <heaney@adacore.com>

        * a-crbtgk.adb (Generic_Conditional_Insert): Fixed incorrect comment.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iterator_Specification): If the name
        of an element iterator is not an entity name we introduce a
        local renaming declaration for it. To prevent spurious warnings
        on parameterless function calls that return a container, when
        expansion is disabled (either explicitly or because of a previous
        errors) the name must be marked as not coming from source.

2011-12-21  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Separate
        handling in CodePeer mode and only ignore Component_Size
        attribute.

2011-12-21  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb (Process_Formals): Set proper mechanism for
        formals whose types have conventions Ada_Pass_By_Copy or
        Ada_Pass_By_Reference.

2011-12-21  Arnaud Charlet  <charlet@adacore.com>

        * gnat1drv.adb (Gnat1Drv): Always delete old scil files in
        CodePeer mode.

2011-12-21  Robert Dewar  <dewar@adacore.com>

        * comperr.adb: Minor reformatting.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * aspects.ads: New table Base_Aspect, to indicate that an aspect
        is defined on a base type.
        * aspects.adb (Find_Aspect): If the aspect is a Base_Aspect,
        examine the representation items of the base type.

2011-12-21  Pascal Obry  <obry@adacore.com>

        * gnat_ugn.texi, prj.ads, prj-nmsc.adb, prj-attr.adb, projects.texi,
        snames.ads-tmpl: Use Encapsulated instead of Fully Standalone library.

2011-12-21  Pascal Obry  <obry@adacore.com>

        * adaint.c (__gnat_is_executable_file_attr) [_WIN32]: Add parentheses
        to kill warning.

2011-12-21  Arnaud Charlet  <charlet@adacore.com>

        * comperr.adb (Delete_SCIL_Files): Also delete .scilx files.
        Fix implementation for child packages and package specs.
        (Delete_SCIL_Files.Decode_Name_Buffer): New function.

2011-12-21  Robert Dewar  <dewar@adacore.com>

        * err_vars.ads, a-cdlili.adb, a-cfdlli.ads, prj.adb, prj-nmsc.adb,
        a-cbdlli.adb, a-cbdlli.ads, a-cfdlli.adb: Minor reformatting.

2011-12-21  Vincent Pucci  <pucci@adacore.com>

        * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads,
        s-llflex.ads: Fix header.

2011-12-21  Thomas Quinot  <quinot@adacore.com>

        * thread.c, s-oscons-tmplt.c, init.c (pthread_condattr_setclock): For
        AIX 5.2, define as a dummy weak symbol in init.c.
        (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC on all versions of AIX.

2011-12-21  Thomas Quinot  <quinot@adacore.com>

        * snames.ads-tmpl, sem_ch8.adb: Minor reformatting.
        * sem_prag.adb: Minor comment clarification.

2011-12-21  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Report_No_Sources): New argument Lang for the
        language name as a Name_Id. Do not report no sources if language
        is not allowed.
        (Add_Source): Do not add source if language is not allowed.
        * prj.adb (Add_Restricted_Language): New procedure
        (Is_Allowed_Language): New function
        * prj.ads (Add_Restricted_Language): New procedure
        (Is_Allowed_Language): New function

2011-12-21  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, sem_dim.adb, sem_dim.ads, sem_ch12.adb, prj-conf.adb:
        Minor reformatting.

2011-12-21  Claire Dross  <dross@adacore.com>

        * a-cfdlli.ads (Constant_Indexing, Default_Iterator,
        Iterator_Element): Added to type List.               
        (Not_No_Element, List_Iterator_Interfaces, Iterate,
        Constant_Reference_Type, Constant_Reference): New.
        * a-cfdlli.adb (type Iterator, Finalize, First, Last, Next,
        Previous, Iterate, Not_No_Element, Constant_Reference): New.

2011-12-21  Gary Dismukes  <dismukes@adacore.com>

        * gnat_ugn.texi: Minor reformatting.

2011-12-21  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): The cursor operation
        Has_Element is the formal of Iterator_Interfaces, and within
        the instantion of this package it is a renaming of some local
        function with an unrelated name. Retrieve the operation from
        the instance itself, not from the container package.

2011-12-21  Vincent Pucci  <pucci@adacore.com>

        * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String
        replaced by Expand_Put_Call_With_Dimension_Symbol
        * sem_ch12.adb (Analyze_Package_Instantiation): New check for
        System.Dim_Float_IO and System.Dim_Integer_IO instantiation.
        * sem_ch3.adb (Analyze_Declarations): Removed
        Remove_Dimension_In_Declaration call.
        * sem_dim.adb: Update comments. Redefine the
        representation of a Rational. Propagate all changes involving
        data structures and types throughout the pakage. Output the
        dimension aggregates for each error messages.
        ("/"): Rational constructor "/" removed for Whole operands.
        ("/"): New rational operation "/" for Rational operands.
        ("*"): Operation "*" between Rational and Int removed.
        ("abs"): New unary operator "abs" for Rational.
        (Analyze_Aspect_Dimension_System): Reorganized.
        (Analyze_Dimension_Identifier): Removed.
        (Copy_Dimensions): Removed.
        (Create_Rational_From_Expr): New Boolean parameter.
        (Dimensions_Msg_Of): New routine. Return
        a string with the dimensions of the parameter.
        (From_Dimension_To_String_Of_Symbols): Renaming of
        From_Dimension_To_String_Id.
        * sem_dim.ads: Update comments.
        (Is_Dim_IO_Package_Instantiation): New routine.
        (Remove_Dimension_In_Declaration): Removed.
        * sem_res.adb (Resolve_Op_Expon): Reorganized calls of
        Eval_Op_Expon_For_Dimensioned_Type and Eval_Op_Expon.
        * s-diflio.ads, s-diinio.ads: Update comments.

2011-12-21  Pascal Obry  <obry@adacore.com>

        * prj-attr.adb, snames.ads-tmpl: Add Library_Standalone,
        Library_Fully_Standalone_Options and
        Library_Fully_Standalone_Supported attributes.
        * prj-nmsc.adb (Check_Library): Update check to take into
        account fully standalone libraries. Such shared libraries can
        only depend on static libraries.
        (Check_Stand_Alone_Library): Add support for fully standalone libraries.
        (Process_Project_Level_Simple_Attributes): Store value for
        configuration attribute Library_Fully_Standalone_Supported.
        * prj.ads, makeutl.adb (Standalone): New enumeration type.
        (Project_Data): Standalone_Library now of type Standlone.
        (Project_Configuration): Add Lib_Fully_Standalone_Supported
        field.
        (Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported
        field.
        * clean.adb (Clean_Project): Adjust to new type for Standalone.
        * make.adb (Library_Phase): Adjust to new type for Standalone.
        (Gnatmake): Likewise.
        * mlib-prj.adb (Build_Library): Adjust to new type for
        Standalone.

2011-12-21  Thomas Quinot  <quinot@adacore.com>

        * gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then
        Set_Standard_Output just before producing normal (non-diagnostic)
        output.
        * gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization
        (and again after parsing project files).

2011-12-21  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Do_Autoconf): When the object directory does
        not exist, create auto.cgpr in the directory where temporary
        files are created.

2011-12-20  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Insert_Freeze_Node_For_Instance):  Further
        refinements on the placement of a freeze node for a package
        instantiation, when the generic appears within a previous
        instantiation in the same unit.If the current instance is within
        the one that contains the generic, the freeze node for the
        current one must appear in the current declarative part. Ditto
        if the current instance is within another package instance. In
        these cases the freeze node of the previous instance is is not
        relevant. New predicate Enclosing_Body simplifies the process.
        (Freeze_Subprogram_Body): Rename Enclosing_Body to
        Enclosing_Package_Body, to prevent confusion with subprogram of
        same name elsewhere.
        (Install_Body): Recognize enclosing subprogram bodies to determine
        whether freeze_node belongs in current declarative list.

2011-12-20  Robert Dewar  <dewar@adacore.com>

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Allow
        attribute definition clause for renaming if generated internally
        and generate duplicate clause to apply to renamed object.
        (Rep_Item_Too_Late): Only diagnose source level entities
        * prj-nmsc.adb: Minor reformatting.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-12-20  Bob Duff  <duff@adacore.com>

        * opt.ads (List_Inherited_Aspects): Default to False
        (i.e. -gnatw.L is the default).
        * usage.adb: Document new default for -gnatw.L.
        * gnat_ugn.texi: Document -gnatw.l and -gnatw.L switches.
        * warnsw.adb (Set_Warning_Switch): Do not include
        List_Inherited_Aspects in -gnatwa.

2011-12-20  Ed Schonberg  <schonberg@adacore.com>

        * checks.adb (Apply_Type_Conversion_Checks): For a discrete type
        with predicates, indicate unconditionally that a range check
        is needed.
        * exp_ch4.adb (Expand_N_In): When the membership test is rewritten
        to incorporate a call to a predicate function, analyze expression
        with checks suppressed, to prevent infinite recursion.

2011-12-20  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch11.adb (Find_Local_Handler): Guard the
        search over individual exception choices in case the list of
        handlers contains other (possibly illegal) constructs.

2011-12-20  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch8.adb (Find_Type): Test taggedness
        of the Available_Type when checking for an illegal use of an
        incomplete type, when the incomplete view is a limited view of
        a type. Remove redundant Is_Tagged test.

2011-12-20  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb: Add with and use clause for Aspects.
        (Is_Finalizable_Transient): Objects which denote Ada containers
        in the context of iterators are not considered transients. Such
        object must live for as long as the loop is around.
        (Is_Iterated_Container): New routine.

2011-12-20  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_imgv.adb (Expand_Width_Attribute): Add a
        type conversion from the enumeration subtype to its base subtype.

2011-12-20  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch4.adb (Operator_Check): Update the call to
        Is_Dimensioned_Type.
        * sem_dim.adb: Remove with and use clause for Namet.Sp. Reorganize
        all type declarations and datastructures involved. Propagate
        all changes involving data structures and types throughout
        the pakage. Alphabetize all subprograms. Add ??? comments.
        (AD_Hash): Removed.
        (Analyze_Aspect_Dimension): Rewritten. This
        routine now does all its checks in one pass rather than
        two. Refactor code. The error message are now in a more GNAT-ish style.
        (Create_Rational_From_Expr): This is now a function.
        (Get_Dimensions): Removed.
        (Get_Dimensions_String_Id): Removed.
        (Dimensions_Of): New rouitne.
        (Exists): New routines.
        (Is_Invalid): New routine.
        (Permits_Dimensions): Removed.
        (Present): Removed.
        (Set_Symbol): New routine.
        (System_Of): New routine.
        * sem_dim.ads: Rewrite the top level description of the
        package. Alphabetize subprograms. Add various comments on
        subprogram usage. Add ??? comments.
        (Is_Dimensioned_Type):
        Renamed to Has_Dimension_System.
        * sem_res.adb (Resolve_Op_Expon): Update the call to Is_Dimensioned_Type

2011-12-20  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch13.adb (Check_Indexing_Functions): The return type of an
        indexing function can be the default element type, and does not
        need to be a reference type.
        * sem_ch4.adb (Try_Container_Indexing): Ditto.

2011-12-20  Robert Dewar  <dewar@adacore.com>

        * a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting.

2011-12-20  Bob Duff  <duff@adacore.com>

        * s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced.

2011-12-20  Vincent Pucci  <pucci@adacore.com>

        * impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT
        Defined Additions to System.
        * Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added.
        * s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files.

2011-12-20  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when
        within an instance, even if the homonym is marked Is_Hidden at
        this point.

2011-12-20  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch5.adb, s-diinio.adb, s-diinio.ads, sem_dim.adb,
        sem_dim.ads, sem_res.adb, s-stposu.adb, s-stposu.ads, sem_ch4.adb,
        s-diflio.adb, s-diflio.ads, exp_disp.adb, s-llflex.ads: Minor
        reformatting.
        * aspects.ads: Dimension[_Aspects] are GNAT defined.

2011-12-20  Robert Dewar  <dewar@adacore.com>

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check
        renaming case.

2011-12-20  Thomas Quinot  <quinot@adacore.com>

        * sem_cat.adb, sem_ch10.adb (Analyze_With_Clause): For a WITH clause on
        a child unit that is an illegal instantiation, mark the WITH clause in
        error.
        (Install_Siblings, Validate_Categorization_Dependency): Guard
        against WITH clause marked as in error.

2011-12-20  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_res.adb (Resolve_Allocator): Warning on allocation
        of tasks on a subpool and rewrite the allocator into a raise
        Program_Error statement.
        * s-stposu.ads, s-stposu.adb: Code reformatting.
        (Create_Subpool): Remove formal parameter Storage_Size.
        (Default_Subpool_For_Pool): Add the default implementation of this
        routine.
        (Set_Pool_Of_Subpool): Rename formal parameter Pool to To. Update
        all the uses of the parameter.

2011-12-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * gcc-interface/Makefile.in (%86 linux%):
        (LIBGNAT_TARGET_PAIRS_32): Split off from LIBGNAT_TARGET_PAIRS.
        (LIBGNAT_TARGET_PAIRS_64): New.
        (LIBGNAT_TARGET_PAIRS): Add either depending on multilib.

2011-12-18  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_param): Add comment about double
        reference and DECL_POINTS_TO_READONLY_P.
        * gcc-interface/trans.c (Identifier_to_gnu) <by_ref>: Always set the
        TREE_READONLY flag on the first dereference of a double dereference.

2011-12-15  Arnaud Charlet  <charlet@adacore.com>

        * a-numaux-vms.ads, s-asthan-vms-ia64.adb, s-auxdec-vms-ia64.adb,
        s-memory-vms_64.adb, s-memory-vms_64.ads, s-osinte-vms-ia64.adb,
        s-osinte-vms-ia64.ads, s-tasdeb-vms.adb: New files.

2011-12-15  Vincent Pucci  <pucci@adacore.com>

        * aspects.adb, aspects.ads Aspect_Dimension and
        Aspect_Dimension_System added
        * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String
        case added
        * gcc-interface/Make-lang.in: s-llflex, sem_dim added.
        * impunit.adb :s-diflio and s-diinio defined as GNAT Defined
        Additions to System.
        * Makefile.rtl: s-diflio, s-diinio and s-llflex added
        * par-prag.adb, sem_prag.adb: Pragma_Dimension removed
        * rtsfind.ads: Expon_LLF added
        * sem_aggr.adb (Resolve_Aggregate): handles aggregate for
        Aspect_Dimension case
        * sem_attr.adb (Resolve_Attribute): analyze dimension for
        attribute
        * sem_ch10.adb (Analyze_With_Clause): Avoid the warning messages
        due to the use of a GNAT library for Dimension packages
        * sem_ch13.adb (Analyze_Aspect_Specifications):
        Aspect_Dimension and Aspect_Dimension_System cases added
        (Check_Aspect_At_Freeze_Point): Aspect_Dimension and
        Aspect_Dimension_System cases added
        * sem_ch2.adb (Analyze_Identifier): analyze dimension for
        identifier
        * sem_ch3.adb (Analyze_Component_Declaration): analyze dimension
        for component declaration (Analyze_Object_Declaration): analyze
        dimension for object declaration (Analyze_Subtype_Declaration):
        analyze dimension for subtype declaration
        * sem_ch4.adb (Operator_Check): checks exponent is a rational
        for dimensioned operand for a N_Op_Expon
        * sem_ch5.adb (Analyze_Assignment): analyze dimension for
        assignment (Analyze_Statements): removal of dimensions in all
        statements
        * sem_ch6.adb (Analyze_Return_Statement): analyze dimension for
        return statement
        * sem_ch8.adb (Analyze_Object_Renaming): analyze dimension for
        object renaming
        * sem_dim.adb, sem_dim.ads (Analyze_Aspect_Dimension):
        analyze the expression for aspect dimension and store the
        values in a Htable.
        (Analyze_Aspect_Dimension_System): analyze
        the expression for aspect dimension system and store the new
        system in a Table.
        (Analyze_Dimension): propagates dimension
        (Expand_Put_Call_With_Dimension_String): add the dimension
        string as a suffix of the numeric value in the output
        (Has_Dimension): return True if the node has a dimension
        (Remove_Dimension_In_Declaration): removal of dimension in the
        expression of the declaration.
        (Remove_Dimension_In_Statement): removal of dimension in statement
        * sem_res.adb (Resolve): analyze dimension if the node
        has already been analyzed.
        (Resolve_Arithmetic_Op): analyze
        dimension for arithmetic op.
        (Resolve_Call): analyze dimension for function call.
        (Resolve_Comparison_Op): analyze dimension for comparison op.
        (Resolve_Equality_Op): analyze dimension for equality op.
        (Resolve_Indexed_Component): analyze dimension for indexed component.
        (Resolve_Op_Expon): analyze dimension for op expon.
        (Resolve_Selected_Component): analyze dimension
        for selected component.
        (Resolve_Slice): analyze dimension for slice.
        (Resolve_Unary_Op): analyze dimension for unary op
        (Resolve_Type_Conversion): analyze dimension for type conversion
        (Resolve_Unchecked_Type_Conversion): analyze dimension for
        unchecked type conversion
        * snames.ads-tmpl Name_Dimension, Name_Dimension_System,
        Name_Dim_Float_IO, Name_Dim_Integer_IO,
        Name_Generic_Elementary_Functions, Name_Sqrt added.
        Pragma_Dimension removed
        * s-diflio.adb, s-diflio.ads New GNAT library generic package
        for dimensioned float type IO
        * s-diinio.adb, s-diinio.ads New GNAT library generic package
        for dimensioned integer type IO
        * s-llflex.ads (Expon_LLF): exponentiation routine for long long
        floats operand and exponent

2011-12-15  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb: Minor comment addition.

2011-12-15  Bob Duff  <duff@adacore.com>

        * s-tasren.adb (Task_Count): Do not call Yield; E'Count is not a
        task dispatching point.
        * s-taprop-mingw.adb (Yield): Do not yield if Do_Yield is False.

2011-12-15  Robert Dewar  <dewar@adacore.com>

        * sigtramp-ppcvxw.c, sigtramp.h: Fix header.

2011-12-15  Javier Miranda  <miranda@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment
        applied to a class-wide type under VM targets generate code which
        invokes the function Get_Alignment to retrieve the value of the
        alignment from the TSD.
        * rtsfind.ads (RE_Get_Alignment): New entity.

2011-12-15  Robert Dewar  <dewar@adacore.com>

        * g-comlin.adb: Fix header.

2011-12-15  Tristan Gingold  <gingold@adacore.com>

        * gnatls.adb: Fix typo.

2011-12-15  Ed Falis  <falis@adacore.com>

        * s-tpopsp-vxworks.adb: Update comment.

2011-12-15  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Resolve_Array_Aggregate, Resolve_Aggr_Expr); If
        the component type has predicates, generate corresponding check.
        (Resolve_Record_Aggregate, Resolve_Aggr_Expr): Ditto.

2011-12-13  Cesar Strauss  <cestrauss@gmail.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/49084
        * types.h (Byte): Change typedef to 'unsigned char'.
        * atree.h (struct Flag_Word): Use Byte for 'convention' field.

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * s-taprop-mingw.adb: Minor reformatting.

2011-12-12  Nicolas Roche  <roche@adacore.com>

        * gcc-interface/Make-lang.in: Update dependencies.
        Add gnattools4 target when building tools in canadian mode

2011-12-12  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Make_VM_TSD): Complete previous patch.

2011-12-12  Bob Duff  <duff@adacore.com>

        * s-tpobop.adb: Use named notation.
        * g-bytswa.ads, s-taprop.ads: Minor comment fix.

2011-12-12  Arnaud Charlet  <charlet@adacore.com>

        * make.adb: Minor comment update.

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * freeze.adb, s-taprop-mingw.adb, exp_disp.adb, sem_ch13.adb: Minor
        reformatting.

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb, gnatls.adb: Minor reformatting.

2011-12-12  Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb (Freeze_Entity): If a type declared in a generic
        context has predicates, generate a freeze node for it.
        * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): If expression
        has not been analyzed yet, entity has not been frozen, so analyze
        it now.

2011-12-12  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Make_VM_TSD): Generate code to store the value of
        'alignment in the TSD.

2011-12-12  Bob Duff  <duff@adacore.com>

        * s-taprop-mingw.adb (Yield): Do not delay 1 millisecond in Annex D
        mode.

2011-12-12  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Expand_N_Allocator): Update the master of an
        anonymous access-to-controlled type to utilize the heterogeneous
        master associated with the current unit.

2011-12-12  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Expression_Function): If the function
        is not a completion, pre-analyze the expression now to prevent
        spurious visibility on later entities. The body is inserted at
        the end of the current declaration list or package to prevent
        early freezing, but the visibility is established at the point
        of definition.

2011-12-12  Bob Duff  <duff@adacore.com>

        * sem.adb, sem.ads: Add debugging routines.

2011-12-12  Tristan Gingold  <gingold@adacore.com>

        * gnatls.adb: (gnatls): Also add the objects dir in search list.

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * exp_atag.adb, exp_atag.ads, exp_util.adb, exp_attr.adb,
        sem_ch13.adb: Minor reformatting.

2011-12-12  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch7.adb (Uninstall_Declarations): Don't
        apply check for incomplete types used as a result type for an
        access-to-function type when compiling for Ada 2012 or later.
        * sem_ch6.adb (Analyze_Subprogram_Declaration):
        Specialize error message for interface subprograms that are
        not declared abstract nor null (functions can't be declared as
        null). Also, remove "(Ada 2005)" from message.

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb (GNAT_Pragma): Check comes from source.

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * gnatls.adb: Minor reformatting.

2011-12-12  Javier Miranda  <miranda@adacore.com>

        * a-tags.ads (Alignment): New TSD field.
        (Max_Predef_Prims): Value lowered to 15 (or 9 in case of
        configurable runtime) Update documentation of predefined
        primitives since Alignment has been removed.
        * exp_disp.ads Update documentation of slots of dispatching
        primitives.
        * exp_disp.adb (Default_Prim_Op_Position): Update slot
        values since alignment is no longer a predefined primitive.
        (Is_Predefined_Dispatch_Operation): Remove _alignment.
        (Is_Predefined_Internal_Operation): Remove _alignment.
        (Make_DT): Update static test on the value stored in a-tags.ads
        for Max_Predef_Prims; store the value of 'alignment in the TSD.
        * exp_atag.ads, exp_atag.adb (Build_Get_Alignment): New subprogram
        that retrieves the alignment from the TSD
        * exp_util.adb (Build_Allocated_Deallocate_Proc): For deallocation
        of class-wide types obtain the value of alignment from the TSD.
        * exp_attr.adb (Expand_N_Attribute_Reference): For 'alignment
        applied to a class-wide type invoke Build_Get_Alignment to
        generate code which retrieves the value of the alignment from
        the TSD.
        * rtsfind.ads (RE_Alignment): New Ada.Tags entity
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): For tagged
        types if the value of the alignment is bigger than the Maximum
        alignment then set the value of the alignment to the Maximum
        alignment and report a warning.
        * exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate
        spec of _alignment.
        (Predefined_Primitive_Bodies): Do not generate body of _alignment.

2011-12-12  Gary Dismukes  <dismukes@adacore.com>

        * freeze.adb (Freeze_Expression): Allow freezing of static
        scalar subtypes that are prefixes of an attribute, even if not
        yet marked static. Such attributes will get marked as static
        later in Eval_Attribute (as called from Resolve_Attribute).
        * sem_attr.adb (Eval_Attribute): Remove wrong code that does an
        early return for attribute prefixes that are unfrozen source-level
        types. This code was incorrectly bypassing folding of unfrozen
        static subtype attributes in default expressions (the executable
        example in the now-deleted comment was in fact illegal).

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * a-coinve.adb, sem_res.adb, prj-nmsc.adb, a-cobove.adb, a-convec.adb,
        gnatls.adb, sem_ch13.adb, prj-env.adb, prj-env.ads: Minor reformatting.

2011-12-12  Tristan Gingold  <gingold@adacore.com>

        * gsocket.h: Adjust previous patch.

2011-12-12  Thomas Quinot  <quinot@adacore.com>

        * exp_disp.adb: Minor reformatting.

2011-12-12  Tristan Gingold  <gingold@adacore.com>

        * gnatls.adb (Search_RTS): New procedure.
        (Scan_Ls_Arg): Move code that search the RTS.
        (Gnatls): search the RTS later.
        * prj-env.ads, prj-env.adb (Get_Runtime_Path): New function.

2011-12-12  Ed Falis  <falis@adacore.com>

        * sysdep.c: Fix treatment of VxWorks task options so that run-times
        built with __SPE__ get option VX_SPE_TASK while others get VX_FP_TASK.

2011-12-12  Bob Duff  <duff@adacore.com>

        * sem_type.adb, sem_type.ads, sem_ch4.adb, treepr.adb, treepr.ads:
        Minor cleanup and fiddling with debug printouts.

2011-12-12  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Get_Directories): For a non extending project,
        always get a declared object and/or exec directory if it already
        exists, even when there are no sources, but do not create them.

2011-12-12  Bob Duff  <duff@adacore.com>

        * sem_res.adb (Resolve): Deal with the case where an abstract
        operator is called with operands of type universal_integer.

2011-12-12  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb: Minor fix to dominance marker referencing WHILE
        decision.

2011-12-12  Tristan Gingold  <gingold@adacore.com>

        * mlib-tgt-specific-xi.adb: (Get_Target_Prefix): Simplify code.

2011-12-12  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb: Adjust dominant marker for branches of CASE
        statements.

2011-12-12  Thomas Quinot  <quinot@adacore.com>

        * gsocket.h, s-oscons-tmplt.c: Ensure we do not include any system
        header file prior to redefining FD_SETSIZE.

2011-12-12  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In
        a generic context the aspect expressions may not have been
        preanalyzed if there was no previous freeze point, so the
        expressions must be preanalyzed now, and there is no conformance
        to check for visibility changes.

2011-12-12  Matthew Heaney  <heaney@adacore.com>

        * a-convec.adb, a-coinve.adb, a-cobove.adb (Iterator): Use
        subtype Index_Type'Base for Index component (Finalize): Remove
        unnecessary access check (First, Last): Cursor return value
        depends on iterator index value (Iterate): Use start position as
        iterator index value (Next, Previous): Forward to corresponding
        cursor-based operation.
        * a-cborma.adb (Iterate): Properly initialize iterator object (with 0
        as node index).

2011-12-12  Robert Dewar  <dewar@adacore.com>

        * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting.

2011-12-12  Steve Baird  <baird@adacore.com>

        * sem_ch3.adb (Check_Completion): Improve a comment.

2011-12-12  Tristan Gingold  <gingold@adacore.com>

        * cstand.adb: Minor comment fix.

2011-12-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC
        flag of elements to compute that of the constructor.

2011-12-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier
        on references built for parameters which aren't specifically by-ref.

2011-12-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If there is an
        alignment set on a renaming, assert that the renamed object is aligned
        enough as to make it possible to honor it.

2011-12-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (gigi): Initialize the linemap earlier.

2011-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>

        * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS [windows targets]):
        Correctly detect cygwin, which no longer has the '32' suffix, and use
        appropriate implementations of the sockets and memory packages.
        * sysdep.c (WIN_SETMODE): New define to choose the correct spelling of
        setmode/_setmode for MinGW and Cygwin, respectively.
        (__gnat_set_binary_mode [windows targets]): Use the above, and enable
        the windows version for Cygwin as well as MinGW.
        (__gnat_set_text_mode [windows targets]): Likewise.
        (__gnat_ttyname [windows targets]): Provide a Cygwin implementation
        in addition to the MinGW version.
        (__gnat_is_windows_xp): Make available to Cygwin as well as MinGW.
        (__gnat_get_stack_bounds): Likewise.

2011-12-05  Bob Duff  <duff@adacore.com>

        * sem_ch4.adb: Minor comment fix.

2011-12-05  Robert Dewar  <dewar@adacore.com>

        * gnat_ugn.texi: Add documentation for -gnatw.e.

2011-12-05  Bob Duff  <duff@adacore.com>

        * treepr.adb (pn): Print something useful for
        Elmt_Ids. Add Write_Eol to 'when others' case, so the output
        will be seen immediately in gdb.

2011-12-05  Ed Schonberg  <schonberg@adacore.com>

        * lib-writ.adb (Output_Main_Program_Line): A generic subprogram
        is never a main program.

2011-12-05  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb: Various minor adjustments to dominance markers
        generation.

2011-12-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Expression_Function): If the function is
        a completion, generate a body reference for its defining entity,
        before rewriting the node as a body.
        * sem_util.adb (Defining_Entity): Add entry for expression
        function.

2011-12-05  Bob Duff  <duff@adacore.com>

        * sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias
        to the Comes_From_Source check, to deal properly with the case
        of indirect inheritance of "=".

2011-12-05  Thomas Quinot  <quinot@adacore.com>

        PR ada/51307
        * s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal,
        not a macro.

2011-12-05  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance
        information in SCOs.

2011-12-02  Eric Botcazou  <ebotcazou@adacore.com>
            Thomas Quinot <quinot@adacore.com>

        * gcc-interface/Makefile.in (INCLUDES): Remove $(srcdir)/config.
        (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) except for VxWorks.
        Add thread.c to LIBGNAT_SRCS so that a symlink is created in ada/rts,
        which allows the file to be installed in adainclude.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-12-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Constrain_Access): Undo previous
        patch for this routine. Required since the RM rule 3.7.1(7/3)
        applies to all access types.

2011-12-02  Bob Duff  <duff@adacore.com>

        * sem_ch6.adb: Minor comment fix.

2011-12-02  Joel Sherrill <joel.sherrill@oarcorp.com>

        * s-tpopsp-rtems.adb: Use ATCB_Key rather than RTEMS_Ada_Self variable
        for consistency with other ports.
        * s-osinte-rtems.adb: Add body for dummy implementation of
        pthread_rwlockattr_setkind_np().
        * s-osinte-rtems.ads: Add missing clock and rwlock bindings.
        * terminals.c: Add __rtems__ conditionals to account for differences
        in termios implementation.

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_attr.adb, a-comutr.adb, a-cbmutr.adb,
        a-cbmutr.ads: Minor reformatting.

2011-12-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_dbug.adb: Comment reformatting.
        (Get_External_Name): Use Reset_Buffers to reset the contents of
        Name_Buffer and Homonym_Numbers.
        (Qualify_All_Entity_Names): Reset the contents of Name_Buffer and
        Homonym_Numbers before creating a new qualified name for a particular
        entity.
        (Reset_Buffers): New routine.

2011-12-02  Matthew Heaney  <heaney@adacore.com>

        * a-cbmutr.ads (No_Node): Moved declaration from body to spec
        * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Derives
        from Root_Iterator.
        (Child_Iterator): Derives from Root_Iterator.
        (Finalize): Implemented as an override operation for Root_Iterator.
        (First): Return value depends on Subtree component.
        (Last): Component was renamed from Parent to Subtree.
        (Next): Checks parameter value, and uses simplified loop.
        (Iterate): Forwards to Iterate_Subtree.
        (Iterate_Children): Component was renamed from Parent to Subtree.
        (Iterate_Subtree): Checks parameter value

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * usage.adb: Add lines for -gnatw.n and -gnatw.N
        (atomic sync info msgs).

2011-12-02  Steve Baird  <baird@adacore.com>

        * sem_ch3.adb (Check_Completion): An Ada 2012
        generic formal type doesn't require a completion.

2011-12-02  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_util.adb (Set_Debug_Info_Needed): Also set the flag on the
        packed array type if it is to be set on the array type used to
        represent it.

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Eliminate confusing use of type name.

2011-12-02  Thomas Quinot  <quinot@adacore.com>

        * sem_ch10.adb (Analyze_Compilation_Unit): For a library subprogram
        body that acts as spec, do not create a shallow copy of the context
        clause for the synthetized spec (instead, use the same list as
        in the body).

2011-12-02  Bob Duff  <duff@adacore.com>

        * gnat_ugn.texi: Clarify usage of -p binder switch.

2011-12-02  Javier Miranda  <miranda@adacore.com>

        * sem_util.ads, sem_util.adb, sem_aux.ads, sem_aux.adb
        (Effectively_Has_Constrained_Partial_View): Moved to sem_aux
        (In_Generic_Body): Moved to sem_aux.
        (Unit_Declaration_Node): Moved to sem_aux.
        * einfo.ads (Effectively_Has_Constrained_Partial_View): Complete
        documentation.
        * exp_attr.adb, live.adb, sem_ch10.adb, checks.adb, sem.adb,
        rtsfind.adb, sem_attr.adb, sem_elab.adb, exp_ch4.adb, sem_ch4.adb,
        exp_ch13.adb: Add with-clause on Sem_Aux.

2011-12-02  Yannick Moy  <moy@adacore.com>

        * sem_util.adb (Unique_Name): Reach through Unique_Entity to
        get the name of the entity.
        (Unique_Entity): Correct case for subprogram stubs.

2011-12-02  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Check_Initialization): Do not emit warning on
        initialization of limited type object in Alfa mode.

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * sinfo.ads: Minor reformatting.
        * gnat_ugn.texi: Fix confusion in use of term "type name".

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb: Minor change in error message.

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch9.adb, prj-part.adb, vms_data.ads, sem_ch8.adb: Minor
        reformatting.

2011-12-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Constrain_Access): Enable on Ada 2005 mode the
        static check of the rule of general access types whose designated
        type has discriminants.
        * sem_util.ads, sem_util.adb
        (Effectively_Has_Constrained_Partial_View): New subprogram.
        (In_Generic_Body): New subprogram.
        * einfo.ads (Has_Constrained_Partial_View): Adding documentation.
        * sem_prag.adb (Inside_Generic_Body): Removed. Replaced by new
        subprogram In_Generic_Body.
        * exp_attr.adb, checks.adb, sem_attr.adb, exp_ch4.adb,
        sem_ch4.adb: In addition, this patch replaces the occurrences of
        Has_Constrained_Partial_View by
        Effectively_Has_Constrained_Partial_View.

2011-12-02  Matthew Heaney  <heaney@adacore.com>

        * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Iterator): Rename
        Position component.
        (Finalize): Remove unnecessary access check.
        (First): Forward to First_Child.
        (Last): Forward to Last_Child.
        (Iterate): Check preconditions for parent node parameter.
        (Next): Forward to Next_Sibling.
        (Previous): Forward to Previous_Sibling.

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * a-coinve.adb, a-coorma.adb, freeze.adb, a-coorse.adb, a-comutr.adb,
        a-coormu.adb, a-convec.adb: Minor reformatting.

2011-12-02  Matthew Heaney  <heaney@adacore.com>

        * a-coormu.ads, a-ciormu.ads: Declare iterator factory function.
        * a-ciormu.adb, a-ciormu.adb (Iterator): Declare concrete
        Iterator type.
        (Finalize): Decrement busy counter.
        (First, Last): Cursor return value depends on iterator node value.
        (Iterate): Use start position as iterator node value.
        (Next, Previous): Forward to corresponding cursor-based operation.

2011-12-02  Robert Dewar  <dewar@adacore.com>

        * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb,
        a-cbhase.adb, a-cdlili.adb, a-cihama.adb, a-ciorse.adb, a-cidlli.adb,
        a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-cborse.adb,
        a-ciorma.adb, a-cobove.adb: Minor reformatting.

2011-12-01  Jakub Jelinek  <jakub@redhat.com>

        PR bootstrap/51201
        * gcc-interface/Make-lang.in: Initialize RTS_DIR with = instead of :=.

2011-11-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * s-taprop-tru64.adb (Create_Task): Use Unrestricted_Access.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * thread.c, s-oscons-tmplt.c: Generate __gnat_pthread_condattr_setup
        only on platforms where this is required, as determined by
        s-oscons.h.

2011-11-23  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch9.adb: No check on entry index if error on index.

2011-11-23  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch6.adb (Analyze_Return_Statement): Improve error messages for
        return statements nested inside an extended_return_statement.
        * gcc-interface/Make-lang.in: Update dependencies.
        * gcc-interface/Makefile.in (MISCLIB): Add -lutil for BSD targets.

2011-11-23  Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb (Freeze_All_Ent): An incomplete type is not
        frozen by a subprogram body that does not come from source.

2011-11-23  Pascal Obry  <obry@adacore.com>

        * s-oscons-tmplt.c: Add PTY_Library constant. It contains
        the library for pseudo terminal support.
        * g-exptty.ads: Add pseudo-terminal library into a Linker_Options
        pragma.

2011-11-23  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch9.adb: No check on entry family index if generic.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * sem_ch9.adb, s-taprop.ads, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
        s-taprop-posix.adb, s-taprop-rtx.adb, s-taprop-solaris.adb,
        s-taprop-tru64.adb, s-taprop-vxworks.adb: Move dependency on
        System.OS_Constants from shared spec of
        System.Tasking.Primitive_Operations to the specific body variants
        that really require this dependency.

2011-11-23  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Subprogram_Renaming_Declaration):
        If the declaration has aspects, analyze them so they can be
        properly rejected.

2011-11-23  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-comutr.adb, a-coorma.adb, a-coorse.adb, a-convec.adb, a-cihase.adb,
        a-cimutr.adb, a-coinve.adb, a-ciorma.adb, a-ciorse.adb, a-cobove.adb,
        a-cohama.adb, a-cihama.adb, a-cidlli.adb, a-cdlili.adb, a-cbhama.adb,
        a-cbhase.adb, a-cbmutr.adb, a-cborma.adb, a-cborse.adb, a-cbdlli.adb:
        Add with and use clause for Ada.Finalization. Type
        Iterator and Child_Iterator are now derived from Limited_Controlled.
        (Finalize): New routine.
        (Iterate): Add a renaming of counter Busy and
        increment it. Update the return aggregate.
        (Iterate_Children): Add a renaming of
        counter Busy and increment it. Update the return aggregate.
        (Iterate_Subtree): Add a renaming of counter Busy and increment
        it. Update the return aggregate.
        * a-cdlili.ads, a-cidlli.ads: Type List_Access is now a general access
        type.
        * a-cihama.ads: Type Map_Access is now a general access type.
        * a-comutr.ads, a-cimutr.ads: Use type Natural for the two locks
        associated with the tree.
        * a-cohama.ads: Type Map_Access is now a general access type.
        * a-coinve.ads, a-convec.ads: Type Vector_Access is now a general
        access type.
        * exp_ch5.adb (Expand_Iterator_Loop): Do not create a block
        to wrap the loop as this is done at an earlier step, during
        analysis. The declarations of the iterator and the cursor use
        the usual Insert_Action mechanism when added into the tree.
        * sem_ch5.adb (Analyze_Loop_Statement): Remove local constant
        Loop_Statement and replace all respective uses by N. Add local
        constant Loc. Preanalyze the loop iterator to discover whether
        it is a container iterator and if it is, wrap the loop in a
        block. This ensures that any controlled temporaries produced
        by the iteration scheme share the same lifetime of the loop.
        (Is_Container_Iterator): New routine.
        (Is_Wrapped_In_Block): New routine.
        (Pre_Analyze_Range): Move spec and body to the library level.

2011-11-23  Sergey Rybin  <rybin@adacore.com frybin>

        * gnat_ugn.texi, vms_data.ads: Add documentation for new gnatpp option
        that controls casing of type and subtype names.

2011-11-23  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb: Minor addition of comments.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * prj-part.adb (Extension_Withs): New global variable,
        contains the head of the list of WITH clauses from the EXTENDS
        ALL projects for which virtual packages are being created.
        (Look_For_Virtual_Projects_For): When recursing through
        an EXTENDS ALL, add the WITH clauses of the extending
        project to Extension_Withs.  When adding a project to the
        Virtual_Hash, record the associated Extension_Withs list.
        (Create_Virtual_Extending_Project): Add a copy of the appropriate
        Extension_Withs to the virtual project.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * mlib-tgt-specific-vxworks.adb: Minor reformatting.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * Make-generated.in (Sdefault.Target_Name): Set to
        $(target_noncanonical) instead of $(target) for consistency.

2011-11-23  Matthew Heaney  <heaney@adacore.com>

        * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Iterator): Declared
        Iterator type as limited (First, Last): Cursor return value
        depends on iterator node value (Iterate): Use start position as
        iterator node value (Next, Previous): Forward to corresponding
        cursor-based operation.

2011-11-23  Matthew Heaney  <heaney@adacore.com>

        * a-coorse.ads, a-ciorse.ads, a-cborse.ads (Set_Iterator_Interfaces):
        Renamed from Ordered_Set_Iterator_Interfaces.
        * a-coorse.adb, a-ciorse.adb, a-cborse.adb (Iterator): Declared
        Iterator type as limited (First, Last): Cursor return value
        depends on iterator node value (Iterate): Use start position as
        iterator node value (Next, Previous): Forward to corresponding
        cursor-based operation.
        * a-cohase.ads, a-cohase.adb: Implemented forward iterator.
        * a-cihase.adb, a-cbhase.adb (Iterator): Removed unnecessary
        node component (First, Next): Forward call to corresponding
        cursor-based operation (Iterate): Representation of iterator no
        longer has node component

2011-11-23  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_intr.adb (Expand_Unc_Deallocation): Ensure that the
        dereference has a proper type before the side effect removal
        mechanism kicks in.
        * sem_ch3.adb (Analyze_Subtype_Declaration): Handle a rare case
        where the base type of the subtype is a private itype created
        to act as the partial view of a constrained record type. This
        scenario manifests with equivalent class-wide types for records
        with unknown discriminants.

2011-11-23  Jerome Guitton  <guitton@adacore.com>

        * s-osprim-vxworks.adb (Clock): Use Clock_RT_Ada.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * s-oscons-tmplt.c: Fix unbalanced preprocessor directives Minor
        reformatting/reorganization.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * g-htable.ads: Remove old comments.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * exp_imgv.adb: Minor reformatting.

2011-11-23  Robert Dewar  <dewar@adacore.com>

        * sem_ch9.adb (Analyze_Entry_Declaration): Check for entry
        family bounds out of range.

2011-11-23  Matthew Heaney  <heaney@adacore.com>

        * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Iterator): Declare
        type as limited, and remove node component.
        (First, Next): Forward call to corresponding cursor-based operation.
        (Iterate): Representation of iterator no longer has node component.

2011-11-23  Yannick Moy  <moy@adacore.com>

        * exp_util.adb: Revert previous change to remove side-effects in Alfa
        mode, which is not the correct thing to do for renamings.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taprop-tru64.adb,
        s-osinte-vxworks.ads, s-osinte-aix.ads, s-osinte-lynxos.ads,
        s-osinte-solaris-posix.ads, s-taprop-solaris.adb, a-exetim-posix.adb,
        s-osinte-irix.ads, s-osinte-solaris.ads, s-oscons-tmplt.c,
        s-taprop-irix.adb, s-osinte-hpux-dce.ads, Makefile.rtl,
        s-osinte-tru64.ads, s-osinte-darwin.ads, s-taprop.ads,
        s-osinte-freebsd.ads, s-osinte-lynxos-3.ads, s-taprop-hpux-dce.adb,
        s-taprop-posix.adb: Remove hard-coded clock ids;
        instead, generate them in System.OS_Constants.
        (System.OS_Constants.CLOCK_RT_Ada): New constant denoting the
        id of the clock providing Ada.Real_Time.Monotonic_Clock.
        * thread.c: New file.
        (__gnat_pthread_condattr_setup): New function. For platforms where
        CLOCK_RT_Ada is not CLOCK_REALTIME, set appropriate condition
        variable attribute.

2011-11-23  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb: Restore the use of Expander_Active instead of
        Full_Expander_Active, so that the evaluation is forced in Alfa
        mode too. Otherwise, we end up with an unexpected insertion in a
        place where it is not supposed to happen, on default parameters
        of a call.

2011-11-23  Thomas Quinot  <quinot@adacore.com>

        * prj-pp.adb, prj-pp.ads: Minor new addition: wrapper procedure "wpr"
        for Pretty_Print, for use from within gdb.

2011-11-23  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Wrap the expanded loop
        and the cursor declarations in a block, so that the loop variable
        is local to the construct.

2011-11-23  Matthew Heaney  <heaney@adacore.com>

        * a-coorma.ads, a-ciorma.ads, a-cborma.ads (Iterate): Returns
        type Reversible_Iterator'Class.
        * a-coorma.adb, a-ciorma.adb, a-cborma.adb (Iterator):
        Declare type as limited.
        (First, Last): Return value depends on iterator's start node value.
        (Next, Previous): Call corresponding Cursor-based operation.
        (Iterate): Indicate whether complete or partial iteration

2011-11-23  Robert Dewar  <dewar@adacore.com>

        * errout.adb: Minor reformattin (Finalize): Take templates into
        account for warning suppression.
        * errout.ads (Set_Specific_Warning_Off): Add Used parameter.
        * erroutc.adb: Minor reformatting (Finalize): Take generic
        templates into account for warning suppress.
        * erroutc.ads (Set_Specific_Warning_Off): Add Used parameter.
        * sem_prag.adb: Minor reformatting (Analyze_Pragma,
        case Warnings): Provide Used parameter in call to
        Set_Specific_Warnings_Off (to deal with generic template case).

2011-11-23  Pascal Obry  <obry@adacore.com>

        * sem_prag.adb (Process_Convention): Better error message for
        stdcall convention on dispatching calls.

2011-11-23  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch4.adb, sem_ch13.adb: Minor reformatting.

2011-11-23  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.adb (Expand_Simple_Function_Return): Add missing
        implicit type conversion when the returned object is allocated
        in the secondary stack and the type of the returned object is
        an interface. Done to force generation of displacement of the
        "this" pointer.

2011-11-23  Pascal Obry  <obry@adacore.com>

        * impunit.adb: Add g-exptty and g-tty units.

2011-11-23  Robert Dewar  <dewar@adacore.com>

        * exp_imgv.adb: Minor code reorganization (use Make_Temporary).

2011-11-23  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb, par-ch6.adb, sem_res.adb, par-util.adb: Minor
        reformatting.

2011-11-23  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications): Place error on
        line of precondition/ postcondition/invariant.

2011-11-23  Pascal Obry  <obry@adacore.com>

        * g-exptty.ads, g-exptty.adb, g-tty.ads, g-tty.adb,
        terminals.c: New files.
        Makefile.rtl: Add these new files.
        * gnat_rm.texi: Add documentation for GNAT.Expect.TTY.
        * gcc-interface/Makefile.in: Add g-exptty, g-tty, terminals.o
        * gcc-interface/Make-lang.in: Update dependencies.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * exp_imgv.adb (Expand_Width_Attribute): Handle case of Discard_Names.
        * sem_attr.adb (Eval_Attribute, case Width): Ditto.

2011-11-21  Thomas Quinot  <quinot@adacore.com>

        * sinfo.ads: Minor reformatting.

2011-11-21  Yannick Moy  <moy@adacore.com>

        * exp_util.adb: Minor reformatting. Update comments.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * exp_prag.adb, exp_util.adb, sinfo.ads, sem_res.adb, s-stposu.adb,
        sem_attr.adb, s-stposu.ads, s-taprop-solaris.adb, s-taprop-irix.adb,
        sem_ch6.adb: Minor reformatting.

2011-11-21  Arnaud Charlet  <charlet@adacore.com>

        * s-taprop-irix.adb, s-taprop-solaris.adb (Create_Task): Use
        Unrestricted_Access to deal with fact that we properly detect the
        error if Access is used.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-11-21  Yannick Moy  <moy@adacore.com>

        * exp_prag.adb (Expand_Pragma_Check): Place error on first character
        of expression.
        * sem_res.adb (Resolve_Short_Circuit): Place error on first
        character of expression.

2011-11-21  Yannick Moy  <moy@adacore.com>

        * exp_util.adb (Remove_Side_Effects): Do nothing in Alfa mode.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference, case
        Max_Size_In_Storage_Elements): Account for the size of the
        hidden list header which precedes controlled objects allocated
        on the heap.
        * rtsfind.ads: Add RE_Header_Size_With_Padding to the runtime
        tables.
        * sinfo.adb (Header_Size_Added): New routine.
        (Set_Header_Size_Added): New routine.
        * sinfo.ads: Add flag Controlled_Header_Added along with
        associated comment.
        (Header_Size_Added): New inlined routine.
        (Set_Header_Size_Added): New inlined routine.
        * s-stposu.adb (Allocate_Any_Controlled): Use
        Header_Size_With_Padding to calculate the proper
        size of the header.
        (Deallocate_Any_Controlled): Use
        Header_Size_With_Padding to calculate the proper size
        of the header.  (Header_Size_With_Padding): New routine.
        (Nearest_Multiple_Rounded_Up): Removed along with its uses.
        * s-stposu.ads (Header_Size_With_Padding): New routine.

2011-11-21  Ed Schonberg  <schonberg@adacore.com>

        * aspects.adb: Aspect specifications are allowed on renaming
        declarations
        * par-ch6.adb (P_Subprogram): Parse aspect specifications in a
        subprogram renaming declaration

2011-11-21  Tristan Gingold  <gingold@adacore.com>

        * env.c: Remove unused declaration.

2011-11-21  Pascal Obry  <obry@adacore.com>

        * s-os_lib.ads: Minor style fix.

2011-11-21  Pascal Obry  <obry@adacore.com>

        * adaint.c (__gnat_dup2): When fd are stdout, stdin or stderr and
        identical, do nothing on Windows XP.

2011-11-21  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
        Use Full_Expander_Active instead of Expander_Active to control
        the forced evaluation of expressions for the sake of generating
        checks.

2011-11-21  Thomas Quinot  <quinot@adacore.com>

        * init.c: On FreeBSD, stack checking failures may raise SIGBUS.

2011-11-21  Tristan Gingold  <gingold@adacore.com>

        * sysdep.c (mode_read_text, mode_write_text, mode_append_text,
        mode_read_binary, mode_write_binary, mode_append_binary,
        mode_read_text_plus, mode_write_text_plus, mode_append_text_plus,
        mode_read_binary_plus, mode_write_binary_plus,
        mode_append_binary_plus): Remove unused declarations.

2011-11-21  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi: Minor rewording.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_imgv.adb (Expand_Width_Attribute): Emit
        an error message rather than a warning when pragma Discard_Names
        prevents the computation of 'Width. Do not emit an error through
        the use of RE_Null.

2011-11-21  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
        implicit type conversion when the type of the allocator is an
        interface. Done to force generation of displacement of the "this"
        pointer when required.

2011-11-21  Ed Schonberg  <schonberg@adacore.com>

        * sinfo.ads, sinfo.adb: Corresponding_Spec applies to expression
        functions, and is set when the expression is a completion of a
        previous declaration.
        * sem_ch6.adb (Analyze_Expression_Function): To determine properly
        whether an expression function completes a previous declaration,
        use Find_Corresponding_Spec, as when analyzing a subprogram body.

2011-11-21  Steve Baird  <baird@adacore.com>

        * sem_util.adb (Deepest_Type_Access_Level): Improve comment.
        (Type_Access_Level): Improve comment.

2011-11-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Makefile.in (INCLUDES_FOR_SUBDIR): Add $(fsrcdir) by
        means of -iquote unconditionally.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor
        reformatting.

2011-11-21  Arnaud Charlet  <charlet@adacore.com>

        * s-taprop-posix.adb (Create_Task): Use Unrestricted_Access
        to deal with fact that we properly detect the error if Access
        is used.

2011-11-21  Steve Baird  <baird@adacore.com>

        * sem_util.ads: Update comment describing function
        Deepest_Access_Level.
        * sem_util.adb (Deepest_Type_Access_Level): Return Int'Last for a
        generic formal type.
        (Type_Access_Level): Return library level
        for a generic formal type.
        * sem_attr.adb (Resolve_Attribute): Replace two Type_Access_Level
        calls with calls to Deepest_Type_Access_Level.
        * sem_ch3.adb (Analyze_Component_Declaration): replace a
        Type_Access_Level call with a call to Deepest_Type_Access_Level.
        * sem_res.adb (Resolve_Allocator.Check_Allocator_Discrim_Accessibility):
        Replace three Type_Access_Level calls with calls to
        Deepest_Type_Access_Level.
        (Resolve_Allocator): Replace a Type_Access_Level call with a call to
        Deepest_Type_Access_Level.
        (Valid_Conversion.Valid_Array_Conversion): Replace a
        Type_Access_Level call with a call to Deepest_Type_Access_Level.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, s-taprop-vms.adb, opt.ads: Minor reformatting.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sinput.ads: Minor comment fix.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference, case First_Bit,
        Last_Bit, Position): Handle 2005 case.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * s-atocou-builtin.adb (Decrement): Use Unrestricted_Access
        to deal with fact that we properly detect the error if Access
        is used.
        (Increment): Same fix.
        * s-taprop-linux.adb (Create_Task): Use Unrestricted_Access
        to deal with fact that we properly detect the error if Access
        is used.
        * sem_util.adb (Is_Volatile_Object): Properly record that A.B is
        volatile if the B component is volatile. This affects the check
        for passing such a by reference volatile actual to a non-volatile
        formal (which should be illegal)

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Enumeration_Type): Make sure to set both
        size and alignment for foreign convention enumeration types.
        * layout.adb (Set_Elem_Alignment): Redo setting of alignment
        when size is set.

2011-11-21  Yannick Moy  <moy@adacore.com>

        * checks.adb (Apply_Access_Check, Apply_Arithmetic_Overflow_Check,
        Apply_Discriminant_Check, Apply_Divide_Check,
        Apply_Selected_Length_Checks, Apply_Selected_Range_Checks,
        Build_Discriminant_Checks, Insert_Range_Checks, Selected_Length_Checks,
        Selected_Range_Checks): Replace reference to Expander_Active
        with reference to Full_Expander_Active, so that expansion of
        checks is not performed in Alfa mode

2011-11-21  Tristan Gingold  <gingold@adacore.com>

        * s-taprop-vms.adb (Create_Task): Use Unrestricted_Access to deal with
        fact that we properly detect the error if Access is used.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

        * par-ch4.adb (P_Quantified_Expression): Add an Ada 2012 check.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_imgv.adb: Add with and use clause for Errout.
        (Expand_Width_Attribute): Emit a warning when in
        configurable run-time mode to provide a better diagnostic message.

2011-11-21  Hristian Kirtchev  <kirtchev@adacore.com>

        * s-finmas.adb (Finalize): Add comment concerning double finalization.

2011-11-21  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Access_Definition): If the access definition
        is itself the return type of an access to function definition
        which is ultimately the return type of an access to subprogram
        declaration, its scope is the enclosing scope of the ultimate
        access to subprogram.

2011-11-21  Steve Baird  <baird@adacore.com>

        * sem_res.adb (Valid_Conversion): If a conversion was legal
        in the body of a generic, then the corresponding conversion is
        legal in the expanded body of an instance of the generic.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * s-utf_32.adb (Is_UTF_32_Line_Terminator): Recognize NEL as
        line terminator.
        * sinput.ads: Add section on Handling of Source Line Terminators.
        * types.ads (Line_Terminator): Adjust comments.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * frontend.adb (Frontend): Capture restrictions from config files
        * lib-load.adb (Load_Unit): Save/set/restore restriction pragma
        information
        * lib-xref.adb (Generate_Reference): Fix handling of obsolescent
        references. This was noticed during debugging, but it is not
        known if it causes real bugs.
        * restrict.ads, restrict.adb: New routines to save/set/restore
        non-partition-wide restrictions.
        * s-rident.ads: Comment changes for new handling of
        No_Elaboration_Code
        * sem.adb (Sem): Save/Set/Restore non-partition-wide restrictions
        * sem_ch10.adb (Analyze_Compilation_Unit): Remove incomplete
        attempt to save/restore non-partition-wide restrictions (now
        this work is all done in Sem).
        * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
        Special handling for restriction No_Elaboration_Code.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * gnat_ugn.texi: Document new handling of restrictions pragmas.

2011-11-21  Pascal Obry  <obry@adacore.com>

        * s-taprop-linux.adb (Initialize_Lock): Do not allocate a cond
        attribute as not needed.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb: Minor reformatting.

2011-11-21  Pascal Obry  <obry@adacore.com>

        * gnat_rm.texi: Document restriction for stdcall convention on
        dispatching calls.

2011-11-21  Pascal Obry  <obry@adacore.com>

        * sem_prag.adb (Process_Convention): A dispatching call cannot
        have a stdcall calling convention.

2011-11-21  Pascal Obry  <obry@adacore.com>

        * s-taprop-linux.adb (Initialize_Lock): Do not allocate a
        mutex attribute as not needed.
        (Initialize_TCB): Likewise.
        (Initialize): Likewise.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb (Is_Public_Subprogram_For): New procedure
        (Process_PPCs): Invariants only apply to public subprograms.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_util.adb, sem_util.ads, sem_attr.adb, restrict.adb,
        restrict.ads: Fix for No_Implicit_Aliasing in the renames case.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * a-finali.ads: Use pragma Pure_12 for this unit
        * aspects.adb: Add aspect Pure_12
        * aspects.ads: Add aspect Pure_12
        * opt.ads: Add note on Pure_12
        * par-prag.adb: Add dummy entry for Pure_12
        * sem_prag.adb: Implement Pure_12 pragma
        * snames.ads-tmpl: Add Entry for Pure_12

2011-11-21  Sergey Rybin  <rybin@adacore.com frybin>

        * vms_data.ads: Add qualifiers for new gnatpp options
        '--call_threshold' and '--par_threshold".
        * gnat_ugn.texi: Add description for new gnatpp options
        '--call_threshold' and '--par_threshold".

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * lib.ads: Minor reformatting.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * lib-load.ads: Add comment.

2011-11-21  Gary Dismukes  <dismukes@adacore.com>

        * sem_elab.adb: Minor reformatting

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * exp_ch6.adb: Minor reformatting.

2011-11-21  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Check_Formal_Package_Instance): If a formal
        subprogram of the formal package is covered by an others
        association with a box initialization, no check is needed
        against the actual in the instantiation of the formal package.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * sem_elab.adb (Check_Internal_Call_Continue): Suppress junk
        elab warning from within precondition/postcondition etc.

2011-11-21  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch6.adb (Expand_Actuals): In Ada 2012, a function call
        with out parameters may generate assignments to force constraint
        checks. These checks must be properly placed in the code after the
        declaration or statement that contains the call.

2011-11-21  Fedor Rybin  <frybin@adacore.com>

        * gnat_ugn.texi: Adding info on current gnattest limitations an
        support of -X option.

2011-11-21  Robert Dewar  <dewar@adacore.com>

        * a-cfdlli.adb, a-cbdlli.adb: Minor reformatting.

2011-11-20  Robert Dewar  <dewar@adacore.com>

        * exp_ch6.adb, exp_util.adb: Minor reformatting

2011-11-20  Eric Botcazou  <ebotcazou@adacore.com>

        * sinfo.ads (Reference): Document that it is OK to set
        Is_Known_Non_Null on a temporary initialized to a N_Reference
        node.

2011-11-20  Matthew Heaney  <heaney@adacore.com>

        * a-cbdlli.adb, a-cfdlli.adb (Move): Set Last component to 0
        for Source list.

2011-11-20  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment):
        Declare NEW_EXPR local variable and attach the
        temporary to it.  Set Is_Known_Non_Null on the temporary.
        (Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
        * exp_util.adb (Remove_Side_Effects): Set Is_Known_Non_Null on
        the temporary created to hold the 'Reference of the expression,
        if any.
        * checks.adb (Install_Null_Excluding_Check): Bail out for the
        Get_Current_Excep.all.all idiom generated by the expander.

2011-11-20  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (struct language_function): Add GNAT_RET.
        (f_gnat_ret): New macro.
        (struct nrv_data): Add GNAT_RET.
        (finalize_nrv_unc_r): New helper function.
        (finalize_nrv): Add GNAT_RET parameter.  Copy it into DATA.  If the
        function returns unconstrained, use finalize_nrv_unc_r as callback.
        (return_value_ok_for_nrv_p): Test the alignment of RET_OBJ only if
        RET_OBJ is non-null.
        (Subprogram_Body_to_gnu): Pass GNAT_RET to finalize_nrv.
        (gnat_to_gnu) <N_Return_Statement>: In the return-unconstrained case,
        if optimization is enabled, record candidates for the Named Return
        Value optimization.

2011-11-20  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Subprogram_Body_to_gnu): Add comment.
        (gnat_to_gnu) <N_Return_Statement>: Add 'else' to avoid doing a useless
        test.  Tweak default case.
        <N_Goto_Statement>: Use better formatting.
        * gcc-interface/utils2.c (maybe_wrap_malloc): Use INIT_EXPR instead of
        MODIFY_EXPR to initialize the storage.
        (build_allocator): Likewise.

2011-11-20  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust
        call to components_to_record.
        (components_to_record): Add FIRST_FREE_POS parameter.  For the variant
        part, reuse enclosing union even if there is a representation clause
        on the Unchecked_Union.  If there is a variant part, compute the new
        first free position, if any.  Adjust call to self.  Use a single field
        directly only if it hasn't got a representation clause or is placed at
        offset zero.  Create the variant part at offset 0 if all the fields
        down to this level have a rep clause.  Do not chain the variant part
        immediately and adjust downstream.
        Do not test ALL_REP before moving the fields without rep clause to the
        previous level.  Call create_rep_part to create the REP part and force
        a minimum size on it if necessary.  Do not chain it immediately.
        Create a fake REP part if there are fields without rep clause that need
        to be laid out starting from FIRST_FREE_POS.
        At the end, chain the REP part and then the variant part.
        (create_rep_part): New function.
        (get_rep_part): Minor tweak.
        * gcc-interface/utils.c (tree_code_for_record_type): Minor tweak.

2011-11-18  Iain Sandoe  <iains@gcc.gnu.org>

        PR target/50678
        * init.c (__gnat_error_handler) [Darwin]: Move workaround to the
        bug filed as radar #10302855 from __gnat_error_handler to...
        (__gnat_adjust_context_for_raise) [Darwin]: ...here.  New function.
        (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE) [Darwin]: Define.

2011-11-18  Tristan Gingold  <gingold@adacore.com>
            Iain Sandoe  <iains@gcc.gnu.org>

        PR target/49992
        * mlib-tgt-specific-darwin.adb (Archive_Indexer_Options): Remove.
        * gcc-interface/Makefile.in (darwin): Remove ranlib special-casing.

2011-11-12  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link
        s-oscons.ads.
        (OSCONS_CPP, OSCONS_EXTRACT): New.
        (./bldtools/oscons/xoscons): New target.
        ($(RTSDIR)/s-oscons.ads): Likewise.
        (gnatlib): Depend on $(RTSDIR)/s-oscons.ads.
        * gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency.
        * Make-generated.in: Remove machinery to generate xoscons and
        ada/s-oscons.ads.

2011-11-10  Eric Botcazou  <ebotcazou@adacore.com>

        * fe.h (Serious_Errors_Detected): New macro.
        * gcc-interface/gigi.h (build_atomic_load): Declare.
        (build_atomic_store): Likewise.
        * gcc-interface/trans.c (atomic_sync_required_p): New predicate.
        (call_to_gnu): Add ATOMIC_SYNC parameter.  Use local variable.
        Build an atomic load for an In or In Out parameter if needed.
        Build an atomic store for the assignment of an Out parameter if needed.
        Build an atomic store to the target if ATOMIC_SYNC is true.
        (present_in_lhs_or_actual_p): New predicate.
        (gnat_to_gnu) <N_Identifier>: Build an atomic load if needed.
        <N_Explicit_Dereference>: Likewise.
        <N_Indexed_Component>: Likewise.
        <N_Selected_Component>: Likewise.
        <N_Assignment_Statement>: Adjust call to call_to_gnu.
        Build an atomic store to the LHS if needed.
        <N_Function_Call>:  Adjust call to call_to_gnu.
        * gcc-interface/utils2.c: Include toplev.h.
        (resolve_atomic_size): New static function.
        (build_atomic_load): New function.
        (build_atomic_store): Likewise.
        * gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h.

2011-11-07  Olivier Hainque  <hainque@adacore.com>

        * sigtramp-ppcvxw.c: Add general comments.
        (CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
        rules for r2 to r13, plus CTR and XER.
        (CFA_REG): New, register number used to hold the local CFA.
        (CFI_DEF_CFA, SIGTRAMP_BODY): Use it.
        Make that 15, not 14, with documentation.
        (TCR): Undef before definition, preventing conflict with reg number in
        VxWorks headers.

2011-11-07  Robert Dewar  <dewar@adacore.com>

        * exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,
        aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch6.adb: A tagged type is a legal actual for an aliased
        formal.

2011-11-07  Pascal Obry  <obry@adacore.com>

        * g-socket.adb, g-socket.ads: Minor reformatting.

2011-11-07  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb (Resolve_Actuals): Minor error message improvement.

2011-11-07  Robert Dewar  <dewar@adacore.com>

        * gnat_ugn.texi: Add discussion of default mode handling of
        source representation with no -gnatW option given, in particular
        noting that NEL (next line) is not recognized in this context.

2011-11-07  Yannick Moy  <moy@adacore.com>

        * sem_util.adb (Note_Possible_Modification): In Alfa mode,
        generate a reference for a modification even when the modification
        does not come from source.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,
        use the indexing attributes rather than the Element function,
        to obtain variable references.
        * sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use
        Find_Aspect rather than iterating over representation
        items. Improve error message.
        * a-cohama.adb, a-cohama.ads Update to latest RM, with two versions
        of Reference functions.

2011-11-07  Yannick Moy  <moy@adacore.com>

        * sem_util.adb (Unique_Entity): For a parameter on a subprogram
        body that has a corresponding parameter on the subprogram
        declaration, define the unique entity as being the declaration
        one.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
        return type of a function is the class-wide type of an incomplete
        type T, T can be a Taft-amendment type and does not have to be
        completed in the current private part.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

        * aspects.ads (Inherited_Aspect): Map that indicates type aspects
        that are inherited by default, and apply to the class-wide type
        as well.
        * aspects.adb (Find_Aspect): If the entity is class-wide and the
        aspect is inherited, use the aspect of the specific type.

2011-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_alfa.adb: Remove with and use clause for
        Exp_Ch8. Add with and use clause for Exp_Util.
        Remove local constant Disable_Processing_Of_Renamings.
        (Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
        object renamings has been reenabled.
        (Expand_Possible_Renaming):
        The expansion of identifier and expanded names has been
        reenabled. Perform the substitutions only for entities that
        denote an object.
        * exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.
        * exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.
        (Remove_Side_Effects): Alphabetize local variables. Add a guard
        to avoid the infinite expansion of an expression in Alfa mode. Add
        processing for function calls in Alfa mode.
        * exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb (Freeze_Entity): If the entity is an access to
        subprogram whose designated type is itself a subprogram type,
        its own return type must be decorated with size information.

2011-11-04  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Make-lang.in: Update dependencies.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * sprint.adb (Sprint_Node_Actual, case Qualified_Expression):
        Avoid junk semicolon after argument of machine code Asm operand.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch11.adb (Generate_Push_Pop): Inhibit push/pop nodes in
        CodePeer mode or if restriction No_Exception_Handlers is present.
        * exp_ch6.adb (Expand_N_Subprogram_Body): (Inhibit push/pop
        nodes in CodePeer mode or if restriction No_Exception_Handlers
        is present.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * s-tassta.adb, atree.ads, errout.adb, sinput.adb: Minor reformatting.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Subprogram_Specification): The
        specification is legal if it is a function that returns an
        abstract type, if it comes from an attribute renaming of a stream
        attribute of an abstract type.

2011-11-04  Gary Dismukes  <dismukes@adacore.com>

        * exp_util.adb (Is_Possibly_Unaligned_Object): In case of indexed
        components, check whether recursively check whether the prefix
        denotes an unaligned object.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Analyze_Pragma, case Debug): The argument of
        the pragma is legal if it is an expanded name that denotes a
        procedure that be can called without parameters.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gnat_ugn.texi (Performance Considerations) <Vectorization
        of loops>: New sub-section.  <Other Optimization Switches>:
        Minor tweak.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor reformatting.

2011-11-04  Matthew Heaney  <heaney@adacore.com>

        * a-convec.adb, a-coinve.adb, a-cobove.adb (Merge): Raise PE
        when Target and Source denote same non-empty object
        * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Merge): Ditto

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb: Minor reformatting.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Assign_Record): Do not generate a
        discriminant assignment within an initialization proc if the
        record is an unchecked union, as it can only come from the
        initialization of an unchecked union component.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * gnat_ugn.texi: Minor reformatting.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * par-labl.adb (Rewrite_As_Loop): Generate info msg rather than
        warning message.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb: Minor code reorganization (remove junk obsolete
        var Save_Space).

2011-11-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_alfa.adb: Add local constant
        Disable_Processing_Of_Renamings;
        (Expand_Alfa_N_Object_Renaming_Declaration): Disable
        the name evaluation of object renamings for now.
        (Expand_Potential_Renaming): Do not perform the substitution
        for now.
        * exp_util.adb (Remove_Side_Effects): Remove processing for
        functions with side effects in Alfa mode.

2011-11-04  Gary Dismukes  <dismukes@adacore.com>

        * bindgen.adb (Gen_Elab_Calls): In the case
        of the AAMP target, set elaboration entities to 1 rather than
        incrementing.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch10.adb (Install_Limited_With_Unit): To establish the
        proper entities on the ancestors of a child unit that appear
        in a limited_with clause, follow the unit links because the
        units are not analyzed and scope information is incomplete.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch4.adb (Expand_N_Selected_Component): Refine code
        setting the Atomic_Sync_Required flag to detect one more case.
        * exp_util.adb (Activate_Atomic_Synchronization): Refine code
        setting the Atomic_Sync_Required flag to exclude more cases,
        depending on the parent of the node to be examined.

2011-11-04  Bob Duff  <duff@adacore.com>

        * g-excact.adb: Minor: use named notation.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb: Improve error messages for illegal iterators.

2011-11-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_alfa.adb: Add with and use clauses for Exp_Ch8 and
        Sem_Util.
        (Expand_Alfa): Alphabetize cases on first choice. Add
        processing for object renaming declarations, identifiers and
        expanded names.
        (Expand_Alfa_N_In): Remove useless return.
        (Expand_Alfa_N_Object_Renaming_Declaration): New routine.
        (Expand_Potential_Renaming): New routine.
        * exp_ch8.adb (Evaluate_Name): Moved to the top level.
        (Expand_N_Object_Declaration): Alphabetize local variables. Move
        Evaluate_Name out to the top level.
        * exp_ch8.ads (Evaluate_Name): Moved from body to package spec.
        * exp_util.adb (Remove_Side_Effects): Add processing for
        functions with side effects in Alfa mode.

2011-11-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * gnat_rm.texi: Add entries for
        restrictions No_Relative_Delay, No_Requeue_Statements and
        No_Stream_Optimizations.

2011-11-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb: Set type of entity in prefixed call, for
        completeness in a generic context.

2011-11-04  Yannick Moy  <moy@adacore.com>

        * sem_prag.adb: Minor refactoring (renaming of a parameter).

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * atree.ads: Minor reformatting.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * checks.adb (Atomic_Synchronization_Disabled): Check -gnatd.d
        and -gnatd.e here
        * exp_ch2.adb (Expand_Entity_Reference): Use
        Activate_Atomic_Synchronization
        * exp_ch4.adb (Expand_N_Explicit_Dereference): Use
        Activate_Atomic_Synchronization (Expand_N_Indexed_Compoonent):
        Activate_Atomic_Synchronization (Expand_N_Selected_Component):
        Use Activate_Atomic_Synchronization
        * exp_util.ads, exp_util.adb (Activate_Atomic_Synchronization): New
        procedure.
        * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now apply to
        N_Selected_Component node

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb, atree.ads, prj-env.adb, prj-env.ads: Minor reformatting.

2011-11-04  Yannick Moy  <moy@adacore.com>

        * atree.adb, atree.ads (Set_Original_Node): New set procedure.
        * sem_ch13.adb (Analyze_Aspect_Specifications/Pre_Post_Aspects):
        In ASIS mode, no splitting of aspects between conjuncts.
        (Analyze_Aspect_Specifications/Aspect_Test_Case): Make pragma
        expressions refer to the original aspect expressions through
        the Original_Node link. This is used in semantic analysis for
        ASIS mode, so that the original expression also gets analyzed.
        * sem_prag.adb (Preanalyze_TC_Args,
        Check_Precondition_Postcondition,
        Analyze_Pragma/Pragma_Test_Case): In ASIS mode, for a pragma
        generated from a source aspect, also analyze the original aspect
        expression.
        (Check_Expr_Is_Static_Expression): New procedure
        similar to existing procedure Check_Arg_Is_Static_Expression,
        except called on expression inside pragma.

2011-11-04  Tristan Gingold  <gingold@adacore.com>

        * prj-env.adb, prj-env.ads (Find_Name_In_Path): New function, from
        Find_Project.Try_Path_Name.
        (Find_Project): Use Find_Name_In_Path to implement Try_Path_Name.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

        * s-atocou.ads (Atomic_Counter): Remove redundant pragma Volatile.

2011-11-04  Pascal Obry  <obry@adacore.com>

        * projects.texi: Add short description for qualifiers aggregate
        and aggregate library.

2011-11-04  Matthew Heaney  <heaney@adacore.com>

        * Makefile.rtl, impunit.adb: Added a-cogeso.ad[sb]
        * a-cgaaso.adb: Replaced implementation with instantiation
        of Generic_Sort.
        * a-cogeso.ad[sb] This is the new Ada 2012 unit
        Ada.Containers.Generic_Sort

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch2.adb (Expand_Entity_Reference): Do not set
        Atomic_Sync_Required for the case of a prefix of an attribute.
        * exp_ch4.adb (Expand_N_Explicit_Dereference): May require
        atomic synchronization
        (Expand_N_Indexed_Component): Ditto.
        (Expand_B_Selected_Component): Ditto.
        * sem_prag.adb (Process_Suppress_Unsuppress):
        Disable/Enable_Atomic_Synchronization can now occur for array
        types with pragma Atomic_Components.
        * sinfo.ads, sinfo.adb (Atomic_Sync_Required): Can now occur on
        N_Explicit_Dereference nodes and on N_Indexed_Component nodes.

2011-11-04  Gary Dismukes  <dismukes@adacore.com>

        * gnat_ugn.texi: Editorial corrections for gnattest section.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb: Minor reformatting.
        * gnat_rm.texi: Update documentation for pragma Warnings (Off,
        "***") usage.
        * exp_ch2.adb (Expand_Entity_Reference): Only set
        Atomic_Sync_Required on entities that are variables. Doesn't
        make any sense on anything else.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch2.adb (Expand_Entity_Reference): Extend handling of
        atomic sync to type case.
        * sem_prag.adb (Process_Suppress_Unsuppress): Atomic Sync can
        apply to types.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * sem_warn.adb (Warn_On_Useless_Assignment): More accurate test
        for call vs assign.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb: Detect more cases of Long_Float inconsistencies at
        compile time.

2011-11-04  Matthew Heaney  <heaney@adacore.com>

        * Makefile.rtl, impunit.adb: Added a-sfecin.ads,
        * a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb], a-sbhcin.ad[sb],
        a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb], a-sulcin.ad[sb]
        * a-sfecin.ads, a-sfhcin.ads, a-sflcin.ads, a-sbecin.ad[sb],
        a-sbhcin.ad[sb], a-sblcin.ad[sb], a-suecin.ad[sb], a-suhcin.ad[sb],
        a-sulcin.ad[sb]: New files.

2011-11-04  Geert Bosch  <bosch@adacore.com>

        * i-forbla-unimplemented.ads, s-gecola.adb, s-gecola.ads,
        s-gerebl.adb, s-gerebl.ads, i-forbla.adb, i-forbla.ads,
        i-forlap.ads, i-forbla-darwin.adb, s-gecobl.adb, s-gecobl.ads,
        s-gerela.adb, s-gerela.ads: Remove partial interface to BLAS/LAPACK.
        * gcc-interface/Makefile.in: Remove libgnala and related objects.

2011-11-04  Matthew Heaney  <heaney@adacore.com>

        * a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb],
        a-coorma.ad[sb], a-ciorma.ad[sb], a-coormu.ad[sb], a-ciormu.ad[sb],
        a-cohama.ad[sb], a-cihama.ad[sb], a-cohase.ad[sb], a-cihase.ad[sb],
        a-convec.ad[sb], a-coinve.ad[sb] (Assign, Copy): New operations
        added to package.

2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
        that the type of the parameters isn't dummy in type_annotate_only mode.

2011-11-04  Robert Dewar  <dewar@adacore.com>

        * sem_ch12.adb: Minor reformatting

2011-11-04  Gary Dismukes  <dismukes@adacore.com>

        * bindgen.adb (Gen_Elab_Calls): In the case of the AAMP target,
        initialize elaboration entities to zero when specs are processed.

2011-10-28  Iain Sandoe  <iains@gcc.gnu.org>
            Eric Botcazou  <ebotcazou@adacore.com>

        PR target/50678
        * init.c (__gnat_error_handler) [Darwin]: Apply a work-around to the
        bug filed as radar #10302855 (inconsistent unwind data for sigtramp).

2011-10-28  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/50842
        * gcc-interface/Makefile.in (SYMDEPS): Delete.
        (LIBICONV): New variable.
        (LIBICONV_DEP): Likewise.
        (LIBS): Add $(LIBICONV).
        (LIBDEPS): Add $(LIBICONV_DEP).
        (EXTRA_GNATTOOLS_OBJS): Merge into...
        (TOOLS_LIBS): ...this.  Add $(LIBICONV).

2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (elaborate_expression_1): Add EXPR_PUBLIC_P local
        variable.  Always create the elaboration variable, if any, as constant.

2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Try to
        make a packable type for fields of union types as well.
        <is_type>: Use RECORD_OR_UNION_TYPE_P predicate.
        (gnat_to_gnu_component_type): Try to make a packable type for fields
        of union types as well.
        (make_packable_type): Use RECORD_OR_UNION_TYPE_P predicate.
        (maybe_pad_type): Try to make a packable type for fields of union types
        as well.
        (gnat_to_gnu_field): Likewise.
        (is_variable_size): Use RECORD_OR_UNION_TYPE_P predicate.
        (set_rm_size): Likewise.
        (rm_size): Likewise.
        * gcc-interface/misc.c (gnat_type_max_size): Likewise.
        * gcc-interface/trans.c (add_decl_expr): Likewise.
        * gcc-interface/utils.c (finish_record_type): Likewise.
        * gcc-interface/utils2.c (build_simple_component_ref): Likewise.

2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_field): Always check components
        declared as atomic.  Move around conditionally executed code.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * sem.adb (Initialize): Fix bug that blew up if called a second time.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * tb-alvxw.c, tracebak.c, expect.c, initflt.c, tb-alvms.c,
        tb-ivms.c, tb-gcc.c: Update headers to GPL 3.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb (Analyze_Pragma, case Debug): Give proper pragma
        name in error msg.

2011-10-24  Hristian Kirtchev  <kirtchev@adacore.com>

        * gnat_rm.texi: Add an entry for restriction No_Finalization.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Insert_Freeze_Node_For_Instance):  If the
        current instance is within the one that contains the generic,
        the freeze node for the current one must appear in the current
        declarative part. Ditto if the current instance is within another
        package instance. In both of these cases the freeze node of the
        previous instance is not relevant.

2011-10-24  Gary Dismukes  <dismukes@adacore.com>

        * switch-m.adb (Normalize_Compiler_Switches): Add recognition
        of AAMP-specific switches -univ and -aamp_target.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * a-tienau.adb (Put): Deal properly with limited line length.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * sem_warn.adb, sem_ch12.adb: Minor reformatting.

2011-10-24  Tristan Gingold  <gingold@adacore.com>

        * gcc-interface/Makefile.in: Use GNU ld switches to generate map files
        on AIX.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Earlier): make available globally. If both
        nodes have the same sloc, the freeze node that does not come
        from source is the later one.
        (True_Parent): Make available globally.
        (Previous_Instance): Subsidiary of
        Insert_Freeze_Node_For_Instance, to check whether the generic
        parent of the current instance is declared within a previous
        instance in the same unit or declarative  part, in which case the
        freeze nodes of both instances must appear in order to prevent
        elaboration problems in gigi.
        * sem_ch12.adb (Insert_Freeze_Node_For_Instance): A stub is a
        freeze point, and the freeze node of a preceding instantiation
        must be inserted before it.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * checks.ads, checks.adb: Add handling of Synchronization_Check
        * debug.adb: Add doc for -gnatd.d and -gnatd.e (disable/enable
        atomic sync).
        * exp_ch2.adb (Expand_Entity_Reference): Set Atomic_Sync_Required
        flag Minor code reorganization.
        * opt.ads (Warn_On_Atomic_Synchronization): New switch.
        * par-prag.adb: Add dummy entries for pragma
        Disable/Enable_Atomic_Synchronization.
        * sem_prag.adb (Process_Suppress_Unsuppress): Handle
        case of Atomic_Synchronization specially (not suppressed
        by All_Checks, cannot be set from Source).
        (Pragma Disable/Enable_Atomic_Synchronization): Add processing.
        * sinfo.ads, sinfo.adb: Add Atomic_Sync_Required flag
        * snames.ads-tmpl: Add entry for Atomic_Synchronization Add
        entry for pragma Disable/Enable_Atomic_Synchronization
        * switch-c.adb: The -gnatp switch does not disable
        Atomic_Synchronization Add -gnatep switch to disable
        Atomic_Synchronization.
        * types.ads: Add entry for Synchronization_Check
        * usage.adb: Add line for -gnated switch
        * warnsw.adb: Settings for Warn_On_Atomic_Synchronization

2011-10-24  Geert Bosch  <bosch@adacore.com>

        * s-gearop.adb (Back_Substitute): Avoid overflow if matrix bounds start
        at Integer'First.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * sem_ch12.adb, s-gearop.adb: Minor reformatting.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * warnsw.adb: Add some missing warnings to Set_GNAT_Mode_Warnings.
        * warnsw.ads: Add comments to Set_GNAT_Mode_Warnings.

2011-10-24  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb (Process_Expression_Variable_Decl): No special
        handling for Project_Path unless it is an attribute.

2011-10-24  Javier Miranda  <miranda@adacore.com>

        * sem_ch12.adb (Check_Hidden_Primitives): New subprogram.
        (Install_Hidden_Primitives): New subprogram.
        (Restore_Hidden_Primitives): New subprogram.
        (Analyze_Formal_Package_Declaration,
        Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
        Invoke Check_Hidden_Primitives after every call to
        Analyze_Associations, and invoke Restore_Hidden_Primitives to
        restore their visibility after processing the instantiation.
        (Instantiate_Package_Body): Install visible primitives before
        analyzing the instantiation and uninstall them to restore their
        visibility when the instantiation has been analyzed.
        * sem_util.ads, sem_util.adb (Add_Suffix): New subprogram
        (Remove_Suffix): New subprogram
        * sem_ch3.adb (Derive_Subprogram): When handling
        a derived subprogram for the instantiation of a formal derived
        tagged type, inherit the dispatching attributes from the actual
        subprogram (not from the parent type).

2011-10-24  Vasiliy Fofanov  <fofanov@adacore.com>

        * gnat_ugn.texi: Document explicit use of XDECGNAT library.

2011-10-24  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Build_Assignment): Add local constant N_Loc and
        update its uses.
        (Build_Discriminant_Assignments): Add local variable D_Loc and update
        its uses.
        (Build_Init_Statements): Add local variables Comp_Loc, Decl_Loc and
        Var_Loc and update their uses.
        (Build_Record_Init_Proc): Code reformatting.
        (Increment_Counter): Add formal parameter Loc.
        (Make_Counter): Add formal parameter Loc.

2011-10-24  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_disp.adb (Covers_Some_Interface): Fix typo.

2011-10-24  Matthew Heaney  <heaney@adacore.com>

        * a-cuprqu.adb, a-cbprqu.adb (Dequeue_Only_High_Priority): Fix sense
        of predicate.

2011-10-24  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Test_Case):
        Translate arguments in positional notation into pragma argument
        association arguments for the generated pragma.

2011-10-24  Arnaud Charlet  <charlet@adacore.com>

        * exp_ch5.adb: Fix minor typo.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Is_Visible_Component): Refine predicate for
        the case of a component reference in an instance body, when the
        enclosing type is private.

2011-10-24  Sergey Rybin  <rybin@adacore.com frybin>

        * gnat_ugn.texi: For gnatelim, move the note about using the GNAT
        driver for getting the project support into gnatelim section.

2011-10-24  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor correction to documentation on address clause.

2011-10-24  Hristian Kirtchev  <kirtchev@adacore.com>

        * s-finmas.adb (Attach): Synchronize and call the unprotected version.
        (Attach_Unprotected): New routine.
        (Delete_Finalize_Address): Removed.
        (Delete_Finalize_Address_Unprotected): New routine.
        (Detach): Synchronize and call the unprotected version.
        (Detach_Unprotected): Remove locking.
        (Finalize): Add various comment on synchronization. Lock the critical
        region and call the unprotected versions of routines.
        (Finalize_Address): Removed.
        (Finalize_Address_Unprotected): New routine.
        (Set_Finalize_Address): Synchronize and call
        the unprotected version.
        (Set_Finalize_Address_Unprotected): New routine.
        (Set_Heterogeneous_Finalize_Address): Removed.
        (Set_Heterogeneous_Finalize_Address_Unprotected): New routine.
        (Set_Is_Heterogeneous): Add comment on synchronization and
        locking.
        * s-finmas.ads: Flag Finalization_Started is no longer atomic
        because synchronization uses task locking / unlocking.
        (Attach): Add comment on usage.
        (Attach_Unprotected): New routine.
        (Delete_Finalize_Address): Renamed to
        Delete_Finalize_Address_Unprotected.
        (Detach): Add comment on usage.
        (Detach_Unprotected): New routine.
        (Finalize_Address): Renamed to Finalize_Address_Unprotected.
        (Set_Finalize_Address): Add comment on usage.
        (Set_Finalize_Address_Unprotected): New routine.
        (Set_Heterogeneous_Finalize_Address): Renamed to
        Set_Heterogeneous_Finalize_Address_Unprotected.
        * s-stposu.adb (Allocate_Any_Controlled): Add local variable
        Allocation_Locked. Add various comments on synchronization. Lock
        the critical region and call the unprotected version of
        routines.
        (Deallocate_Any_Controlled): Add various comments on
        synchronization. Lock the critical region and call the unprotected
        version of routines.

2011-10-24  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type
        are universal and must carry the corresponding type.
        * sem_eval.adb (Check_Non_Static_Context): If the type of the
        expression is universal real, as may be the case for a fixed point
        expression with constant operands in the context of a conversion,
        there is nothing to check.
        * s-finmas.adb: Minor reformatting

2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (create_concat_name): Add explicit cast.

2011-10-20  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (GNATLIBFLAGS, GNATLIBCFLAGS, THREAD_KIND,
        TRACE): Reintroduce.
        (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o,
        ada/initialize.o, ada/raise.o): Reintroduce explicit compilation rules.

2011-10-20  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (lhs_or_actual_p): New predicate.
        (unchecked_conversion_nop): Use it.
        (gnat_to_gnu): Likewise.

2011-10-20  Eric Botcazou  <ebotcazou@adacore.com>

        * back_end.adb (Call_Back_End): Pass the maximum logical line number
        instead of the maximum physical line number to gigi.
        * gcc-interface/trans.c (Sloc_to_locus): Cope with line zero.

2011-10-16  Tom Tromey  <tromey@redhat.com>
            Dodji Seketeli  <dodji@redhat.com>

        * gcc-interface/trans.c (gigi, Sloc_to_locus): Adjust to use the new
        public ordinary map interface.

2011-10-16  Tristan Gingold  <gingold@adacore.com>

        * link.c (_AIX): Add support for GNU ld.

2011-10-16  Fedor Rybin  <frybin@adacore.com>

        * gnat_ugn.texi: Fixing gnattest example names in the doc.
        Adding explanation to additional tests usage.

2011-10-16  Robert Dewar  <dewar@adacore.com>

        * exp_ch6.adb, sem_ch6.adb: Minor reformatting.

2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>

        * a-convec.adb: Fix minor inconsistencies.

2011-10-16  Matthew Heaney  <heaney@adacore.com>

        * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package
        Implementation): Specify pragma Implementation_Defined.

2011-10-15  Nicolas Roche  <roche@adacore.com>

        * gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using
        either rtp-smp or ravenscar-cert-rtp runtimes.

2011-10-15  Bob Duff  <duff@adacore.com>

        * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
        Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr
        is available.
        (Expand_N_Extended_Return_Statement): Do not create a renaming of the
        build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is
        available.
        (Make_Build_In_Place_Call_In_Allocator): Add the user-defined
        pool only if RE_Root_Storage_Pool_Ptr is available.
        (Make_Build_In_Place_Call_In_Object_Declaration): Do not add a
        pool actual unless RE_Root_Storage_Pool_Ptr is available.
        * sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool
        formal only if RE_Root_Storage_Pool_Ptr is available.

2011-10-15  Matthew Heaney  <heaney@adacore.com>

        * a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
        type): Specify Priority aspect for protected type.

2011-10-14  Ed Schonberg  <schonberg@adacore.com>

        * exp_disp.adb (Check_Premature_Freezing): If an untagged type
        is a generic actual, it is a subtype of a type that was frozen
        by the instantiation, and even if not marked frozen it does not
        affect the construction of the dispatch table.

2011-10-14  Robert Dewar  <dewar@adacore.com>

        * make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code
        reformatting.
        * s-rident.ads: Add missing Compiler_Unit pragma.

2011-10-14  Gary Dismukes  <dismukes@adacore.com>

        * sem_res.adb: Minor reformatting.

2011-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
        Code and comment reformatting. Use BIP_Task_Master
        when creating a _master.
        (BIP_Formal_Suffix): Code reformatting. Correct the case for
        BIP_Task_Master.
        (Make_Build_In_Place_Call_In_Object_Declaration): Use
        BIP_Task_Master when creating a reference to the enclosing
        function's _master formal.
        (Move_Activation_Chain): Use BIP_Task_Master when creating a reference
        to the _master.
        * exp_ch6.ads: Change BIP_Master to BIP_Task_Master.
        (Needs_BIP_Finalization_Master): Alphabetized.
        * sem_ch6.adb (Create_Extra_Formals): Update the usage of
        BIP_Task_Master.

2011-10-14  Ed Schonberg  <schonberg@adacore.com>

        * par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode,
        reject an aliased keyword on the object declaration of an extended
        return statement. In older versions of the language indicate
        that this is illegal in the standard.

2011-10-14  Pascal Obry  <obry@adacore.com>

        * sem_util.adb, sem_ch4.adb: Minor reformatting.

2011-10-14  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch13.adb: Recognize properly procedure calls that are
        transformed into code statements.

2011-10-14  Vincent Celier  <celier@adacore.com>

        * projects.texi: Minor fix in project example.

2011-10-14  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.adb: Return objects are aliased if their type is
        immutably limited as per AI05-0053.

2011-10-14  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or
        expansion code (moved to sem_res) (Expand_N_Op_Or): Remove
        Short_Circuit_And_Or expansion code (moved to sem_res).
        * sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean
        "and" and "or" operators as short-circuit "and then" and "or
        else", when pragma Short_Circuit_And_Or is active.

2011-10-13  Robert Dewar  <dewar@adacore.com>

        * sem_ch9.adb, sem_util.adb, sem_util.ads, exp_ch6.adb, sem_ch4.adb,
        sem_ch6.adb, exp_ch3.adb: Minor reformatting.

2011-10-13  Arnaud Charlet  <charlet@adacore.com>

        * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-ngcoar.o.

2011-10-13  Jerome Guitton  <guitton@adacore.com>

        * sysdep.c (__gnat_get_task_options): Re-enable VX_SPE_TASK on vThreads

2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>

        * a-convec.ads (Cursor): Minor reformatting.
        * a-convec.adb (Next): Fix minor inconsistencies.
        (Previous): Likewise.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.ads, sem_util.adb (Available_Full_View_Of_Component):
        New predicate to determine whether some operations on an array
        type are available when the full view of its component may differ
        from the view of the point of the array declaration.
        * sem_ch4.adb (Find_Equality_Types): Use
        Available_Full_View_Of_Component.
        * sem_type.adb (Valid_Boolean_Arg, Valid_Comparison_Arg): Ditto

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch9.adb: Analyze aspects while discriminants of protected
        type are visible.

2011-10-13  Geert Bosch  <bosch@adacore.com>

        * Makefile.rtl (GNATRTL_TASKING_OBJECTS): Add
        a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o, as these no
        longer depend on an external library.
        * gcc-interface/Makefile.in (GNATRTL_LINEARALGEBRA_OBJS): Remove
        a-nlcoar.o, a-nllcar.o, a-nucoar.o and s-gearop.o.
        Update dependencies.
        * gcc-interface/Make-lang.in: Update dependencies. 

2011-10-13  Cyrille Comar  <comar@adacore.com>

        * gnat_ugn.texi: Minor editing.

2011-10-13  Vincent Celier  <celier@adacore.com>

        * projects.texi: Add documentation on packages and attributes
        that are inherited from a project being extended into the
        extended project.

2011-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Build_Master): Rewritten.
        (Expand_N_Full_Type_Declaration): Reformat the declarative
        region. Update the call to Build_Master_Renaming.
        (Expand_Previous_Access_Type): Rewritten.
        * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
        Add local constant Result_Subt and update related usage.
        (Expand_N_Extended_Return_Statement): Add local constant
        Result_Subt and update related usage.
        * exp_ch9.adb (Build_Activation_Chain): Rewritten to use the
        new context detection mechanism.
        (Build_Class_Wide_Master):
        Use Insert_Action to add the renaming into the tree.
        (Build_Master_Entity): Rewritten to use the new context detection
        mechanism.
        (Build_Master_Renaming): Add formal parameter Ins_Nod
        and related usage. Use Insert_Action to add the renaming into the
        tree.
        (Find_Enclosing_Context): New subsidiary routine. Rather
        than relying on enclosing scopes, this routine looks at the
        tree structure to figure out the proper context for a _master
        or a _chain. This approach eliminates the issues with transient
        scopes which have not been converted into blocks.
        * exp_ch9.ads (Build_Master_Entity): Change parameter profile
        to better reflect the new usage. Update the related comment.
        (Build_Master_Renaming): Add formal parameter Ins_Nod. Update
        the comment on usage.
        * sem_ch3.adb (Access_Definition): Update the calls to
        Build_Master_Entity and Build_Master_Renaming.
        * sem_ch6.adb (Create_Extra_Formals): Add local variable
        Full_Subt. Code reformatting.
        * sem_util.adb (Is_Iterator): Alphabetized.
        (Is_LHS): Alphabetized.
        (Is_Limited_Class_Wide_Type): New routine.
        * sem_util.ads (Is_Limited_Class_Wide_Type): New routine.

2011-10-13  Geert Bosch  <bosch@adacore.com>

        * a-ngrear.adb (Solve): Make generic and move to
        System.Generic_Array_Operations.
        * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution):
        New generic solvers to  compute a vector resp. matrix Y such
        that A * Y = X, approximately.
        * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution):
        Implement using Forward_Eliminate and Back_Substitute
        * a-ngcoar.adb: Reimplement in pure Ada to remove dependencies
        on BLAS and LAPACK.
        * a-ngcoar.ads ("abs"): Fix return type to be real.

2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/50589
        * s-linux-alpha.ads: Do not "with" Interfaces.C.
        * s-linux-sparc.ads: Likewise.

2011-10-13  Geert Bosch  <bosch@adacore.com>

        * s-gearop.ads (Forward_Eliminate): Add "abs" formal function
        returning a Real.
        * s-gearop.adb (Forward_Eliminate): Remove local "abs" function
        and use formal.
        * a-ngrear.adb (Forward_Eliminate): Adjust instantiation for
        new profile.

2011-10-13  Geert Bosch  <bosch@adacore.com>

        * a-ngrear.adb, s-gearop.adb, s-gearop.ads (Sqrt): Make generic and
        move to System.Generic_Array_Operations.

2011-10-13  Geert Bosch  <bosch@adacore.com>

        * a-ngrear.adb ("abs"): Adjust for modified L2_Norm generic
        * s-gearop.ads (L2_Norm): Change profile to be suitable for
        Complex_Vector
        * s-gearop.adb (L2_Norm): Reimplement using direct definition,
        not inner product

2011-10-13  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, sem_ch3.adb, impunit.adb, impunit.ads, sem_type.adb,
        prj-proc.adb, exp_ch9.adb, s-regpat.adb, sem_ch10.adb, sem_prag.adb,
        sem_ch12.adb, freeze.adb, sem_attr.adb, sem_attr.ads, gnatlink.adb,
        par-ch6.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb,
        par-util.adb, sem_ch13.adb, lib-xref.adb, g-trasym.adb, g-trasym.ads,
        exp_aggr.adb, s-taprop-posix.adb: Minor reformatting.

2011-10-13  Geert Bosch  <bosch@adacore.com>

        * s-gearop.adb: Minor comment additions.

2011-10-13  Fedor Rybin  <frybin@adacore.com>

        * gnat_ugn.texi: Add gnattest section.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb: Do not create body of renaming if declaration has
        errors.

2011-10-13  Olivier Hainque  <hainque@adacore.com>

        * init.c (__gnat_error_handler - vxworks case): Restrict sigtramp calls
        further, to the ppc+kernel case only.

2011-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Expand_N_Allocator): Comment reformatting.
        * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
        Do not create a pool formal on .NET/JVM.
        (Expand_N_Extended_Return_Statement): Alphabetize local
        variables. Do not create a renaming of the build-in-place pool
        parameter on .NET/JVM.  (Make_Build_In_Place_Call_In_Allocator):
        Add the user-defined pool only on non-VM targets.
        (Make_Build_In_Place_Call_In_Object_Declaration): Alphabetize
        local variables.  Do not add a pool actual on .NET/JVM.
        * sem_ch6.adb: Add with and use clause for Targparm.
        (Create_Extra_Formals): Add build-in-place pool formal only on
        non-VM targets.
        * rtsfind.ads: Alphabetize entries.

2011-10-13  Sergey Rybin  <rybin@adacore.com>

        * gnat_ugn.texi: Minor correction.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb: Minor error message improvement.

2011-10-13  Robert Dewar  <dewar@adacore.com>

        * a-cbprqu.adb, a-ciorma.adb, exp_ch3.adb: Minor reformatting.

2011-10-13  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch5.adb (Expand_N_Loop_Statement): For the transformation
        of a for loop for an enumeration type with an enumeration rep
        clause, which involves moving the original loop parameter into
        a nested block, the loop parameter's entity must be removed from
        the entity list of the loop scope.

2011-10-13  Bob Duff  <duff@adacore.com>

        * exp_ch6.ads (BIP_Storage_Pool): New "extra implicit parameter"
        that gets passed in the same cases where BIP_Alloc_Form is passed
        (caller-unknown-size results). BIP_Storage_Pool is used when
        BIP_Alloc_Form = User_Storage_Pool.  In that case, a pointer
        to the user-defined storage pool is passed at the call site,
        and this pool is used in callee to allocate the result.
        * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): New
        version of Add_Alloc_Form_Actual_To_Build_In_Place_Call. Passes
        the additional BIP_Storage_Pool actual.
        (Expand_N_Extended_Return_Statement): Allocate the function
        result using the user-defined storage pool, if BIP_Alloc_Form =
        User_Storage_Pool.
        * sem_ch6.adb: Add the "extra formal" for BIP_Storage_Pool.
        * exp_ch4.adb: Don't overwrite storage pool set by
        Expand_N_Extended_Return_Statement.
        * s-stopoo.ads, rtsfind.ads (Root_Storage_Pool_Ptr): New type,
        for use in build-in-place function calls within allocators
        where the access type has a user-defined storage pool.

2011-10-13  Sergey Rybin  <rybin@adacore.com>

        * gnat_ugn.texi, vms_data.ads: Add an option to control enumeration
        literal casing.

2011-10-13  Nicolas Roche  <roche@adacore.com>

        * gnatlink.adb: Ensure that -mrtp is passed when runtime name ends
        with 'rtp'.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Take into
        account that an unchecked union type can be limited.

2011-10-13  Olivier Hainque  <hainque@adacore.com>

        * init.c (__gnat_error_handler) <VxWorks version>: Add comments on
        the use of the signal trampoline for PPC in the sjlj case as well.
        Add legitimate casts, preventing compile time warnings on the
        (sighandler *) profile.

2011-10-13  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Resolve_Aggr_Expr): Always perform semantic analysis
        in Alfa mode.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (OK_For_Limited_Init_In_05): Conditional and case
        expressions are legal limited return values if each one of their
        dependent expressions are legal.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Procedure_Call_Statement): In Ada 2012 mode,
        if the prefix of the call is a qualified expression, rewrite as
        a code statement.
        * sem_ch13.adb (Analyze_Code_Statement): In Ada 2012 mode, the
        code statement is legal if it is a rewriting of a procedure call.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb (Flatten): If a component association has a box,
        assume that aggregate is not static.
        (Safe_Aggregate): If a component association in a non-limited
        aggregate has a box, assume that it cannot be expanded in place.

2011-10-13  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Get_Or_Create_Configuration_File): Call
        Process_Project_Tree_Phase_1 with Packages_To_Check.
        (Process_Project_And_Apply_Config): Ditto
        * prj-part.ads, prj-part.adb, prj-pars.ads, prj-pars.adb (Parse):
        Remove default for argument Packages_To_Check.
        * prj-proc.adb (Recursive_Process): New argument
        Packages_To_Check.
        (Process): Ditto.
        (Process_Project_Tree_Phase_1): Ditto.
        (Recursive_Project.Process_Aggregated_Projects): Call
        Prj.Part.Parse and Process_Project_Tree_Phase_1 with
        Packages_To_Check.
        * prj-proc.ads (Process): New argument Packages_To_Check
        (Process_Project_Tree_Phase_1): Ditto

2011-10-13  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in: Fix typo.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Formal_{Floating_Type,
        Signed_Integer_Type,  Decimal_Fixed_Point_Type, Discrete_Type}):
        Use sloc of defining identifier of farmal type declaration,
        as sloc of generated internal entity, to prevent misplaced
        references in ali.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_intr.adb (Check_Intrinsic_Operator): Check that type
        is fully defined before checking that it is a numeric type.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Resolve_Record_Aggregate): If a component
        association for component X has a box, then X is covered in the
        aggregate even if there is not default value for X in the type
        declaration, and X has to be default-initialized.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Check_Enum_Image, Analyze_Attribute case 'Value): Mark
        literals as referenced only if reference is in current source unit.

2011-10-13  Matthew Heaney  <heaney@adacore.com>

        * a-csquin.ads (Enque, Dequeue): Mark interface operations as entries.

2011-10-13  Olivier Hainque  <hainque@adacore.com>

        * sigtramp.h: New file.  Prototype and spec of the signal
        trampoline to be called by an established handler to provide
        dwarf call frame info before the real signal processing code.
        * sigtramp-ppcvxw.c: New file.  Implementation of the signal
        trampoline for ppc-vxworks.
        * init.c (vxworks section): Use it for ppc.

2011-10-13  Thomas Quinot  <quinot@adacore.com>

        * par-ch2.adb, par.adb, par-util.adb, par-ch3.adb
        (Check_Future_Identifier): New subprogram,
        factors duplicated code from Par.Ch2.P_Identifier and
        Par.Ch3.P_Defining_Identifier.

2011-10-13  Thomas Quinot  <quinot@adacore.com>

        * s-taprop-posix.adb (Initialize): Always raise Storage_Error
        if we fail to initialize CV attributes or CV.

2011-10-13  Thomas Quinot  <quinot@adacore.com>

        * s-tasren.adb (Timed_Selective_Wait, case
        Accept_Alternative_Selected): Use Defer_Abort_Nestable, since
        we know abortion is already deferred.

2011-10-13  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Build_Class_Wide_Master): Moved to exp_ch9.
        (Build_Master_Renaming (function)): Removed.
        (Build_Master_Renaming (procedure)): Moved to exp_ch9.
        (Expand_Full_Type_Declaration): Alphabetize
        variables. Reformatting of code and comments. Rewrite the
        section on processing of anonymous access-to-task types in
        record components.
        * exp_ch3.ads (Build_Class_Wide_Master): Moved to exp_ch9.
        (Build_Master_Renaming): Moved to exp_ch9.
        * exp_ch9.adb (Build_Class_Wide_Master): Moved from exp_ch3.
        (Build_Master_Entity): Add formal parameter
        Use_Current. Reformatting of code and comments.
        (Build_Master_Renaming): Moved from exp_ch3.
        * exp_ch9.ads (Build_Class_Wide_Master): Moved from
        exp_ch3. Update comment on usage.
        (Build_Master_Entity):
        Add formal parameter Use_Current. Update comment on usage.
        (Build_Master_Renaming): Moved from exp_ch3.
        * sem_ch3.adb (Access_Definition): Remove redundant code to
        create a _master and a renaming.

2011-10-13  Ed Schonberg  <schonberg@adacore.com>

        * lib-xref.adb: Do no emit reference to overridden operation,
        if it is internally generated.

2011-10-13  Vincent Celier  <celier@adacore.com>

        * bindgen.adb: Remove any processing related to g-trasym
        * Makefile.rtl: Add g-trasym.o to GNATRTL_NONTASKING_OBJS
        * mlib-prj.adb: Remove any processing related to g-trasym.

2011-10-12  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_util.adb (Denotes_Same_Prefix): Fix fatal warning.
        * gcc-interface/Make-lang.in (WARN_ADAFLAGS): New.
        (ALL_ADAFLAGS): Include WARN_ADAFLAGS.
        (ADA_FLAGS_TO_PASS): Likewise.
        (COMMON_FLAGS_TO_PASS): New.
        (ADA_TOOLS_FLAGS_TO_PASS): Use COMMON_FLAGS_TO_PASS.  In the regular
        native case, also use FLAGS_TO_PASS and ADA_FLAGS_TO_PASS.
        (gnatlib): Use COMMON_FLAGS_TO_PASS.
        (ada.install-common): Likewise.
        (install-gnatlib): Likewise.
        (install-gnatlib-obj): Likewise.
        (gnattools): Use ADA_TOOLS_FLAGS_TO_PASS for gnattools1 as well.
        (gnat-cross): Delete.
        (gnatboot): Likewise.
        (gnatboot2): Likewise.
        (gnatboot3): Likewise.
        (gnatstage1): Likewise.
        (gnatstage2): Likewise.
        * gcc-interface/Makefile.in (SOME_ADAFLAGS): Likewise.
        (MOST_ADAFLAGS): Likewise.
        (LOOSE_CFLAGS): Likewise.
        (gnat-cross): Likewise.
        (GNATLIBFLAGS): Add -W -Wall.
        (GNATLIBCFLAGS_FOR_C): Likewise.
        * gcc-interface/lang.opt: Remove C-specific warnings.  Add doc lines.
        * gcc-interface/misc.c (gnat_handle_option): Remove obsolete cases.

2011-10-12  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Attribute_to_gnu): Use remove_conversions.
        (push_range_check_info): Likewise.
        (gnat_to_gnu) <N_Code_Statement>: Likewise.
        * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise.
        (gnat_invariant_expr): Likewise.
        * gcc-interface/utils.c (compute_related_constant): Likewise.
        (max_size): Fix handling of SAVE_EXPR.
        (remove_conversions): Fix formatting.

2011-10-12  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (DECL_LOOP_PARM_P): New flag.
        (DECL_INDUCTION_VAR): New macro.
        (SET_DECL_INDUCTION_VAR): Likewise.
        * gcc-interface/gigi.h (convert_to_index_type): Declare.
        (gnat_invariant_expr): Likewise.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: If this is a loop
        parameter, set DECL_LOOP_PARM_P on it.
        * gcc-interface/misc.c (gnat_print_decl) <VAR_DECL>: If DECL_LOOP_PARM_P
        is set, print DECL_INDUCTION_VAR instead of DECL_RENAMED_OBJECT.
        * gcc-interface/trans.c (gnu_loop_label_stack): Delete.
        (struct range_check_info_d): New type.
        (struct loop_info_d): Likewise.
        (gnu_loop_stack): New stack.
        (Identifier_to_gnu): Set TREE_READONLY flag on the first dereference
        built for a by-double-ref read-only parameter.  If DECL_LOOP_PARM_P
        is set, do not test DECL_RENAMED_OBJECT.
        (push_range_check_info): New function.
        (Loop_Statement_to_gnu): Push a new struct loop_info_d instead of just
        the label.  Reference the label and the iteration variable from it.
        Build the special induction variable in the unsigned version of the
        size type, if it is larger than the base type.  And attach it to the
        iteration variable if the latter isn't by-ref.  In the iteration scheme
        case, initialize the invariant conditions in front of the loop if
        deemed profitable.  Use gnu_loop_stack.
        (gnat_to_gnu) <N_Exit_Statement>: Use gnu_loop_stack.
        <N_Raise_Constraint_Error>: Always process the reason.  In the range
        check and related cases, and if loop unswitching is enabled, compute
        invariant conditions and push this information onto the stack.
        Do not translate again the condition if it has been already translated.
        * gcc-interface/utils.c (record_global_renaming_pointer): Assert that
        DECL_LOOP_PARM_P isn't set.
        (convert_to_index_type): New function.
        * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Use it in order
        to convert the index from the base index type to sizetype.
        (gnat_invariant_expr): New function.

2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

        * gcc-interface/utils.c (def_builtin_1): Delete old interface with
        two parallel arrays to hold standard builtin declarations, and
        replace it with a function based interface that can support
        creating builtins on the fly in the future.
        * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Ditto.
        (gnat_to_gnu): Ditto.

2011-10-07  Eric Botcazou  <ebotcazou@adacore.com>

        PR lto/50492
        * gcc-interface/gigi.h (gnat_pushdecl): Adjust comment.
        * gcc-interface/utils.c (global_context): New variable.
        (gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs
        that are either public external or at top level.  Use "No" macro.
        (end_subprog_body): Call decl_function_context.
        (rest_of_subprog_body_compilation): Likewise.

2011-10-07  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (gnat_useless_type_conversion): Declare.
        (rest_of_subprog_body_compilation): Likewise.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming,
        test for useless conversions by means of gnat_useless_type_conversion.
        * gcc-interface/trans.c: Include bitmap.h and cgraph.h.
        (language_function): Add named_ret_val and other_ret_val.
        (f_named_ret_val): New macro.
        (f_other_ret_val): Likewise.
        (gigi): Call rest_of_subprog_body_compilation.
        (struct nrv_data): New structure.
        (is_nrv_p): New predicate.
        (prune_nrv_r): New helper function.
        (prune_nrv_in_block): New function.
        (finalize_nrv_r): New helper function.
        (finalize_nrv): New function.
        (return_value_ok_for_nrv_p): New predicate.
        (build_return_expr): If optimization is enabled, record candidates for
        the Named Return Value optimization.
        (build_function_stub): Call rest_of_subprog_body_compilation.
        (Subprogram_Body_to_gnu): If optimization is enabled and there are
        candidates, finalize the Named Return Value optimization.
        Call rest_of_subprog_body_compilation.
        (call_to_gnu): At the end, if a return value is needed, simplify the
        result before wrapping it up in a COMPOUND_EXPR.
        * gcc-interface/utils.c (end_subprog_body): Split into...
        (rest_of_subprog_body_compilation): ...this.  New function.
        (gnat_useless_type_conversion): Likewise.

2011-10-06  Thomas Quinot  <quinot@adacore.com>

        * einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
        exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb,
        g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb,
        par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
        sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
        sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb,
        s-regpat.adb, s-tpopde-vms.ads: Minor reformatting.
        * s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD.

2011-10-06  Ed Schonberg  <schonberg@adacore.com>

        * a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container
        references.

2011-10-06  Matthew Heaney  <heaney@adacore.com>

        * a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb
        (Dequeue_Only_High_Priority): Protected procedure now implemented.

2011-10-06  Vincent Celier  <celier@adacore.com>

        * g-trasym.adb: Replace old implementation with the default
        implementation that returns list of addresses as "0x...".
        * g-trasym.ads: Update the list of platforms with the full
        capability.  Indicate that there is a default implementation
        for other platforms.
        * g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove.
        * gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there
        is now a default implementation for all platforms without the full
        capability.

2011-10-06  Robert Dewar  <dewar@adacore.com>

        * a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb,
        a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,
        a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code
        reorganization (use conditional expressions).

2011-10-06  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for
        floating divide by zero.

2011-10-06  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb: Limited interfaces that are not immutably limited
        are OK in return statements.

2011-09-30  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (Darwin): Partial reversion of previous
        change to powerpc section.

2011-09-29  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS
        across the port.

2011-09-27  Ed Schonberg  <schonberg@adacore.com>

        * a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads,
        a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads,
        a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and
        indefinite sets.
        * a-coorma.ads: Minor reformmating.
        * einfo.ads: Improve the comment describing the
        Directly_Designated_Type function.
        * a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite
        ordered maps.
        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
        dependencies.

2011-09-27  Robert Dewar  <dewar@adacore.com>

        * a-comutr.ads: Minor reformatting.

2011-09-27  Ed Schonberg  <schonberg@adacore.com>

        * a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children
        iterators to multiway trees.

2011-09-27  Yannick Moy  <moy@adacore.com>

        * debug.adb (d.D): New option for strict Alfa mode.
        * opt.ads (Strict_Alfa_Mode): New flag to interpret compiler
        permissions as strictly as possible.
        * sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict
        Alfa mode, now, interpret ranges of base types like GNAT does; in
        strict mode, simply change the range of the implicit base Itype.
        * gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.

2011-09-27  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb: Minor comment fixes.

2011-09-27  Ed Schonberg  <schonberg@adacore.com>

        * a-comutr.adb, a-comutr.ads: Add children iterators on multiway
        trees.

2011-09-27  Eric Botcazou  <ebotcazou@adacore.com>

        * checks.adb (Apply_Scalar_Range_Check): Use Designated_Type
        instead of Directly_Designated_Type in the indirect array case.

2011-09-27  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb, exp_aggr.adb: Minor reformatting.

2011-09-27  Ed Schonberg  <schonberg@adacore.com>

        * sinfo.ads, par-ch3.adb: Minor comment update: aspect specification
        on subtype declarations.
        * exp_aggr.adb: Minor comment update.

2011-09-27  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_util.adb (Safe_Prefixed_Reference): Remove always-false
        test in the N_Explicit_Dereference case.  Fold double logical
        negation in the special loop case and conditionalize it on
        Variable_Ref being true.

2011-09-27  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Analyze_Selected_Component): If the prefix is a
        single protected object and the selector is a discriminant or an
        entry family, this is a non-overloaded candidate interpretation,
        and possible primitive operations of the type must not be
        examined.

2011-09-27  Arnaud Charlet  <charlet@adacore.com>

        * s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
        s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
        Add dummy definitions for pthread_rwlock_t
        and pthread_rwlockattr_t on all POSIX platforms.
        * s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
        reference.
        (Finalize_Lock): Likewise.
        (Write_Lock): Likewise.
        (Unlock): Likewise.

2011-09-27  Tristan Gingold  <gingold@adacore.com>

        * s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
        windows 64.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,
        s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads,
        s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads,
        s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads,
        s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
        s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads,
        s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads,
        s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb,
        s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb,
        s-taprop-posix.adb: Revert previous changes.
        (Lock): Now a record containing the two possible lock
        (mutex and read/write) defined in OS_Interface.
        * s-taprop-linux.adb (Finalize_Protection): Use r/w lock for
        'R' locking policy.
        (Initialize_Protection): Likewise.
        (Lock): Likewise.
        (Lock_Read_Only): Likewise.
        (Unlock): Likewise.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as
        OS_Interface.pthread_rwlock_t.

2011-09-27  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb,
        a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads,
        sem_ch5.adb, sem_util.adb: Minor reformatting.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock.
        (Finalize_Lock)[RW_Lock]: Likewise.
        (Write_Lock)[RW_Lock]: Likewise.
        (Unlock)[RW_Lock]: Likewise.
        (Read_Lock): Define L as RW_Lock (instead of Lock).
        * s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New
        routine for r/w lock.
        (Finalize_Lock)[RW_Lock]: Likewise.
        (Write_Lock)[RW_Lock]: Likewise.
        (Unlock)[RW_Lock]: Likewise.
        (Read_Lock): Define L as RW_Lock (instead of Lock).

        * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
        s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb,
        s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
        (Initialize_Lock)[RW_Lock]: Same implementation as corresponding
        routine for standard lock.
        (Finalize_Lock)[RW_Lock]: Likewise.
        (Write_Lock)[RW_Lock]: Likewise.
        (Unlock)[RW_Lock]: Likewise.
        (Read_Lock): Define L as RW_Lock (instead of Lock).
        * s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock)
        in the record definition.
        * s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w
        lock for 'R' locking policy.
        (Initialize_Protection): Likewise.
        (Lock): Likewise.
        (Lock_Read_Only): Likewise.
        (Unlock): Likewise.
        * s-taspri-posix.ads (RW_Lock): New type defined as
        OS_Interface.pthread_rwlock_t.

        * s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads,
        s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads,
        s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads,
        s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * exp_ch9.adb, s-taspri-posix.ads: Minor reformatting.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
        s-osinte-hpux.ads, s-osinte-irix.ads,
        s-osinte-solaris-posix.ads (pthread_rwlock_t): New definition alias of
        pthread_mutex_t.
        (pthread_rwlockattr_t): New definition alias of pthread_mutexattr_t.
        * s-osinte-linux.ads (pthread_rwlock_t, pthread_rwlockattr_t,
        pthread_rwlockattr_init, pthread_rwlockattr_destroy,
        pthread_rwlockattr_setkind_np, pthread_rwlock_init,
        pthread_rwlock_destroy, pthread_rwlock_rdlock,
        pthread_rwlock_wrlock, pthread_rwlock_unlock): New.

2011-09-27  Pascal Obry  <obry@adacore.com>

        * rtsfind.ads: Add RE_Lock_Read_Only into rtsfind circuitry.
        (RE_Id): Add RE_Lock_Read_Only.
        (RE_Unit_Table): Likewise.
        * sem_prag.adb (Process_Convention): Change Pragma_Locking_Policy
        to lift restriction on first character. Handle now the
        Name_Concurrent_Readers_Locking where policy character is set to
        'R'.
        * snames.ads-tmpl (Name_Concurrent_Readers_Locking): New
        constant.
        * exp_ch9.adb (Build_Protected_Subprogram_Body): Generate a
        read only lock for function in protected object.
        * s-taprob.ads (Lock_Read_Only): Remove obsolete comment as
        this routine is now used.

2011-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * s-atocou-x86.adb (Decrement): Use %;.
        (Increment): Likewise.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (build_allocator): Set TREE_THIS_NOTRAP on the
        dereference of the pointer to the storage area.  Remove useless type
        conversions and factor out common code.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (maybe_unconstrained_array): Declare TYPE local
        variable and use it throughout.
        <UNCONSTRAINED_ARRAY_TYPE>: Add 'break' at the end.
        <RECORD_TYPE>: Do not unconditionally convert to the unpadded type as a
        first step.  Also convert to the unpadded type as a last step.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (create_subprog_decl): Replace TREE_CHAIN with
        DECL_CHAIN in comment.
        * gcc-interface/trans.c (gigi): Likewise.
        (Attribute_to_gnu): Likewise.
        (build_function_stub): Likewise.
        (gnat_to_gnu): Likewise.
        * gcc-interface/utils.c (create_subprog_decl): Likewise.
        (convert_vms_descriptor64): Likewise.
        (convert_vms_descriptor32): Likewise.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (assoc_to_constructor): Minor tweaks.
        * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting
        issues.  Use COMPLETE_TYPE_P in assertion.  Also set TREE_READONLY if
        the type of the record is TYPE_READONLY.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb (Set_Formal_Mode): Set Can_Never_Be_Null on an IN or IN
        OUT formal parameter which is of an null-exclusion access subtype.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (DECL_CAN_NEVER_BE_NULL_P): New macro.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Set the flag.
        (gnat_to_gnu_param): Likewise.
        * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Invoke
        maybe_unconstrained_array instead of doing the work manually.
        (maybe_unconstrained_array): Propagate the TREE_THIS_NOTRAP flag.
        * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: If operand
        is a DECL with the flag, set TREE_THIS_NOTRAP on the reference.
        (gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
        (gnat_stabilize_reference): Likewise.

2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (TYPE_NULL_BOUNDS): New macro.
        (SET_TYPE_NULL_BOUNDS): Likewise.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set again
        TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
        * gcc-interface/trans.c (Identifier_to_gnu): Return initializers of fat
        pointer types.
        * gcc-interface/utils.c (create_var_decl_1): If the object is external,
        check that the initializer is a valid constant expression for use in
        initializing a static variable.  Add missing guard.
        (update_pointer_to): Adjust TYPE_NULL_BOUNDS if set.
        (convert_to_fat_pointer): In the null fat pointer case, build a valid
        pointer for the bounds.
        * gcc-interface/utils2.c (compare_fat_pointers): New function.
        (build_binary_op) <EQ_EXPR>: Call it to compare fat pointers.

2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (TREE_THIS_NOTRAP): Redefine.
        * gcc-interface/trans.c (Identifier_to_gnu): Factor out common code in
        the by-ref case.  Do not set TREE_READONLY on a renamed object.  Set
        TREE_THIS_NOTRAP on UNCONSTRAINED_ARRAY_REF nodes.
        (Attribute_to_gnu) <Attr_Length>: Expand the use of the parameter cache
        to the indirect case.
        * gcc-interface/utils.c (convert) <UNCONSTRAINED_ARRAY_REF>: Preserve
        the TREE_THIS_NOTRAP flag.

2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Loop_Statement_to_gnu): In the case of an
        iteration scheme, always generate the do-while form if optimization
        is enabled.  Use more straightforward test at the end.

2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Subtype>: Use
        XNEW instead of xmalloc.  Do not build useless pointer type.
        <E_Anonymous_Access_Subprogram_Type>: Use XNEW instead of xmalloc.
        * gcc-interface/trans.c (gnat_to_gnu) <N_Raise_Constraint_Error>: Tidy.
        * gcc-interface/utils2.c (build_unary_op): Remove local variable.

2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote
        the alignment if this doesn't prevent BLKmode access to the object.

2011-09-24  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (darwin): Do not issue the
        '-flat_namespace' linker flag during Ada build.
        * mlib-tgt-specific-darwin.adb: Remove '-flat_namespace' flag from the
        default shared library options.

2011-09-19  Alexandre Oliva  <aoliva@redhat.com>

        * gcc-interface/decl.c (annotate_value): Look up expression for
        insertion in the cache at the end.

2011-09-19  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Make-lang.in: Update dependencies.

2011-09-19  Steve Baird  <baird@adacore.com>

        * snames.ads-tmpl: Move declaration of Name_Annotate into range of
        configuration pragma names so that Is_Configuration_Pragma_Name
        will return True for Name_Annotate.  Make corresponding change in
        Pragma_Id enumeration type.  This is needed to allow an Annotate
        pragma to occur in a configuration pragma file (typically,
        a gnat.adc file).
        * gnat_ugn.texi: Add Annotate to the list of configuration pragmas.
        * gnat_rm.texi: Note that pragma Annotate may be used as a
        configuration pragma.

2011-09-19  Ed Schonberg  <schonberg@adacore.com>

        * a-cbmutr.adb, a-cbmutr.ads, a-cimutr.adb, a-cimutr.ads,
        a-comutr.adb, a-comutr.ads: Add iterator machinery for multiway trees.

2011-09-19  Yannick Moy  <moy@adacore.com>

        * exp_alfa.adb, exp_alfa.ads (Expand_Alfa_N_In): New function
        for expansion of set membership.
        (Expand_Alfa): Call expansion for N_In and N_Not_In nodes.
        * exp_ch4.adb, exp_ch4.ads (Expand_Set_Membership): Make procedure
        visible for use in Alfa expansion.
        * sem_ch5.adb (Analyze_Iterator_Specification): Introduce loop
        variable in Alfa mode.

2011-09-19  Thomas Quinot  <quinot@adacore.com>

        * s-osinte-darwin.ads: Change SIGADAABRT on Darwin to SIGABRT.

2011-09-19  Thomas Quinot  <quinot@adacore.com>

        * exp_ch9.adb: Minor reformatting.

2011-09-19  Hristian Kirtchev  <kirtchev@adacore.com>

        * freeze.adb (Build_Renamed_Body): Generic subprograms
        instantiations cannot be poperly inlined by the compiler, do
        not set the Body_To_Inline attribute in such cases.
        * sem_ch12.adb (Analyze_Subprogram_Instantiation): Inherit all
        inlining-related flags from the generic subprogram declaration.

2011-09-19  Thomas Quinot  <quinot@adacore.com>

        * exp_dist.adb, rtsfind.ads, sem_util.adb, sem_util.ads
        (Build_Stub_Type): Remove, instead copy components from
        System.Partition_Interface.RACW_Stub_Type.
        (RPC_Receiver_Decl): Remainder of code from old Build_Stub_Type routine.
        (Copy_Component_List): New subprogram.

2011-09-19  Yannick Moy  <moy@adacore.com>

        * lib-xref.adb (Generate_Reference): Ignore references to
        constants in Standard.

2011-09-19  Robert Dewar  <dewar@adacore.com>

        * err_vars.ads, errout.ads: Minor reformatting.

2011-09-19  Robert Dewar  <dewar@adacore.com>

        * aspects.ads (Impl_Defined_Aspects): New array
        * lib-writ.adb (No_Dependences): New name for No_Dependence
        * restrict.adb (No_Dependences): New name for No_Dependence
        (Check_Restriction_No_Specification_Of_Aspect): New
        procedure.
        (Set_Restriction_No_Specification_Of_Aspect): New procedure
        (Restricted_Profile_Result): New variable
        (No_Specification_Of_Aspects): New variable
        (No_Specification_Of_Aspect_Warning): New variable
        * restrict.ads (No_Dependences): New name for No_Dependence
        (Check_Restriction_No_Specification_Of_Aspect): New procedure
        (Set_Restriction_No_Specification_Of_Aspect): New procedure
        * s-rident.ads: Add restriction
        No_Implementation_Aspect_Specifications, this is also added to
        the No_Implementation_Extensions profile.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Check
        No_Implementation_Defined_Aspects
        (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
        * sem_prag.adb (Analyze_Aspect_Specifications): Check
        No_Implementation_Aspects
        (Analyze_Aspect_Specifications): Check No_Specification_Of_Aspect
        * snames.ads-tmpl (Name_No_Specification_Of_Aspect): New name

2011-09-19  Yannick Moy  <moy@adacore.com>

        * lib-xref.adb (Generate_Reference): Take into account multiple
        renamings for Alfa refs.

2011-09-19  Thomas Quinot  <quinot@adacore.com>

        * g-socthi-mingw.adb: Minor reformatting.

2011-09-19  Yannick Moy  <moy@adacore.com>

        * gnat1drv.adb (Adjust_Global_Switches): Set tagged type
        expansion to False in mode Alfa

2011-09-19  Pascal Obry  <obry@adacore.com>

        * mingw32.h: Remove obsolete code needed for old versions
        of MingW.

2011-09-19  Robert Dewar  <dewar@adacore.com>

        * errout.ads: Minor reformatting.

2011-09-19  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Expression_Function): When the expression
        function is transformed into a declaration and a body, insert
        body at the end of the declarative part, to prevent premature
        freeze actions, and preserve original specification in the
        subprogram declaration.

2011-09-19  Vincent Celier  <celier@adacore.com>

        * projects.texi: Minor editing.

2011-09-19  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb, lib-writ.ads, s-restri.ads, sem_ch6.adb,
        exp_aggr.adb: Minor reformatting.

2011-09-19  Yannick Moy  <moy@adacore.com>

        * lib-xref.adb (Generate_Reference): Change entity referenced
        to underlying object if any, or else reference to the HEAP.

2011-09-15  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Make-lang.in: Update dependencies.

2011-09-15  Robert Dewar  <dewar@adacore.com>

        * tree_io.ads: Minor reformatting.
        * a-intnam.ads: Fix bad header.

2011-09-15  Thomas Quinot  <quinot@adacore.com>

        * a-exexpr-gcc.adb: Minor reformatting.

2011-09-15  Yannick Moy  <moy@adacore.com>

        * sem_ch6.adb: Propagate information that an expression function comes
        from source (otherwise references to this entity are not stored).

2011-09-15  Robert Dewar  <dewar@adacore.com>

        * a-cdlili.adb, a-coinve.adb, a-stzunb-shared.ads, a-suezst.adb,
        a-suenco.adb, a-stwiun-shared.ads, a-cobove.adb, a-convec.adb,
        a-btgbso.adb, a-cbdlli.adb, a-suewst.adb: Minor reformatting.

2011-09-15  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Expression_Function): Code cleanup:
        if the expression function is not a completion, create a
        new specification for the generated declaration, and keep the
        original specification in the generated body. Shorter code also
        ensures that proper warnings are generated for unused formals
        in all cases.

2011-09-15  Sergey Rybin  <rybin@adacore.com>

        * tree_io.ads: Update ASIS_Version_Number because of the changes
        in the tree structures for expression functions.

2011-09-15  Arnaud Charlet  <charlet@adacore.com>

        * s-osinte-aix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads,
        s-osinte-hpux.ads, s-osinte-lynxos.ads, s-osinte-solaris-posix.ads,
        s-taprop-posix.adb (CLOCK_MONOTONIC): New constant.
        (CLOCK_REALTIME): Fix wrong value on some OSes.
        * s-taprop-posix.adb (Monotonic_Clock): Use CLOCK_MONOTONIC.

2011-09-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (maybe_unconstrained_array): In the reference
        to unconstrained array case, deal with each branch of a COND_EXPR.
        * gcc-interface/utils2.c (build_allocator): Deal with each branch of
        a COND_EXPR in the initializer, if present.

2011-09-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (maybe_pad_type): Do not try to change the form
        of an addressable type.
        * gcc-interface/trans.c (gnat_gimplify_expr) <VIEW_CONVERT_EXPR>: New.
        Deal with those cases for which creating a temporary is mandatory.

2011-09-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (call_to_gnu): Use local variable.  Make sure
        this is a real formal parameter before testing whether it is by ref.

2011-09-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (build_call_0_expr): Delete.
        (build_call_1_expr): Likewise.
        (build_call_2_expr): Likewise.
        (build_call_n_expr): New prototype.
        * gcc-interface/decl.c (gnat_to_gnu_entity): Use build_call_n_expr.
        * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Ditto.
        (Handled_Sequence_Of_Statements_to_gnu): Likewise.
        (Exception_Handler_to_gnu_zcx): Likewise.
        (gnat_to_gnu): Likewise.
        (build_binary_op_trapv): Likewise.
        * gcc-interface/utils2.c (build_call_0_expr): Delete.
        (build_call_1_expr): Likewise.
        (build_call_2_expr): Likewise.
        (build_call_n_expr): New function.
        (build_call_raise): Use build_call_n_expr.
        (build_call_raise_range): Likewise.
        (build_call_raise_column): Likewise.
        (build_call_alloc_dealloc_proc): Likewise.
        (maybe_wrap_malloc): Likewise.
        (maybe_wrap_free): Likewise.

2011-09-11  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (build_return_expr): Use void_type_node for
        MODIFY_EXPR.
        * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Assert that
        the result type is null if ENABLE_CHECKING.  Set operation_type at the
        end unconditionally if not set in the previous cases.
        Use build2 and void_type_node for MODIFY_EXPR.
        (build_allocator): Use NULL_TREE for MODIFY_EXPR.

2011-09-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (unchecked_convert): Use a field of the right
        precision when converting to or from an integral type whose precision
        is not equal to its size.

2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>

        * traceback.c (Darwin) USE_GCC_UNWINDER for Darwin versions >= 8.

2011-09-07  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (darwin): Provide powerpc64 system
        implementation.
        * system-darwin-ppc64.ads: New file.

2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (gnatlib-shared-darwin): Remove
        reference to "-lm".

2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (darwin, SO_OPTS): Provide architecture
        size switches to the link phase for shared libs.

2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>

        * gcc-interface/Makefile.in (x86_64 darwin arch): Adjust
        LIBGNAT_TARGET_PAIRS for x86 and x86_64 variants.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in
        (gnattools, regnattools, cross-gnattools, canadian-gnattools,
        gnatlib, gnatlib-sjlj, gnatlib-zcx, gnatlib-shared, gnatlib_and_tools):
        New targets.
        (TOOLS_FLAGS_TO_PASS): New.
        (../stamp-tools): Reintroduce, to avoid merge conflicts.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * sem_ch10.adb, impunit.ads, impunit.adb (Not_Impl_Defined_Unit): New
        name for Is_RM_Defined_Unit. Also several fixes to this unit.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * impunit.ads, impunit.adb (Is_RM_Defined_Unit): New function.
        * s-rident.ads: New restriction No_Implementation_Units
        (this restriction is also part of the profile
        No_Implementation_Extensions)
        * sem_ch10.adb (Analyze_With_Clause): Add check for
        No_Implementation_Units restriction.

2011-09-06  Jerome Guitton  <guitton@adacore.com>

        * sysdep.c (__gnat_get_task_options): Disable VX_SPE_TASK
        on vThreads.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * s-solita.adb: Minor reformatting.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The body that
        is a rewriting of an expression function does not freeze previous
        entities.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * impunit.adb (Is_Known_Unit): Fix bad handling of Ada 2012 case

2011-09-06  Tristan Gingold  <gingold@adacore.com>

        * gcc-interface/Makefile.in: Handle e500v2-wrs-vxworksae like
        powerpc-wrs-vxworksae.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * s-os_lib.ads (Spawn): Minor documentation clarification,
        Success is True for a zero exit status.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb: Add message for common iterator error.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch3.adb (Build_Initialization_Call): If the target is a
        selected component discriminated by a current instance, replace
        the constraint with a reference to the target object, regardless
        of whether the context is an init_proc.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb: Descriptor_Size is never static.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * gnat_ugn.texi: Add documentation for LSLOC metric in gnatmetric

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * gnat_rm.texi: Clarify that attribute Descriptor_Size is
        non-static.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve): An expression that is the body of an
        expression function does not freeze.

2011-09-06  Matthew Heaney  <heaney@adacore.com>

        * a-csquin.ads, a-cusyqu.adb, a-cbprqu.adb, a-cbsyqu.adb,
        a-cuprqu.adb: Changed copyright notice to indicate current
        year only.

2011-09-06  Vincent Celier  <celier@adacore.com>

        * prj.adb: Minor spelling error fix in comment
        * sem_res.adb: Minor reformatting

2011-09-06  Pascal Obry  <obry@adacore.com>

        * sysdep.c (winflush_nt): Removed as not needed anymore.
        (winflush_95): Likewise.
        (winflush_init): Likewise.
        (winflush_function): Likewise.
        (getc_immediate_common): Remove call to winflush_function.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite the
        processing for Descriptor_Size.
        * gnat_rm.texi: Rephrase the wording for attribute Descriptor_Size
        to account for its broader usage.
        * sem_attr.adb (Analyze_Attribute): Change the error detection
        circuitry for Descriptor_Size as the attribute is now applicable
        to all types.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * sem_attr.adb, prj-nmsc.adb, exp_aggr.adb: Minor reformatting.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * lib-xref.adb (OK_To_Set_Referenced): A reference to a formal
        in a parameter association must not set the Referenced flag on
        the formal.
        * prj-nmsc.adb (Check_File_Naming_Schemes): Remove useless formal

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * gnat_rm.texi: Add a section on attribute Descriptor_Size

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in (common-tools, gnatmake-re,
        gnatlink-re): Speed up by using -j0.

2011-09-06  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications): Call
        Set_Corresponding_Aspect when creating pragma from aspect.
        (Add_Predicates): Use new field Corresponding_Aspect.
        * sem_prag.adb (Analyze_Pragma): Make Pname hold source aspect
        name when present, for the purpose of issuing error messages;
        remove local procedure Error_Pragma_Arg_Alternate_Name.
        * sinfo.adb, sinfo.ads (Corresponding_Aspect): New field in
        N_Pragma node.
        (From_Dynamic_Predicate, From_Static_Predicate): Remove fields from
        N_Pragma node.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * checks.adb, s-except.ads, g-socket.adb: Minor reformatting.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch6.adb (Build_Heap_Allocator): Add new
        local variable Desig_Typ. Code and comment reformatting. Add
        machinery to ensure that the allocation uses a fat pointer when
        the type of the return object is a constrained array and the
        function return type is an unconstrained array.

2011-09-06  Vincent Celier  <celier@adacore.com>

        * make.adb, prj-part.adb, prj-nmsc.adb: Remove unused formal
        parameters in subprograms.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

        * s-taprop-mingw.adb (Finalize_TCB): Fix typo.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * s-taprop-vxworks.adb, s-tpoaal.adb, s-tpopsp-vxworks.adb
        (System.Tasking.Primitive_Operations.Specific.Delete): Remove
        subprogram.
        (System.Tasking.Primitive_Operations.Specific.Set): If argument
        is null, destroy task specific data, to make API consistent with
        other platforms, and thus compatible with the shared version
        of s-tpoaal.adb.
        (System.Tasking.Primitive_Operations.ATCB_Allocation.Free_ATCB):
        Document the above assumption.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch6.adb (Expand_Inlined_Call): Fix use of uninitialized
        variable for type of return value when return type is
        unconstrained and context is an assignment.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Check_Class_Wide_Actual): Do not generate body of
        class-wide operation if expansion is not enabled.

2011-09-06  Eric Botcazou  <ebotcazou@adacore.com>

        * checks.adb (Apply_Scalar_Range_Check): Deal with access
        type prefix.

2011-09-06  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications, case
        Aspect_Invariant): Do not issue error at this point on illegal
        pragma placement, as this is checked later on when analyzing
        the corresponding pragma.
        * sem_prag.adb (Error_Pragma_Arg_Alternate_Name): New procedure
        similar to Error_Pragma_Arg, except the source name of the
        aspect/pragma to use in warnings may be equal to parameter
        Alt_Name (Analyze_Pragma, case Pragma_Invariant): refine error
        message to distinguish source name of pragma/aspect, and whether
        the illegality resides in the type being public, or being private
        without a public declaration

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * g-socket.adb (Check_For_Fd_Set): On Windows, no need for bitmap
        size check (fd_set is implemented differently on that platform).

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
        s-tpoaal.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
        s-taprop-solaris.adb, s-taprop-irix.adb, s-taprop.ads,
        s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
        (ATCB_Allocation): New subpackage of
        System.Tasking.Primitive_Operations, shared across all targets
        with full tasking runtime.
        (ATCB_Allocation.New_ATCB): Moved there (from target specific
        s-taprop bodies).
        (ATCB_Allocation.Free_ATCB): New subprogram. Deallocate an ATCB,
        taking care of establishing a local temporary ATCB if the one
        being deallocated is Self, to avoid a reference to the freed
        ATCB in Abort_Undefer.

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * s-tassta.adb, s-taskin.ads (Free_Task): If the task is not
        terminated, mark it for deallocation upon termination.
        (Terminate_Task): Call Free_Task again if the task is marked
        for automatic deallocation upon termination.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * a-cbprqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cusyqu.ads,
        a-intnam-aix.ads, a-intnam-darwin.ads, a-intnam-dummy.ads,
        a-intnam-freebsd.ads, a-intnam-hpux.ads, a-intnam-irix.ads,
        a-intnam-linux.ads, a-intnam-lynxos.ads, a-intnam-mingw.ads,
        a-intnam-solaris.ads, a-intnam-tru64.ads,
        a-intnam-vms.ads, a-intnam-vxworks.ads, a-intnam.ads, interfac.ads,
        cstand.adb, s-maccod.ads: Mark all entities as Implementation_Defined
        * einfo.ads, einfo.adb (Is_Implementation_Defined): New flag
        * par-prag.adb: Add dummy entry for pragma Implementation_Defined
        * s-rident.ads: Add new restriction No_Implementation_Identifiers
        Add new profile No_Implementation_Extensions
        * sem_prag.adb: Implement pragma Implementation_Defined Implement
        profile No_Implementation_Extensions
        * sem_util.adb: Minor reformatting (Set_Entity_With_Style_Check):
        Check violation of restriction No_Implementation_Identifiers
        * snames.ads-tmpl: Add entries for pragma Implementation_Defined
        Add entry for Name_No_Implementation_Extensions

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * impunit.ads: Minor reformatting.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * ali.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting.

2011-09-06  Pascal Obry  <obry@adacore.com>

        * s-osinte-linux.ads, s-oscons-tmplt.c: Use oscons to define sigset_t
        types.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * g-socket.adb: Minor reformatting

2011-09-06  Javier Miranda  <miranda@adacore.com>

        * ali.adb (Scan_ALI): Add missing support to load references of
        entities imported from other languages.
        * ali.ads (Xref_Record): Adding new fields to store the language and
        name of an imported entity.
        * lib-xref.adb (Output_Import_Export_Info): Fix typo
        in comment.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Analyze_Pragma, case Type_Invariant): A type invariant
        is allowed on a full type declaration if it is the completion of
        a private declarations.
        * sem_ch13.adb (Analyze_Aspect_Specifications): An invariant
        aspect is allowed on a full type declaration in the private part
        of a package.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.ads: Minor reformatting

2011-09-06  Thomas Quinot  <quinot@adacore.com>

        * s-oscons-tmplt.c, g-socket.adb (GNAT.Sockets.Clear,Set,Is_Set):
        Guard against socket values that are not in [0;FD_SETSIZE[

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * s-osinte-linux.ads, a-iteint.ads, exp_ch6.adb, s-solita.adb: Minor
        reformatting.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

        * s-linux-alpha.ads: Minor reformatting
        * s-oscons-tmplt.c: Fix generated comments in s-oscons template.
        Use sizeof instead of corresponding C defines in s-oscons template.

2011-09-06  Vadim Godunko  <godunko@adacore.com>

        * a-convec.ads, a-iteint.ads: Minor reformatting.

2011-09-06  Vincent Celier  <celier@adacore.com>

        * projects.texi: Add menus and @node lines.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch6.adb (Expand_Inlined_Call): Handle properly the case
        where the return type is an unconstrained array and the context
        is an assignment. Optimize the case when the target of the
        assignment is a selected component.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

        * s-solita.adb: Update comments.

2011-09-06  Pascal Obry  <obry@adacore.com>

        * s-linux.ads, s-linux-alpha.ads, s-linux-hppa.ads, s-linux-mipsel.ads,
        s-linux-sparc.ads: Remove hard coded and now wrong definitions.
        * s-oscons-tmplt.c: Add support for generating pthread related
        types size on GNU/Linux as done for Darwin.
        * s-osinte-linux.ads: Use s-oscons to define the pthread types.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * exp_ch6.adb: Fix minor typo.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb: Remove with and use clauses for Get_Targ.
        (Alignment_Of): Moved to the body of Nearest_Multiple_Rounded_Up.
        (Double_Size_Of): Alphabetized. Update the comment on usage.
        (Make_Finalize_Address_Stmts): Update comments and reformat code.
        (Nearest_Multiple_Rounded_Up): New routine.
        (Size_Of): Update comment on usage. The generated expression now
        accounts for alignment gaps by rounding the size of the type to the
        nearest multiple rounded up of the type's alignment.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb, g-comlin.adb: Minor reformatting.

2011-09-06  Steve Baird  <baird@adacore.com>

        * exp_ch4.adb (Expand_Allocator_Expression): Look through
        derived subprograms in checking for presence of an
        Extra_Accessibility_Of_Result formal parameter.
        * exp_ch6.adb (Expand_Call): Look through derived subprograms in
        checking for presence of an Extra_Accessibility_Of_Result formal
        parameter.
        (Expand_Call.Add_Actual_Parameter): Fix a bug in the
        case where the Parameter_Associatiations attribute is already set,
        but set to an empty list.
        (Needs_Result_Accessibility_Level):
        Unconditionally return False. This is a temporary
        change, disabling the Extra_Accessibility_Of_Result
        mechanism.
        (Expand_Simple_Function_Return): Check for
        Extra_Accessibility_Of_Result parameter's presence instead of
        testing Ada_Version when generating a runtime accessibility
        check which makes use of the parameter.

2011-09-06  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch4.adb (Expand_N_Case_Expression): Actions created for the
        expression in a given case alternative must be attached to the
        statement list of the ccrresponding case statement alternative
        They cannot be propagated ahead of the case statement, because
        the validity of the expression that generated the action may
        hold only for that alternative.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb: Remove with and use clauses for Get_Targ.
        (Alignment_Of): Remove the code for strict alignment targets.
        (Double_Alignment_Of): Removed.
        (Double_Size_Of): New routine.
        (Make_Finalize_Address_Stmts): Change the
        calculation of the dope's size.  Update relevant comments.
        (Size_Of): New routine.

2011-09-06  Steve Baird  <baird@adacore.com>

        * einfo.ads (Extra_Accessibility): Update associated comment to use
        the term "present" correctly ("present" just means that it is not
        an error to query the value of the attribute - it does not imply
        that the value must be non-null).
        (Extra_Constrained): Ditto.
        (Is_Visible_Formal): Ditto.
        (Extra_Accessibility_Of_Result) Ditto; also add Inline pragma.
        (Set_Extra_Accessibility_Of_Result): Add Inline pragma.
        * exp_ch4.adb (Expand_Allocator_Expression): Improve a comment.
        * exp_ch6.adb (Expand_Call): The callee may require an
        Extra_Accessibility_Of_Result actual parameter even if Ada_Version
        < Ada_2012. This can occur if the callee is exported from a Gnat
        runtimes unit. Also improve a comment.

2011-09-06  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb: Add with and use clauses for Get_Targ.
        (Alignment_Of): Rename formal parameter Some_Typ
        to Typ, update related comment. Use the allocator alignment on
        strict alignment targets such as SPARC.
        (Double_Alignment_Of): Rename formal parameter Some_Typ to Typ, update
        related comment.

2011-09-06  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch9.adb (Check_Interfaces): Test
        Is_Limited_Type rather than Is_Limited_Record when checking that
        the partial view of a synchronized full view must be limited.

2011-09-06  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb (Free): Fix memory leak.

2011-09-06  Robert Dewar  <dewar@adacore.com>

        * sem_util.adb, exp_ch6.adb: Minor reformatting and code reorganization.

2011-09-06  Steve Baird  <baird@adacore.com>

        * einfo.ads (Extra_Accessibility_Of_Result): New function; in the
        (Ada2012) cases described in AI05-0234 where the accessibility
        level of a function result is "determined by the point of
        call", an implicit parameter representing that accessibility
        level is passed in. Extra_Accessibilty_Of_Result yields this
        additional formal parameter. Extra_Accessibility_Of_Result
        is analogous to the existing Extra_Accessibility
        function used in the implementation of access parameters.
        (Set_Extra_Accessibility_Of_Result): New procedure; sets
        Extra_Accessibility_Of_Result attribute.
        * einfo.adb (Extra_Accessibility_Of_Result): New function.
        (Set_Extra_Accessibility_Of_Result): New procedure.
        (Write_Field19_Name): Display Extra_Accessibilty_Of_Result attribute.
        * sem_util.adb (Dynamic_Accessibility_Level): Set Etype of
        an accessibility level literal to Natural; introduce a nested
        function, Make_Level_Literal, to do this.
        * exp_ch6.ads (Needs_Result_Accessibility_Level): New function;
        determines whether a given function (or access-to-function
        type) needs to have an implicitly-declared accessibility-level
        parameter added to its profile.
        (Add_Extra_Actual_To_Call): Export an existing procedure which was
        previously declared in the body of Exp_Ch6.
        * exp_ch6.adb (Add_Extra_Actual_To_Call): Export declaration by moving
        it to exp_ch6.ads.
        (Has_Unconstrained_Access_Discriminants): New Function; a
        predicate on subtype entities which returns True if the given
        subtype is unconstrained and has one or more access discriminants.
        (Expand_Call): When expanding a call to a function which takes an
        Extra_Accessibility_Of_Result parameter, pass in the appropriate
        actual parameter value. In the case of a function call which is
        used to initialize an allocator, this may not be possible because
        the Etype of the allocator may not have been set yet. In this
        case, we defer passing in the parameter and handle it later in
        Expand_Allocator_Expression.
        (Expand_Simple_Function_Return): When returning from a function which
        returns an unconstrained subtype having at least one access
        discriminant, generate the accessibility check needed to ensure that
        the function result will not outlive any objects designated by its
        discriminants.
        (Needs_Result_Accessibility_Level): New function; see exp_ch6.ads
        description.
        * exp_ch4.adb (Expand_Allocator_Expression): When a function call
        is used to initialize an allocator, we may need to pass in "the
        accessibility level determined by the point of call" (AI05-0234)
        to the function. Expand_Call, where such actual parameters are
        usually generated, is too early in this case because the Etype of
        the allocator (which is used in determining the level to be passed
        in) may not have been set yet when Expand_Call executes. Instead,
        we generate code to pass in the appropriate actual parameter
        in Expand_Allocator_Expression.
        * sem_ch6.adb (Create_Extra_Formals): Create
        the new Extra_Accessibility_Of_Result formal if
        Needs_Result_Accessibility_Level returns True. This includes the
        introduction of a nested procedure, Check_Against_Result_Level.

2011-09-06  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in (X86_TARGET_PAIRS): Remove duplicate
        declaration.

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * s-finmas.adb (Set_Finalize_Address): Explain the reason
        for the synchronization. Move the test for null from
        s-stposu.Allocate_Any_Controlled to this routine since the check
        needs to be protected too.
        (Set_Heterogeneous_Finalize_Address): Explain the reason for the
        synchronization code.
        * s-finmas.ads (Set_Heterogeneous_Finalize_Address): Add comment
        explaining the context in which this routine is used.
        * s-stposu.adb (Allocate_Any_Controlled): Move the test for null
        to s-finmas.Set_Finalize_Address.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * einfo.ads: Document that itypes have no parent field.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * rtsfind.adb (Check_CRT): Check for overloaded entity
        * rtsfind.ads: Document that entities to be found by rtsfind
        cannot be overloaded
        * s-taenca.adb, s-tasren.adb, s-tpobop.adb, s-tpoben.ads, s-tpoben.adb
        (Lock_Entries_With_Status): New name for Lock_Entries with two
        arguments (changed to meet rtsfind no overloading rule).

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * s-finmas.adb (Set_Finalize_Address (Address,
        Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
        (Set_Finalize_Address (in out Finalization_Master,
        Finalize_Address_Ptr): Add synchronization code.
        * s-finmas.ads (Set_Finalize_Address (Address,
        Finalize_Address_Ptr)): Renamed to Set_Heterogeneous_Finalize_Address.
        * s-stposu.adb (Allocate_Any_Controlled): Update the call to
        Set_Finalize_Address for the heterogeneous case.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb: Undo previous change, not suitable after all.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * einfo.ads: Minor comment clarification.

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch6.adb (Move_Activation_Chain): Rewritten. The routine
        no longer needs to search through the entities of the return
        statement scope to find the _chain.
        * sem_ch5.adb: Add with and use clauses for Exp_Ch6 and Sem_Ch6.
        (Analyze_Block_Statement): Add local variable
        Is_BIP_Return_Statement. Add machinery to install all entities
        produced by the expansion of the return object declaration.
        (Install_Return_Entities): New routine.
        * sem_ch6.ads, sem_ch6.adb (Install_Entity): Moved from body to spec.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch10.adb (Analyze_Context): Apply simple fixup if context
        of subunit is incomplete.
        (Analyze_Proper_Body): If parent spec is not available, do not
        attempt analysis.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_disp.adb (Find_Controlling_Arg): Add checks for
        interface type conversions, that are expanded into dereferences.

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
        Examine the parameter and return profile of a subprogram and swap
        any incomplete types coming from a limited context with their
        corresponding non-limited views.
        (Exchange_Limited_Views): New routine.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Prepare_Private_Subtype_Completion): Set parent
        of internal entity to the subtype declaration, so that when
        entities are subsequently exchanged in a package body, the tree
        remains properly formatted for ASIS.

2011-09-05  Johannes Kanig  <kanig@adacore.com>

        * g-comlin.adb (Set_Usage): Additional optional argument to set help
        message.
        (Display_Help): display the user given help message, if available.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (OK_For_Limited_Init_In_05): The expression
        is legal if the original node is an identifier that is a
        parameterless function call.

2011-09-05  Pascal Obry  <obry@adacore.com>

        * prj-nmsc.adb: Minor reformatting.
        Add support for standalone aggregate library.
        (Check_Stand_Alone_Library): Handle standalone aggregate library.
        * projects.texi: Fix documentation for aggregate library projects.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb: Minor reformatting.

2011-09-05  Matthew Gingell  <gingell@adacore.com>

        * s-tassta.adb (Task_Wrapper): Ensure that we don't try to write the
        stack guard page on PPC Linux. This patch ensures the 64K guard page at
        the bottom of the stack is not overwritten.

2011-09-05  Thomas Quinot  <quinot@adacore.com>

        * exp_intr.adb, s-tasini.adb: Minor reformatting.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Access_Definition): If an access type declaration
        appears in a child unit, the scope of whatever anonymous type
        may be generated is the child unit itself.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Expression_Function): Do not set
        Comes_From_Source on rewritten body.
        (Analyze_Subprogram_Body_Helper): Check that the original node for
        the body comes from source, when determining whether expansion
        of a protected operation is needed.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb (Replace_Type): If the target of the assignment is
        a selected component and the right-hand side is a self-referential
        access, the proper prefix of the rewritten attribute is a copy
        of the left-hand side, not of its prefix.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * sem_ch5.adb: Minor reformatting.
        * sem_ch3.adb: Minor code clean up.

2011-09-05  Jose Ruiz  <ruiz@adacore.com>

        * exp_ch9.adb (Make_Initialize_Protection): The fact that
        restriction No_Dynamic_Attachment is in effect or not should
        not influence the default priority associated to a protected
        object. With this change, when the restriction is in effect (as
        is the case for the Ravenscar profile) the default priority of
        a protected object with an interrupt handler is in the range of
        interrupt priorities (Default_Interrupt_Priority) as required
        by D.3(10).

2011-09-05  Arnaud Charlet  <charlet@adacore.com>

        * a-iteint.ads: Fix header.

2011-09-05  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Do_Autoconf): Make sure Obj_Dir always ends
        with a directory separator to avoid output such as:
          "/path/to/objauto.cgpr" has been deleted.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb: Better error message.

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_aggr.adb: Add with and use clause for Exp_Ch6.
        (Expand_Array_Aggregate): Detect a special case of an aggregate
        which contains tasks in the context of an unexpanded return
        statement of a build-in-place function.
        * exp_ch6.adb: Add with and use clause for Exp_Aggr.
        (Expand_N_Extended_Return_Statement): Detect a delayed aggregate
        which contains tasks and expand it now that the original simple
        return statement has been rewritten.
        * exp_ch9.adb (Build_Activation_Chain_Entity): Code
        reformatting. Do not create a chain for an extended return
        statement if one is already available.
        (Has_Activation_Chain): New routine.

2011-09-05  Marc Sango  <sango@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): Remove
        the wrong test and add the correct test to detect the violation
        of illegal use of unconstrained string type in SPARK mode.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Specification): Improve error
        message on an iterator over an array.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * lib-xref-alfa.adb: Minor reformatting.

2011-09-05  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_res.adb, par.adb, par-ch6.adb, g-comlin.adb,
        exp_ch6.adb, lib-xref-alfa.adb: Minor reformatting.

2011-09-05  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch7.adb, exp_ch6.adb: Minor reformatting.

2011-09-05  Johannes Kanig  <kanig@adacore.com>

        * lib-xref-alfa.adb: Update comments.

2011-09-05  Thomas Quinot  <quinot@adacore.com>

        * sem_res.adb: Minor reformatting

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch6.adb (Build_In_Place_Formal): If extra formals are not
        present, create them now.  Needed in case the return type was
        a limited view in the function declaration.
        (Make_Build_In_Place_Call_In_Allocator): If return type contains
        tasks, build the activation chain for it.  Pass a reference to
        the Master_Id in call to Add_Task_Actuals_To_Build_In_Place call.
        * exp_ch7.adb (Make_Set_Finalize_Address_Call): Clean up interface
        with build_in_place calls.
        * sem_ch9.adb (Analyze_Task_Type_Declaration): If partial view was
        incomplete, inatialize its Corresponding_Record_Type component.
        * sem_ch10.adb (Build_Chain): Initialize Private_Dependents field
        of limited views.

2011-09-05  Johannes Kanig  <kanig@adacore.com>

        * lib-xref-alfa.adb (Is_Alfa_Reference): Filter constants from effect
        information.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * par-ch6.adb (P_Subprogram): In Ada2012 mode, if the subprogram
        appears within a package specification and the token after "IS"
        is not a parenthesis, assume that this is an unparenthesized
        expression function, even if the token appears in a line by
        itself.
        * par.adb: Clarify use of Labl field of scope stack in error
        recovery.

2011-09-05  Bob Duff  <duff@adacore.com>

        * sem_res.adb (Resolve_Intrinsic_Operator): Use unchecked
        conversions instead of normal type conversions in all cases where a
        type conversion would be illegal. In particular, use unchecked
        conversions when the operand types are private.

2011-09-05  Johannes Kanig  <kanig@adacore.com>

        * lib-xref-alfa.adb (Is_Alfa_Reference): Never declare effects on
        objects of task type or protected type.

2011-09-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Expression_Function): If the expression
        function comes from source, indicate that so does its rewriting,
        so it is compatible with any subsequent expansion of the
        subprogram body (e.g. when it is a protected operation).
        * sem_ch4.adb: minor reformatting

2011-09-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * lib.adb (Check_Same_Extended_Unit): Comment rewriting. Use
        Get_Source_Unit rather than Get_Code_Unit as instantiation unfolding
        may lead to wrong ancestor package in the case of instantiated subunit
        bodies. If a subunit is instantiated, follow the chain of instantiations
        rather than the stub structure.

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch4.adb, sem_ch6.adb: Minor reformatting.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-09-02  Marc Sango  <sango@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): Change
        comment and add additional check to differentiate constant of
        type string from others unconstrained type.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sinfo.ads, sinfo.adb: New semantic attribute Premature_Use,
        present in incomplete type declarations to refine the error
        message the full declaration is in the same unit.
        * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of
        an incomplete type, set the Premature_Use for additional message.
        * sem_ch3.adb (Find_Type_Name): If partial view is incomplete
        and Premature_Use is set, place additional information at the
        point of premature use.

2011-09-02  Bob Duff  <duff@adacore.com>

        * sem_ch6.adb: (Check_Post_State): Suppress warning
        "postcondition refers only to pre-state" when the expression has not
        yet been analyzed, because it causes false alarms. This can happen when
        the postcondition contains a quantified expression, because those are
        analyzed later. This is a temporary/partial fix.
        (Process_Post_Conditions): Minor: change wording of warning.

2011-09-02  Marc Sango  <sango@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): Detect the violation of
        illegal use of unconstrained string type in SPARK mode.
        * sem_res.adb (Analyze_Operator_Symbol): Set the
        right place where the string operand of concatenation should be
        violate in SPARK mode.

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb, sem_util.adb, sem_ch6.adb, prj-nmsc.adb,
        exp_ch3.adb: Minor reformatting.

2011-09-02  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Declare "gcc"
        as the compiler driver so Is_Compilable returns True for sources.
        * prj-nmsc.adb (Override_Kind): When Kind is Sep, set the source
        for the body.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Analyze_PPC_In_Decl_Part): for a class-wide
        condition, a reference to a controlling formal must be interpreted
        as having the class-wide type (or an access to such) so that the
        inherited condition can be properly applied to any overriding
        operation (see ARM12 6.6.1 (7)).

2011-09-02  Tristan Gingold  <gingold@adacore.com>

        * init.c (__gnat_is_vms_v7): Fix case and add prototype
        for LIB$GETSYI.

2011-09-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch3.adb (Expand_N_Object_Declaration): Do not copy the
        initializing expression of a class-wide interface object declaration
        if its type is limited.

2011-09-02  Johannes Kanig  <kanig@adacore.com>

        * sem_util.adb (Unique_Name): To obtain a unique name for enumeration
        literals, take into account the type name; the type is *not*
        the scope for an enumeration literal.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Check_Overriding_Indicator): add special check
        to reject an overriding indicator on a user-defined Adjust
        subprogram for a limited controlled type.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Actuals): add missing call to Resolve
        for an actual that is a function call returning an unconstrained
        limited controlled type.

2011-09-02  Tristan Gingold  <gingold@adacore.com>

        * g-socthi-vms.adb (c_sendmsg, c_recvmsg): Use unpacked msg if on vms 7

2011-09-02  Johannes Kanig  <kanig@adacore.com>

        * alfa.ads (Name_Of_Heap_Variable): Change value of the HEAP variable
        from "HEAP" to __HEAP Change comment that refers to that variable
        * put_alfa.adb: Change comment that refers to that variable

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting.

2011-09-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb (Extract_Renamed_Object): Renamed to
        Find_Renamed_Object. This routine has been reimplemented and now uses
        tree traversal to locate a renamed object.
        (Is_Aliased): Replace call to Extract_Renamed_Object with
        Find_Renamed_Object.

2011-09-02  Tristan Gingold  <gingold@adacore.com>

        * init.c: (__gnat_is_vms_v7): New function.

2011-09-02  Olivier Hainque  <hainque@adacore.com>

        * tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on frames
        that have a misaligned backchain, necessarily bogus.

2011-09-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not create
        TSS routine Finalize_Address when compiling in Alfa mode.
        (Expand_Freeze_Record_Type): Do not create TSS routine
        Finalize_Address when compiling in Alfa mode.
        * exp_ch4.adb (Expand_Allocator_Expression): Do not produce a
        call to Set_Finalize_Address in Alfa mode because Finalize_Address is
        not built.
        (Expand_N_Allocator): Do not produce a call to
        Set_Finalize_Address in Alfa mode because Finalize_Address is not built.
        * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Do not
        produce a call to primitive Set_Finalize_Address in Alfa mode because
        Finalize_Address is not built.
        * exp_ch7.adb (Build_Finalization_Master): Do not create
        finalization masters in Afa mode since they are not needed.
        (Build_Finalizer): Do not create scope and library-level
        finalizers in Alfa mode since they are not needed.
        * exp_util.adb (Build_Allocate_Deallocate_Proc): Do not expand
        "new" and "free" when applied to controlled objects in Alfa mode since
        this is not needed.

2011-09-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.db: (Check_Stand_Alone_Library): For SALs, allow
        only library names with the syntax of Ada identifiers, to avoid errors
        when compiling the binder generated files.
        * projects.texi: Document restriction on SAL library names

2011-09-02  Thomas Quinot  <quinot@adacore.com>

        * a-chtgbo.adb: Minor comment fix.

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * lib-xref.adb: Minor reformatting

2011-09-02  Vincent Celier  <celier@adacore.com>

        * bindusg.adb, clean.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
        gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, makeusg.adb: Add
        --version and --help in usage.
        * switch.ads, switch.adb (Display_Usage_Version_And_Help): New procedure

2011-09-02  Bob Duff  <duff@adacore.com>

        * lib-xref.adb: (Hash): Avoid use of 'Mod attribute, because old
        compilers don't understand it.

2011-09-02  Gary Dismukes  <dismukes@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference): Pass the
        underlying subtype rather than its base type on the call to
        Build_Record_Or_Elementary_Input_Function, so that any
        constraints on a discriminated subtype will be available for
        doing the check required by AI05-0192.
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
        If the prefix subtype of the 'Input attribute is a constrained
        discriminated subtype, then check each constrained discriminant value
        against the corresponding value read from the stream.

2011-09-02  Yannick Moy  <moy@adacore.com>

        * usage.adb, warnsw.adb, sem_ch6.adb, opt.ads: Disable by default
        warnings on suspicious contracts, and enable them with -gnatwa.

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb, exp_ch9.adb, sem_attr.adb, sem_ch6.adb: Minor
        reformatting.

2011-09-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch9.adb (Install_Private_Data_Declarations): Add guards
        which ensure that restriction No_Dynamic_Attachment has not been
        violated.
        (Make_Initialize_Protection): Protected types with attach or
        interrupt handlers must not violate restriction No_Dynamic_Attachment.
        * exp_util.adb (Corresponding_Runtime_Package): Add a guard
        which ensures that restriction No_Dynamic_Attachment has not been
        violated.
        * sem_attr.adb: (Eval_Attribute): Transform
        VAX_Float_Type'First and 'Last into references to
        the temporaries which store the corresponding bounds. The
        transformation is needed since the back end cannot evaluate
        'First and 'Last on VAX.
        (Is_VAX_Float): New routine.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Subprogram_Instantiation): If the
        generic unit is not intrinsic and has an explicit convention,
        the instance inherits it.

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * prj-dect.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, prj-tree.adb,
        prj.adb, prj.ads, sem_ch5.adb: Minor reformatting.

2011-09-02  Thomas Quinot  <quinot@adacore.com>

        * sem_attr.adb (Analyze_Attribute, case Unrestriced_Access):
        Guard against a prefix that is an N_Has_Entity but has no
        associated entity.

2011-09-02  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Is_Alfa_Reference): Ignore IN parameters in Alfa
        references.

2011-09-02  Yannick Moy  <moy@adacore.com>

        * opt.ads (Warn_On_Suspicious_Contract): New warning flag.
        * sem_ch3.adb (Analyze_Declarations): Call checker for suspicious
        contracts.
        * sem_ch6.adb, sem_ch6.ads (Check_Subprogram_Contract): New
        procedure looking for suspicious postconditions.
        * usage.adb (Usage): New options -gnatw.t and -gnatw.T.
        * warnsw.adb (Set_Dot_Warning_Switch): Take into account new
        options -gnatw.t and -gnatw.T.

2011-09-02  Pascal Obry  <obry@adacore.com>

        * prj.adb: Minor code refactoring. Move check for null project in
        Project_Changed.
        * projects.texi: Fix minor typos.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iterator_Specification): If the domain
        of iteration is an expression, its value must be captured in a
        renaming declaration, so that modification of the elements is
        propagated to the original container.

2011-09-02  Pascal Obry  <obry@adacore.com>

        * prj-proc.adb, prj.adb, makeutl.adb, makeutl.ads, prj-dect.adb,
        prj-nmsc.adb, prj-util.adb, prj-conf.adb, prj-env.adb,
        prj-tree.adb: Minor reformatting and style fixes.

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * s-rident.ads: Add new restriction No_Implicit_Aliasing
        * sem_attr.adb: (Analyze_Access_Attribute): Deal with
        No_Implicit_Aliasing
        (Analyze_Attribute, case Address): ditto
        (Analyze_Attribute, case Unrestricted_Access): ditto
        * sem_util.ads, sem_util.adb: (Is_Aliased_View): Handle
        No_Implicit_Aliasing restriction.
        * gnat_rm.texi: Add documentation for No_Implicit_Aliasing

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * exp_util.adb: (Possible_Bit_Aligned_Object): If the object
        is an unchecked conversion, apply test to its expression.

2011-09-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Check_Abstract_Overriding): When
        traversing the chain of aliased subprograms avoid reporting a
        redundant error on the current entity.

2011-09-02  Sergey Rybin  <rybin@adacore.com>

        * gnat_ugn.texi: Minor clean up.

2011-09-02  Bob Duff  <duff@adacore.com>

        * s-htable.adb (Set_If_Not_Present): Use renaming
        instead of ":=", because the type Key is limited in the generic (even
        if not in the instances).

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb, sem_ch10.adb, sem_attr.adb, s-htable.adb,
        g-comlin.adb, g-comlin.ads, lib-xref-alfa.adb, lib-xref.adb: Minor
        reformatting.

2011-09-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch3.adb: (Set_Anonymous_Type): Associate the itype of an
        inherited component with the enclosing derived type. Code reformatting.

2011-09-02  Gary Dismukes  <dismukes@adacore.com>

        * checks.adb: (Determine_Range): Add test of OK1 to prevent the early
        return done when overflow checks are enabled, since comparisons against
        Lor and Hir should not be done when OK1 is False.

2011-09-02  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
        Add new formal Master_Exp. When present, add that expression to the
        call as an extra actual.
        (Make_Build_In_Place_Call_In_Object_Declaration): Add variable
        Fmaster_Actual and in the case of a BIP call initializing a return
        object of an enclosing BIP function set it to a
        new reference to the implicit finalization master
        formal of the enclosing function. Fmaster_Actual is
        then passed to the new formal Master_Exp on the call to
        Add_Finalization_Master_Actual_To_Build_ In_Place_Call. Move
        initializations of Enclosing_Func to its declaration.

2011-09-02  Thomas Quinot  <quinot@adacore.com>

        * csets.ads: Minor reformatting

2011-09-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_aggr.adb: (Get_Constraint_Association): Add code to retrieve
        the full view of a private type coming from an instantiation.
        * exp_ch4.adb: (Current_Anonymous_Master): Reimplement the search
        loop to iterate over the declarations rather than use the
        First_Entity / Next_Entity scheme.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb: (Analyze_Attribute, case 'Range): when expanding
        X'range (N) into X'First (N) ..  X'Last (N), do not share the
        dimension indicator N, if present. Even though it is a static
        constant, its source location may be modified when printing
        expanded code under -gnatDL, and node sharing will lead to chaos
        in Sprint on large files, by generating a sloc value that does
        not correspond to any source file.

2011-09-02  Bob Duff  <duff@adacore.com>

        * einfo.adb: (Has_Xref_Entry): Do not call
        Implementation_Base_Type. Lib.Xref has been
        rewritten to avoid the need for it, and it was costly.
        * s-htable.ads,s-htable.adb: (Present,Set_If_Not_Present): New
        functions in support of efficient xref.
        * lib-xref-alfa.adb: Misc changes related to Key component of
        type Xref_Entry.
        * lib-xref.adb: (Add_Entry,etc): Speed improvement.
        (New_Entry): Call Implementation_Base_Type, because Has_Xref_Entry
        no longer does. This is the one place where it is needed.

2011-09-02  Johannes Kanig  <kanig@adacore.com>

        * g-comlin.adb (Getopt): New optional argument Concatenate to have
        similar interface as the other Getopt function.

2011-09-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb: (Expand_Allocator_Expression): Do not generate
        a call to Set_Finalize_Address if there is no allocator available.
        * exp_util.adb: (Build_Allocate_Deallocate_Proc): Account for
        a case of allocator expansion where the allocator is not expanded but
        needs a custom allocate routine. Code reformatting.
        (Is_Finalizable_Transient): Remove local variables Has_Rens and
        Ren_Obj. Code reformatting.
        (Is_Renamed): Renamed to Is_Aliased. Add code to detect aliasing
        through the use of 'reference.
        * sem_ch4.adb: (Analyze_Allocator): Detect allocators generated
        as part of build-in-place expansion. They are intentionally marked as
        coming from source, but their parents are not.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch10.adb (Analyze_With_Clause): If the library unit
        is the generated subprogram declaration for a child unit body
        that acts as spec, use the original body in the with_clause,
        to prevent binding errors.

2011-09-02  Vincent Celier  <celier@adacore.com>

        * gnat_ugn.texi: Adapt documentation of -gnateInnn to new VMS
        qualifier /MULTI_UNIT_INDEX=

2011-09-02  Johannes Kanig  <kanig@adacore.com>

        * g-comlin.adb (Getopt): Return when switch is dealt with automatically,
        instead of calling the callback function

2011-09-02  Robert Dewar  <dewar@adacore.com>

        * prj-proc.adb, prj.ads, sem_util.adb, s-taprop-linux.adb,
        prj-nmsc.adb, prj-util.ads, prj-env.adb: Minor reformatting.

2011-09-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb: (Find_Sources): When the list of sources is
        explicitly declared in an extending project, do not warn if a source
        for an inherited naming exception is not found.

2011-09-02  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.adb: (Is_Build_In_Place_Function_Call): Return False if
        expansion is inactive.

2011-09-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.adb (Note_Possible_Modification): If the entity
        being modified is the renaming generated for an Ada2012 iterator
        element, the enclosing container or array is modified as well.

2011-09-02  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB,
        Initialize): Define and initialize the
        mutex attributes and condition variable attributes locally.

2011-09-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Check_File): Mark as Locally_Removed a naming
        exception replaced in an extending project.
        (Check_Object): No error when the other source is locally removed.

2011-09-02  Yannick Moy  <moy@adacore.com>

        * exp_ch6.adb (Is_Build_In_Place_Function_Call): in Alfa mode, allow
        unresolved calls.

2011-08-31  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in: Clean up handling of x86 and x86-64
        run-time files.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, s-taprop-linux.adb, gnatls.adb: Minor reformatting.

2011-09-01  Jose Ruiz  <ruiz@adacore.com>

        * adaint.h (__gnat_cpu_free): Fix the name of this profile.
        * adaint.c (__gnat_cpu_alloc, __gnat_cpu_alloc_size, __gnat_cpu_free,
        __gnat_cpu_zero, __gnat_cpu_set): Create version of these subprograms
        specific for systems where their glibc version does not define the
        routines to handle dynamically allocated CPU sets.

2011-09-01  Vincent Celier  <celier@adacore.com>

        * prj-proc.adb, prj.ads, prj-nmsc.adb, prj-util.adb, prj-util.ads,
        prj-env.adb: Implement inheritance of naming exceptions in extending
        projects.

2011-09-01  Romain Berrendonner  <berrendo@adacore.com>

        * gnatls.adb: Display simple message instead of content of
        gnatlic.adl.

2011-09-01  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch3.adb: (Build_Derived_Record_Type) Remove the kludgy update of
        access discriminant and anonymous access component scopes.
        (Inherit_Component): Reuse the itype of an access discriminant
        or anonymous access component by copying it in order to set the proper
        scope. This is done only when the parent and the derived type
        are in different scopes.
        (Set_Anonymous_Etype): New routine.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * a-convec.adb: Minor reformatting throughout.

2011-09-01  Jose Ruiz  <ruiz@adacore.com>

        * adaint.c, adaint.h (__gnat_cpu_alloc, __gnat_cpu_alloc_size,
        __gnat_cpu_set_free): Create these wrappers around the CPU_ALLOC,
        CPU_ALLOC_SIZE and CPU_FREE linux macros.
        (__gnat_cpu_zero, __gnat_cpu_set): Use the CPU_ZERO_S and
        CPU_SET_S respectively because we are now using dynamically allocated
        CPU sets which are more portable across different glibc versions.
        * s-osinte-linux.ads (cpu_set_t_ptr, CPU_ALLOC, CPU_ALLOC_SIZE,
        CPU_FREE): Add this type and subprograms to be able to create cpu_set_t
        masks dynamically according to the number of processors in the target
        platform.
        (CPU_ZERO, CPU_SET): They are now mapped to the CPU_ZERO_S and CPU_SET_S
        respectively, so we need to pass the size of the masks as
        parameters.
        * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use dynamically
        created cpu_set_t masks
        with the number of processors available in the target platform,
        instead of static bit arrays. It enhances portability because
        it uses the information from the target platform.
        * sem_ch8.adb: (Attribute_Renaming): When checking whether we
        are using a restricted run-time library, use the flag
        Configurable_Run_Time_Mode instead of Restricted_Profile.

2011-09-01  Vincent Celier  <celier@adacore.com>

        * ug_words: Add /MULTI_UNIT_INDEX= -> -gnateI
        * vms_data.ads: Add new VMS qualifier equivalent for -gnateInnn

2011-09-01  Nicolas Roche  <roche@adacore.com>

        * adaint.c (__gnat_tmp_name): Don't use tmpnam function from the system
        on VxWorks in kernel mode.

2011-09-01  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-linux.adb (Create_Task, Set_Task_Affinity): Use the linux
        macros for handling CPU sets (CPU_ZERO, CPU_SET) instead of modifying
        directly the bit array.
        * s-osinte-linux.ads (CPU_ZERO, CPU_SET): Import these wrappers around
        the linux macros with the same name.
        * adaint.h, adaint.c (__gnat_cpu_zero, __gnat_cpu_set): Create these
        wrappers around the CPU_ZERO and CPU_SET linux macros.

2011-09-01  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Find_Insertion_List): Removed.
        (Process_Transient_Objects): Insert the declarations of the hook
        access type and the hook object before the associated transient object.

2011-09-01  Jose Ruiz  <ruiz@adacore.com>

        * sem_ch8.adb (Attribute_Renaming): Add missing check to avoid loading
        package System.Aux_Dec when using restricted run-time libraries which
        do not have this package.

2011-09-01  Tristan Gingold  <gingold@adacore.com>

        * s-vaflop-vms-alpha.adb: Remove pragma optimize, useless.

2011-09-01  Bob Duff  <duff@adacore.com>

        * sem_attr.adb (Analyze_Access_Attribute): Do not call
        Kill_Current_Values for P'Unrestricted_Access, where P is library level

2011-09-01  Thomas Quinot  <quinot@adacore.com>

        * exp_ch5.adb: Minor reformatting
        * gnat_ugn.texi: Fix minor typos.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * inline.adb, sem_aggr.adb: Minor reformatting.

2011-09-01  Ed Schonberg  <schonberg@adacore.com>

        * a-convec.adb: Proper handling of cursors for Ada2012 iterators.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * prj-proc.adb, exp_ch6.adb, prj-env.adb: Minor reformatting.

2011-09-01  Bob Duff  <duff@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): Need to treat "in instance
        body" the same as "in inlined body", because visibility shouldn't
        apply there.

2011-09-01  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Add_Inlined_Body): Refine previous change.

2011-09-01  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.ads (Needs_BIP_Alloc_Form): New utility function.
        * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
        Test for case where call
        initializes an object of a return statement before testing for
        a constrained call, to ensure that all such cases get handled
        by simply passing on the caller's parameters. Also, in that
        case call Needs_BIP_Alloc_Form to determine whether to pass on
        the BIP_Alloc_Form parameter of the enclosing function rather
        than testing Is_Constrained. Add similar tests for the return
        of a BIP call to later processing to ensure consistent handling.
        (Needs_BIP_Alloc_Form): New utility function.
        * sem_ch6.adb: (Create_Extra_Formals): Replace test for adding
        a BIP_Alloc_Form formal with call to new utility function
        Needs_BIP_Alloc_Form.

2011-09-01  Pascal Obry  <obry@adacore.com>

        * prj-part.adb: Minor reformatting.

2011-09-01  Vincent Celier  <celier@adacore.com>

        * prj-env.adb (Create_Mapping_File.Process): Encode the upper
        half character in the unit name.

2011-09-01  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb: Minor code and comment reformatting.

2011-09-01  Thomas Quinot  <quinot@adacore.com>

        * exp_ch6.adb (Expand_Inlined_Call): Remove redundant tests
        for Is_Limited_Type and Is_Tagged_Type in condition checking
        for by-reference type.
        * inline.adb (Add_Inlined_Body): Only exclude init_procs. Other
        subprograms may have a completion because of a previous
        Inline_Always clause, but the enclosing package must be marked
        inlined for the subprogram body to become visible to the backend.

2011-09-01  Thomas Quinot  <quinot@adacore.com>

        * sem_aux.adb, exp_ch4.adb: Minor reformatting

2011-09-01  Pascal Obry  <obry@adacore.com>

        * prj-proc.adb, prj.ads, sinput-p.adb: Minor reformatting.

2011-09-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Generate references to
        the formals of a subprogram stub that acts as a spec.

2011-09-01  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch6.adb (Expand_Inlined_Call): If an actual is a by_reference
        type, declare a renaming for it, not an object declaration.

2011-09-01  Yannick Moy  <moy@adacore.com>

        * ali-util.adb, ali-util.ads (Read_Withed_ALIs): Add parameter
        Ignore_Errors to ignore failures to read ALI files when True.

2011-09-01  Javier Miranda  <miranda@adacore.com>

        * exp_ch3.adb (Expand_N_Object_Declaration): Handle non-default
        constructor calls associated with non-tagged record types.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * g-socthi-vms.adb: Minor reformatting.

2011-09-01  Nicolas Roche  <roche@adacore.com>

        * sysdep.c: Don't use macro functions for stdio functions on VxWorks
        in order to avoid impact of imcompatible changes.
        * cstreams.c: Likewise
        * cio.c: Likewise
        * aux-io.c: Likewise

2011-09-01  Yannick Moy  <moy@adacore.com>

        * lib-writ.adb (Write_With_Lines): Always output complete information
        on "with" line in Alfa mode, as this is required by formal verification
        back-end.

2011-09-01  Tristan Gingold  <gingold@adacore.com>

        * g-socthi-vms.adb: Add comments.

2011-09-01  Pascal Obry  <obry@adacore.com>

        * prj.ads: Minor reformatting.

2011-09-01  Vincent Celier  <celier@adacore.com>

        * prj-env.adb (Create_Config_Pragmas_File.Check): Put all naming
        exceptions in the config pragmas file.

2011-09-01  Tristan Gingold  <gingold@adacore.com>

        * gnat_ugn.texi: Document GNAT_STACK_SIZE on IVMS.

2011-09-01  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Find_Insertion_List): New routine.
        (Process_Transient_Objects): Add code to handle the abnormal
        finalization of a controlled transient associated with a subprogram
        call. Since transients are cleaned up right after the associated
        context, an exception raised during a subprogram call may bypass the
        finalization code.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * exp_ch6.adb (Expand_Call): Check actual for aliased parameter is
        aliased.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb, a-exexda.adb: Minor reformatting.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * s-taskin.ads, s-tassta.adb, sem_ch13.adb: Minor reformatting.

2011-09-01  Thomas Quinot  <quinot@adacore.com>

        * Makefile.rtl: Move s-oscons.o from GNATRTL_TASKING_OBJS to
        GNATRTL_NONTASKING_OBJS.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * einfo.ads (Is_Aliased): Fix existing documentation and add note on
        possibility of this flag being set for formals in Ada 2012 mode.
        * par-ch6.adb (P_Formal_Part): Handle aliased for parameters for Ada
        2012.
        * sem_ch6.adb (Process_Formals): Handle aliased parameters in Ada 2012
        mode.
        * sinfo.adb (Aliased_Present): Allowed in N_Parameter_Specification for
        Ada 2012.
        * sinfo.ads (Aliased_Present): Allowed in N_Parameter_Specification for
        Ada 2012.

2011-09-01  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Find_Insertion_Node): New routine. Determines the proper
        insertion node in a tree of nested Expression_With_Actions nodes.
        (Process_Transient_Object): In the case where a complex if statement
        has been converted into nested Expression_With_Actions nodes, the
        "hook" object and the associated access type must be inserted before
        the top most Expression_With_Actions.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * a-cbprqu.adb, a-cbprqu.ads, a-cuprqu.adb, a-cuprqu.ads,
        a-cbsyqu.adb, a-cbsyqu.ads: Minor reformatting.

2011-09-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb: Conditionalize aliasing predicates to Ada2012.

2011-09-01  Jose Ruiz  <ruiz@adacore.com>

        * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the CPU
        aspect.
        * aspects.adb (Canonical_Aspect): Add entry for the CPU aspect.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the CPU aspect
        in a similar way as we do for the Priority or Dispatching_Domain aspect.
        * s-mudido-affinity.adb (Dispatching_Domain_Tasks,
        Dispatching_Domains_Frozen): Move this local data to package
        System.Tasking because with the CPU aspect we need to have access
        to this data when creating the task in System.Tasking.Stages.Create_Task
        * s-taskin.ads (Dispatching_Domain_Tasks, Dispatching_Domains_Frozen):
        Move these variables from the body of
        System.Multiprocessors.Dispatching_Domains because with the CPU aspect
        we need to have access to this data when creating the task in
        System.Tasking.Stages.Create_Task.
        * s-taskin.adb (Initialize): Signal the allocation of the environment
        task to a CPU, if any, so that we know whether the CPU can be
        transferred to a different dispatching domain.
        * s-tassta.adb (Create_Task): Check whether the CPU to which this task
        is being allocated belongs to the dispatching domain where the task
        lives. Signal the allocation of the task to a CPU, if any, so that we
        know whether the CPU can be transferred to a different dispatching
        domain.

2011-09-01  Ed Schonberg  <schonberg@adacore.com>

        * exp_attr.adb, sem_attr.adb, snames.ads-tmpl: Implementation of
        attributes Same_Storage and Overlaps_Storage.

2011-09-01  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_strm.adb: Remove with and use clause for Opt.
        (Build_Array_Input_Function): Remove the version-dependent generation
        of the return statement. The Ada 2005 tree is now the default.

2011-09-01  Yannick Moy  <moy@adacore.com>

        * put_alfa.adb: Unconditionnally write files in Alfa section, so that
        it is never empty when compiling in Alfa mode.

2011-09-01  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb, sem_ch3.adb, a-direct.adb, s-taprop-vxworks.adb,
        comperr.adb, exp_ch9.adb, exp_pakd.adb, sem_ch12.adb, freeze.adb,
        s-taprop-mingw.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
        gnat1drv.adb, a-rbtgbo.adb, exp_dist.adb: Minor reformatting

2011-09-01  Matthew Heaney  <heaney@adacore.com>

        * Makefile.rtl, impunit.adb: Add a-csquin.ads, a-cusyqu.ad[sb],
        a-cuprqu.ad[sb], a-cbsyqu.ad[sb], a-cbprqu.ad[sb]
        * a-csquin.ads: New Ada 2012 unit that specifies the queue interface
        * a-cusyqu.ads, a-cusyqu.adb: New Ada 2012 unit that specifies the
        unbounded queue container.
        * a-cbsyqu.ads, a-cbsyqu.adb: New Ada 2012 unit that specifies the
        bounded queue container.
        * a-cuprqu.ads, a-cuprqu.adb: New Ada 2012 unit that specifies the
        unbounded priority queue container.
        * a-cbprqu.ads, a-cbprqu.adb: New Ada 2012 unit that specifies the
        bounded priority queue container.

2011-08-31  Pascal Obry  <obry@adacore.com>

        * a-direct.adb: Do not try to create an UNC path on Windows.
        (Create_Path): Skip leading computer name in UNC path if any.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): Remove the
        version-dependent generation of the return statement. The Ada 2005 tree
        is now the default.

2011-08-31  Thomas Quinot  <quinot@adacore.com>

        * rtsfind.ads, exp_dist.adb (Find_Numeric_Representation): Predefined
        types Stream_Element_Offset and Storage_Offset have a different native
        type depending on whether the platform is 32 or 64 bits. When
        exchanging them, always convert to 64 bits.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * debug.adb: Reserve debug option -gnatd.E for passing gnatprove option
        --force-alfa to gnat2why.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Save_References): If the node has aspects, save
        references within the corresponding expressions in a separate step,
        because the aspects are not directly in the tree for the declaration
        to which they belong.

2011-08-31  Arnaud Charlet  <charlet@adacore.com>

        * freeze.adb (Freeze_Record_Type): Omit test on variable size component
        in CodePeer mode, since representation clauses are partially ignored.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-31  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
        s-taprop-solaris.adb (Create_Task): Not_A_Specific_CPU can be assigned
        to any dispatching domain.

2011-08-31  Thomas Quinot  <quinot@adacore.com>

        * exp_ch4.adb: Minor reformatting.

2011-08-31  Bob Duff  <duff@adacore.com>

        * sem_ch6.adb (Get_Generic_Parent_Type): Don't query Subtype_Indication
        on nodes for which it is not defined.
        (Is_Non_Overriding_Operation): Exit the loop when we find a generic
        parent type.

2011-08-31  Bob Duff  <duff@adacore.com>

        * sem_ch3.adb (Process_Full_View): Disable legality check if
        In_Instance, to avoid spurious errors.
        * sem_ch12.adb (Validate_Derived_Type_Instance): Disable legality check
        if In_Instance, to avoid spurious errors.

2011-08-31  Pascal Obry  <obry@adacore.com>

        * a-direct.adb: Use Dir_Seps everywhere to properly handle all
        directory speparators.
        (Compose): Use Dir_Seps to handle both forms.
        (Create_Path): Use Dir_Seps instead of explicit check, no semantic
        changes.
        (Extension): Use Dir_Seps to handle both forms.

2011-08-31  Pascal Obry  <obry@adacore.com>

        * prj-conf.adb: Minor reformatting.

2011-08-31  Jose Ruiz  <ruiz@adacore.com>

        * aspects.ads (Aspect_Id, Aspect_Argument, Aspect_Names): Add the
        dispatching domain aspect.
        * aspects.adb (Canonical_Aspect): Add entry for the dispatching domain
        aspect.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze the
        Dispatching_Domain aspect in a similar way as we do for the Priority
        aspect.
        * exp_ch9.adb (Expand_N_Task_Type_Declaration): Add the
        Dispatching_Domain component if a Dispatching_Domain pragma or aspect
        is present.
        (Make_Task_Create_Call): Add the Dispatching_Domain when creating a task
        * par-prag.adb (Prag): Add Pragma_Dispatching_Domain as a known pragma.
        * sem_prag.adb (Analyze_Pragma): Check the correctness of a pragma
        Dispatching_Domain and add it to the task definition.
        (Sig_Flags): Add Pragma_Dispatching_Domain.
        * rtsfind.ads, rtsfind.adb (RTU_Id, RE_Id, Get_Unit_Name): Add the
        support to find the types Dispatching_Domain and
        Dispatching_Domain_Access.
        * sinfo.ads, sinfo.adb (Has_Pragma_Dispatching_Domain,
        Set_Has_Pragma_Dispatching_Domain): Add these subprograms to set and
        query the availability of a pragma Dispatching_Domain.
        * snames.ads-tmpl (Name_uDispatching_Domain): Add this name required by
        the expander to pass the Dispatching_Domain when creating a task.
        (Name_Dispatching_Domain): Add this new name for a pragma.
        (Pragma_Id): Add the new Pragma_Dispatching_Domain.
        * s-tassta.ads, s-tassta.adb (Create_Task): Set the domain to which the
        task has been allocated at creation time.
        * s-tarest.adb (Create_Restricted_Task): The dispatching domain using
        Ravenscar is always null.
        * s-taskin.ads, s-taskin.adb (Initialize_ATCB): Set the domain to which
        the task has been allocated at creation time.
        * s-tporft.adb (Register_Foreign_Thread): A foreign task will not have
        a specific dispatching domain.
        * s-taprop-linux.adb, s-taprop-solaris.adb, s-taprop-vxworks.adb,
        s-taprop-mingw.adb (Create_Task): Check whether both Dispatching_Domain
        and CPU are specified for the task, and the CPU value is not contained
        within the range of processors for the domain.

2011-08-31  Vincent Celier  <celier@adacore.com>

        * make.adb (Original_Gcc) : New constant String_Access.
        (Gnatmake): For VM targets, do not use VM version of the compiler if
        --GCC= has been specified.

2011-08-31  Thomas Quinot  <quinot@adacore.com>

        * sem_ch5.adb: Minor reformatting.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * exp_pakd.adb (Convert_To_PAT_Type): If prefix is a function call, do
        not reanalyze it.

2011-08-31  Bob Duff  <duff@adacore.com>

        * exp_ch4.adb (Expand_N_Selected_Component): Use the full type, in case
        the access type is private; we don't care about privacy in expansion.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): In an instance, ignore aggregate
        subcomponents tnat may be limited, because they originate in view
        conflicts. If the original aggregate is legal and the actuals are
        legal, the aggregate itself is legal.

2011-08-31  Matthew Heaney  <heaney@adacore.com>

        * a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lock
        status.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb: Set kind of loop parameter properly, to preserve all
        errors in B tests.

2011-08-31  Jose Ruiz  <ruiz@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications): For the Priority and
        Interrupt_Priority aspects, force the analysis of the aspect expression
        (when building the equivalent pragma). Otherwise, its analysis is done
        too late, after the task or protected object has been created.
        * sem_ch9.adb (Analyze_Single_Protected_Declaration,
        Analyze_Single_Task_Declaration): Remove the code to move the aspects
        to the object declaration because they are needed in the type
        declaration.

2011-08-31  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, exp_ch7.ads, sem_ch5.adb, put_scos.adb, s-rannum.adb,
        a-rbtgbo.adb, exp_intr.adb, a-cbdlli.adb, a-cbdlli.ads: Minor
        reformatting.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb (Find_Protection_Type): Do not look for fields _object
        if the corresponding type is malformed due to restriction violations.

2011-08-31  Robert Dewar  <dewar@adacore.com>

        * s-ransee.ads, s-ransee.adb: Minor reformatting.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Expand_N_Allocator): Correct faulty condition which
        would cause the generation of Set_Finalize_Address if the target is a
        VM and the designated type is not derived from [Limited_]Controlled.

2011-08-31  Arnaud Charlet  <charlet@adacore.com>

        * comperr.adb, comperr.ads, gnat1drv.adb (Delete_SCIL_Files): New
        subprogram.
        (Compiler_Abort, Gnat1drv): Call Delete_SCIL_Files in codepeer mode in
        case of a compilation error.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * init.c (__gnat_error_handler): Standardize the stack overflow or
        erroneous memory access message.
        * seh_init.c (__gnat_SEH_error_handler): Standardize the stack overflow
        or erroneous memory access message.

2011-08-31  Robert Dewar  <dewar@adacore.com>

        * sem_ch4.adb: Minor reformatting.
        * sem_ch6.adb: Minor code reorganization (use Ekind_In).

2011-08-31  Thomas Quinot  <quinot@adacore.com>

        * scos.ads: Minor documentation clarification.
        * put_scos.adb: Do not generate SCO unit header line for a unit that
        has no SCO lines.

2011-08-31  Robert Dewar  <dewar@adacore.com>

        * a-rbtgbo.adb, alfa_test.adb: Minor reformatting.

2011-08-31  Tristan Gingold  <gingold@adacore.com>

        * exp_ch7.ads, exp_ch7.adb (Finalization_Exception_Data): New type to
        hold variables between these following subprograms.
        (Build_Exception_Handler, Build_Object_Declarations,
        Build_Raise_Statement): Use the above type as parameter.
        Make the above adjustments.
        * exp_intr.adb (Expand_Unc_Deallocation): Adjust.

2011-08-31  Pascal Obry  <obry@adacore.com>

        * projects.texi: Minor reformatting.

2011-08-31  Tristan Gingold  <gingold@adacore.com>

        * s-ransee.ads, s-ransee.adb: Add system.random_seed unit.
        * s-rannum.adb (Reset): Use Get_Seed from s-ransee.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb: Minor code cleanup.
        * sem_ch5.adb (Analyze_Iteration_Scheme): Set ekind of loop variable to
        prevent cascaded errors.
        (Analyze_Loop_Statement): In semantics-only mode, introduce loop
        variable of an iterator specification in current scope.
        * sem_ch6.adb (Analyze_Return_Statement, Find_what_It_Apples_To): Skip
        postconditions on the stack, as they contain no return statements.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * exp_alfa.adb (Expand_Alfa_N_Package_Declaration,
        Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simply
        call Qualify_Entity_Names.
        (Expand_Alfa): call Qualify_Entity_Names in more cases
        * lib-xref-alfa.adb: Take into account system package.
        * sem_prag.adb Take into account restrictions in Alfa mode, contrary to
        CodePeer mode in which we are interested in finding bugs even if
        compiler cannot compile source.
        * sem_util.adb, sem_util.ads (Unique_Entity): Take into account case of
        deferred constant.

2011-08-31  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Constrain_Concurrent): Retrieve Base_Type of the subtype
        denoted by the subtype mark to ensure getting the concurrent type in
        the case where the subtype mark denotes a private subtype of a
        concurrent type (needed when using -gnatc).
        (Process_Subtype): For the processing specific to type kinds, case on
        the Base_Type kind of the Subtype_Mark_Id, to handle cases where the
        subtype denotes a private subtype whose base type is nonprivate (needed
        for subtypes of private fulfilled by task types when compiling with
        -gnatc).

2011-08-31  Gary Dismukes  <dismukes@adacore.com>

        * sem_disp.adb (Check_Dispatching_Operation): Bypass registration of
        late primitives that override interface operations when the full
        expander is not active, to avoid blowups in Register_Primitive when
        types don't have associated secondary dispatch tables.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * alfa_test.adb: Code clean up.

2011-08-31  Marc Sango  <sango@adacore.com>

        * restrict.adb (Check_SPARK_Restriction): Change Comes_From_Source (N)
        by Comes_From_Source (Original_Node (N)) in order to treat also the
        nodes which have been rewritten.
        * sem_ch4.adb (Analyze_Explicit_Dereference, Analyze_Slice): Guard the
        explicit dereference and slice violation in spark mode on the nodes 
        coming only from the source code.

2011-08-31  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, exp_alfa.ads, prj.ads, sem_attr.adb,
        lib-xref-alfa.adb: Minor reformatting.

2011-08-31  Matthew Heaney  <heaney@adacore.com>

        * a-crbltr.ads (Tree_Type): Default-initialize the Nodes component.

2011-08-31  Javier Miranda  <miranda@adacore.com>

        * sem_ch4.adb (Try_Object_Operation): Addition of one formal to search
        only for class-wide subprograms conflicting with entities of concurrent
        tagged types.

2011-08-31  Matthew Heaney  <heaney@adacore.com>

        * a-rbtgbo.adb (Generic_Allocate): Initialize pointer components of
        node to null value.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Provide a more
        general description of the routine.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * a-cbdlli.adb, a-cbdlli.ads: Add iterator machinery to bounded
        doubly-linked lists.

2011-08-31  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch5.adb (Expand_N_Assignment_Statement): When a discriminant
        check is needed for a left-hand side that is a dereference, and the
        base type is private without discriminants (whereas the full type does
        have discriminants), an extra retrieval of the underlying type may be
        needed in the case where the subtype is a record subtype whose base
        type is private. Update comments.

2011-08-31  Javier Miranda  <miranda@adacore.com>

        * sem_ch4.adb (Try_Object_Operation): When a dispatching primitive is
        found check if there is a class-wide subprogram covering the primitive.
        
2011-08-31  Yannick Moy  <moy@adacore.com>

        * sem_res.adb: Further cases where full expansion test is needed,
        rather than expansion test.

2011-08-31  Pascal Obry  <obry@adacore.com>

        * prj-attr.adb: Fix Source_File_Switches attribute kind (must be a list)

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb: Handle iterators over derived container types.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * einfo.ads, einfo.adb: Add new flag Has_Anonymous_Master.
        (Has_Anonymous_Master): New routine.
        (Set_Has_Anonymous_Master): New routine.
        (Write_Entity_Flags): Add an entry for Has_Anonymous_Master.
        * exp_ch4.adb: Add with and use clause for Sem_Ch8.
        (Current_Anonymous_Master): New routine.
        (Current_Unit_First_Declaration): Removed.
        (Current_Unit_Scope): Removed.
        (Expand_N_Allocator): Anonymous access-to-controlled types now chain
        their objects on a per-unit heterogeneous finalization master.

2011-08-31  Matthew Heaney  <heaney@adacore.com>

        * a-cbhama.adb, a-cbhase.adb (Insert): Check for zero-length buckets
        array.

2011-08-31  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-linux.adb (Create_Task): Avoid changing the affinity mask
        when not needed.

2011-08-31  Gary Dismukes  <dismukes@adacore.com>

        * sem_disp.adb (Propagate_Tag): Return without propagating in the case
        where the actual is an unexpanded call to 'Input.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * sem_ch4.adb: Code clean up.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * exp_alfa.adb, exp_alfa.ads: Minor correction of copyright notice.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Build_Array_Deep_Procs): Do not generate Deep_Finalize
        and TSS primitive Finalize_Address if finalization is suppressed.
        (Build_Record_Deep_Procs): Do not generate Deep_Finalize and TSS
        primitive Finalize_Address if finalization is suppressed.

2011-08-31  Jose Ruiz  <ruiz@adacore.com>

        * s-mudido-affinity.adb, s-taprop-linux.adb, s-taprop-mingw.adb,
        s-taprop-solaris.adb, s-taprop-vxworks.adb (Set_Task_Affinity): Make
        sure that the underlying task has already been created before trying
        to change its affinity.
        (Set_CPU): Use the term processor instead of CPU, as we do in
        Assign_Task.

2011-08-31  Vincent Celier  <celier@adacore.com>

        * prj-attr.adb: New Compiler attribute Source_File_Switches.
        * prj-nmsc.adb (Process_Compiler): Process attribute
        Source_File_Switches.
        * prj.ads (Language_Config): New name list component
        Name_Source_File_Switches.
        * snames.ads-tmpl (Name_Source_File_Switches): New standard name.

2011-08-31  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Analyze_Attribute, case 'Old): If prefix may be a
        discriminated component of an actual, expand at once to prevent
        ouf-of-order references with generated subtypes.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Add_Alfa_Xrefs): Do not take into account read
        reference to operator in Alfa xrefs.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch12.adb (Freeze_Subprogram_Body): Add code to handle the case
        where the parent instance was frozen before the current instance due to
        the presence of a source body. Update calls to Insert_After_Last_Decl.
        (Insert_After_Last_Decl): Renamed to Insert_Freeze_Node_For_Instance.
        Update the comment which illustrates the purpose of the routine.
        Package instances are now frozen by source bodies which appear after
        the instance. This ensures that entities coming from within the
        instance are available for use in the said bodies.
        (Install_Body): Add code to handle the case where the parent instance
        was frozen before the current instance due to the presence of a source
        body. Update calls to Insert_After_Last_Decl.

2011-08-31  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-linux.adb (Set_Task_Affinity): Avoid the use of anonymous
        access types.
        * affinity.c (__gnat_set_affinity_mask): Declare index variable.

2011-08-31  Yannick Moy  <moy@adacore.com>

        * sem_ch8.adb (Analyze_Subprogram_Renaming): Refine expander test in
        full-expander test.
        * alfa.adb, alfa.ads, alfa_test.adb, ali.adb, debug.adb, errout.adb,
        errout.ads, erroutc.adb, expander.adb, exp_ch4.adb, exp_ch7.adb,
        freeze.adb, get_alfa.adb, get_alfa.ads, gnat1drv.adb, lib-writ.adb,
        lib-writ.ads, lib-xref.adb, lib-xref.ads, lib-xref-alfa.adb, opt.adb,
        opt.ads, put_alfa.adb, put_alfa.ads, restrict.adb, sem_ch12.adb,
        sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
        sem_prag.adb, sem_res.adb, sem_util.adb: Minor reformatting, renaming
        ALFA in Alfa (we dropped acronym).
        * einfo.adb (Primitive_Operations): Correctly return list of primitive
        operations in a case where it returned previously No_Elist.

2011-08-31  Robert Dewar  <dewar@adacore.com>

        * s-taprop-vxworks.adb, sem_ch5.adb, s-taprop-tru64.adb, exp_alfa.adb,
        s-taprop-vms.adb, bindgen.adb, s-mudido.adb, s-mudido.ads,
        sem_res.adb, expander.adb, s-taprop-mingw.adb, s-taprop-linux.adb,
        s-taprop-solaris.adb, s-mudido-affinity.adb, vms_conv.adb,
        s-taprop-irix.adb, s-taprop.ads, s-taskin.adb, s-taskin.ads,
        s-taprop-hpux-dce.adb, a-chtgbo.adb, s-taprop-posix.adb: Minor
        reformatting.

2011-08-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch12 (Check_Private_View): Revert previous change.
        * sem_res.adb (Conversion_Check): Do not emit the error message if the
        conversion is in a generic instance.

2011-08-31  Matthew Heaney  <heaney@adacore.com>

        * a-cbhase.adb (Symmetric_Difference): Dereference correct node array.
        * a-chtgbo.adb (Free): Allow 0 as index value.

2011-08-31  Matthew Heaney  <heaney@adacore.com>

        * a-cborma.adb (Insert): Add comment to explain why no element
        assignment.

2011-08-31  Gary Dismukes  <dismukes@adacore.com>

        * sem_util.adb (Find_Body_Discriminal): Test whether the scope of the
        spec discriminant is already a concurrent type, in which case just use
        it, otherwise fetch the Corresponding_Concurrent_Type as before.

2011-08-30  Eric Botcazou  <ebotcazou@adacore.com>

        * system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,
        system-linux-mips.ads, system-linux-mipsel.ads,
        system-linux-mips64el.ads, system-linux-ppc64.ads,
        system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.

2011-08-30  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
        * gcc-interface/utils2.c (build_binary_op): Tighten condition.
        (build_unary_op): Likewise.

2011-08-30  Eric Botcazou  <ebotcazou@adacore.com>

        * raise-gcc.c: Do not include coretypes.h and tm.h.
        (setup_to_install): Remove test for compiler macro.
        * targext.c: Document use for the library.
        * gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.

2011-08-30  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convert
        the expression to the nominal type if the latter is a record type with
        a variant part and the type of the former is a record type without one.

2011-08-30  Yannick Moy  <moy@adacore.com>

        * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
        expansion in Alfa mode.
        * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public
        * exp_alfa.adb, exp_alfa.ads: New package defining light expansion for
        Alfa mode.
        * gnat1drv.adb (Adjust_Global_Switches): Update Comment.
        * sem_res.adb: Ditto.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-30  Thomas Quinot  <quinot@adacore.com>

        * g-socket.ads: Minor documentation adjustment.

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.

2011-08-30  Yannick Moy  <moy@adacore.com>

        * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
        exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
        exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
        gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
        Revert change which introduced files for "light"
        expansion, to be replaced by a single file for Alfa expansion.

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
        Minor code reorg/reformatting.

2011-08-30  Yannick Moy  <moy@adacore.com>

        * opt.adb, opt.ads (Full_Expander_Active): New function defines a
        common shorthand for (Expander_Active and not ALFA_Mode) that can be
        used for testing full expansion, that is active expansion not in the
        reduced mode for Alfa
        * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
        sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
        of the verbose (Expander_Active and not ALFA_Mode)

2011-08-30  Tristan Gingold  <gingold@adacore.com>

        * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
        s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
        s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads:
        Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage

2011-08-30  Gary Dismukes  <dismukes@adacore.com>

        * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
        access conversions to check that the conversion is a rewritten node,
        rather than just having Comes_From_Source set to False, which wasn't
        sufficient.

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
        g-socket.ads: Minor reformatting.

2011-08-30  Thomas Quinot  <quinot@adacore.com>

        * sem_util.adb: Minor reformatting.

2011-08-30  Tristan Gingold  <gingold@adacore.com>

        * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
        to be compliant with the ABI.

2011-08-30  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch12.adb (Check_Private_View): Exchange the private and full view
        of a designated type when the related access type is an actual in an
        instance. This ensures that the full view of designated type is
        available when inside the body of the instance.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
        in a position to be modified, a slice is treated like an indexed
        component.

2011-08-30  Thomas Quinot  <quinot@adacore.com>

        * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
        field tv_sec in struct timeval.

2011-08-30  Yannick Moy  <moy@adacore.com>

        * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
        blocks of code doing full expansion, previously only guarded by
        Expander_Active, by anding the test that ALFA_Mode is not set

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
        add the function to the list of private dependents, for subsequent
        legality check on Taft amendment types.
        * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
        Private_Dependents, as for other incomplete types.
        * sem_util.adb (Wrong_Type): Avoid cascaded errors when a
        Taft-amendment type is used as the return type of a function.

2011-08-30  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
        which emits an error by a call to a new routine which report the error.
        * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
        entity does not cover an existing interface.
        * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
        code.
        * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
        protected procedures or entries whose mode is not conformant.
        (Check_Synchronized_Overriding): Code cleanup: replace code which emits
        an error by a call to a new routine which report the error.

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor change.
        * exp_attr_light.adb: Minor reformatting.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb: Patch inheritance of aspects in
        Complete_Private_Subtype, to avoid infinite loop.

2011-08-30  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
        been reported and a subprogram covering an interface primitive is not
        found then skip generating the internal entity. Done to avoid crashing
        the frontend.
        (Check_Abstract_Overriding): Change text of error of wrong formal of
        protected subprogram or entry. Done for consistency to emit exactly the
        same error reported by Check_Synchronized_Overriding. In addition, the
        error is restricted to protected types (bug found working on AI05-0090)

2011-08-30  Yannick Moy  <moy@adacore.com>

        * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
        expansion in Alfa mode.
        * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
        * exp_light.adb, exp_light.ads: New package defining light expansion.
        * expander.adb (Expand): Call light expansion in Alfa mode
        * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
        constructs.
        * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
        constructs.
        * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
        * gnat1drv.adb (Adjust_Global_Switches): Comment

2011-08-30  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb: Minor refactoring.

2011-08-30  Yannick Moy  <moy@adacore.com>

        * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
        mode.
        * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
        expansion in Alfa mode.
        * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
        mode.

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * debug_a.adb: Update comment.

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
        sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
        exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,
        sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting

2011-08-30  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
        volatile.

2011-08-30  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
        Build_Finalization_Master by supplying an insertion node and enclosing
        scope. In its old version, the call did not generate a finalization
        master.
        (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
        recognize anonymous access-to-controlled components. Rewrite the
        machinery which creates finalization masters to service anonymous
        access-to-controlled components of a record type. In its current state,
        only one heterogeneous master is necessary to handle multiple anonymous
        components.
        (Freeze_Type): Comment reformatting.
        * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
        RE_Unit_Table.
        * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
        associates TSS primitive Finalize_Address with either the master itself
        or with the internal hash table depending on the mode of operation of
        the master.

2011-08-30  Javier Miranda  <miranda@adacore.com>

        * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
        interface type then do not generate code to compare this component.
        Required since they have no components and their equality operator is
        abstract.

2011-08-30  Steve Baird  <baird@adacore.com>

        * sem_util.ads (Deepest_Type_Access_Level): New function; for the type
        of a saooaaat (i.e, a stand-alone object of an anonymous access type),
        returns the (static) accessibility level of the object. Otherwise, the
        same as Type_Access_Level.
        (Dynamic_Accessibility_Level): New function; given an expression which
        could occur as the rhs of an assignment to a saooaaat (i.e., an
        expression of an access-to-object type), return the new value for the
        saooaaat's associated Extra_Accessibility object.
        (Effective_Extra_Accessibility): New function; same as
        Einfo.Extra_Accessibility except that object renames are looked through.
        * sem_util.adb 
        (Deepest_Type_Access_Level): New function; see sem_util.ads description.
        (Dynamic_Accessibility_Level): New function; see sem_util.ads
        description.
        (Effective_Extra_Accessibility): New function; see sem_util.ads
        description.
        * einfo.ads (Is_Local_Anonymous_Access): Update comments.
        (Extra_Accessibility): Update comments.
        (Init_Object_Size_Align): New procedure; same as Init_Size_Align
        except RM_Size field (which is only for types) is unaffected.
        * einfo.adb
        (Extra_Accessibility): Expand domain to allow objects, not just formals.
        (Set_Extra_Accessibility): Expand domain to allow objects, not just
        formals.
        (Init_Size): Add assertion that we are not trashing the
        Extra_Accessibility attribute of an object.
        (Init_Size_Align): Add assertion that we are not trashing the
        Extra_Accessibility attribute of an object.
        (Init_Object_Size_Align): New procedure; see einfo.ads description.
        * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
        differently for the type of a (non-library-level) saooaaat depending
        whether Ada_Version < Ada_2012. This is the only point where Ada_Version
        is queried in this set of changes - everything else (in particular,
        setting of the Extra_Accessibility attribute in exp_ch3.adb) is
        driven off of the setting of the Is_Local_Anonymous_Access attribute.
        The special treatment of library-level saooaaats is an optimization,
        not required for correctnesss. This is based on the observation that the
        Ada2012 rules (static and dynamic) for saooaaats turn out to be
        equivalent to the Ada2005 rules in the case of a library-level saooaaat.
        * exp_ch3.adb
        (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
        false for the type of a saooaaat, declare and initialize its
        accessibility level object and set the Extra_Accessibility attribute
        of the saooaaat to refer to this object.
        * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
        * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
        calls to Effective_Extra_Accessibility in order to support
        renames of saooaaats.
        (Expand_N_Type_Conversion): Add new local function,
        Has_Extra_Accessibility, and call it when determining whether an
        accessibility check is needed.
        It returns True iff Present (Effective_Extra_Accessibility (Id)) would
        evaluate to True (without raising an exception).
        * exp_ch5.adb
        (Expand_N_Assignment_Statement): When assigning to an Ada2012
        saooaaat, update its associated Extra_Accessibility object (if
        it has one). This includes an accessibility check.
        * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
        a saooaaat, update its Extra_Accessibility object too (if it
        has one).
        (Expand_Call): Replace a couple of calls to Type_Access_Level
        with calls to Dynamic_Access_Level to handle cases where
        passing a literal (any literal) is incorrect.
        * sem_attr.adb (Resolve_Attribute): Handle the static accessibility
        checks associated with "Saooaat := Some_Object'Access;"; this must
        be rejected if Some_Object is declared in a more nested scope
        than Saooaat.
        * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
        assignment to a saooaaat even if Is_Local_Anonymous_Access
        returns False for its type (indicating a 2012-style saooaaat).
        * sem_ch8.adb
        (Analyze_Object_Renaming): Replace a call to Init_Size_Align
        (which is only appropriate for objects, not types) with a call
        of Init_Object_Size_Align in order to avoid trashing the
        Extra_Accessibility attribute of a rename (the two attributes
        share storage).
        * sem_res.adb
        (Valid_Conversion) Replace six calls to Type_Access_Level with
        calls to Deepest_Type_Access_Level. This is a bit tricky. For an
        Ada2012 non-library-level saooaaat, the former returns library level
        while the latter returns the (static) accessibility level of the
        saooaaat. A type conversion to the anonymous type of a saooaaat
        can only occur as part of an assignment to the saooaaat, so we
        know that such a conversion must be in a lhs context, so Deepest
        yields the result that we need. If such a conversion could occur,
        say, as the operand of an equality operator, then this might not
        be right. Also add a test so that static accessibilty checks are
        performed for converting to a saooaaat's type even if
        Is_Local_Anonymous_Access yields False for the type.

2011-08-30  Javier Miranda  <miranda@adacore.com>

        * sem_disp.adb (Check_Dispatching_Operation): Complete condition that
        controls generation of a warning associated with late declaration of
        dispatching functions. Required to avoid generating spurious
        warnings.

2011-08-30  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
        return object has an anonymous access type and the function's type is
        a named access type.
        * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
        conversions on implicit conversions, since such conversions can occur
        for anonymous access cases due to expansion. Issue error for attempt
        to rename an anonymous expression as an object of a named access type.
        * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
        to indicate whether this function should report errors on invalid
        conversions.
        * sem_res.adb (Resolve): For Ada 2012, in the case where the type of
        the expression is of an anonymous access type and the expected type is
        a named general access type, rewrite the expression as a type
        conversion, unless this is an expression of a membership test.
        (Valid_Conversion.Error_Msg_N): New procedure that conditions the
        calling of Error_Msg_N on new formal Report_Errs.
        (Valid_Conversion.Error_Msg_NE): New procedure that conditions the
        calling of Error_Msg_NE on new formal Report_Errs.
        (Valid_Conversion): Move declaration of this function to the package
        spec, to allow calls from membership test processing. For Ada 2012,
        enforce legality restrictions on implicit conversions of anonymous
        access values to general access types, disallowing such conversions in
        cases where the expression has a dynamic accessibility level (access
        parameters, stand-alone anonymous access objects, or a component of a
        dereference of one of the first two cases).
        * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
        in the context of a named general access expected type.
        * exp_ch4.adb Add with and use of Exp_Ch2.
        (Expand_N_In): Add processing for membership tests applied to
        expressions of an anonymous access type. First, Valid_Conversion is
        called to check whether the test is statically False, and then the
        conversion is expanded to test that the expression's accessibility
        level is no deeper than that of the tested type. In the case of
        anonymous access-to-tagged types, a tagged membership test is applied
        as well.
        (Tagged_Membership): Extend to handle access type cases, applying the
        test to the designated types.
        * exp_ch6.adb (Expand_Call): When creating an extra actual for an
        accessibility level, and the actual is a 'Access applied to a current
        instance, pass the accessibility level of the type of the current
        instance rather than applying Object_Access_Level to the prefix. Add a
        ??? comment, since this level isn't quite right either (will eventually
        need to pass an implicit level parameter to init procs).

2011-08-30  Bob Duff  <duff@adacore.com>

        * s-taskin.ads: Minor comment fix.

2011-08-30  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Check_Parameterless_Call): If the node is a selected
        component and the selector is a dispatching operation, check if it is
        a prefixed call before rewriting as a parameterless function call.

2011-08-29  Jakub Jelinek  <jakub@redhat.com>

        * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
        tsystem.h into $(RTSDIR) instead of rts.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
        reformatting.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * alfa.ads (Name_Of_Heap_Variable): New constant name.
        * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
        table to hold dereferences.
        (Add_ALFA_Xrefs): Take into account dereferences as special
        reads/writes to the variable "HEAP".
        (Enclosing_Subprogram_Or_Package): Move subprogram here.
        (Generate_Dereference): New procedure to store a read/write dereferencew
        in the table Drefs.
        * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
        the special "HEAP" var.
        * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
        in ALFA mode.
        * sem_util.adb (Note_Possible_Modification): Store write dereference
        in ALFA mode.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Freeze_Type): Generate an accessibility check which
        ensures that the level of the subpool access type is not deeper than
        that of the pool object.
        * sem_util.adb (Object_Access_Level): Expand to handle defining
        identifiers.
        * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
        subpool handle name of a rewritten allocator.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
        values, we generate multiple triples of parameters in the TypeCode.
        Bump Choice_Index for each such triple so that a subsequent default
        choice is associated with the correct index in the typecode.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * a-cdlili.adb (Iterate): Initialize properly an iterator over a null
        container.
        (First, Last): Handle properly an iterator over a null container.

2011-08-29  Bob Duff  <duff@adacore.com>

        * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
        processing if we run across a node with no Scope. This can happen if
        we're with-ing an library-level instance, and that instance got errors
        that caused "instantiation abandoned".
        * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
        an exception instead of using Assert, so it won't go into an infinite
        loop, even when assertions are turned off.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * a-coorse.adb: Proper handling of empty ordered sets.

2011-08-29  Johannes Kanig  <kanig@adacore.com>

        * debug.adb: Add comments.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * a-except.adb, a-except-2005.adb: Minor comment rewording and
        reformatting.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Array_Type_Declaration): Remove insertion of
        declaration for Itypes in Alfa mode.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
        a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
        a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
        reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
        package spec.
        * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
        * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
        while raising PE.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-cbhama.adb, a-cbhama.ads: Minor reformatting.

2011-08-29  Javier Miranda  <miranda@adacore.com>

        * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
        renamings of formal subprograms when the actual for a formal type is
        class-wide.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
        to Target.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
        components of record type.
        * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
        to Target.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
        a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
        container packages.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
        reformatting.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
        components of record type.

2011-08-29  Bob Duff  <duff@adacore.com>

        * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
        by the termination handler.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
        created in Alfa mode, instead of inserting artificial declarations of
        non-Itypes in the tree.
        * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
        know if an Itype has a corresponding declaration, as defined in
        itypes.ads.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * gnat1drv.adb: Minor rewrite.

2011-08-29  Bob Duff  <duff@adacore.com>

        * s-tasuti.adb (Make_Passive): Work around race condition in
        Make_Independent, which can cause Wait_Count to be zero. So instead of
        asserting that Wait_Count > 0, and then decrementing it, decrement it
        only if Wait_Count > 0.
        * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
        should be nonnegative, so declare them Natural instead of Integer.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
        sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
        a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
        a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
        exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.

2011-08-29  Vadim Godunko  <godunko@adacore.com>

        * s-parint.ads: Minor comment clarification.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * prj.adb (Initialize): Make sure that new reserved words after Ada 95
        may be used as identifiers.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * a-coinho.ads: Minor reformating.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
        container of a derived type.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
        a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.

2011-08-29  Pascal Obry  <obry@adacore.com>

        * exp_disp.adb: Minor comment fix.
        (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
        to avoid warnings when compiling with -Wall.
        (Make_Disp_Conditional_Select_Body): Likewise.
        (Make_Disp_Timed_Select_Body): Likewise.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
        an entity name, generate reference for it.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
        iterator form.
        * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
        the class-wide type.
        * sem_ch5.adb: Move some rewriting to the expander, where it belongs.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Check_Constrained_Object): Do not create an actual
        subtype for an object whose type is an unconstrained union.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
        is allowed in a component definition, by AI95-406.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-except-2005.adb: Alphabetize all routines.
        (Triggered_By_Abort): New routine.
        * a-except-2005.ads (Triggered_By_Abort): New routine.
        * a-except.adb Alphabetize all routines.
        (Triggered_By_Abort): New routine.
        * a-except.ads (Triggered_By_Abort): New routine.
        * exp_ch7.adb: Update all comments involving the detection of aborts in
        finalization code.
        (Build_Object_Declarations): Do not generate code to detect the
        presence of an abort at the start of finalization code, use a runtime
        routine istead.
        * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
        RE_Unit_Table.
        * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
        allocate a task on a subpool.
        * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
        The flag disables all actions related to the maintenance of
        Finalize_Address_Table when subpools are not in use.
        (Allocate_Any_Controlled): Signal the machinery that subpools are in
        use.
        (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
        performs costly task locking when subpools are not in use.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
        types and dispatching calls in Alfa mode.
        * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
        correspondance between body and spec scopes, to reuse utility functions
        (Traverse_Declarations_Or_Statements): Protect access to body for stub
        by testing the presence of the library unit for the body
        * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
        mode the expansion of accept statements is skipped
        * sem_util.adb, sem_util.ads (Unique_Entity): New function returning
        the unique entity corresponding to the one returned by
        Unique_Defining_Entity applied to the enclosing declaration of the
        argument.

2011-08-29  Bob Duff  <duff@adacore.com>

        * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
        gdb when x is not a node (it can be a node list, name_id, etc). pp is
        an alias for pn. ppp is an alias for pt.

2011-08-29  Javier Miranda  <miranda@adacore.com>

        * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
        aggregate to take a consistent decision on the need to convert into
        assignments aggregates that initialize constant objects.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Expand_Allocator_Expression): Add a call to
        Build_Allocate_Deallocate_Proc in order to handle allocation of
        non-controlled objects on subpools.
        * impunit.adb: Remove s-finmas and s-spsufi since they were never meant
        to be end-user visible.
        * s-finmas.adb: Add with and use clause for System.HTable.
        Add an instantiation of Simple_HTable which provides a mapping between
        the address of a controlled object and the corresponding
        Finalize_Address used to clean up the object. The table is used when a
        master is operating in heterogeneous mode.
        (Attach): Explain why the input node is not verified on being already
        attached.
        (Delete_Finalize_Address): New routine.
        (Detach): Add pragma Assert which ensures that a node is already
        attached.
        (Finalize): Add local variable Cleanup. Rewrite the iteration scheme
        since nodes are no longer removed on traversal. Explain why node
        detachment is undesirable in this case.
        (Get_Finalize_Address): New routine.
        (Hash): New routine.
        (Is_Empty_List): Removed.
        (pm): Renamed to Print_Master. Add output for discriminant
        Is_Homogeneous.
        Comment reformatting.
        (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
        * s-finmas.ads: Various comments additions / improvements.
        Type Finalization_Master has a discriminant which determines the mode of
        operation.
        (Delete_Finalize_Address): New routine.
        (Get_Finalize_Address): New routine.
        (pm): Renamed to Print_Master.
        (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
        * s-stposu.adb: Add with clause for System.Address_Image; Add with and
        use clause for System.IO.
        (Allocate_Any_Controlled): Add machinery to set TSS primitive
        Finalize_Address depending on the mode of allocation and the mode of
        the master.
        (Deallocate_Any_Controlled): Remove the relation pair object -
        Finalize_Address regardless of the master mode. Add comment explaining
        the reason.
        (Detach): Ensure that fields Prev and Next are null after detachment.
        (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
        scheme to check whether the list of subpools is empty. There is no
        longer need to store the next subpool or advance the current pointer.
        (Is_Empty_List): New routine.
        (Print_Pool): New routine.
        (Print_Subpool): New routine.
        * s-stposu.ads: Various comments additions / improvements.
        Field Master of type Root_Subpool is now a heterogeneous collection.
        (Print_Pool): New routine.
        (Print_Subpool): New routine.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
        forms, using aspects of container types.
        * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
        Has_Implicit_Dereference flags, that may be set on the partial view.
        * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
        container type with an indexing aspect.
        (Analyze_Quantified_Expression): Analyze construct with expansion
        disabled, because it will be rewritten as a loop during expansion.
        (Try_Container_Indexing): The prefix itself may be a container type
        with an indexing aspect, as with a vector of vectors.
        * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
        the original doamin of iteration, for name capture.
        (Analyze_Iterator_Specification): If the domain is an expression that
        needs finalization, create a separate declaration for it.
        For an iterator with "of" retrieve default iterator info from aspect of
        container type. For "in" iterator, retrieve type of Iterate function.
        * sem_ch13.adb (Check_Iterator_Function): Fix typo.
        (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
        analysis, to prevent spurious errors about late attributes.
        * sprint.adb: Handle quantified expression with either loop or iterator
        specification.
        * a-convec.ads, a-convec.adb: Iterate function returns a reversible
        iterator.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
        Binder or Linker of the main project file.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
        unit.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch9.adb: Partial revert of previous change for Alfa mode

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch11.adb: Minor expansion of comment.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
        interpretation, set the type before resolving the operands, because
        legality checks on an exponention operand need to know the type of the
        context.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
        cleanups on a master if the instance is within a generic unit.
        Complement to the corresponding fix to inline.adb for K520-030.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
        occurrence.
        * exp_intr.adb: Minor comment fix.

2011-08-29  Bob Duff  <duff@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
        Delay_Required was used as an uninitialized variable.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
        sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
        a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
        Remove unused variables.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb: Remove Build_Explicit_Dereference.
        * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
        from sem_res.adb, used in analysis of additional constructs.
        (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
        expansion of iterators.
        (Is_Object_Reference): Recognize variables rewritten as explicit
        dereferences in Ada2012.
        * snames.ads-tmpl: Add Has_Element, Forward_Iterator,
        Reversible_Iterator names, for expansion of Ada2012 iterators.
        * aspects.ads, aspects.adb (Find_Aspect): Utility.
        * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
        linked list container.
        * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
        * a-coorse.ads, a-coorse.adb: Ditto for ordered sets.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
        containers.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): Get the maximum number of simultaneous
        compilation processes after the Builder switches has been scanned, as
        there may include -jnn.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
        GNAT_DRIVER_COMMAND_LINE to 255.

2011-08-29  Pascal Obry  <obry@adacore.com>

        * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
        reformatting and style fix (class attribute casing).

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch11.adb: Yet another case where expansion should be common
        between CodePeer and Alfa.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch9.adb: Partial revert of previous change for Alfa mode.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Matches_Limited_With_View): The limited views of an
        incomplete type and its completion match.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch13.adb: Adjust previous change.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
        exp_ch4.adb, sem_ch8.adb: Minor code reorganization
        Minor reformatting.

2011-08-29  Emmanuel Briot  <briot@adacore.com>

        * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
        initialize aggregated projects.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
        depth of candidates to resolve a potentially spurious ambiguity between
        two visible subprograms.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
        Requires/Ensures.
        * sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
        Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
        Requires/Ensures.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
        Add comment.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sem_res.adb: Minor reformatting.

2011-08-29  Johannes Kanig  <kanig@adacore.com>

        * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
        mode.
        * gnat1drv.adb (Adjust_Global_Switches): Set
        Use_Expressions_With_Actions to False in ALFA mode.
        * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
        ALFA mode.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
        * exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
        * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
        tagged types and dispatching calls in Alfa mode.

2011-08-29  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
        we do not report an error on an Empty node.

2011-08-29  Geert Bosch  <bosch@adacore.com>

        * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
        a-nlrear.o and a-nurear.o.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * freeze.adb: Minor code reorganization.
        Minor reformatting.
        * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
        sem_ch6.adb: Minor reformatting

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * s-except.ads, s-except.adb: Provide dummy body.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_warn.adb (Within_Postcondition): Take into account the case of
        an Ensures component in a Test_Case.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
        * rtsfind.ads (RTU_Id): Replaces System_Exceptions by
        System_Exceptions_Debug
        (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
        * a-except.adb: With and use System.Exceptions_Debug instead of
        System.Exceptions.
        * a-except-2005.adb: Likewise.
        * s-assert.adb: Likewise.
        * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
        * Makefile.rtl: Add s-excdeb.  Adjust compilation rule.
        * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
        s-excdeb. Update dependencies.
        (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
        as these no longer need external libraries.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Op_Expon): Additional check to reject an
        exponentiation operator on universal values in a context that requires
        a fixed-point type.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * raise-gcc.c (personnality_routine): Fix thinko.  Set Ada occurrence
        before calling notify_handled_exception.
        * a-exextr.adb: Fix comment.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
        Finalize_Address of the access type's finalization master.
        (Expand_N_Allocator): Add code to set attribute Finalize_Address of the
        access type's finalization master. Add a guard to prevent
        Associated_Storage_Pool from being set on .NET/JVM.
        * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
        attribute Finalize_Address of the access type's finalization master.
        * exp_ch7.adb (Make_Finalize_Address_Call): New routine.
        * exp_ch7.ads (Make_Finalize_Address_Call): New routine.
        * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
        RE_Unit_Table.
        * s-finmas.adb: Add with clause for System.Address_Image. Add with and
        use clause for System.IO
        (Detach): Relax the assertion, to be reinstated later.
        (Finalize): Rewrite the iteration loop to avoid pointer comparison.
        Relax the assertion on Finalize_Address, to be reinstated later.
        (Is_Empty_List): New routine.
        (pm): New debug routine.
        (Set_Finalize_Address): New routine.
        * s-finmas.ads (pm): New debug routine.
        (Set_Finalize_Address): New routine.
        * s-stposu.adb (Allocate_Any_Controlled): Code reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
        Remove convention C.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
        (Initialize_TCB): Remove Exc_Stack_Ptr initialization.
        (Finalize_TCB): Remove its finalization.
        (Initialize): Remove assignment of GET_Exc_Stack_Addr
        * s-soflin.adb (NT_Exc_Stack): Remove
        (Get_Exc_Stack_Addr_NT): Likewise.
        (Get_Exc_Stack_Addr_Soft): Likewise.
        * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
        (Get_Exc_Stack_Addr): Likewise.
        (Get_Exc_Stack_Addr_Soft): Likewise
        * s-taspri-vms.ads (Exc_Stack_T): Remove.
        (Exc_Stack_Ptr_T): Likewise.
        (Private_Data): Remove Exc_Stack_Ptr component.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * raise-gcc.c (get_ip_from_context): New function. Factorize code.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * gnat_ugn.texi: Fix aix and x86-solaris info for run-time.

2011-08-29  Geert Bosch  <bosch@adacore.com>

        * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
        L2_Norm, Swap_Column): New generic subprograms
        * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
        L2_Norm, Swap_Column): Implement new subprograms in order to
        eliminate dependency on BLAS and LAPACK libraries in
        Ada.Numerics.Generic_Real_Arrays and eventually also the complex
        version. Forward_Eliminate/Back_Substitute can be used to put a
        matrix in row echelon or reduced row echelon form using partial
        pivoting.
        * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
        Swap_Column): Instantiate from System.Generic_Array_Operations.
        ("*", "abs"): Implement by instantiation from Generic_Array_Operations.
        (Sqrt): Local function for simple computation of square root without
        adding dependencies on Generic_Elementary_Functions.
        (Swap): New subprogram to exchange floating point numbers.
        (Inverse): Reimplement using Jordan-Gauss elimination.
        (Jacobi): New procedure implementing Jacobi's method for computation
        of eigensystems, based on Rutishauser's implementation.
        (L2_Norm): Implement directly using the inner product.
        (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
        decreasing eigenvalue as required by the Ada RM.
        (Swap_Column): New helper procedure for Sort_Eigensystem.
        Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
        Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
        Sort_Eigensystems.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * put_scos.adb (Put_SCOs): Do not emit a newline for an empty
        statements line.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * s-finmas.adb (Finalize): Check Finalize_Address of the master rather
        than the current node.
        * s-finmas.ads: Move field Finalize_Address from type FM_Node to
        Finalization_Master. The list headers have two fields instead of three.
        This should fix alignment issue but subpool allocations are now
        unusable. Alphabetize subprograms.
        * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
        the size of the header when converting the beginning of the object to
        a FM_Node. Set the master's Finalize_Address attribute if not already
        set.
        (Deallocate_Any_Controlled): Use the offset rather than the size of the
        header when converting the beginning of the object to a FM_Node.

2011-08-29  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
        reraise when compiling for CodePeer.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
        now needed by a-convec.adb. Fix warning.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
        processing of TSS routine Finalize_Address when compiling in
        CodePeer_Mode.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
        sem_warn.adb: Minor reformatting.

2011-08-29  Emmanuel Briot  <briot@adacore.com>

        * prj-conf.adb (Get_Config_Switches): Also collect the list of
        languages from aggregated projects.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
        Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
        Traverse_Package_Declaration, Traverse_Subprogram_Body,
        Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
        for stubs are traversed too when parameter is set
        (Traverse_All_Compilation_Units): Traverse without going inside stubs
        (Traverse_Declarations_Or_Statements): Do the special traversing for
        stubs when required.
        * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
        return subprogram or package body from stub.
        (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
        stubs without prior subprogram decl.

2011-08-29  Vasiliy Fofanov  <fofanov@adacore.com>

        * gnat_ugn.texi: Fix typo.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
        which accounts for size vs alignment issues and calculates the size of
        the list header.
        (Deallocate_Any_Controlled): Ditto.
        (Nearest_Multiple_Rounded_Up): New routine.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
        * a-exexda.adb (Set_Exception_C_Msg): Ditto.
        (Set_Exception_Msg): Ditto.
        * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto.  Do not set
        Private_Data.
        * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
        Use Save_Occurrence instead of Save_Occurrence_No_Private.
        (Raise_With_Msg): Remove Cleanup_Flag.
        * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
        Clean_Flag and Private_Data components.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
        in CodePeer mode.
        * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
        of an explicitly declared type, so that the base types of the original
        type and this generated type are the same, and a "type" (not a subtype
        like previously).
        * errout.adb (Special_Msg_Delete): Do not issue messages "Size too
        small" in Alfa mode, like in CodePeer mode.
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
        clauses in Alfa mode.

2011-08-29  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
        function to the package spec.
        * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
        internally generated bodies of null procedures locate the internally
        generated spec enforcing mode conformance.
        (Is_Interface_Conformant): Ensure that the controlling formal of the
        primitives match.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
        reject the pragma if it appears to apply to a formal subprogram.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
        inner expression, to prevent double evaluation.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr.adb (Propagate_Exception): Remove all the parameters as
        they were unused.
        * a-exexpr-gcc.adb (Propagate_Exception): Ditto.
        * a-except-2005.adb (Propagate_Exception): Adjust spec.
        (Raise_Current_Excep): Adjust call.
        (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * exp_disp.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr.adb (Setup_Exception): Removed.
        * a-exexpr-gcc.adb (Setup_Exception): Removed.
        * a-except.adb (Exception_Propagation): Removed.
        * a-except-2005.adb (Setup_Exception): Removed.
        (Reraise): Remove call to Setup_Exception.
        (Reraise_Occurrence): Ditto.
        (Reraise_Occurrence_Always): Ditto.
        (Reraise_Occurrence_No_Defer): Ditto.
        (Transfer_Occurrence): Ditto.
        * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
        (Set_Exception_Msg): Ditto.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-convec.adb, exp_disp.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.

2011-08-29  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
        Exception_Handlers to No_List instead of Empty_List in the case where
        there are no handlers.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * gcc-interface/gigi.h (enum standard_datatypes): Add
        ADT_reraise_zcx_decl
        (reraise_zcx_decl): New macro.
        * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
        (gigi): Set reraise_zcx_decl.
        (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
        (gnat_to_gnu): Handle N_Raise_Statement.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
        a-undesu.adb: Minor reformatting.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_disp.adb (Check_Premature_Freezing): When building a dispatch
        table, accept an unfrozen untagged component if it is an actual for a
        formal incomplete type.
        * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
        provide new iterator forms over vectors.
        Introduce type Iterator in package body to implement operations of
        Reversible_Iterator interface.
        * a-iteint.ads: Make package pure so it is usable with new container
        packages, that are categorized Remote_Types.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.

2011-08-29  Bob Duff  <duff@adacore.com>

        * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
        of <>, because this is the routine that checks for dimensionality
        errors (for example, for a two-dimensional array, (others => <>) should
        be (others => (others => <>)).

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * impunit.adb: Add new run-time units.
        * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
        s-stposu.ads, s-stposu.adb: Code clean up.
        Handle protected class-wide or task class-wide types
        Handle C/C++/CIL/Java types.
        * s-spsufi.adb, s-spsufi.ads: New files.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
        library-level subprogram.
        * sem_prag.adb (Check_Test_Case): Stricter rules for test-case
        placement.
        (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
        component.
        * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
        component.
        * gnat_rm.texi: Update doc for Test_Case pragma.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
        convention C.
        (GCC_Exception_Access): New type.
        (Unwind_DeleteException): New imported procedure
        (Foreign_Exception): Import it.
        (GNAT_GCC_Exception): Simply have the occurrence inside.
        (To_GCC_Exception): New function.
        (To_GNAT_GCC_Exception): New function.
        (GNAT_GCC_Exception_Cleanup): New procedure..
        (Propagate_GCC_Exception): New procedure.
        (Reraise_GCC_Exception): New procedure.
        (Setup_Current_Excep): New procedure.
        (CleanupUnwind_Handler): Change type of UW_Exception parameter.
        (Unwind_RaiseException): Ditto.
        (Unwind_ForcedUnwind): Ditto.
        (Remove): Removed.
        (Begin_Handler): Change type of parameter.
        (End_Handler): Ditto. Now delete the exception if still present.
        (Setup_Key): Removed.
        (Is_Setup_And_Not_Propagated): Removed.
        (Set_Setup_And_Not_Propagated): Ditto.
        (Clear_Setup_And_Not_Propagated): Ditto.
        (Save_Occurrence_And_Private): Ditto.
        (EID_For): Add 'not null' constraint on parameter.
        (Setup_Exception): Does nothing.
        (Propagate_Exception): Simplified.
        * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
        re-raise is not expanded anymore.
        * s-except.ads (Foreign_Exception): New exception - placeholder for
        non Ada exceptions.
        * raise-gcc.c (__gnat_setup_current_excep): Declare
        (CXX_EXCEPTION_CLASS): Define (not yet used)
        (GNAT_EXCEPTION_CLASS): Define.
        (is_handled_by): Handle foreign exceptions.
        (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * a-synbar.adb (Synchronous_Barrier): Some additional clarification.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * a-synbar-posix.adb: Minor reformatting.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
        a-exetim-default.ads (Interrupt_Clocks_Supported,
        Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
        definitions to be compliant with AI-0171. The target systems do not
        support separate account for the execution time of interrupt handlers.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * a-synbar.adb (Wait): Change the order of evaluation of the conditions
        in the barrier to put first the easiest to evaluate (and the one which
        will be True more often). More efficient.

2011-08-29  Eric Botcazou  <ebotcazou@adacore.com>

        * s-atocou-x86.adb: Fix constraint in machine code insertion.

2011-08-29  Bob Duff  <duff@adacore.com>

        * aspects.ads, aspects.adb: Add new aspects for various pragmas and
        attributes that are now aspects, as specified by AI05-0229-1.
        * sem_ch13.adb (Analyze_Aspect_Specifications,
        Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
        pragmas or attribute references, as appropriate.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
        a-synbar-posix.ads: Minor reformatting.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * snames.ads-tmpl: Add name Force.

2011-08-29  Pascal Obry  <obry@adacore.com>

        * prj-nmsc.adb: Minor reformatting.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * a-exetim.ads (Interrupt_Clocks_Supported,
        Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
        definitions to be compliant with AI-0171.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-ngelfu.adb: Add comments.

2011-08-29  Geert Bosch  <bosch@adacore.com>

        * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
        the closest machine number to Pi / 2.0.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
        package Ada.Synchronous_Barriers.
        * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
        Add new specs and bodies for Ada.Synchronous_Barriers. There is a
        default implementation using protected objects and another one
        a-synbar-posix using POSIX barriers as the underlying support.
        * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
        x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
        Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
        Clean up dependencies.
        * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
        exp_dist.adb: Minor code reorganization.
        Minor reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
        primitive operation must support external streaming if it is not a
        controlling access result.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sinfo.ads, sem_ch7.adb: Minor reformatting.

2011-08-29  Bob Duff  <duff@adacore.com>

        * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
        restriction on allocators, as required by AI05-0013-1.
        * restrict.ads: Minor comment fix.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
        (To_Jmpbuf_Address): Ditto
        (builtin_longjmp): Ditto

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sem_res.adb: Minor reformatting.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): Move special processing for VM targets after the
        call to Get_Target_Parameters.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sem_ch12.adb, par-ch12.adb: Minor reformatting.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
        where an anonymous access discriminant of a limited designated type
        appears in a non-immutably limited discriminated type and issue an
        error message. Add local variable Desig_T and replace all occurrences
        of Designated_Type.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * a-rttiev.adb (Set_Handler): Update comment to indicate that our
        implementation is compliant to RM D.15(15/2) after the modification
        imposed by AI05-0094-1 (binding interpretation).

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
        s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * par-endh.adb (Check_End): For an END where it is mandatory to repeat
        the scope name, do not report a missing label as a style violation (it
        will be diagnosed as an illegality).
        * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
        variant records: Get_Enum_Lit_From_Pos already returns a usage
        occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
        on Expr in Integer_Literal case so that it can be used by
        Build_To_Any_Call.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
        Adjust comment.
        * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
        (Build_Abort_Block_Handler): New function to build an Abort_Signal
        exception handler.
        * exp_ch9.adb (Expand_N_Asynchronous_Select): Call
        Build_Abort_Block_Handler to build the exception handler. Do not
        undefer aborts for the Abort_Signal exception handler if back-end
        exception mechanism.
        * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
        back_end exceptions for all others and abort_signal.
        * s-except.ads (ZCX_By_Default): New constant.
        * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
        (Raise_Exception_Always): Ditto.
        (Raise_From_Signal_Handler): Ditto.
        (Raise_With_Location_And_Msg): Ditto.
        (Raise_With_Msg): Ditto.
        (Reraise): Ditto.
        (Reraise_Occurence): Ditto.
        (Reraise_Occurrence_Always): Ditto.
        * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
        * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * snames.adb-tmpl, sem_ch13.adb: Minor reformatting
        Minor code reorganization.

2011-08-29  Bob Duff  <duff@adacore.com>

        * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
        2012, not just Ada 2005.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
        with a project file or with gprbuid, if -gnatep= is specified, the
        builder may need to be invoked with -x.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr-gcc.adb: Minor comment fix.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb: Minor reformatting.

2011-08-29  Bob Duff  <duff@adacore.com>

        * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
        * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
        treating "some" as unreserved in earlier Ada versions. This is now
        handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
        rather than Name_Some, since Tok_Some is now recognized as reserved.
        * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
        reserved word.
        * scans.ads: Minor comment fixes.
        * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
        for other language versions.
        * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
        treating "some" as unreserved in earlier Ada versions. This is now
        handled in Snames.Is_Keyword_Name.
        * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
        Ada 2012.
        (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
        unreserved in earlier Ada versions. This is now handled in
        Snames.Is_Keyword_Name.
        * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
        words as for other language versions.
        * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
        Ada 2012, not just Ada 2005.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch13.adb: Additional semantic checks for aspects involved in
        iterators.

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
        a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
        Container parameter.
        (Ancestor_Find): ditto.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * par-endh.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
        (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
        (Adjust_N_CLeanups_For): Remove.
        (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
        stack is reached.
        (Propgate_Exception): Adjust.
        * raise-gcc.c: Add a few static/const.
        (Adjust_N_Cleanups_For): Remove declaration.
        (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb: Use type of function return when rewriting as object
        declaration.

2011-08-29  Gary Dismukes  <dismukes@adacore.com>

        * sem_type.adb: Minor reformatting.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * makeutl.adb: Minor reformatting.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
        function call of a limited type, the expansion of the renaming is
        complicated by the presence of various temporaries and subtypes that
        capture constraints of the renamed object.
        Rewrite node as an object declaration, whose expansion is simpler.
        Given that the object is limited there is no copy involved and no
        performance hit.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
        freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
        system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
        system-linux-hppa.ads, system-linux-s390.ads,
        system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
        system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
        system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
        system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
        system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
        system-solaris-sparc.ads, system-lynxos-x86.ads,
        system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
        system-solaris-x86_64.ads, system-mingw-x86_64.ads,
        system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
        system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
        system-vxworks-x86.ads: Remove GCC_ZCX_Support.
        * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
        s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
        * opt.ads: Adjust comment.
        * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
        * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
        * system.ads: Move GCC_ZCX_Support to obsolete entries.

2011-08-29  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb (Do_Complete): Resolve symbolic links when a relative
        file name is specified on the gnatmake or gprbuild command line, and
        before we search for that file in the project.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_type.adb (Within_Instance): New predicate in Collect_Interps,
        used to determine whether a possible interpretation for an overloadable
        entity is declared within the current instantiation and should be
        included in the candidate set.

2011-08-29  Vasiliy Fofanov  <fofanov@adacore.com>

        * gnat_rm.texi, gnat_ugn.texi: Clean ups.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Actuals): Use base type to determine whether an
        access subtype is access_to_subprogram, when applying checks for
        RM 3.10.2 (27).

2011-08-29  Matthew Heaney  <heaney@adacore.com>

        * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
        for sibling when common parent.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
        "pragma_".

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
        for the return type when in ASIS mode.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): Get the default search dirs, then the target
        parameters after getting the Builder switches, as the Builder switches
        may include --RTS= and that could change the default search dirs.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
        Make_Final_Call. Move the processing for class-wide types before the
        processing for derivations from [Limited_]Controlled.
        (Make_Final_Call): Move the processing for class-wide types before the
        processing for derivations from [Limited_]Controlled.
        * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
        Add code to account for alignments larger than the list header. Add a
        comment illustrating the structure of the allocated object + padding +
        header.
        (Deallocate_Any_Controlled): Add code to account for alignments larger
        than the list header.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sinfo.ads, sinfo.adb: New node kind
        N_Formal_Incomplete_Type_Definition, related flags.
        par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
        Parse formal incomplete types.
        * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
        sem_ch12.
        * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
        Formal incomplete types do not need completion.
        * sem_ch12.adb (Analyze_Formal_Incomplete_Type,
        Validate_Incomplete_Type_Instance): New procedures to handle formal
        incomplete types.
        * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
        that corresponds to a formal incomplete type.
        * sprint.adb: Handle formal incomplete type declarations.
        * exp_util.adb (Insert_Actions): An incomplete_type_definition is not
        an insertion point.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-fihema.ads, a-fihema.adb: Unit removed.
        * a-undesu.ads, a-undesu.adb: New unit implementing
        Ada.Unchecked_Deallocate_Subpool.
        * einfo.adb: Remove Associated_Collection from the node usage.
        Add Finalization_Master to the node usage.
        (Associated_Collection): Removed.
        (Finalization_Master): New routine.
        (Set_Associated_Collection): Removed.
        (Set_Finalization_Master): New routine.
        (Write_Field23_Name): Remove Associated_Collection from the output. Add
        Finalization_Master to the output.
        * einfo.ads: Remove attribute Associated_Collection and its uses in
        entities.
        Add new attribute Finalization_Master along with its uses in entitites.
        (Associated_Collection): Removed along with its pragma import.
        (Finalization_Master): New routine along with a pragma import.
        (Set_Associated_Collection): Removed along with its pragma import.
        (Set_Finalization_Master): New routine along with a pragma import.
        * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
        Build_Finalization_Collection with Build_Finalization_Master.
        (Expand_Freeze_Record_Type): Move the generation of Finalize_Address
        before the bodies of the predefined routines. Add comment explaining
        this. Replace call to Build_Finalization_Collection with
        Build_Finalization_Master.
        (Freeze_Type): Replace call to Build_Finalization_Collection with
        Build_Finalization_Master.
        (Make_Finalize_Address_Body): Comment reformatting.
        (Make_Predefined_Primitive_Specs): Code reformatting.
        (Stream_Operation_OK): Update comment mentioning finalization
        collections. Replace RE_Finalization_Collection with
        RE_Finalization_Master.
        * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
        Associated_Collection with Finalization_Master. Replace call to
        Build_Finalization_Collection with Build_Finalization_Master.
        (Expand_Allocator_Expression): Replace call to Associated_Collection
        with Finalization_Master. Replace call to Set_Associated_Collection with
        Set_Finalization_Master. Remove the generation of
        Set_Finalize_Address_Ptr.
        (Expand_N_Allocator): Replace call to Associated_Collection with
        Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
        * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
        Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
        comment on usage. Replace call to Needs_BIP_Collection with
        Needs_BIP_Finalization_Master Remplace BIP_Collection with
        BIP_Finalization_Master. Update all comments which mention finalization
        collections. Replace Associated_Collection with
        Finalization_Master. Replace Build_Finalization_Collection with
        Build_Finalization_Master.
        (BIP_Formal_Suffix): Update BIP_Collection's case.
        (Build_Heap_Allocator): Update the related comment. Rename local
        variable Collect to Fin_Mas_Id and update its occurrences. Update
        comments which mention finalization collections. Replace
        Set_Associated_Collection with Set_Finalization_Master.
        (Expand_Call): Update the code which detects a special piece of library
        code for .NET/JVM.
        (Make_Build_In_Place_Call_In_Allocator): Replace the call to
        Add_Collection_Actual_To_Build_In_Place_Call with
        Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
        which generates a call to Make_Set_Finalize_Address_Ptr_Call.
        (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
        Add_Collection_Actual_To_Build_In_Place_Call with
        Add_Finalization_Master_Actual_To_Build_In_Place_Call.
        (Make_Build_In_Place_Call_In_Assignment): Replace call to
        Add_Collection_Actual_To_Build_In_Place_Call with
        Add_Finalization_Master_Actual_To_Build_In_Place_Call.
        (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
        * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
        (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
        * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
        Rename local variable Collect to Fin_Mas_Id and update its occurrences.
        Replace call to Set_Associated_Collection with Set_Finalization_Master.
        (Build_Finalization_Collection): Renamed to Build_Finalization_Master.
        Replace the call to Associated_Collection with Finalization_Master.
        Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
        Update the way finalization master names are generated. Update the
        retrieval of the correct access type which will carry the pool and
        master attributes.
        (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
        (Make_Finalize_Address_Body): Abstract types do not need
        Finalize_Address. Code reformatting.
        (Make_Finalize_Address_Stmts): Update comment on usage.
        (Make_Set_Finalize_Address_Ptr_Call): Removed.
        (Process_Declarations): Update comments.
        * exp_ch7.ads (Build_Finalization_Collection): Renamed to
        Build_Finalization_Master. Update associated comment.
        (Make_Set_Finalize_Address_Ptr_Call): Removed.
        * exp_ch13.adb: Update comments which mention finalization collections.
        (Expand_N_Free_Statement): Replace the call to Associated_Collection
        with Finalization_Master.
        * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
        create calls to routines Allocate_Any_Controlled and
        Deallocate_Any_Controlled.
        (Find_Finalize_Address): New routine.
        (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
        comparison.
        (Requires_Cleanup_Actions): Update the comment on freeze node
        inspection.
        * exp_util.ads: Remove comment on generated code for
        Build_Allocate_Deallocate_Proc. The code is now quite complex and it
        is better to simply look in the body.
        * freeze.adb (Freeze_All): Update the comment of finalization
        collections. Replace the call to Associated_Collection with
        Finalization_Master. Replace the call to Build_Finalization_Collection
        with Build_Finalization_Master.
        * impunit.adb: Add a-undesu and s-stposu to the list of units.
        * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
        a-fihema.
        * rtsfind.adb (Get_Unit_Name): Remove the processing for children of
        Ada.Finalization. Add processing for children of System.Storage_Pools.
        * rtsfind.ads: Remove the naming of second level children of
        Ada.Finalization.
        Remove Ada_Finalization_Heap_Management from the list of units.
        Remove subtype Ada_Finalization_Child.
        Remove the following subprogram entities:
        
           RE_Allocate
           RE_Deallocate
           RE_Finalization_Collection
           RE_Finalization_Collection_Ptr
           RE_Set_Finalize_Address_Ptr
        
        Add the naming of second level children of System.Storage_Pools.
        Add System_Finalization_Masters and System_Storage_Pools_Subpools to
        the list of units.
        Add subtype System_Storage_Pools_Child.
        Add the following subprogram entities to System.Finalization_Masters:
        
           RE_Finalization_Master
           RE_Finalization_Master_Ptr
        
        Add the following subprogram entities to System.Storage_Pools.Subpools:
        
           RE_Allocate_Any_Controlled
           RE_Deallocate_Any_Controlled
           RE_Root_Storage_Pool_With_Subpools
           RE_Root_Subpool
           RE_Subpool_Handle
        
        Move the following subprogram entities from
        Ada.Finalization.Heap_Management to System.Finalization_Masters:
        
           RE_Add_Offset_To_Address
           RE_Attach
           RE_Base_Pool
           RE_Detach
        
        * sem_ch3.adb (Access_Type_Declaration): Replace the call to
        Set_Associated_Collection with Set_Finalization_Master.
        * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
        BIP_Finalization_Master is created.
        * s-finmas.adb: New unit System.Finalization_Masters.
        * s-finmas.ads: New unit System.Finalization_Masters.
        * s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
        * s-stposu.ads, s-stposu.adb: New unit implementing
        System.Storage_Pools.Subpools.

2011-08-29  Bob Duff  <duff@adacore.com>

        * tbuild.adb: Add assertion.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * s-pooglo.adb: Minor reformatting.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
        an indexed component of a packed array whose element type is a record
        with a representation clause different from that of the right-hand
        side, generate a temporary to minimuze the number of bit-field
        operations generated.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_util.adb (Insert_Actions): Use clauses can be part of lists of
        declarations, and thus are likely insertion points for actions.

2011-08-29  Bob Duff  <duff@adacore.com>

        * einfo.ads: Minor comment fix.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * frontend.adb, gnat1drv.adb: Minor reformatting.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * s-pooglo.adb (Allocate, Deallocate): Take into account the alignment.
        * a-fihema.adb (Allocate, Deallocate): Ditto.  Possibly add padding
        space in front of the header.

2011-08-29  Johannes Kanig  <kanig@adacore.com>

        * frontend.adb (Frontend): Exit after creating Standard package when
        -gnatd.H is present.
        * gnat1drv.adb (Gnat1drv): Call Backend right away when -gnatd.H is
        present.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb, mlib-prj.adb, prj.adb, prj.ads, ttypes.ads, sem_ch4.adb,
        makeutl.adb, makeutl.ads, atree.ads, snames.adb-tmpl,
        snames.ads-tmpl: Minor reformatting.

2011-08-29  Philippe Gil  <gil@adacore.com>

        * prj.adb (Reset_Units_In_Table): New procedure.
        Reset units to avoid access to freed memory.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * get_scos.adb: When reading a P statement SCO without a pragma name
        (from an older ALI file), ensure that the Pragma_Name component is set
        to Unknown_Pragma (not left uninitialized).

2011-08-29  Vincent Celier  <celier@adacore.com>

        * makeutl.adb (Get_Directories): New procedure moved from Buildgpr and
        modified to compute correctly the object path of a SAL project that is
        extending another library project.
        (Write_Path_File): New procedure.
        * makeutl.ads (Directories): New table moved from Buildgpr
        (Get_Directories): New procedure moved from Buildgpr
        (Write_Path_File): New procedure
        * mlib-prj.adb (Build_Library): Use Makeutl.Get_Directories to set the
        paths before binding SALs, instead of Set_Ada_Paths.
        * prj-env.adb (Set_Path_File_Var): Procedure has been moved to package
        Prj.
        * prj.adb (Set_Path_File_Var): New procedure moved from Prj.Env
        (Current_Source_Path_File_Of): New function
        (Set_Current_Object_Path_File_Of): New procedure
        (Current_Source_Object_File_Of): New function
        (Set_Current_Object_Path_File_Of): New procedure
        * prj.ads (Set_Path_File_Var): New procedure moved from Prj.Env
        (Current_Source_Path_File_Of): New function
        (Set_Current_Object_Path_File_Of): New procedure
        (Current_Source_Object_File_Of): New function
        (Set_Current_Object_Path_File_Of): New procedure

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Assignment_Statement): For an assignment to a
        packed entity, use a bit-field assignment only if there is no change of
        representation.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * rtsfind.ads, exp_ch3.adb (In_Runtime): Minor code improvement, use
        Is_RTU instead of using Chars comparisons.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do not create a
        temporary object if the actual is constrained, and the discriminants
        read from the stream don't match.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * sem_attr.adb, exp_attr.adb: Add handling of
        Attribute_System_Allocator_Alignment
        * snames.ads-tmpl: Add Name_System_Allocator_Alignment and
        Attribute_System_Allocator_Alignment.
        * ttypes.ads, get_targ.ads: Add Get_System_Allocator_Alignment.
        * gcc-interface/targtyps.c, gcc-interface/utils2.c,
        gcc-interface/gigi.h: Renames get_target_default_allocator_alignment to
        get_target_system_allocator_alignment.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
        dependencies.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * exp_ch3.adb (In_Runtime): Fix typo.

2011-08-29  Bob Duff  <duff@adacore.com>

        * sem_ch4.adb (Analyze_Allocator): Analyze the subpool specification.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch3.adb (Expand_N_Object_Declaration): If the entity is tagged
        and a separate tag assignment is generated, ensure that the tag
        assignment is analyzed.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * atree.ads, atree.adb (Copy_Separate_List): New function that applies
        Copy_Separate_Tree to a list of nodes. Used to create disjoint copies
        of statement lists that may contain local declarations.
        * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use Copy_Separate_List to
        duplicate the triggering statements needed for the expansion of this
        construct, when the trigger is a dispatching call to a synchronized
        primitive.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * gnat_rm.texi: Add doc for 'Elab_Subp_Body.
        * bindgen.adb: Add comments.
        * snames.adb-tmpl (Is_Attribute_Name): Only recognize 'Elab_Subp_Body
        in CodePeer mode.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb: Minor reformatting.
        Minor code reorganization and commenting.
        * par_sco.adb, checks.adb, sem_attr.adb, get_scos.adb: Minor
        reformatting.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * get_scos.adb: Ignore chaining indicators not currently supported
        by Ada.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * system.ads: Minor editing.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * bindgen.adb (Gen_Elab_Calls): Generate calls to subp'Elab_Subp_Body in
        CodePeer mode.
        * sem_attr.ads, sem_attr.adb, exp_Attr.adb, sem_ch6.adb: Add handling of
        Attribute_Elab_Subp_Body.
        * snames.ads-tmpl (Attribute_Elab_Subp_Body, Name_Elab_Subp_Body): New.
        * sem_util.adb: Update comments.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb, scos.adb, scos.ads, put_scos.adb, get_scos.adb: Record
        pragma name for each SCO statement corresponding to a pragma.

2011-08-29  Arnaud Charlet  <charlet@adacore.com>

        * opt.ads: Minor editing.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * gnat1drv.adb (Adjust_Global_Switches): Remove options for ALFA mode
        that only made sense for CodePeer mode.

2011-08-29  Jose Ruiz  <ruiz@adacore.com>

        * targparm.ads (Support_64_Bit_Divides_On_Target): Remove this flag
        which is no longer used.
        * targparm.adb (S64, S64_Str, Get_Target_Parameters): Remove the
        handling of the 64-bit division check.
        * exp_ch4.adb (Expand_N_Op_Divide): Remove the check for 64-bit
        division available.
        * system*.ads (Support_64_Bit_Divides): Remove this flag which is no
        longer used.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * get_scos.adb: Minor reformatting.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb (Process_Statements_For_Controlled_Objects): Whenever a
        statement list is wrapped in a block, the block is explicitly analyzed
        in order to properly redecorate the entities and create a servicing
        finalizer.

2011-08-29  Tristan Gingold  <gingold@adacore.com>

        * sinfo.ads, sinfo.adb (Zero_Cost_Handling): Remove.
        (Set_Zero_Cost_Handling): Remove.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Minor reformatting

2011-08-29  Geert Bosch  <bosch@adacore.com>

        * s-vaflop-vms-alpha.adb (Neg_F): Use subtraction instead of negation
        instruction, as the latter may produce -0.0, which is not a valid VAX
        F float number.
        (Neg_G): Likewise for VAX F float.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb: Minor reformatting.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb: Minor comment update.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * checks.adb (Apply_Type_Conversion_Checks): Use the Underlying_Type of
        the operand type.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb (Traverse_Declarations_Or_Statements): Do not flush
        current statement sequence on a generic instantiation or a subprogram
        declaration.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
        Minor reformatting.

2011-08-29  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
        Correct the check which involves the freeze node of a controlled or
        access-to-controlled type.

2011-08-29  Geert Bosch  <bosch@adacore.com>

        * sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
        statements.
        * s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
        Asm statements.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Array_Type_Declaration): Insert a subtype declaration
        for every index type and component type that is not a subtype_mark.
        (Process_Subtype): Set Etype of subtype.

2011-08-29  Robert Dewar  <dewar@adacore.com>

        * a-cbmutr.adb, a-cimutr.adb, a-comutr.adb, prj-nmsc.adb: Minor code
        reorganization.  Minor reformatting.

2011-08-29  Steve Baird  <baird@adacore.com>

        * exp_ch4.adb (Expand_N_Op_Expon): Suppress N_Op_Expon node expansion
        for CodePeer and ALFA modes.

2011-08-29  Ed Schonberg  <schonberg@adacore.com>

        * sem_type.adb (Collect_Interps): Within an instance, collect a homonym
        that comes from an enclosing scope if it is not the renaming of an
        actual, to handle properly a spurious ambiguity in an instance.

2011-08-29  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_ch13.adb (Alignment_Check_For_Esize_Change): Rename to...
        (Alignment_Check_For_Size_Change): ...this.  Add SIZE parameter and
        use it instead of the Esize of the first parameter.
        (Analyze_Attribute_Definition_Clause) <Object_Size>: Adjust call to
        above change.
        <Size>: Likewise.  Call it for composite types on the RM size.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_ch4.adb (Expand_N_Op_Not): Do not expand not on array.
        * sem_util.adb (Unique_Name): Correct behaviour for names of
        compilation units.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * sem_prag.adb (Check_Precondition_Postcondition): In formal
        verification mode, analyze pragma expression for correctness, for
        pre/post on library-level subprogram, as it is not expanded later.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * exp_aggr.adb (Expand_Array_Aggregate): Do not expand array aggregates
        in formal verification.

2011-08-29  Thomas Quinot  <quinot@adacore.com>

        * sem_util.adb: Minor reformatting.
        * freeze.adb, sem_ch13.adb: Fix comment: Bit_Order is an attribute,
        there's no pragma.
        * par_sco.ads, par_sco.adb: Update comments.

2011-08-29  Yannick Moy  <moy@adacore.com>

        * einfo.adb, einfo.ads: Remove flag Is_Postcondition_Proc and
        associated getter/setter.
        * sem_ch6.adb: Remove reference to Is_Postcondition_Proc.

2011-08-29  Vincent Celier  <celier@adacore.com>

        * prj-attr.adb: New Compiler attribute Dependency_Kind and Language_Kind
        * prj-conf.adb: Add_Default_GNAT_Naming_Scheme: Add a package Compiler
        with declarations for Language_Kind and Dependency_Kind for Ada.
        * prj-nmsc.adb (Check_Unit_Name): New name of procedure Check_Ada_Name
        (Process_Compiler): Take into account the new attributes Dependency_Kind
        and Language_Kind.
        (Check_Configuration): Check if language kind is unit based, not if the
        language name is Ada.
        (Process_Exceptions_Unit_Based): Ditto
        (Add_Language): Remove default additions of language and dependency kind
        * prj.ads: Minor comment change
        * snames.ads-tmpl: New standard names Dependency_Kind and Language_Kind

2011-08-29  Johannes Kanig  <kanig@adacore.com>

        * debug.adb: Update comments.

2011-08-24  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
        (CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
        (CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
        (ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
        (ada/initialize.o, ada/raise.o): Remove explicit compilation rules.

2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
        (GNATLIBCFLAGS_FOR_C): Replace
        TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
        (gnatlib-shared-default, gnatlib-shared-dual-win32)
        (gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
        (gnatlib-sjlj, gnatlib-zcx): Likewise.

2011-08-07  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.

        * gcc-interface/gigi.h (enumerate_modes): Fix formatting.

        * gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.

2011-08-05  Nicolas Roche  <roche@adacore.com>

        * gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
        libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
        canadian cross.
        * gcc-interface/Make-lang.in: Add support for canadian cross setting.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

        * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
        subprogram bodies declared out-of-order.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * sem_util.adb (Unique_Name): only prefix with "standard" the names of
        entities directly in package Standard, otherwise skip the standard
        prefix.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * a-cbmutr.adb: Minor reformatting
        (Allocate_Node): refactor node allocation algorithm

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
        * sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
        mode.
        (Analyze_Pragma, case Check_Policy): Ditto.
        * sem_prag.ads (Check_Disabled): New function
        * snames.ads-tmpl: Add Name_Disable.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Document implementation-defined policy DISABLE for
        pragmas Assertion_Policy, Check_Policy, Debug_Policy.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
        that appears in a generic formal part and applies to a formal
        subprogram.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * a-cbmutr.ads: Minor reformatting.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

        * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
        to check count, check sign of value instead.
        * a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
        (Copy_Subtree): allocate copy of source element
        (Equal_Subtree): compare elements, not access objects

2011-08-05  Vincent Celier  <celier@adacore.com>

        * gnat_ugn.texi: Fix VMS alternative.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

        * sem_ch11.adb: Add comment.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb: Minor comment fix.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * scng.adb (Error_Unterminated_String): Improve flag position when
        comma present.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

        * Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
        tree containers).
        * a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
        multiway tree containers.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
        * stylesw.adb: Implement -gnatyC to control comment spacing
        * stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
        -gnatyc/C).
        * usage.adb: Add line for -gnatyC.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * gnat_ugn.texi: Document -gnatyC.
        * vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
        synonym for COMMENTS2).

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
        a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
        sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
        a-comutr.ads, lib-xref.adb: Minor reformatting.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
        warning if there is an exception handler present.

2011-08-05  Pascal Obry  <obry@adacore.com>

        * a-iteint.ads: Fix copyright year.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
        statement SCO for a USE clause or a representation clause.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
        between body and spec for stub.
        (Detect_And_Add_ALFA_Scope): take into account subprogram stub
        * lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
        pragma precondition or postcondition, for which the enclosing
        subprogram or package in the AST is not the desired one, return empty.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

        * g-expect.adb: Minor reformatting.

2011-08-05  Bob Duff  <duff@adacore.com>

        * a-fihema.adb: Comment out OS_Lib.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

        * Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
        (unbounded multiway tree containers) and a-iteint.ads.
        * a-comutr.ads, a-comutr.adb:
        This is the new Ada 2012 unit for unbounded multiway tree containers
        * a-cimutr.ads, a-cimutr.adb
        This is the new Ada 2012 unit for indefinite multiway tree containers
        * a-iteint.ads: New file.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.

2011-08-05  Bob Duff  <duff@adacore.com>

        * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
        subpools.
        * par-ch4.adb (P_Allocator): Parse new subpool specification syntax.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
        general indexing aspects of Ada2012. Called when analyzing indexed
        components when other interpretations fail.
        * sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
        in an expression context where overloading is meaningful. This excludes
        the occurrence in an aspect specification (efficiency only).
        * sem_attr.adb (Analyze_Attribute): indicate that the attributes
        related to iterators can be set by an attribute specification, but
        cannot be queried.
        * sem_ch13.adb (Analyze_Aspect_Specifications): handle
        Constant_Indexing and Variable_Indexing.
        (Check_Indexing_Functions): New procedure to perform legality checks.
        Additional semantic checks at end of declarations.

2011-08-05  Sergey Rybin  <rybin@adacore.com>

        * tree_io.ads: Update ASIS_Version_Number because of the change of the
        order of calling Tree_Write/Tree_Read routines made for aspects.

2011-08-05  Bob Duff  <duff@adacore.com>

        * a-fihema.adb (Finalize): Fix race condition.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * sem_ch12.adb (Analyze_Package_Instantiation,
        Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
        mode.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_type.adb (Specific_Type): in an instance, the type-specific
        operand of an equality check that involves null may have a private
        type. Use full view to determine legality of construct.

2011-08-05  Vincent Celier  <celier@adacore.com>

        * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
        delete or close the file when the call to gnatmake was successful.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
        Global_Discard_Names.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sinfo.ads: comments on use of entity field for aspect specifications.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Reset_Entity): If the entity field of the associated
        node is not itself an entity but a selected component, it is a
        rewritten parameterless call to an en enclosing synchronized operation,
        and this expansion will be performed again in the instance, so there is
        no global information to preserve.

2011-08-05  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
        for renamings of predefined primitives.
        (In_Predef_Prims_DT): New subprogram.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
        possible interpretation of name is a reference type, add an
        interpretation that is the designated type of the reference
        discriminant of that type.
        * sem_res.adb (resolve): If the interpretation imposed by context is an
        implicit dereference, rewrite the node as the deference of the
        reference discriminant.
        * sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
        Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
        parent type or base type.
        * sem_ch4.adb (Process_Indexed_Component,
        Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
        Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
        Check for implicit dereference.
        (List_Operand_Interps): Indicate when an implicit dereference is
        ambiguous.
        * sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

        * scos.ads: Update documentation of SCO table. Pragma statements can now
        be marked as disabled (using 'p' instead of 'P' as the statement kind).
        * par_sco.ads, par_sco.adb: Implement the above change.
        (Process_Decisions_Defer): Generate a P decision for the first parameter
        of a dyadic pragma Debug.
        * sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
        necessary.
        * put_scos.adb: Code simplification based on above change.

2011-08-05  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
        bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
        a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
        prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting

2011-08-05  Bob Duff  <duff@adacore.com>

        * a-stunau.ads, g-spipat.adb: Update comments.

2011-08-05  Bob Duff  <duff@adacore.com>

        * a-fihema.ads: Minor comment fix.
        * a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
        correct.
        (Attach, Detach): Remove some unnecessary code.
        (Finalize): Remove Node_Ptr_To_Address, replace with a constant.

2011-08-05  Bob Duff  <duff@adacore.com>

        * a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
        allocation for Objects component. This simplifies the code somewhat. It
        is also a little more efficient in the not-so-unusual case where there
        are no controlled objects allocated.
        Make Finalization_Started flag atomic.
        (Finalize): Avoid unnecessary detachment of items from the list.
        (pcol): Minor cleanup.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
        package whose name is the same as that of the generic unit, or its
        ultimate prefix.

2011-08-05  Bob Duff  <duff@adacore.com>

        * a-fihema.adb, a-fihema.ads: Minor comment improvements.
        * sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
        Minor comment fixes.

2011-08-05  Arnaud Charlet  <charlet@adacore.com>

        * make.adb (Linking_Phase): No longer need to set source search path
        before calling gnatlink in CodePeer mode.
        * gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
        gcc in CodePeer mode, since the binder generated file no longer has a
        'with Main'.
        * switch.ads, switch.adb (Is_Language_Switch): Removed.
        * switch-c.adb: Update comment.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

        * exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.

2011-08-05  Nicolas Roche  <roche@adacore.com>

        * gnat_ugn.texi: Fix minor syntax error issue.

2011-08-05  Vincent Celier  <celier@adacore.com>

        * gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
        delete or close the file when the call to gnatmake returns a non
        successful return code.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
        check, indicate that the copy of the original node does not come from
        source, to prevent an infinite recursion of the expansion.

2011-08-05  Johannes Kanig  <kanig@adacore.com>

        * debug.adb: document switch -gnatd.G for gnat2why, which deactivates
        VC generation for subprogram bodies.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * einfo.ads: Typo.
        * sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
        the base type with the smallest allowed base type.

2011-08-05  Sergey Rybin  <rybin@adacore.com>

        * tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
        aspects.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.ads: minor comment updates.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
        instantiation and a formal package the compiler generates a package
        renaming declaration so that the generic name within the declaration
        is interpreted as a renaming of the instance. At the end of a formal
        package declaration, this renaming must become invisible.

2011-08-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
        comparison and rely on concrete entities instead.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
        and discriminants, to indicate that the type has an access discriminant
        that supports implicit dereference.
        * snames.ads-tmpl: Add names of aspects and attributes related to
        Ada2012 iterators: constant_indexing, default_iterator,
        iterator_element, implicit_dereference, variable_indexing.
        * aspects.ads, aspects.adb: entries for iterator-related aspects.
        * sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
        iterator-related aspects.
        * sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.

2011-08-05  Sergey Rybin  <rybin@adacore.com>

        * gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
        metrics in gnatmetric to cover new kinds of coupling mentrics.

2011-08-05  Steve Baird  <baird@adacore.com>

        * bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
        of calling the user-defined main subprogram.
        (Gen_Main):  Declare Ada_Main_Program and (if CodePeer_Mode
        is set) Call_Main_Subprogram ahead of, as opposed to
        inside of, Main.
        (Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
        generation of a "with" of the user-defined main subprogram.
        Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
        (which is now called from Gen_Main instead).

2011-08-05  Emmanuel Briot  <briot@adacore.com>

        * projects.texi: Added reference to the Makefile package.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

        * exp_ch7.adb: Minor comment rewording.

2011-08-05  Ed Falis  <falis@adacore.com>

        * env.c: Fix comment.

2011-08-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
        character comparison and rely on concrete entities instead.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb: (Check_Private_Overriding): better error message,
        suggested by AI95-0068.

2011-08-05  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
        the two potential initialization calls. This accounts for any
        access-before-elaboration checks which may precede the initialization
        calls.
        (Next_Suitable_Statement): New routine. Returns the next real statement
        after the input node while skipping generated checks.
        * sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
        with comment on usage.
        Do not generate Elaborate_All when the trigger is a finalization call
        coming from a type init proc.
        (Check_Elab_Call): Propagate the initialization procedure context to
        subsequent calls to Check_A_Call.
        (Check_Internal_Call_Continue): Propagate the initialization procedure
        context to subsequent calls to Check_Elab_Call.
        (Is_Finalization_Procedure): New routine. Returns True if the input
        entity denotes a [Deep_]Finalize routine.
        * sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
        along with comment on usage.

2011-08-05  Vadim Godunko  <godunko@adacore.com>

        * s-atocou.ads: Add list of supported platforms.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables

        * opt.ads (Disable_ALI_File): new Boolean flag
        * lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing

2011-08-05  Ed Falis  <falis@adacore.com>

        * env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
        environ is properly defined.

2011-08-05  Vincent Celier  <celier@adacore.com>

        * make.adb (Compilation_Phase): Exit immediately when all objects have
        been found up to date, to avoid multiple exit messages.
        * prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
        same project for languages with no compiler.
        * gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
        -eI.
2011-08-05  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
        sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
        prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
        s-atocou-builtin.adb: Minor reformatting.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
        if the node to wrap is a pragma check, this node and enclosed
        expression are not expanded, so do not apply any transformations here.
        * exp_prag.adb (Expand_Pragma_Check): document the need to avoid
        introducing transient scopes.

2011-08-05  Jose Ruiz  <ruiz@adacore.com>

        * adaint.c (__gnat_set_writable, __gnat_set_readable,
        __gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
        __gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
        routine is available, so we use the default implementation of these
        functions.
        * s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
        support for copying attributes on VxWorks 6.

2011-08-05  Yannick Moy  <moy@adacore.com>

        * debug.adb: Remove use of -gnatd.D.
        * gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
        * opt.ads: Simplify variables for ALFA mode, to keep one only
        * restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
        to ALFA mode.

2011-08-05  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Do_Autoconf): Look also for --RTS in
        Builder'Default_Switches.

2011-08-05  Vincent Celier  <celier@adacore.com>

        * makeusg.adb: Add lines for --create-map-file switches.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb (Freeze_Entity): For a subprogram, if a type in the
        profile is incomplete and the full view is available, replace it with
        the full view.
        * sem_ch6.adb (Possible_Freeze): if a type in the profile is
        incomplete, freezing the subprogram is delayed until the full view is
        frozen.
        * sem_type.adb (Disambiguate): an ambiguity between a user-defined
        fixed-point multiplication operator and the predefined operator is
        resolved in favor of the user-defined one.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
        CONST_CAST.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
        whether a type lacks user-defined Read or Write operations, or has a
        component that lacks them.
        * sem_attr.adb (Check_Stream_Attribute): if restriction
        No_Default_Stream_Attributes is active, verify that all subcomponent
        types of the target have user-defined stream operations, and report
        error otherwise.
        * exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
        * exp_strm.adb: Build_Elementary_Input_Call,
        Build_Elementary_Write_Call): remove checks for restriction
        No_Default_Stream_Attributes, now checked in semantics.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
        switches on the command line, look for all valid --RTS switches in the
        Builder switches and for each language use the first runtime name found
        to invoke gprconfig.
        (Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
        command line and there is no auto-configuration.
        (Runtime_Name_Set_For): New function.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Build_Object_Declarations): Do not generate the
        elaborate initialization expression for variable Abort when processing
        a package body or a declaration.
        (Create_Finalizer): Propagate the package context when creating the
        exception-related variables.
        * exp_ch7.ads (Build_Object_Declarations): New formal parameter
        For_Package along with usage comment.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Makefile.in: Clean up targets.
        Enable new package for atomic counters and copy-on-write implementation
        of unbounded strings on x86 platforms.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * exp_strm.adb: Minor reformatting.

2011-08-04  Vadim Godunko  <godunko@adacore.com>

        * s-atocou.adb: Replace by dummy version and use on targets where atomic
        operations are not supported.
        * s-atocou-builtin.adb: Renamed from s-atocou.adb.
        * s-atocou-x86.adb: New file.
        * Makefile.rtl: Add s-atocou.o file

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * make.adb (Compile): Move setting of CodePeer_Mode to ...
        (Compilation_Phase): ... here.
        (Scan_Make_Arg): Now bind and link by default in CodePeer mode.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * Make-generated.in: Fix minor typo in comment.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
        the project path.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * a-coinho.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * a-coinho.ads: Minor reformatting.

2011-08-04  Vadim Godunko  <godunko@adacore.com>

        * s-atocou.ads, s-atocou.adb: New files.
        * a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
        a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
        direct use of GCC's atomic builtins and replace them by use of new
        atomic counter package.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * exp_strm.adb: better error message for No_Default_Stream_Attributes.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
        with a call to Get_External_Tag.
        * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
        subprogram usage. Remove the guard against package declarations and
        bodies since Build_Cleanup_Statements is no longer invoked in that
        context.
        (Build_Components): Initialize Tagged_Type_Stmts when the context
        contains at least one library-level tagged type.
        (Build_Finalizer): New local variables Has_Tagged_Types and
        Tagged_Type_Stmts along with associated comments on usage. Update the
        logic to include tagged type processing.
        (Create_Finalizer): Insert all library-level tagged type unregistration
        code before the jump block circuitry.
        (Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
        (Expand_N_Package_Declaration): Remove the call to
        Build_Cleanup_Statements.
        (Process_Tagged_Type_Declaration): New routine. Generate a call to
        unregister the external tag of a tagged type.
        (Processing_Actions): Reimplemented to handle tagged types.
        (Process_Declarations): Detect the declaration of a library-level
        tagged type and carry out the appropriate actions.
        (Unregister_Tagged_Types): Removed. The machinery has been directly
        merged with Build_Finalizer.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
        gnatls.adb, exp_ch3.adb: Minor reformatting.

2011-08-04  Marc Sango  <sango@adacore.com>

        * sem_attr.adb (Analyze_Attribute): Replace the message
        "invisible attribute of}" of the spark restriction violation in
        attribute reference by the simple message "invisible attribute of type".
        Indeed, the node value Error_Msg_Node_1 used is in conflit with the
        two insertion characters: '&' and '}'.

2011-08-04  Vadim Godunko  <godunko@adacore.com>

        * impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
        * a-coinho.ads, a-coinho.adb: New file.
        * Makefile.rtl: Add Ada.Containers.Indefinite_Holders.

2011-08-04  Nicolas Roche  <roche@adacore.com>

        * alfa_test.adb: Not all ali files are containing alfa information even
        if compiled with -gnatd.F. So suppress warning about missing ALFA
        information.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
        scope.
        * put_alfa.adb: Check that scope name is not empty.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch3.adb (Stream_Operation_Ok): new predicate
        Needs_Elementary_Stream_Operation, to determine whether user-defined
        Read and Write attributes are available for the elementary components
        of the given type. If only the predefined attributes are available,
        then when restriction No_Default_Stream_Attributes is active the
        predefined stream attributes for the composite type cannot be created.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * bindgen.adb: Fix obsolete comments and names from Ada/C days.
        Put routines in alpha order

2011-08-04  Jose Ruiz  <ruiz@adacore.com>

        * gcc-interface/Makefile.in: Remove xenomai specific versions of system.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
        * gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
        gnat1why).

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
        lib-xref-alfa.adb: Minor reformatting.

2011-08-04  Marc Sango  <sango@adacore.com>

        * sem_ch12.adb (Analyze_Generic_Package_Declaration,
        Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
        Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
        mode.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * bindgen.adb (Gen_Adainit_C): Remove.
        (Gen_Adafinal_C): Ditto.
        (Gen_Elab_Externals_C): Ditto.
        (Gen_Elab_Calls_C): Ditto.
        (Gen_Elab_Order_C): Ditto.
        (Gen_Elab_Defs_C): Ditto.
        (Gen_Finalize_Library_C): Ditto.
        (Gen_Finalize_Library_Defs_C): Ditto.
        (Gen_Main_C): Ditto.
        (Gen_Output_File_C): Ditto.
        (Gen_Restrictions_C): Ditto.
        (Gen_Versions_C): Ditto.
        (Write_Info_Ada_C): Ditto.
        (Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
        (Gen_Output_File): Do not force Ada_Bind_File anymore.
        Always call Gen_Output_File_Ada.
        * gnatlink.adb (Begin_Info): Now a constant.
        (End_Info): Ditto.
        (Ada_Bind_File): Remove
        (Process_Args): Do not handle -A/-C.  Remove not Ada_Bind_File cases.
        * switch-b.adb (Scan_Binder_Switches): Do not handle -C.
        * gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
        * opt.ads (Ada_Bind_File): Remove.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * projects.texi: Document target-specific directory in default project
        path for gnatmake.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
        path in all cases .

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
        opt.ads, lib-xref.ads: Code clean up.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi: Update description of Test_Case
        * gnat_ugn.texi: Typo.

2011-08-04  Ed Falis  <falis@adacore.com>

        * adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
        it is of type Root_Controlled. This action eliminates fields Prev and
        Next from type equality.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb: Correct typo.

2011-08-04  Matthew Heaney  <heaney@adacore.com>

        * a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
        component.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
        (Analyze_Pragma): allow static string expression for name of Test_Case,
        instead of simply string literals.
        * sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
        expressions.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
        case suffixes to find truncated main sources.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
        s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
        (Compute_Current_Task): Ditto.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Is_Global_Constant): new function that detects
        library-level constant.
        (Add_ALFA_Xrefs): ignore global constants in ALFA xref.
        * sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
        used as selector of parameter association, in ALFA mode.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
        s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
        reformatting.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * make.adb (Linking_Phase): Set source search path before calling
        gnatlink in CodePeer mode.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
        Remove code which takes care of building TSDs.
        * rtsfind.ads (RE_Check_Interface_Conversion): New entity.
        * exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
        the accessibility check in VM targets.
        * exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
        (Building_Static_DT): Now returns false for VM targets.
        (Build_VM_TSDs): Removed.
        (Expand_Interface_Conversion): Generate missing runtime check for
        conversions to interface types whose target type is unknown at compile
        time.
        (Make_VM_TSD): Add missing code to disable the generation of calls to
        Check_TSD if the tagged type is not defined at library level, or not
        has a representation clause specifying its external tag, or -gnatdQ is
        active.
        * exp_disp.ads (Build_VM_TSDs): Removed.
        (Make_VM_TSDs): Spec relocated from exp_disp.adb
        * sem_disp.adb (Check_Dispatching_Operation): No code required to
        register primitives in the dispatch tables in VM targets.
        * exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
        initialization of class-wide interface objects in VM targets.
        (Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
        of Make_DT).

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

        * gnatlink.adb (Gnatlink): Correct missleading error message displayed
        when dotnet-ld cannot be found.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * bindgen.adb: Simplify significantly generation of binder body file in
        CodePeer mode.
        * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
        when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
        not expanded).

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_prag.adb, sem.ads: Code cleanup.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
        * s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
        results if possible.
        * s-stusta.adb (Print): Adjust after changes in s-stausa.
        * gnat_ugn.texi: Update dynamic stack usage section.

2011-08-04  Steve Baird  <baird@adacore.com>

        * bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
        Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
        contains only a call to the user-defined main subprogram.
        (Gen_Main_Ada) - If CodePeer_Mode is set, then
        call the "wrapper" subprogram instead of directly
        calling the user-defined main subprogram.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
        alternatives of a case statement for controlled objects. Rename local
        variable A to Dead_Alt.
        (Expand_N_If_Statement): Check the then and else statements of an if
        statement for controlled objects. Check the then statements of all
        elsif parts of an if statement for controlled objects.
        (Expand_N_Loop_Statement): Check the statements of a loop for controlled
        objects.
        * exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
        detects a loop associated with the expansion of an array object.
        Augment the processing of the loop statements to account for a possible
        wrap done by Process_Statements_For_Controlled_Objects.
        * exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
        statements and abortable part of an asynchronous select for controlled
        objects.
        (Expand_N_Conditional_Entry_Call): Check the else statements of a
        conditional entry call for controlled objects.
        (Expand_N_Selective_Accept): Check the alternatives of a selective
        accept for controlled objects.
        (Expand_N_Timed_Entry_Call): Check the entry call and delay
        alternatives of a timed entry call for controlled objects.
        * exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
        exception handler for controlled objects.
        * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
        Add formal parameter Nested_Constructs along with its associated
        comment.
        (Requires_Cleanup_Actions (Node_Id)): Update all calls to
        Requires_Cleanup_Actions.
        (Process_Statements_For_Controlled_Objects): New routine.
        * exp_util.ads (Process_Statements_For_Controlled_Objects): New
        routine. Inspect a node which contains a non-handled sequence of
        statements for controlled objects. If such an object is found, the
        statements are wrapped in a block.

2011-08-04  Bob Duff  <duff@adacore.com>

        * sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
        need to compare with Class_Wide_Type (T2), in order to get at the
        original class-wide type node.
        * sem_type.ads (Covers): Improve the comment.
        * einfo.ads (Class_Wide_Type): Improve the comment.
        * exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
        the type of the Deref.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi: Document that Test_Case pragma can only appear on
        separate declarations.
        * sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
        check identifier of pragma argument.
        (Chain_TC): check that no other test case associated to the same entity
        share the same name.
        (Check_Test_Case): disallow test case inside subprogram body
        (Analyze_Pragma): correct call to check identifier and not argument
        * sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
        function gets name from test case pragma.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi: Document new pragma and aspect.
        * aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
        (No_Duplicates_Allowed): new constant array defining whether duplicates
        aspects of each kind can appear on the same declaration.
        * einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
        field, which points to a node holding the previous Spec_PPC_List.
        * exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
        through the indirection with Contract.
        * exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
        * par-prag.adb (Prag): do nothing on Test_Case pragma
        * sem.adb (Analyze): abort on N_Contract, on which Analyze should not
        be called directly.
        * sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
        component Ensures of Test_Case.
        * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
        (Analyze_Generic_Subprogram_Declaration,
        Analyze_Subprogram_Instantiation,
        Analyze_Abstract_Subprogram_Declaration,
        Analyze_Subprogram_Body_Helper,
        Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
        insert contract in subprogram node at point of definition
        * sem_ch13.adb
        (Aspect_Loop): do not raise error on duplicate Test_Case aspect
        (Analyze_Aspect_Specifications): analyze Test_Case aspect and create
        corresponding pragma
        (Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
        * sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
        similar to the analysis of pre/post
        (Derive_Subprogram): insert contract in subprogram node at point of
        derivation.
        * sem_prag.adb, sem_prag.ads
        (Check_Arg_Is_String_Literal, Check_Identifier):
        new checking procedures to be called in treatment of pragmas
        (Check_Test_Case): new procedure to check that a Test_Case aspect or
        pragma is well-formed. This does not check currently that 'Result is
        used only in the Ensures component of a Test_Case.
        (Analyze_Pragma): add case for Test_Case
        (Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
        components of a Test_Case.
        (Preanalyze_TC_Args): new procedure to preanalyze the boolean
        expressions in the 3rd (and 4th if present) arguments of a Test_Case
        pragma, treated as spec expressions.
        (Sig_Flags): add value -1 for Test_Case.
        * sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
        Get_Requires_From_Test_Case_Pragma): getters for both expression
        components of a Test_Case.
        * sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
        indirection between an entry or [generic] subprogram entity and its
        pre/post + test-cases.
        (Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
        get/set for fields of an N_Contract node.
        * snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
        Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
        names and pragma for Test_Case.
        * sprint.adb (Sprint_Node): raise Program_Error on N_Contract node

2011-08-04  Vincent Celier  <celier@adacore.com>

        * gnat_ugn.texi: Improve documentation of gnatmake switch
        --source-info-file=.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
        type). Initialize Atyp to the appropriate type which is later checked
        for completion. Rewrite the assertion associated with private type
        completion.

2011-08-04  Ed Falis  <falis@adacore.com>

        * adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
        initialize the number of CPUs.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_type.adb (Disambiguate): New subsidiary routine
        In_Same_Declaration_List, to implement AI05-0020: a user-defined
        equality on an anonymous access type whose designated type is private
        does not lead to an ambiguity with the universal access equality
        operator in the body or child units of the defining package. The same
        is true for a multiplication operator on a private type completed with
        a fixed-point-type.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * opt.ads (Init_Or_Norm_Scalars_Config): Removed.
        (Normalize_Scalars_Config): Removed.
        * opt.adb
        (Register_Opt_Config_Switches): Remove registering config values of
        Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
        (Restore_Opt_Config_Switches): Remove code which restores the values of
        Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
        Init_Or_Norm_Scalars.
        (Save_Opt_Config_Switches): Remove code which saves values of
        Init_Or_Norm_Scalars and Normalize_Scalars.
        (Set_Opt_Config_Switches): Remove code which restores config values of
        Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
        Init_Or_Norm_Scalars.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * frontend.adb (Frontend): remove previous patch to avoid full
        qualification in ALFA mode.
        * lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
        * sem_util.adb, sem_util.ads (Unique_Name): new function to define a
        unique name for an entity, which could be used to identify the entity
        across compilation units.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * prj-env.adb
        (Initialize_Default_Project_Path): Add target specific directory
        ($prefix/$target/lib/gnat) in front of project path in all cases
        (making gnatmake's behaviour consistent with gprbuild).
        * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
        Pass target name from Sdefault to project subsystem.
        * gnatls.adb: Show new target specific default project directory.

2011-08-04  Johannes Kanig  <kanig@adacore.com>

        * cstand.adb: Add Information to Identifier in Standard
        (Identifer_For): Set Entity to the corresponding entity

2011-08-04  Sergey Rybin  <rybin@adacore.com>

        * gnat_ugn.texi: Update doc on gnatcheck.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
        xrefs in a scope.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
        performing expansion.
        * sem_ch6.adb (Analyze_Subprogram_Body_Helper,
        Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
        it is not called in ALFA mode.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
        after all, so removed.

2011-08-04  Sergey Rybin  <rybin@adacore.com>

        * vms_data.ads: Add missing VMS qualifiers.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
        the list of files on the command line after processing it through
        Complete_Mains.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Build_Raise_Statement): Remove the specialized
        processing for .NET/JVM. These targets can now benefit from
        Raise_From_Controlled_Operation and they share the same processing with
        standard targets.
        (Establish_Transient_Scope): Remove the restriction for .NET/JVM.
        These targets need transient scopes in order to properly finalize short
        lived controlled objects.
        (Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
         NET/JVM. These targets can now benefit from
        Raise_From_Controlled_Operation and they share the same processing with
        standard targets.

2011-08-04  Geert Bosch  <bosch@adacore.com>

        * tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
        Expand_Record_Aggregate, to determine whether aggregate must be
        expanded into assignments. This is the case if the ancestor part is
        private, regarless of the setting of the flag Has_Private_Ancestor.

2011-08-04  Ed Falis  <falis@adacore.com>

        * vxaddr2line.adb: Add support for e500v2 and for Linux hosts

2011-08-04  Bob Duff  <duff@adacore.com>

        * sinfo.ads: Fix comment.

2011-08-04  Steve Baird  <baird@adacore.com>

        * bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
        choose a package name in much the same way as is
        done for JGNAT when VM_Target /= No_VM, except that
        a slightly more distinctive prefix string is used.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb (Complete_Mains): no longer accept unit names on the
        gnatmake command line.
        This behavior was never documented (and was supported only because of
        an early bug in the code). This case might lead to ambiguous cases
        (between unit names and truncated base names without suffixes).

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
        Remove the external tag of a tagged type from the internal hash table.
        * exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
        expanded usage of the routine. Strenghten the check for Is_Master. Add
        processing for tagged types.
        (Build_Finalizer): Create all the necessary lists used in finalizer
        creation when the processed context is a package that may contain
        tagged types.
        (Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
        Requires_Cleanup_Actions.
        (Expand_N_Package_Body): Package bodies may need clean up code
        depending on whether they contain tagged types.
        (Expand_N_Package_Declaration): Package declarations may need clean up
        code depending on whether they contain tagged types.
        (Unregister_Tagged_Types): New routine. Search through a list of
        declarations or statements, looking for non-abstract Ada tagged types.
        For each such type, generate code to unregister the external tag.
        * exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
        Requires_Cleanup_Actions.
        (Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
        through a list of declarations or statements looking for non-abstract
        Ada tagged types or controlled objects.
        * exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
        Requires_Cleanup_Actions.
        (Has_Controlled_Objects (List_Id, Boolean)): Removed.
        * rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
        RE_Unit_Table.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
        has Ada sources, not project Project, because if the root project
        Project has no sources of its own, all projects will be deemed without
        sources.

2011-08-04  Gary Dismukes  <dismukes@adacore.com>

        * bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
        of the No_Param_Proc acc-to-subp type used for initialization of
        __gnat_finalize_library_objects so that it's declared at library level
        rather than nested inside of the adainit routine.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
        if the tagged type has a representation clause which specifies its
        external tag.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
        Remove previous procedure with that name.
        * sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
        when appropriate.
        * sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
        subtype mark, the ancestor cannot have unknown discriminants.
        (Resolve_Record_Aggregate): if the type has invisible components
        because of a private ancestor, the aggregate is illegal.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
        account switches -gnat2005, -gnat12 and -gnat2012.

2011-08-04  Bob Duff  <duff@adacore.com>

        * s-tasdeb.ads: Minor comment fix.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
        CodePeer mode.
        * switch.ads, switch.adb (Is_Language_Switch): New function.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * switch-c.adb: Minor comment addition.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * vms_conv.adb (Process_Argument): Fail graciously when qualifier
        ending with '=' is followed by a space (missing file name).

2011-08-04  Pascal Obry  <obry@adacore.com>

        * g-regist.ads: Fix size of HKEY on x86_64-windows.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Associations): New routine
        Check_Overloaded_Formal_Subprogram to reject a formal package when
        there is a named association or a box initialisation for an overloaded
        formal subprogram of the corresponding generic.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * alfa.ads (ALFA_Xref_Record): add component for type of entity
        * get_alfa.adb, put_alfa.adb: Read and write new component of
        cross-reference.
        * lib-xref-alfa.adb (Collect_ALFA): generate new component.

2011-08-04  Pascal Obry  <obry@adacore.com>

        * urealp.adb: Minor reformatting.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
        Handle the case when Cleanup_Protected_Object returns Empty.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * frontend.adb (Frontend): only qualify names in non-ALFA mode

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
        call, ignore functions.

2011-08-04  Geert Bosch  <bosch@adacore.com>

        * urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
        point.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
        as an index for Builder'Switches. This conforms to the documentation.
        * make.adb (Insert_Project_Sources): avoid duplicate code

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb (Complete_Mains): if the user has passed a relative file
        name on the command line (for instance "../dummy"), never assume it can
        be a unit name.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * bindgen.adb: Remove code the reference or create the
        Break_Start/__gnat_break_start procedure.
        * s-stalib.adb (Break_Start): Removed.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
        shared with gprbuild.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * par-ch4.adb (P_Primary): preferentially issue an error message about
        a missing parenthesis arount a conditional or case expression in Ada
        2012 mode, if we detect that the alignment is not correct for a
        statement.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Process_Declarations): Do not consider the result of a
        tag-to-class-wide conversion as needing finalization actions.
        * exp_util.adb (Has_Controlled_Objects): Do not consider the result of
        a tag-to-class-wide conversion as needing finalization actions.
        (Is_Finalizable_Transient): The result of a tag-to-class-wide
        conversion does not need finalization actions.
        (Is_Tag_To_CW_Conversion): New routine.
        * exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
        whether an object is the result of a tag-to-class-wide conversion.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
        the left-hand-side and right-hand-side of a conjunct are inserted when
        translating a pre- or postcondition
        * sem_ch6.adb: Correct typo in comment

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * gnat_rm.texi: Ravenscar does not prohibit dependence on
        Unchecked_Conversion and Unchecked_Deallocation.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * make.adb: Minor reformatting.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
        sources in the project and its imported projects, but not in the whole
        tree.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb: Remove debug trace.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * makeutl.adb (Do_Complete): Get the absolute path name of a relative
        path in canonical form, to be able to compare path names on platforms
        such as Windows or Darwin.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
        For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
        * scos.ads: Update documentation accordingly.
        * put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
        pragmas.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
        attribute only if prefix type is scalar.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
        in gnatmake for specifying mains on the command line that do not belong
        to the main project. These mains must currently all belong to the same
        project, though.
        (Ultimate_Extension_Of): removed, since duplicated
        Ultimate_Extending_Project.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
        instead.
        (CodePeer_Mode_String): New.
        (Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
        CodePeer mode.
        (Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
        * bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
        mode, since no useful elaboration subprogram is needed by CodePeer.
        * gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
        In this mode, compile binder file with -gnatC and do stop after this
        step.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * exp_ch7.adb: Minor comment fix.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
        exp_ch4.adb, makeutl.adb: Minor reformatting.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
        Create several new subprograms to move code out of Make. This makes the
        code more readable, removes code duplication, and is a preparation work
        for adding support for aggregate projects.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * s-po32gl.ads, s-po32gl.adb: New files.
        * exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
        * exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
        (Build_Finalization_Collection): Use it.
        * exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
        * rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
        literals.
        * gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb (Complete_Mains): add support for specs with no suffix on
        the command line.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb (Complete_Mains): if a main specified on the
        command line is not a file name, also check whether it could be a unit
        name.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
        the header of the finalization routine.
        If the unit has no finalizer but is a body whose spec has one, then
        generate the decrement of the elaboration entity only.
        If the unit has a finalizer and is a spec, then do not generate the
        decrement of the elaboration entity.
        (Gen_Finalize_Library_C): Likewise.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Alignment_Of): New subsidiary routine.
        (Bounds_Size_Expression): Removed.
        (Double_Alignment_Of): New subsidiary routine.
        (Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
        for a hole in the dope vector of unconstrained arrays due to different
        index and element alignments.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Allocator): diagnose task allocator that will
        raise program_error because body has not been seen yet.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
        an unresolved name.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * makeutl.adb (Do_Complete): Check absolute paths in canonical forms

2011-08-04  Yannick Moy  <moy@adacore.com>

        * alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
        * sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
        instantiation in RCI.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * make.adb: Share more code with gprbuild

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * projects.texi: Added documentation for the IDE'Gnat project file
        attribute.

2011-08-04  Nicolas Roche  <roche@adacore.com>

        * gnat_rm.texi: Minor editing.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
        and the library case for VM targets.
        (Gen_Adainit_Ada): Likewise.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * g-altive.ads: Minor comment updates.
        * prj-nmsc.adb: Minor reformatting.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * opt.ads
        (Normalize_Scalars_Config): Value of the configuration switch set by
        pragma Normalize_Scalars when it appears in the gnat.adc file.
        (Normalize_Scalars): New field for record Config_Switches_Type. Used
        to save and restore settings of this pragma.
        * opt.adb
        (Register_Opt_Config_Switches, Save_Opt_Config_Switches,
        Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * gnat_ugn.texi: Document gnatlink options -M and -M=mapfile

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * makeutl.adb: Minor reformatting.

2011-08-04  Olivier Hainque  <hainque@adacore.com>

        * g-altive.ads: Update comments to reflect that only the soft
        binding is available today.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
        makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * prj-env.adb: Remove local debug traces.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
        was used instead of Hi_OK, which could cause a read of an uninitialized
        value later on. Detected while working on the new warning.
        * exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
        to local variable.
        * sem_ch5.adb (Analyze_Assignment): set the last assignment component
        in more cases, in order to detect more unreferenced values.
        * sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
        object for expression, if any.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
        the operand types instead of the Esize.

2011-08-04  Steve Baird  <baird@adacore.com>

        * switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
        enable CodePeer_Mode.
        * bindusg.adb (Display): Add help message describing -P binder switch.
        * gnat_ugn.texi: Document -P binder switch.
        * bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
        user-defined main program directly.
        (Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
        user-defined main program in the context clause of the package body.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
        duplicate of Defining_Entity
        (Get_Unique_Entity_For_Decl): rename function into
        Unique_Defining_Entity
        * einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
        (Formal_Proof_On): remove synthesized flag
        * cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
        sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
        sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
        * sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
        Annotate (Formal_Proof)

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
        source files with non-standard naming schemes, in imported projects

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb (Complete_Mains): when a multi-unit source file is
        specified on the gprbuild command line, we need to compile all units
        within that file, not just the first one we find
        Fix error message for mains that are not found.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sem_ch6.adb: Update comment.
        * sem_ch12.adb: Minor reformatting.

2011-08-04  Bob Duff  <duff@adacore.com>

        * s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
        Acceptor.Terminate_Alternative without locking Acceptor, which causes a
        race condition whose symptom is to fail to lock Parent. That, in turn,
        causes Parent.Awake_Count to be accessed without locking Parent, which
        causes another race condition whose symptom is that Parent.Awake_Count
        can be off by 1 (either too high or too low). The solution is to lock
        Parent unconditionally, and then lock Acceptor, before reading
        Acceptor.Terminate_Alternative.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * debug.adb: Update comment.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
        sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
        exp_ch6.adb: Minor reformatting.

2011-08-04  Gary Dismukes  <dismukes@adacore.com>

        * gnat_ugn.texi: Add sentence about the case of compile-time-detected
        checks for -gnateE.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sinfo.ads: Minor reformatting.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
        even if there is no location.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb, sem_ch4.adb: move check for restriction
        No_Task_Hierarchy to resolve_allocator.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
        This flag of N_Pragma nodes is not used, remove it as well as all of
        the associated circuitry.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
        runtime check on duplicated externa tags
        * debug.adb Document switch -gnatdQ.

2011-08-04  Gary Dismukes  <dismukes@adacore.com>

        * a-fihema.ads: Minor typo fix.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch10.adb: Minor comment update.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * einfo.adb: Update the node field usage to reflect the renaming of
        Return_Flag to Return_ Flag_Or_Transient_Decl.
        (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
        (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
        (Write_Field15_Name): Change Return_Flag to
        Return_Flag_Or_Transient_Decl.
        * einfo.ads: Rename node field Return_Flag to
        Return_Flag_Or_Transient_Decl. Update the associated comment and all
        occurrences in entities.
        (Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
        associated Inline pragma.
        (Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
        associated Inline pragma.
        * exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
        routine.
        * exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
        Return_Flag and Set_Return_Flag.
        * exp_ch7.adb (Process_Declarations): Add code to recognize hook
        objects generated for controlled transients declared inside an
        Exception_With_Actions. Update the calls to Return_Flag.
        (Process_Object_Declaration): Add code to add a null guard for hook
        objects generated for controlled transients declared inside an
        Exception_With_Actions. Update related comment.
        * exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
        objects generated for controlled transients declared inside an
        Exception_With_Actions. Update the calls to Return_Flag.
        * expander.adb (Expand): Add new case for N_Expression_With_Actions.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_util.adb:(Wrong_Type): Improve error message on a one-element
        positional aggregate.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
        SLOC only for pragmas.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * projects.texi: Minor typo fix.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
        on case-sensitive file systems.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
        nested in a disabled pragma.
        * scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
        enclosing pragma, if any, for X decisions.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sem_prag.adb: Minor reformatting.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
        allowed in no run time mode.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * make.adb (Check): When -gnatc is used, check for the source file
        inside the ALI file with a canonical case file name.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
        overriding the separator.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
        prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor documentation fix for pragma Annotate.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
        'Result only appears in postcondition of function.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
        external tag, include the value of the external tag in the exception
        message.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_attr.adb (Result): modify error message for misplaced 'Result

2011-08-04  Sergey Rybin  <rybin@adacore.com>

        * gnat_rm.texi (pragma Annotate): Fix syntax description to make it
        clear that the second argument must be an identifier.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * exp_ch9.adb (Build_Barrier_Function): When compiling with
        -fpreserve-control-flow, insert an IF statement on the barrier
        condition to ensure that a conditional branch instruction is generated.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj-part.adb, prj.adb, prj.ads, prj-tree.ads
        (Processing_Flags.Ignore_Missing_With): new flag.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
        Source_List_File on case-insensitive systems where the file is actually
        on a case-sensitive file system (NFS,...).

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch6.adb (Analyze_Function_Return): In a rare case where a
        function return contains a controlled [extension] aggregate and the
        return statement is not part of a handled sequence of statements, wrap
        the return in a block. This ensures that all controlled temporaries
        generated during aggregate resolution will be picked up by the
        finalization machinery.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
        components, freeze type before resolution, to ensure that default
        initializations are present for all components.
        * sem_res.adb (Resolve_Actuals): the designated object of an
        accces-to-constant type is a legal actual in a call to an
        initialization procedure.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
        N_Unchecked_Type_Conversion to the possible containers of a renamed
        transient variable.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * par-ch13.adb (Aspect_Specifications_Present): recognize
        "with Identifier'Class =>" as an aspect, so that a meaningful warning
        is issued in Strict mode.
        * par.adb: Fix typos in comments.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_attr.adb (Result): modify error message to take into account Post
        aspect when compiling Ada 2012 (or newer) code.

2011-08-04  Nicolas Roche  <roche@adacore.com>

        * env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
        remove need for GCC exceptions.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * makeutl.adb (Do_Complete): Call Debug_Output with the name of the
        project, not the source file name.
        * prj.adb (Find_Sources.Look_For_Sources): If the source has been
        excluded, continue looking. This excluded source will only be returned
        if there is no other source with the same base name that is not locally
        removed.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
        private and one of the operands is a real literal, use a qualified
        expression rather than a conversion which is not meaningful to the
        back-end.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
        corresponding aspect X'Class are allowed, proceed with analysis of the
        aspect instead of skipping it.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
        This will allow to have an Ada implementation for the subprogram.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
        completion and aspects are present, apply them to the entity for the
        type which is currently the partial view, but which is the one that
        will be frozen.
        * sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
        applies to a partial view, indicate that the full view has predicates
        and delayed aspects.
        (Replace_Type_Reference): Handle properly predicates that apply to the
        full view of a private completion.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * layout.adb (Layout_Type): For composite types, do not set Esize.
        * freeze.adb (Set_Small_Size): Remove test on alignment and do not
        set Esize.
        (Size_Known): Look at the RM size of components instead of the Esize.
        (Freeze_Record_Type): Look at the RM size instead of the Esize to
        issue warning and activate Implicit_Packing.
        (Freeze_Entity): Likewise.  Do not issue a warning for alias/atomic
        if the Esize is not known.
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
        for elementary types only.
        (Analyze_Record_Representation_Clause): Look at the RM size instead
        of the Esize to issue errors.
        * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
        is not known.
        <E_Record_Type>: Look at the RM size instead of the Esize.  Remove
        obsolete block.
        Look at the RM size instead of the Esize for types if the latter is
        not known.
        (gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_type.adb: proper handling of equality not involving anonymous
        access types.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
        Vis_Decls. When creating a library-level finalizer for a package spec,
        both the declaration and body of the finalizer are inserted either in
        the visible or private declarations of the package spec.

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
        use of the full-view of a type when invoking Is_Ancestor.
        * sem_type.adb (Is_Ancestor): For consistency, when the traversal of
        the full-view of private parents is requested, then use also the
        full-view of the parent of the first derivation.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
        instead of the locally imported procedure.
        * s-taprop-mingw.adb (Enter_Task): Ditto.
        * s-valrea.adb (Scan_Real): Ditto.
        * s-imgrea.adb (Set_Image_Real): Ditto.
        * s-flocon.ads: Make the package pure.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
        * tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
        * sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
        New subprogram, moved here from...
        * par.adb, par-ch5.adb (P_Statement_Name): ... here.
        * par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
        rewriting of the last argument into a procedure call statement here...
        * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
        instead.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * erroutc.adb: Minor reformatting.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * par_sco.adb: Comment update.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

        * s-flocon.ads: New file.
        * g-flocon.ads: Now a renaming of s-flocon.
        * Makefile.rtl: Add s-flocon.o

2011-08-04  Javier Miranda  <miranda@adacore.com>

        * exp_strm.adb (Build_Array_Input_Function): if the array type is
        constrained, do not attempt to build a subtype of it.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * errout.ads Change comments: remove 'R'M as an example where quotes
        are needed; add ALFA as another case where quotes are not needed
        * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
        case where quotes are not needed.
        * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
        sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
        Remove all occurrences of 'A'L'F'A

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch13.adb: check legality of invariant pragma.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * bindgen.adb: Add comments.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
        synthesized flag.
        * sem_prag.adb (Analyze_Pragma): record the pragma Annotate
        (Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
        osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
        sem_ch13.adb, s-pooloc.adb: Minor reformatting.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * s-pooloc.ads, s-pooglo.ads: Minor reformatting

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        PR ada/47880
        * s-pooloc.adb (Deallocate): Fix the case of deallocating the only
        allocated object.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * einfo.ads, exp_ch4.adb: Minor reformatting.

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

        * back_end.ads (Gen_Or_Update_Object_File): Add more comments.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
        type in all cases to compute list of primitive operations, because full
        view may be an itype that is not attached to the list of declarations.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
        library has already been finalized.
        (Gen_Adafinal_C): Likewise.
        (Gen_Adainit_Ada): Generate an early return if the library has
        already been elaborated.
        (Gen_Adainit_C): Likewise.
        (Gen_Output_File_Ada): Generate an elaboration flag.
        (Gen_Output_File_C): Likewise.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
        Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
        built in the first place.
        (Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
        for CodePeer because Finalize_Address was not built to begin with.
        * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.

2011-08-04  Pascal Obry  <obry@adacore.com>

        * adaint.c (__gnat_tmp_name): Use current process id to create temp
        filenames, this ensures unicity of filenames across processes.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
        Raise_Controlled to Raise_From_Controlled_Operation. Update the
        signature of Raise_From_Controlled_Operation by adding flag From_Abort.
        Add False as the actual to From_Abort in the generated call to
        Raise_From_Controlled_Operation.

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

        * osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
        so that the ali file name can be retrieved from outside of this package.
        * back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
        doing nothing in the general case, but used to update the object file
        timestamp if directly generated by the backend.
        * gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
        to a later time than the ali file one.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
        entities whose body contains an Annotate pragma which forces formal
        proof on this body.
        * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
        sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
        Mark_Non_ALFA_Subprogram to pass in a message and node.
        * sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
        (Forma_Proof, On) which sets the flag Formal_Proof_On in the
        surrounding subprogram.
        * sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
        Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
        as not in ALFA is annotated with Formal_Proof being On, then an error
        is issued based on the additional parameters for message and node.
        * snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
        Finalize_Address when CodePeer is enabled.

2011-08-04  Pascal Obry  <obry@adacore.com>

        * adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
        the latter returns a pointer to a static buffer which is deallocated
        at the end of the routine.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
        after index creation; mark unconstrained base array type generated as
        being in/not in ALFA as well
        (Make_Index): mark subtype created as in/not in ALFA
        * sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
        over a loop as in/not in ALFA, depending on its type and form of loop
        iteration.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
        directly to False on .NET and JVM.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
        constraint that subtype must come from source code to be in ALFA, so
        that anonymous subtypes can be in ALFA too.

2011-08-04  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
        reference for ALFA mode.
        * lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
        procedure public so as to use it from formal verification back-end.

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

        * g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
        invalid checks of the Parameter, making Remove_Switch not working
        correctly.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

        * targparm.ads: Update header: no run-time exception is needed on this
        file.

2011-08-04  Vincent Celier  <celier@adacore.com>

        * a-fihema.adb: Use System.IO instead of GNAT.IO

2011-08-04  Thomas Quinot  <quinot@adacore.com>

        * sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
        are forbidden in Compiler_Unit mode.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * sem_util.adb: Minor reformatting.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
        library-level finalizers.
        (Gen_Finalize_Library_C): Update the import string for library-level
        finalizers.
        (Gen_Finalize_Library_Defs_C): Update the definition name of a
        library-level finalizer.
        * exp_ch7.adb: Remove with and use clauses for Stringt.
        (Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
        Spec_Decl. Add local variable Body_Id. The names of library-level
        finalizers are now manually fully qualified and are no longer external.
        A single name is now capable of servicing .NET, JVM and non-VM targets.
        Pragma Export is no longer required to provide visibility for the name.
        (Create_Finalizer_String): Removed.
        (New_Finalizer_Name): New routine which mimics New_..._Name.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
        elaboration counter to Standard_Short_Integer.
        * sem_util.adb (Build_Elaboration_Entity): Likewise.
        * bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
        (Gen_Elab_Externals_C): Likewise.

2011-08-04  Ed Falis  <falis@adacore.com>

        * system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
        system-vxworks-ppc.ads, system-vxworks-m68k.ads,
        system-vxworks-mips.ads, system-vxworks-x86.ads
        (Always_Compatible_Rep): set to False for all VxWorks targets.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
        makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
        exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
        exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
        exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
        sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
        sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
        Minor reformatting and code reorganization.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * projects.texi: Added doc for aggregate projects.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
        Add support for overriding the Project_Path in aggregate projects.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * a-cofove.ads: Minor reformatting.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
        on the generated code.
        (Build_Finalize_Statements): Update the comment on the generated code.
        (Build_Initialize_Statements): Update the comment on the generated code.
        (Build_Object_Declarations): Add local variable Result. The object
        declarations are now built in sequence.
        * rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
        RE_Unit_Table.

2011-08-04  Robert Dewar  <dewar@adacore.com>

        * checks.adb, alfa.adb, alfa.ads: Minor reformatting.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.ads (Elaboration_Entity): Document new definition and use.
        (Elaboration_Entity_Required): Adjust to above change.
        * exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
        * exp_ch12.adb: And with and use for Snames.
        (Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
        * exp_util.adb (Set_Elaboration_Flag): Likewise.
        * sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
        <Check_Unit_Name>: Deal with N_Expanded_Name.
        <Attribute_Elaborated>: Extend to all unit names.
        * sem_elab.adb: And with and use for Uintp.
        (Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
        * sem_util.ads (Build_Elaboration_Entity): Adjust comment.
        * sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
        * bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
        from Gen_Adainit_Ada.
        (Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
        (Gen_Adafinal_Ada): Remove redundant test.  In the non-main program
        case, do not call System.Standard_Library.Adafinal; instead call
        finalize_library if needed.
        (Gen_Adafinal_C): Likewise.
        (Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
        non-main program case.
        (Gen_Adainit_C): Generate a couple of external declarations here.
        In the main program case, set SSL.Finalize_Library_Objects.
        (Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
        (Gen_Elab_Calls_C): Likewise.
        (Gen_Finalize_Library_Ada): Likewise.  Skip SAL interface units.
        (Gen_Finalize_Library_C): Likewise.  Generate a full function.
        (Gen_Main_C): Put back call to Ada_Final and don't finalize library
        objects here.
        (Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
        if -a is specified.  Call Gen_Elab_Externals_Ada.  Move around call to
        Gen_Adafinal_Ada.
        (Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
        if -a is specified.  Call Gen_Elab_Externals_C.  Remove useless couple
        of external declarations.  Call Gen_Finalize_Library_C.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
        Compute_Compilation_Phases): new subprogram.
        (Builder_Data, Builder_Project_Tree_Data): new subprogram and type
        The number of mains as well as the various compilation phases that
        need to be run are now project tree specific, since various
        aggregated trees might have different requirements. In particular,
        they do not all require bind or link phases.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

        * prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
        (Project_Tree_Appdata): New type.
        It is now possible to associate application-specific data to a project
        tree. In particular, this is used in the gprbuild builder to avoid a
        number of global tables and htables, especially now that there can be
        several project trees loaded at once because of aggregate projects.
        (Debug_Name): new procedure.
        * projects.texi: Clarify syntax of "**" for Source_Dirs

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
        the "roots" for a main.
        (Fill_From_Project): add support for aggregate projects. Main units
        in aggregated projects are now automatically added in the list of
        files to build (although this fails later on in gprbuild, because
        these files are not using the root proejct tree, so this needs
        further cleanup)
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
        conditional expression in ALFA.
        * sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
        expressions as not in ALFA.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * a-cofove.adb: Minor reformatting.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
        (Insert_Project_Sources, Insert_withed_Sources_For): moved from the
        gprbuild sources.
        These packages are more logically placed in the Queue package, since
        they manipulate the queue. It is also likely that they can be adapted
        for gnatmake, thus sharing more code.
        (Finish_Program, Fail_Program): moved from the gprbuild sources, so
        that we could move the above.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * errutil.adb (Finalize): clean up the list of error messages on exit.
        Calling this subprogram multiple times will no longer show duplicate
        error messages on stderr.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
        Getopt_Switches when we have already define a command line
        configuration.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
        in ALFA. Instead, they are considered as assertions to prove.
        * sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
        nodes as not in ALFA. Instead, include conditional expressions in ALFA
        if they have no ELSE part, or if they occur in pre- and postconditions,
        where the Condition cannot have side-effects in ALFA
        (Analyze_Membership_Op): do not mark such nodes as not in ALFA
        (Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
        Instead, include type conversion between scalar types in ALFA.
        * sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
        if-and-only-if its type is in ALFA.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * scos.adb, get_scos.adb, put_scos.adb
        New code letter for decisions: G (entry guard)
        * par_sco.adb
        (Traverse_Subprogram_Body): Rename to...
        (Traverse_Subprogram_Or_Task_Body): New subrpogram.
        (Traverse_Protected_Body): New subprogram
        (Traverse_Declarations_Or_Statements): Add traversal of task bodies,
        protected bodies and entry bodies.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
        entities with get/set subprograms, which is set on procedure entities
        generated by the compiler for a postcondition.
        * sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
        * alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
        entity for a declaration
        (Get_Unique_Entity_For_Decl): new function returning an entity which
        represents a declaration, so that matching spec and body have the same
        entity.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
        a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting

2011-08-03  Yannick Moy  <moy@adacore.com>

        * lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
        library-level because retriction No_Implicit_Dynamic_Code in the
        front-end prevents its definition as a local subprogram
        (Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
        for reuse in other contexts
        (Traverse_Declarations_Or_Statements,
        Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
        Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
        procedures take a callback parameter to be called on all declarations
        * lib-xref.ads
        (Traverse_All_Compilation_Units): new generic function to traverse a
        compilation unit and call a callback parameter on all declarations

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * sem_prag.adb (Process_Interface_Name): Allow duplicated export names
        in Java since they are always enclosed in a namespace that
        differentiates them, and overloaded entities are supported by the VM.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * checks.adb (Determine_Range): If a computed bound of an operation is
        outside the range of the base type of the expression, and overflow
        checks are enabled, the result is unknown and cannot be used for any
        subsequent constant folding.
        * sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
        unknown, so is the result of the comparison.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
        From_Abort. When finalization was triggered by an abort, propagate
        Standard'Abort_Signal rather than Program_Error.
        * a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
        From_Abort.
        * a-except.adb (Raise_From_Controlled_Operation): Add new formal
        From_Abort. When finalization was triggered by an abort, propagate
        Standard'Abort_Signal rather than Program_Error.
        * a-except.ads:(Raise_From_Controlled_Operation): Add new formal
        From_Abort.
        * exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
        Abort_Id. Update the calls to Build_Object_Declarations and
        Build_Raise_Statement to include Abort_Id.
        (Build_Adjust_Statements): New local variable Abort_Id. Update the
        calls to Build_Object_Declarations and Build_Raise_Statement to include
        Abort_Id.
        (Build_Finalize_Statements): New local variable Abort_Id. Update the
        calls to Build_Object_Declarations and Build_Raise_Statement to include
        Abort_Id.
        (Build_Components): Create an entity for Abort_Id when exceptions are
        allowed on the target.
        (Build_Finalizer): New local variable Abort_Id.
        (Build_Initialize_Statements): New local variable Abort_Id. Update the
        calls to Build_Object_Declarations and Build_Raise_Statement to include
        Abort_Id.
        (Build_Object_Declarations): Add new formal Abort_Id. Create the
        declaration of flag Abort_Id to preserve the original abort status
        before finalization code is executed.
        (Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
        runtime routine Raise_From_Controlled_Operation.
        (Create_Finalizer): Update the call to Build_Raise_Statement to include
        Abort_Id. Update the call to Build_Object_Declarations to include
        Abort_Id. Update the layout of the finalizer body.
        (Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
        (Process_Transient_Objects): New local variable Abort_Id. Remove the
        clunky code to create all flags and objects related to
        exception propagation and replace it with a call to
        Build_Object_Declarations. Update the call to Build_Raise_Statement to
        include Abort_Id.
        * exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
        Add new formal Abort_Id and associated comment on its use.
        (Build_Raise_Statement): Add new formal Abort_Id and associated comment
        on its use.
        * exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
        Remove the clunky code to create all flags and objects related to
        exception propagation and replace it with a call to
        Build_Object_Declarations. Update the call to Build_Raise_Statement.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

        * s-tassta.adb: Fix minor typos.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
        lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
        to packages. This ensures that the finalizer body will not end up
        inside the freeze node.
        (Process_Declarations): Add code to detect whether a freeze node has a
        nested finalization collection.

2011-08-03  Pascal Obry  <obry@adacore.com>

        * g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
        (Current_Session): Return a not null access to Session_Type.
        (Default_Session): Likewise.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
        exp_ch3.adb, exp_ch3.ads: Minor reformatting.

2011-08-03  Pascal Obry  <obry@adacore.com>

        * g-awk.ads: Minor comment fix.

2011-08-03  Sergey Rybin  <rybin@adacore.com>

        * tree_io.ads (ASIS_Version_Number): Update because of the changes in
        the tree structure related to discriminant constraints.
        Original_Discriminant cannot be used any more for computing the
        defining name for the reference to a discriminant.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
        function is not visibly tagged, this is not a dispatching call and
        therfore is not Tag_Indeterminate, even if the function is marked as
        dispatching on result.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch13.adb: Add with and use clauses for Restrict and Rident.
        (Expand_N_Free_Statement): Add a guard to protect against run-times
        which do not support controlled types.
        * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
        against run-times which do not support controlled types.
        * exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
        against run-times which do not support controlled types.
        * exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
        against run-times which do not support controlled types.
        * exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
        protect against run-times which do not support controlled types.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_intr.adb: Put back with and use clauses for Exp_Ch11.
        (Expand_Unc_Deallocation): Expand the AT_END handler at the very end.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
        modified in the source, to prevent spurious warnings when compiling
        with -gnatg.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * a-except-2005.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
        is a renaming declaration in the private part of a package, do not emit
        a warning that the with_clause could be moved because the renaming may
        be used in the body or in a child unit.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
        Propagate the Comes_From_Source attribute from the original return
        object to the renaming.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

        * exp_ch7.adb (Build_Raise_Statement): Do not call
        Raise_From_Controlled_Operation when this routine is not present in
        the run-time library.
        (Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
        libraries (Ravenscar), tasks are non-terminating, and protected objects
        and tasks can only appear at library level, so we do not want
        finalization of protected objects nor tasks.
        * exp_intr.adb: Minor clarification in comment.
        bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
        Gen_Output_File_C): Remove references to finalization of library-level
        objects when using restricted run-time libraries.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Build_Discriminant_Constraints): Set
        Original_Discriminant only if the parent type is a generic formal.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch13.adb: Add with and use clause for Targparm;
        (Expand_N_Free_Statement): Prevent the generation of a custom
        Deallocate on .NET/JVM targets since this requires pools and address
        arithmetic.
        * exp_ch4.adb (Expand_Allocator_Expression): When compiling for
        .NET/JVM targets, attach the newly allocated object to the access
        type's finalization collection. Do not generate a call to
        Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
        exist in the runtime.
        (Expand_N_Allocator): When compiling for .NET/JVM targets, do not
        create a custom Allocate for object that do not require initialization.
        Attach a newly allocated object to the access type's finalization
        collection on .NET/JVM.
        * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
        assignment of controlled types on .NET/JVM. The two hidden pointers
        Prev and Next and stored and later restored after the assignment takes
        place.
        * exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
        kludge for .NET/JVM to recognize a particular piece of code coming from
        Heap_Management and change the call to Finalize into Deep_Finalize.
        * exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
        finalization collections on .NET/JVM only for types derived from
        Controlled. Separate the association of storage pools with a collection
        and only allow it on non-.NET/JVM targets.
        (Make_Attach_Call): New routine.
        (Make_Detach_Call): New routine.
        (Process_Object_Declarations): Suppress the generation of
        build-in-place return object clean up code on .NET/JVM since it uses
        pools.
        * exp_ch7.ads (Make_Attach_Call): New routine.
        (Make_Detach_Call): New routine.
        * exp_intr.adb Add with and use clause for Targparm.
        (Expand_Unc_Deallocation): Detach a controlled object from a collection
        on .NET/JVM targets.
        * rtsfind.ads: Add entries RE_Attach, RE_Detach and
        RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
        * snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
        names used in finalization.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-fihema.adb: Add with and use clauses for System.Soft_Links.
        (Attach, Detach): Lock the current task when chaining an object onto a
        collection.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
        Rewritten to create the message strings when the exception is not
        raised by an abort during finalization.
        * a-except.ads, a-except-2005.ads: Add pragma Export for procedure
        Raise_From_Controlled_Operation and update its associated comment.
        * a-fihema.ads, a-fihema.adb: New GNAT unit.
        Ada.Finalization.Heap_Management provides key functionality
        associated with controlled objects on the heap, their creation,
        finalization and reclamation. Type Finalization_Collection is
        effectively a wrapper which sits ontop of a storage pool and performs
        all necessary bookkeeping for all the objects it contains. Each
        access-to-controlled or access-to-class-wide type receives a collection
        as part of its expansion. The compiler generates buffer code and
        invokes Allocate / Deallocate to create and destroy allocated
        controlled objects.
        * a-finali.adb ("="): Removed.
        * a-finali.ads ("="): Removed. Controlled types no longer carry hidden
        fields Prev and Next.
        * ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
        A library unit with at least one controlled object on the library level
        has a special finalizer which is invoked by the binder. To signal this,
        ali files carry field PF.
        * ali.ads: New field in type Unit_Record called Has_Finalizer. Add
        associated comment on field usage.
        * a-tags.adb (Get_RC_Offset): Removed.
        (Needs_Finalization): New routine.
        * a-tags.ads: Update the structure of the GNAT dispatch tables.
        Dispatch tables now carry field Needs_Finalization which provides
        runtime indication whether a type is controlled or has controlled
        components or both. Remove field RC_Offset.
        (Get_RC_Offset): Removed along with its associated pragma Export.
        Since tagged types with controlled components no longer carry hidden
        field _controller, the special mechanism to retrieve its location is no
        longer needed.
        (Needs_Finalization): New routine.
        * atree.ads, atree.adb (Elist24): New routine.
        (Set_Elist24): New routine.
        * atree.h: Add a define clause for Elist24.
        * bindgen.adb New library-level variable Lib_Final_Built.
        (Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
        presence of a VM target, the routine generates calls to the proper
        library finalization routine.
        (Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
        targets. Set the correct library finalization routine depending on
        whether the library has controlled objects or this is a VM compilation.
        (Gen_Finalize_Library_Ada): New routine. This procedure generates calls
        to library-level finalizers of compiled units in reverse order of
        elaboration. It also produces exception management code and reraises a
        potential exception after all units have been finalized.
        (Gen_Finalize_Library_C): New routine. This procedure generates calls to
        library-level finalizers of compiled units in reverse order of
        elaboration.
        (Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
        definitions of all library-level finalizers available to the compilation
        (Gen_Main_Ada): Directly call Adafinal which now contails all target
        dependent code.
        (Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
        System.Standard_Library.Adafinal directly. If the library needs
        finalization actions, create the sequence of finalization calls.
        (Gen_Output_File_Ada): Alphabetize local variables and constants.
        Generate a with clause for System.Soft_Links when compiling for a VM.
        Remove the code which imports System.Standard_Library.Adafinal as
        Do_Finalize. Generate the library finalization routine.
        (Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
        If the library needs finalization actions, create all the definitions
        of library- level finalizers.
        (Has_Finalizer): New routine. Determines whether at least one compiled
        unit has a library-level finalizer.
        Add type Qualification_Mode.
        (Set_Unit_Name): Add a formal which controls the replacement of a dot.
        * einfo.adb: New usage of field 15 as Return_Flag.
        Remove Finalization_Chain_Entity from the usages of field 19.
        Remove Associated_Final_Chain from the usages of field 23.
        New usage of field 23 as Associated_Collection.
        New usage of field 24 as Finalizer.
        New usage of flag 252 as Is_Processed_Transient.
        (Associated_Final_Chain): Removed.
        (Associated_Collection): New routine.
        (Finalization_Chain_Entity): Removed.
        (Finalizer): New routine.
        (Is_Finalizer): New routine.
        (Is_Processed_Transient): New routine.
        (Return_Flag): New routine.
        (Set_Associated_Final_Chain): Removed.
        (Set_Associated_Collection): New routine.
        (Set_Finalization_Chain_Entity): Removed.
        (Set_Finalizer): New routine.
        (Set_Is_Processed_Transient): New routine.
        (Set_Return_Flag): New routine.
        (Write_Entity_Flags): Include Is_Processed_Transient to the list of
        displayed flags.
        (Write_Field8_Name): Alphabetize the output.
        (Write_Field11_Name): Alphabetize the output.
        (Write_Field12_Name): Alphabetize the output.
        (Write_Field13_Name): Alphabetize the output.
        (Write_Field14_Name): Alphabetize the output.
        (Write_Field15_Name): Alphabetize the output.
        (Write_Field16_Name): Alphabetize the output.
        (Write_Field17_Name): Alphabetize the output.
        (Write_Field18_Name): Alphabetize the output.
        (Write_Field19_Name): Alphabetize the output. Remove the output of
        Finalization_Chain_Entity.
        (Write_Field20_Name): Alphabetize the output.
        (Write_Field21_Name): Alphabetize the output.
        (Write_Field22_Name): Alphabetize the output.
        (Write_Field23_Name): Alphabetize the output. Remove the output of
        Associated_Final_Chain. Add output for Associated_Collection.
        (Write_Field24_Name): Alphabetize the output.
        (Write_Field25_Name): Add output for Finalizer.
        (Write_Field26_Name): Alphabetize the output.
        (Write_Field27_Name): Alphabetize the output.
        (Write_Field28_Name): Alphabetize the output.
        * einfo.ads: Add new field description for Associated_Collection and
        its uses in nodes.
        Remove Associated_Final_Chain and its uses in nodes.
        Remove Finalization_Chain_Entity and its uses in nodes.
        Add new field description for Finalizer and its uses in nodes.
        Add new synthesized attribute Is_Finalizer.
        Add new flag description for Is_Processed_Transient and its uses in
        nodes.
        Add new field description for Return_Flag and its uses in nodes.
        (Associated_Final_Chain): Removed along with its pragma Inline.
        (Associated_Collection): New routine and pragma Inline.
        (Finalization_Chain_Entity): Removed along with its pragma Inline.
        (Finalizer): New routine and pragma Inline.
        (Is_Finalizer): New routine and pragma Inline.
        (Is_Processed_Transient): New routine and pragma Inline.
        (Return_Flag): New routine and pragma Inline.
        (Set_Associated_Final_Chain): Removed along with its pragma Inline.
        (Set_Associated_Collection): New routine and pragma Inline.
        (Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
        (Set_Finalizer): New routine and pragma Inline.
        (Set_Is_Processed_Transient): New routine and pragma Inline.
        (Set_Return_Flag): New routine and pragma Inline.
        * exp_aggr.adb: Alphabetize subprograms.
        (Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
        (Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
        associated comments. Remove local variables External_Final_List and
        Attach.
        Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
        Ancestor. Remove the retrieval of finalization lists. Update the call to
        Make_Adjust_Call.
        (Convert_Aggr_In_Allocator): Remove the retrieval of finalization
        lists. Update the call to Late_Expansion.
        (Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
        (Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
        (Gen_Assign): Remove the retrieval of the finalization list used to
        build the assignment. Update the calls to Make_Init_Call and
        Make_Adjust_Call.
        (Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
        Remove the mechanism to determine attachment levels and finalization
        list retrieval. Remove the processing for coextensions.
        (Init_Controller): Removed. Controllers no longer exist.
        (Late_Expansion): Remove formals Flist and Obj along with their
        associated comments. Update the calls to Build_Record_Aggr_Code and
        Build_Array_Aggr_Code.
        * exp_ch13.adb (Expand_N_Free_Statement): New routine.
        (Expand_N_Freeze_Entity): Add special processing for finalizers which
        appear in entry bodies, protected subprograms and task bodies.
        * exp_ch13.ads (Expand_N_Free_Statement): New routine.
        * exp_ch3.adb (Add_Final_Chain): Removed.
        (Build_Array_Init_Proc): Alphabetize local variables.
        (Build_Assignment): Alphabetize local variables. Update the call to
        Maked_Adjust_Call.
        (Build_Class_Wide_Master): Rename local variables to better reflect
        their role.
        (Build_Discriminant_Assignments): Code reformatting.
        (Build_Init_Call_Thru): Code reformatting.
        (Build_Init_Procedure): Code reformatting. Generate a special version
        of Deep_Finalize which is capable of finalizing all initialized
        components and ignore the rest.
        (Build_Init_Statements): Rename local variables to better reflect their
        role.
        Reimplement the mechanism to include the creation and update of an index
        variable called a "counter". It is used as a bookmark for tracing
        initialized and non-initialized components.
        (Build_Initialization_Call): Remove local variable Controller_Typ.
        Alphabetize all local variables. Remove the initialization of the
        record controller and update the call to Make_Init_Call.
        (Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
        New local variable Counter.
        (Constrain_Array): Alphabetize.
        (Expand_Freeze_Array_Type): Create a collection instead of a
        finalization list.
        (Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
        Finalize_Address which is used in conjunction with allocated controlled
        objects.
        (Expand_N_Object_Declaration): Remove the creation of a finalization
        list for anonymous access types. Update the calls to Make_Init_Call and
        Make_Adjust_Call.
        (Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
        retrieval of finalization lists. Remove the expansion of the record
        controller. Create TSS primitive Finalize_Address used in conjunction
        with controlled objects on the heap. Create finalization collections
        for access-to-controlled record components.
        (Expand_Record_Controller): Removed.
        (Freeze_Type): Remove the freezing of record controllers. Freezing of
        class-wide types now requires additional processing. Create
        finalization collections for access-to-controlled types.
        (Increment_Counter): New routine.
        (Make_Counter): New routine.
        (Make_Eq_If): Remove the mention of Name_uController.
        (Make_Predefined_Primitive_Specs): There is no longer need to skip
        types coming from System.Finalization_Root.
        (Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
        (Predefined_Primitive_Bodies): There is no longer need to skip types
        coming from System.Finalization_Root.
        (Stream_Operation_OK): Do not generate stream routines for
        type Ada.Finalization.Heap_Management.Finalization_Collection.
        * exp_ch3.ads: Alphabetize subprograms.
        * exp_ch4.adb: Remove with and use clause for Sem_Ch8.
        Add with and use clause for Lib.
        (Complete_Coextension_Finalization): Removed.
        (Complete_Controlled_Allocation): New routine. Create a finalization
        collection for anonymous access-to-controlled types. Create a custom
        Allocate which interfaces with the back end and the machinery in
        Heap_Management.
        (Expand_Allocator_Expression): Add necessary calls to
        Complete_Controlled_Allocation. Remove the retrieval of finalization
        lists. Update the calls to Make_Adjust_Call. Generate a call to
        Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
        the associated collection.
        (Expand_N_Allocator): Remove the processing for dynamic coextensions.
        Code clean up. Remove the retrieval of finalization lists and
        attachment levels.
        Update the call to Make_Init_Call. Generate a call to
        Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
        the associated collection.
        (Get_Allocator_Final_List): Removed. Finalization lists are not
        available.
        (Suitable_Element): Remove the mention of Name_uController.
        * exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
        (Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
        the left hand side, carry out the assignment and adjust the left hand
        side.
        * exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
        (Add_Collection_Actual_To_Build_In_Place_Call): New routine.
        (BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
        BIP_Collection and BIPcollection.
        (Build_Heap_Allocator): New routine used to allocate the return object
        of a build-in-place function onto a collection.
        (Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
        (Expand_Call): Do not replace direct calls to Deep routines with their
        aliases.
        (Expand_N_Extended_Return_Statement): Give all variables shorter names
        and update their occurrences. Add a special return flag to monitor the
        [ab]normal execution of the function. The flag is set right before the
        return statement.
        Rewrite the mechanism used to allocate a build-in-place return object
        on the heap or on a storage pool.
        (Is_Direct_Deep_Call): New routine.
        (Make_Build_In_Place_Call_In_Allocator): Add a collection to a
        build-in-place function call instead of a final list. Build a call to
        Set_Finalize_Address_Ptr to decorate the associated collection.
        (Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
        order to name the build-in-place function call's result for later
        finalization. Add a collection to a build-in-place function call
        instead of a final list.
        (Make_Build_In_Place_Call_In_Assignment): Add a collection to a
        build-in-place function call instead of a final list. Remove the code
        which moves one final list and transforms it into the actual in a
        nested build-in-place call.
        (Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
        build-in-place function call instead of a final list.
        (Move_Final_List): Removed.
        (Needs_BIP_Collection): New routine.
        (Needs_BIP_Final_List): Removed.
        * exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
        enumeration type BIP_Formal_Kind.
        Update the related comment.
        (Needs_BIP_Collection): New routine.
        (Needs_BIP_Final_List): Removed.
        * exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
        and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
        majority of subprograms in this unit. Add Name_Finalize_Address to
        array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
        (Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
        statements for an array type.
        (Build_Adjust_Statements): Create the adjust statements for a record
        type.
        (Build_Cleanup_Statements): New routine. A procedure which given any
        construct containing asynchronous calls, references to _master, or is a
        task body, a task allocation or a protected body produces the necessary
        runtime calls to clean up these constructs.
        (Build_Exception_Handler): New routine.
        (Build_Final_List): Removed.
        (Build_Finalization_Collection): New routine. A core procedure which
        creates a collection to service heap allocated controlled objects
        associated with an access-to-controlled type.
        (Build_Finalize_Statements): Create the finalization statements for a
        record types.
        (Build_Finalizer): New routine. A core procedure which given any
        construct with declarations and/or statements detects all objects which
        need any type of clean up (controlled objects, protected objects) and
        generates all necessary code to clean up the said objects in the proper
        order.
        (Build_Finalizer_Call): New routine.
        (Build_Initialize_Statements): Create the initialization statements for
        an array type. The generated routine contains code to finalize partially
        initialized arrays.
        (Build_Object_Declarations): New routine.
        (Build_Raise_Statement): New routine.
        (Clean_Simple_Protected_Objects): Removed.
        (Controller_Component): Removed.
        (Enclosing_Function): New routine.
        (Expand_Cleanup_Actions): Create a finalizer for a construct which has
        either declarations or statements or both.
        (Expand_N_Package_Body): Create a finalizer for a non-generic package.
        (Expand_N_Package_Declaration): Create a finalizer for a non-generic
        package.
        (Find_Final_List): Removed.
        (Global_Flist_Ref): Removed.
        (In_Finalization_Root): Removed.
        (Insert_Actions_In_Scope_Around): Determine the range of the transient
        scope in terms of tree nodes. Process all transient variables within
        that range.
        (Make_Adjust_Call): Rewritten. There is no longer an attach call
        generated after the adjust.
        (Make_Attach_Call): Removed.
        (Make_Call): New routine.
        (Make_Clean): Removed.
        (Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
        build routines.
        (Make_Deep_Proc): Rewritten to generate the new profile signature used
        in Deep routines.
        (Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
        build routines.
        (Make_Final_Call): Modified to simply create a call to either
        Deep_Finalize or Finalize.
        (Make_Finalize_Address_Body): New routine.
        (Make_Finalize_Address_Stmts): New routine. A function which produces
        TSS primitive Finalize_Address used in conjunction with heap allocated
        controlled objects.
        (Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
        (Make_Init_Call): Rewritten. There is no longer an attach call
        generated after initialization.
        (Make_Local_Deep_Finalize): New routine.
        (Make_Set_Finalize_Address_Ptr_Call): New routine.
        (Make_Transient_Block): Remove the finalization list retrieval and
        manipulation.
        (Needs_Finalization): Moved to Exp_Util.
        (Parent_Field_Type): New routine.
        (Preprocess_Components): New routine.
        (Process_Transient_Objects): New routine.
        (Wrap_HSS_In_Block): New routine.
        (Wrap_Transient_Declaration): Remove finalization list management and
        controller insertion.
        (Wrap_Transient_Expression): Code reformatting.
        (Wrap_Transient_Statement): Code reformatting.
        * exp_ch7.ads (Build_Final_List): Removed.
        (Build_Finalization_Collection): New routine.
        (Build_Raise_Statement): New routine.
        (Controller_Component): Removed.
        (Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
        (Find_Final_List): Removed.
        (In_Finalization_Root): Removed.
        (Is_Simple_Protected_Type): Update related comment.
        (Make_Adjust_Call): New parameter profile and associated comments.
        (Make_Attach_Call): Removed.
        (Make_Final_Call): New parameter profile and associated comments.
        (Make_Finalize_Address_Body): New routine.
        (Make_Init_Call): New parameter profile and associated comments.
        (Make_Local_Deep_Finalize): New routine.
        (Make_Set_Finalize_Address_Ptr_Call): New routine.
        (Needs_Finalization): Moved to Exp_Util.
        * exp_ch9.adb (Add_Object_Pointer): Code reformatting.
        (Expand_N_Protected_Body): Remove the handling of finalization lists.
        (Find_Protection_Type): Moved to Exp_Util.
        * exp_disp.adb: Remove with and use clauses for Exp_Ch7.
        (Make_DT): Update sequence of dispatch table initialization. Remove the
        initialization of field RC_Offset. Add initialization of field Needs_
        Finalization.
        * exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
        Reimplement how an object is first finalized, then deallocated.
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
        Code reformatting.
        * exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
        Register TSS_Finalize_Address with type TSS_Names.
        * exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
        procedure provides the interface between an allocation / deallocation
        and the support machinery in Ada.Finalization.Heap_Management.
        (Find_Init_Call): Code reformatting.
        (Find_Init_Call_In_List): Code reformatting.
        (Find_Protection_Type): Moved from Exp_Ch9.
        (Find_Prim_Op): Reimplement to add preference of recovered primitive.
        (Has_Controlled_Coextensions): Removed.
        (Has_Controlled_Objects): New routine.
        (In_Library_Level_Package_Body): New routine.
        (Insert_Action_After): New routine.
        (Is_Finalizable_Transient): New routine. This predicate determines
        whether an object declaration is one of the many variants of controlled
        transients.
        (Is_Null_Access_BIP_Func_Call): New routine.
        (Is_Non_BIP_Func_Call): New routine.
        (Is_Related_To_Func_Return): New routine.
        (Needs_Finalization): Moved from Exp_Ch7.
        * exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
        (Find_Protection_Type): Moved from Exp_Ch9.
        (Has_Controlled_Coextensions): Removed.
        (Has_Controlled_Objects): New routine.
        (In_Library_Level_Package_Body): New routine.
        (Insert_Action_After): New routine.
        (Is_Finalizable_Transient): New routine.
        (Is_Null_Access_BIP_Func_Call): New routine.
        (Is_Non_BIP_Func_Call): New routine.
        (Is_Related_To_Func_Return): New routine.
        (Needs_Finalization): Moved from Exp_ch7.
        * expander.adb (Expand): Add a case for N_Free_Statement.
        * freeze.adb (Freeze_All): Replace the generation of a finalization
        list with a collection for access-to-controlled types.
        (Freeze_Entity): Code reformatting.
        (Freeze_Record_Type): Remove the freezing of a record controller
        component.
        (Freeze_Subprogram): Code reformatting.
        * inline.adb (Cleanup_Scopes): Remove the reset of the scope
        finalization list.
        * lib-writ.adb (Write_Unit_Information): Output "PF" when a package
        has a library-level finalizer.
        * lib-writ.ads: Add "PF" to the sequence of unit attributes.
        * a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
        * Makefile.rtl: Remove a-filico and s-finimp from the list of object
        files. Add a-fihema to the list of object files.
        * par-ch4.adb:
        Alphabetize the associations in type Is_Parameterless_Attribute.
        * rtsfind.ads: Ada.Finalization_List.Controller and
        System.Finalization_Implementation are no longer a GNAT unit.
        Update the range of type Ada_Finalization_Child. Remove the following
        recoverable entities:

           RE_Attach_To_Final_List
           RE_Deep_Tag_Attach
           RE_Finalize_List
           RE_Finalize_One
           RE_Finalizable_Ptr_Ptr
           RE_Global_Final_List
           RE_Limited_Record_Controller
           RE_List_Controller
           RE_Move_Final_List
           RE_Record_Controller
           RE_Simple_List_Controller

        Add the following recoverable entities:

           RE_Add_Offset_To_Address
           RE_Allocate
           RE_Base_Pool
           RE_Deallocate
           RE_Exception_Identity
           RE_Finalization_Collection
           RE_Finalization_Collection_Ptr
           RE_Needs_Finalization
           RE_Save_Library_Occurrence
           RE_Set_Finalize_Address_Ptr
           RE_Set_Storage_Pool_Ptr
           RE_Storage_Count
        * sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
        Name_uController.
        * sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
        (First_Stored_Discriminant): Remove the mention of Name_uController.
        * sem_aux.ads: Comment reformatting.
        * sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
        to redecorate an already existing class-wide type.
        (Decorate_Tagged_Type): New parameter profile and associated comment.
        Create a "shadow class-wide type" for a shadow entity.
        * sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
        of the final chain along with the associated comment.
        * sem_ch3.adb (Access_Type_Declaration): Add new local variable
        Full_Desig and set it to the full view of the designated type.
        Initialize the finalization collection to empty.
        (Build_Derived_Record_Type): Alphabetize local variables. Code
        reformatting.
        (Collect_Fixed_Components): Remove the mention of Name_uController.
        (Create_Constrained_Components): Remove the mention of Name_uController.
        (Make_Class_Wide_Type): Add specialized code to redecorate an existing
        class-wide type of a shadow entity.
        (Process_Full_View): Update the machinery which marks type
        Limited_Controlled's entity as limited.
        * sem_ch4.adb (Analyze_One_Call): Code reformatting.
        * sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
        list, instead make a collection build-in-place formal.
        * sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
        a designated type in order to establish a match between the renaming
        and the renamed entity.
        (Find_Selected_Component): Add guard to prevent spurious exceptions
        from being raised on .NET/JVM.
        * sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
        to the list of primitive that need special processing. Update arrays
        C_Names and D_Names.
        (Replace_Types): Handle class-wide types.
        * sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
        different parameter profile, look at the first formal.
        * sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
        use clauses for Exp_Util.
        * sem_res.adb: Remove with and use clauses for Elists.
        (Propagate_Coextensions): Removed.
        (Resolve_Allocator): Do not propagate the list of coextensions from one
        allocator to another.
        * sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
        Deaccessed_T to Desig_Typ.
        (Enter_Name): Remove the mention of Name_uController.
        (Gather_Components): Remove the mention of Name_uController.
        (Incomplete_Or_Private_View): New routine.
        (Is_Coextension_Root): Removed.
        (Is_Fully_Initialized_Type): Remove the mention of Name_uController.
        * sem_util.ads (Incomplete_Or_Private_View): New routine.
        (Is_Coextension_Root): Removed.
        * s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
        Controlled types are now derived from a null tagged record. Remove
        types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
        * sinfo.adb (Coextensions): Removed.
        (Set_Coextensions): Removed.
        * sinfo.ads: Remove Coextensions from the explanation of node fields
        and its uses in nodes.
        Update the field usage of N_Allocator.
        (Coextensions): Removed along with its pragma Inline.
        (Set_Coextensions): Removed along with its pragma Inline.
        * snames.ads-tmpl: Remove names

          Name_uClean
          Name_uController
          Name_uFinal_List
          Name_uLocal_Final_List
          Name_Finalization_Root
          Name_Next
          Name_Prev

        Add names

          Name_uFinalizer
          Name_Finalize_Address
        * s-pooglo.adb (Allocate): Add overriding indicator.
        (Deallocate): Add overriding indicator.
        (Storage_Size): Add overriding indicator.
        * s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
        than Finalize_Global_List.
        (Null_Finalize_Global_List): Removed.
        (Save_Library_Occurrence): New routine.
        * s-soflin.ads: Remove variable Finalize_Global_List along with its
        initialization. Add variable Finalize_Library_Objects along with its
        pragma Export. Add variables Library_Exception and
        Library_Exception_Set along with their pragma Export.
        (Null_Finalize_Global_List): Removed.
        (Save_Library_Occurrence): New routine.
        * s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
        rather than Finalize_Global_List.
        * tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
        of the constructed node.

2011-08-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * link.c: Include "auto-host.h" before system headers.

2011-08-03  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): Add to table Library_Projs only library projects
        that are not extended. Do not check if a library project that is
        extended should be regenerated. Do not add to table Library_Paths the
        libraries that are in extended projects. Link only with libraries that
        are in libray projects that are not extended.
        * prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
        for a library project that is extended.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
        conforming subprogram renamings that appear to be completions if they
        are not fully conformant.
        Such renamings are homographs but not completions.
        * sem_type.adb (Disambiguate): Handle disambiguation of overloaded
        names in a subprogram renaming that appears in an instance.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
        not immutably limited, build actual subtype from expression to provide
        proper bounds to caller.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch8.adb: Minor comment correction.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
        returning a limited array, use an extended return statement.

2011-08-03  Vincent Celier  <celier@adacore.com>

        * make.adb (Initialize): If --subdirs= is used, but no project file is
        specified, attempt to create the specify subdir if it does not already
        exist and use it as the object directory as if -D had been specified.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

        * s-tpopsp-vms.adb: New file.
        * s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
        * gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
        package.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
        * sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
        * sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
        detect that an array has static bounds.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * exp_dist.adb: Minor reformatting.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

        * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
        (ATCB_Key): Removed, not always used.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
        clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
        most remaining global variables.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
        prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
        reformatting.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
        that must be passed by copy in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
        duplicates a similar htable now in the project tree.

2011-08-03  Claire Dross  <dross@adacore.com>

        * a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
        a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
        Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
        Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
        Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
        Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
        Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
        update.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

        * s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
        (ATCB_Key): Removed, not always used.
        * s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
        s-taprop-posix.adb.
        * s-tpopsp-tls.adb: New file.
        * gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
        x86/x64/ia64/powerpc/sparc Linux.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

        * system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
        * gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * rtsfind.ads, exp_dist.adb, exp_dist.ads
        (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
        Fix type selection for mapping integer types to PolyORB types.

2011-08-03  Bob Duff  <duff@adacore.com>

        * sem_ch7.adb: Minor comment clarification.

2011-08-03  Bob Duff  <duff@adacore.com>

        * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
        an error analyzing a choice, skip further processing. Further
        processing could cause a crash or cascade errors.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
        prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
        prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
        prj-env.ads (Shared_Project_Tree_Data): new type
        An aggregate project and its aggregated trees need to share the common
        data structures used for lists of strings, packages,... This makes the
        code simpler since otherwise we have to pass the root tree (also used
        for the configuration file data) in addition to the current project
        tree. This also avoids ambiguities as to which tree should be used.
        And finally this saves a bit of memory.
        (For_Every_Project_Imported): new parameter Tree.
        Since aggregated projects are using a different tree, we need to let
        the caller know which tree to use to manipulate the returned project.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
        prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
        lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
        prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
        Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.

2011-08-03  Bob Duff  <duff@adacore.com>

        * sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
        the Base_Type.

2011-08-03  Joel Brobecker  <brobecker@adacore.com brobecker>

        * g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
        g-sehash.ads: Fix typo. Update header.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
        expansion.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
        prefixes of private types along with records, since the selector may be
        a discriminant.
        * sem_res.adb (Resolve_Selected_Component): Consider prefixes of
        private types along with records, since the selector may be a
        discriminant.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-pp.adb (Pretty_Print): Remove trailing blank line.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
        Tagged_Type_Expansion.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * sem_res.adb (Resolve_Op_Concat_Arg): Do not issue a SPARK
        violation when the argument of concatenation is the name of a
        constant.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
        prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
        (Process_Declarative_Items): new parameter Child_Env.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * alfa.ads: Update format of ALFA section in ALI file in order to
        add a mapping from bodies to specs when both are present.
        (ALFA_Scope_Record): Add components for spec file/scope.
        * get_alfa.adb (Get_ALFA): Read the new file/scope for spec when
        present.
        * lib-xref-alfa.adb (Collect_ALFA): After all scopes have been
        collected, fill in the spec information when relevant.
        * put_alfa.adb (Put_ALFA): Write the new file/scope for spec when
        present.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
        code unit to decide whether to add internally generated subprograms.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
        * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must
        be handled by copy in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): Share
        code with Makeutl.Get_Switches.
        * prj-tree.adb: Update comment.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
        subprogram with a limited formal that does not support external
        streaming.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
        continuation line
        * lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
        not from current unit in two phases, because it is not possible to
        change the table while iterating over its content.
        * put_alfa.adb (Put_ALFA): reset current file/scope at each new entity

2011-08-03  Sergey Rybin  <rybin@adacore.com>

        * vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
        * gnat_ugn.texi: Update description of complexity metrics (gnatmetric)

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
        and the component type is composite, this is ambiguous for predefined
        concatenation, but if the node is not overloaded and the entity is a use
        -defined function its profile can be used to resolve that aggregate.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb: Minor code cleanup.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * exp_dist.adb: Do not generate distribution stubs if serious errors
        have been diagnosed.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
        the first formal of a primitive operation, go to the base type to
        handle properly an access to a derived type with constrained
        discriminants.
        * sem_type.adb (Disambiguate): an immediately visible operator hides a
        user-defined function that is only use-visible.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
        make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
        fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
        prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
        sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
        prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
        prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
        alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * repinfo.adb (List_Mechanism): Add handling of
        Convention_Ada_Pass_By_XXX.
        * sem_mech.adb (Set_Mechanism): Ditto.
        * sem_prag.adb (Process_Convention): Add entries for
        Convention_Ada_Pass_By_XXX.
        * snames.adb-tmpl, snames.ads-tmpl: Ditto.

2011-08-03  Pascal Obry  <obry@adacore.com>

        * makeutl.adb: Minor reformatting.

2011-08-03  Vincent Celier  <celier@adacore.com>

        * fname-uf.adb
        (Get_File_Name) If the file cannot be found when there are no config
        pragmas file and May_Fail is True, return No_File instead of the file
        name, to be consistent.

2011-08-03  Pascal Obry  <obry@adacore.com>

        * adaint.c (__gnat_is_executable_file_attr): Avoid access
        to null pointer.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * sem_ch13.adb
        (Same_Representation): In VM targets the representation of arrays with
        aliased components differs from arrays with non-aliased components.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
        not systematically lower case attribute indexes that contain no "."
        Fix definition of several Naming attributes, which take
        a unit name as index and therefore should be case insensitive.
        Minor refactoring (reduce length of variable names).

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * makeutl.adb, makeutl.ads (Get_Switches): new subprogram.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
        prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
        prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
        prj-tree.ads (Prj.Tree.Environment): new type.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
        prj-tree.adb, prj-tree.ads (Environment): new type.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-tree.ads: Remove unused variable.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
        issuing messages related to SPARK restriction violation.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb: guard against error nodes in return statements.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

        * errout.adb (Error_Msg_Internal): the main unit has not been read yet,
        a warning can only appear on a configuration file, so emit warning
        without further checks.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

        * s-interr.ads: add overriding keyword.

2011-08-03  Geert Bosch  <bosch@adacore.com>

        * exp_attr.adb: Fix minor typo.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * par-ch4.adb: improve error recovery.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
        prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
        to Errout_Handling.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
        "external" as an attribute name in aggregate projects.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
        uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
        from 0, so we need to adjust.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
        prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
        restriction on overloaded entity if the entity is not an operator.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
        restrict.ads: Rename remaining Check_Formal_Restriction* into
        Check_SPARK_Restriction*.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
        prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
        qualifier.
        (Project_Empty): removed
        (Empty_Project): new parameter Qualifier
        This is used to have fields specific to aggregate projects, cleaner
        New field to store the list of aggregated projects.
        (Check_Aggregate_Project): removed
        (Process_Aggregated_Projects, Free): new subprograms.

2011-08-03  Olivier Hainque  <hainque@adacore.com>

        * tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
        explicit dereference of an unconstrained type, create a constrained
        subtype for it, as is done for function calls that return an
        unconstrained type.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * g-pehage.adb (Finalize): Avoid possible double-free.

2011-08-03  Steve Baird  <baird@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
        Elab_Spec/Body attrs in CodePeer_Mode.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * exp_aggr.adb (Flatten): Convert to positional form aggregates whose
        low bound is not known at compile time but they have no others choice.
        Done because in this case the bounds can be obtained directly from the
        aggregate.

2011-08-03  Ed Falis  <falis@adacore.com>

        * s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
        on VxWorks SMP. Remove unusable constant ANY_CPU.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
        clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
        prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
        Prj.Env.Initialize_Empty): new subprograms
        (Get_Env, Find_Project): remove parameter Target_Name.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
        as a condition for the delayed call to Derived_Subprograms done for the
        case of the rewriting of a derived type that constrains the
        discriminants of its parent type.
        Avoids redundant subprogram derivations for private subtype derivations.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
        Build_Record_Aggr_Code.
        (Build_Record_Aggr_Code): Add missing support to initialize hidden
        discriminants in extension aggregates.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-pp.adb (Print): also output project qualifiers, since in
        particular "aggregate" is mandatory in an aggregate project.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

        * prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
        (Debug_Output): new function.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

        * gnat_ugn.texi: Document -Wstack-usage.
        * gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * sem_prag.adb Issue an error (not a warning) when a C++ type does not
        have keyword LIMITED.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * alfa.adb, alfa.ads, alfa_test.adb: New files.
        * ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
        (Scan_ALI): do not issue a fatal error if parsing known lines after Xref
        section (does not happen in compiler, only if code directly calls
        Scan_ALI).
        * get_alfa.adb, get_alfa.ads: New files.
        * lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
        needed.
        * lib-xref-alfa.adb: New file.
        * lib-xref.adb, lib-xref.ads
        (Xref_Entry): redefine information needed in cross-references for ALFA.
        Push ALFA treatments in separated local package.
        (Enclosing_Subpragram_Or_Package): treat specially subprogram
        identifiers. Return entity of package body instead of spec. Return
        Empty for a scope with no location.
        (Generate_Reference): adapt to new components for ALFA information.
        Remove the need for D references on definitions.
        (Is_Local_Reference): moved to ALFA local package
        (Output_References): extract subfunction as Extract_Source_Name
        (Output_Local_References): remove procedure, replaced by filtering of
        cross-references in package ALFA and printing in Put_ALFA.
        (Write_Entity_Name): remove procedure
        * lib.adb, lib.ads (Extract_Source_Name): extract here function to
        print exact name of entity as it appears in source file
        (Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
        * put_alfa.adb, put_alfa.ads: New files.
        * xref_lib.adb (Search_Xref): protect read of cross-references against
        reading other sections of the ALI file, in gnatxref
        (Search): protect read of cross-references against reading other
        sections of the ALI file, in gnatfind.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

        * s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
        raising an exception.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
        type, always use 1 as the lower bound or string, even if lower bound of
        context is not static, to handle properly null strings in a non-static
        context.

2011-08-03  Bob Duff  <duff@adacore.com>

        * sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
        always legal on the right-hand side of an assignment statement; there
        is always an applicable index constraint in this case. Therefore, the
        check for Pkind = N_Assignment_Statement is now unconditional -- it
        doesn't depend on whether Is_Constrained (Typ).

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
        for an itype created within a generic unit.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

        * gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
        suppresses all inlining.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
        exp_aggr.adb: Minor reformatting.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
        tagged assignment when discriminant checks are suppressed. This is
        useless and extremely costly in terms of static stack usage.

2011-08-03  Bob Duff  <duff@adacore.com>

        * sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
        of generics, because this leads to the wrong entity in the wrong scope,
        causing (e.g.) pragma Export_Procedure to get an error if the entity is
        an instance.
        (Process_Interface_Name): Follow Alias for instances of generics, to
        correct for the above change.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
        is an integer literal it is always safe to replace the reference. In
        addition, if the reference appears in the generated code for an object
        declaration it is necessary to copy because otherwise the reference
        might be to the uninitilized value of the discriminant of the object
        itself.

2011-08-03  Pascal Obry  <obry@adacore.com>

        * adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
        ACL used, in this case we want to check for ending .exe, not .exe
        anywhere in the path.

2011-08-03  Sergey Rybin  <rybin@adacore.com>

        * tree_io.ads (ASIS_Version_Number): Update because of the changes in
        the tree structure (semantic decoration of references to record
        discriminants).

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

        * sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
        choices of a named array aggregate, bail out when any choices are
        marked as Errors_Posted.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
        in which entity is frozen, to handle properly loop variables in
        iterators.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
        subtype is not static, compute the upper bound using attributes, to
        handle properly index types that are not integer types.

2011-08-03  Bob Duff  <duff@adacore.com>

        * gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
        Update copyright notice.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Build_Discriminant_Constraints): Only use
        Original_Discriminant if within an instance.
        * sem_ch4.adb (Analyze_Selected_Component): Ditto.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

        * einfo.ads: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
        composite type with an unfrozen subcomponent, in the profile of a
        primitive operation.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
        unconstrained type with discriminants is initialized with an aggregate,
        use the constrained subtype of the aggregate as the type of the object,
        because it is immutable, and this allows the back-end to generate no
        code for the object declaration.

2011-08-03  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
        comparison operand is variable, and turns out to be zero or negative.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * exp_intr.adb
        (Expand_Dispatching_Constructor_Call): Disable expansion of
        code required for native targets. Done to avoid generating
        references to unavailable runtime entities in VM targets.
        * exp_ch3.adb
        (Expand_N_Object_Declaration): Add missing support to handle
        the explicit initialization of class-wide interface objects.
        Fix documentation.

2011-08-03  Matthew Heaney  <heaney@adacore.com>

        * a-cobove.adb (Merge): Move source onto target, instead of using
        Assign.

2011-08-03  Matthew Heaney  <heaney@adacore.com>

        * a-cbdlli.adb (Splice): Move source items from first to last.

2011-08-03  Yannick Moy  <moy@adacore.com>

        * sem_util.ads: Add comment.

2011-08-03  Javier Miranda  <miranda@adacore.com>

        * exp_aggr.adb
        (Expand_Record_Aggregate): In VM targets disable the expansion into
        assignments of aggregates whose type is not known at compile time.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
        protected entries and task entries, to build the proper renaming
        declaration for entry formals, used in debugging.
        * exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
        parameters in the same way.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
        sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
        code reorganization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * debug.adb: Debug flag d.P to suppress length comparison optimization
        * exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
        comparison of Length by comparing First/Last instead.

2011-08-02  Matthew Heaney  <heaney@adacore.com>

        * a-cobove.ads: Code clean up.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * adaint.c (file_names_case_sensitive_cache): New static int.
        (__gnat_get_file_names_case_sensitive): Cache the return value in
        file_names_case_sensitive_cache at the first invocation, to avoid
        multiple calls to getenv.

2011-08-02  Bob Duff  <duff@adacore.com>

        * sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
        sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
        sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
        indicate that we are in a precondition or postcondition. This is used in
        Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
        decide whether to flag the spec or body of the current subprogram as
        not in ALFA.

2011-08-02  Fabien Chouteau  <chouteau@adacore.com>

        * impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
        list.
        * a-extiin.ads: New file.

2011-08-02  Bob Duff  <duff@adacore.com>

        * a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
        now raises Name_Error instead of Use_Error in certain cases. The other
        parts of this AI were already implemented properly.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * link.c: Only import "auto-host.h" when building the gnattools.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_util.adb: Inter-unit inlining does not work for a subprogram
        which calls a local subprogram, so extract subprogram
        from Mark_Non_ALFA_Subprogram_Body.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch9.adb
        (Extract_Dispatching_Call): If the type of the dispatching object is an
        access type then return an explicit dereference in the Object out-mode
        parameter.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
        compatibility checks for all indexes of an array subtype, not just the
        first. Reset Has_Dynamic_Range_Check on the subtype before each
        potential check to ensure that Insert_Range_Checks will not elide any
        of the dynamic checks.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
        SPARK restriction at parsing time.
        * scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
        directive only if the SPARK restriction is set for this unit.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
        sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
        sem_ch11.adb: Protect call to Current_Subprogram which might be costly
        when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
        Mark_Non_ALFA_Subprogram_Body.
        Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
        inlined.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
        might be costly.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
        exp_ch3.adb: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

        * adaint.c (__gnat_locate_exec_on_path): only returns executable
        files, not any regular file.
        (__gnat_locate_file_with_predicate): new subprogram.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sinfo.adb, sinfo.ads: Restrict the use of flags
        Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
        nodes, plus N_Subtype_Declaration for the 2nd one.

2011-08-02  Sergey Rybin  <rybin@adacore.com>

        * gnat_rm.texi: Ramification of pragma Eliminate documentation
         - fix bugs in the description of Source_Trace;
         - get rid of UNIT_NAME;

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch9.adb
        (Build_Dispatching_Requeue): Adding support for VM targets
        since we cannot directly reference the Tag entity.
        * exp_sel.adb (Build_K): Adding support for VM targets.
        (Build_S_Assignment): Adding support for VM targets.
        * exp_disp.adb
        (Default_Prim_Op_Position): In VM targets do not restrict availability
        of predefined interface primitives to compiling in Ada 2005 mode.
        (Is_Predefined_Interface_Primitive): In VM targets this service is not
        restricted to compiling in Ada 2005 mode.
        (Make_VM_TSD): Generate code that declares and initializes the OSD
        record. Needed to support dispatching calls through synchronized
        interfaces.
        * exp_ch3.adb
        (Make_Predefined_Primitive_Specs): Enable generation of predefined
        primitives associated with synchronized interfaces.
        (Make_Predefined_Primitive_Bodies): Enable generation of predefined
        primitives associated with synchronized interfaces.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
        statements hidden in SPARK if preceded by the HIDE directive
        (Parse_Exception_Handlers): mark each exception handler in a sequence of
        exception handlers as hidden in SPARK if preceded by the HIDE directive
        * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
        if starting with the HIDE directive
        * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
        starting with the HIDE directive; mark the declarations in a private
        part as hidden in SPARK if the private part starts with the HIDE
        directive
        * restrict.adb, restrict.ads
        (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
        (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
        argument node belongs to a part which is hidden in SPARK
        (Check_SPARK_Restriction): do not issue violations on nodes in hidden
        parts in SPARK; protect the possibly costly call to
        Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
        * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
        * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
        Accumulate_Token_Checksum_GNAT_5_03): add case for new token
        Tok_SPARK_Hide.
        (Scan): recognize special comment starting with '#' and followed by
        SPARK keyword "hide" as a HIDE directive.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * types.ads, erroutc.ads: Minor reformatting.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * link.c: Add response file support for cross platforms.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
        in an association, set parent field of copy before partial analysis.
        * sem_res.adb (Resolve_Slice): create reference to itype only when
        expansion is enabled.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
        for new flag denoting which subprogram bodies are in ALFA
        * restrict.adb, sem_ch7.adb: Update comment
        * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
        sem_ch9.adb, sem_res.adb: Add calls to
        Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
        * sem_ch6.adb (Analyze_Function_Return): add calls to
        Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
        middle of the body, and extended return.
        (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
        False when missing return.
        (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
        to True for subprograms whose spec is in ALFA. Remove later on the flag
        on the entity used for a subprogram body when there exists a separate
        declaration.
        * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
        if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
        False, otherwise do nothing.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_ch4.ads: minor formatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
        debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
        errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
        restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
        opt.ads: cleanup of SPARK mode

2011-08-02  Yannick Moy  <moy@adacore.com>

        * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
        types.
        * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
        (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
        * sem_ch3.adb
        (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
        (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
        (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
        (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
        types.
        (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
        non-static range.
        * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
        functions whose return type is not in ALFA.
        (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
        specifications.
        (Process_Formals): unset Is_In_ALFA flag for subprograms if a
        parameter's type is not in ALFA.
        * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
        types are in ALFA.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6 (Analyze_Expression_Function): treat the function as
        Inline_Always, and introduce a subprogram declaration for it when it is
        not a completion.
        * inline.adb (Add_Inlined_Body): recognize bodies that come from
        expression functions, so that the back-end can determine whether they
        can in fact be inlined.
        * sem_util.adb (Is_Expression_Function): predicate to determine whether
        a function body comes from an expression function.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
        null exclusions to test Can_Never_Be_Null on the anonymous access types
        of the formals rather than testing the formals themselves. Exclude this
        check in cases where the Old_Formal is marked as a controlling formal,
        to avoid issuing spurious errors for bodies completing dispatching
        operations (due to the flag not getting set on controlling access
        formals in body specs).
        (Find_Corresponding_Spec): When checking full and subtype conformance of
        subprogram bodies in instances, pass Designated and E in that order, for
        consistency with the expected order of the formals (New_Id followed by
        Old_Id).

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
        Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
        primitive operations of class-wide actuals.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_atag.ads, exp_atag.adb
        (Build_Common_Dispatching_Select_Statements): Remove argument Loc
        since its value is implicitly passed in argument Typ.
        * exp_disp.adb (Make_Disp_Conditional_Select_Body,
        Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
        Build_Common_Dispatching_Select_Statements.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
        exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
        Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb: Minor reformatting.
        * sem_prag.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_atag.adb, exp_atags.ads
        (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
        by the tagged type Entity. Required to use this routine in the VM
        targets since we do not have available the Tag entity in the VM
        platforms.
        * exp_ch6.adb
        (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
        Ada.Tags has not been previously loaded.
        * exp_ch7.adb
        (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
        Build_VM_TSDs if package Ada.Tags has not been previously loaded.
        * sem_aux.adb
        (Enclosing_Dynamic_Scope): Add missing support to handle the full
        view of enclosing scopes. Required to handle enclosing scopes that
        are synchronized types whose full view is a task type.
        * exp_disp.adb
        (Build_VM_TSDs): Minor code improvement to avoid generating and
        analyzing lists with empty nodes.
        (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
        (Make_Disp_Conditional_Select_Body): Add support for VM targets.
        (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
        (Make_Disp_Timed_Select_Body): Add support for VM targets.
        (Make_Select_Specific_Data_Table): Add support for VM targets.
        (Make_VM_TSD): Generate code to initialize the SSD structure of
        the TSD.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
        cross-references section in ALI.
        * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
        (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
        Sub).
        (Enclosing_Subprogram_Or_Package): new function to return the enclosing
        subprogram or package entity of a node
        (Is_Local_Reference_Type): new function returns True for references
        selected in local cross-references.
        (Lt): function extracted from Lt in Output_References
        (Write_Entity_Name): function extracted from Output_References
        (Generate_Definition): generate reference with type 'D' for definition
        of objects (object declaration and parameter specification), with
        appropriate locations and units, for use in local cross-references.
        (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
        references of type 'I' for initialization in object definition.
        (Output_References): move part of function Lt and procedure
        Write_Entity_Name outside of the body. Ignore references of types 'D'
        and 'I' introduced for local cross-references.
        (Output_Local_References): new procedure to output the local
        cross-references sections.
        (Lref_Entity_Status): new array defining whether an entity is a local
        * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
        with 'I' type when initialization expression is present.
        * get_scos.adb, get_scos.ads: Correct comments and typos

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
        the JVM target.
        * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
        the JVM target.
        * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
        TSD support.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
        (No_Space_Img): New function
        (Find_Excluded_Sources): When reading from a file, record the file name
        and the line number for each excluded source.
        (Mark_Excluded_Sources): When reporting an error, if the excluded
        sources were read from a file, include file name and line number in
        the error message.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
        generation of TSDs to the DOTNET compiler.
        * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
        generation of TSDs to the DOTNET compiler.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
        record of all the tagged types declared inside library level package
        declarations, library level package bodies or library level subprograms.
        * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
        associated with a given tagged type.
        (Build_VM_TSDs): New subprogram.
        * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
        compilation units that are subprograms.
        * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
        compilation units that are package bodies.
        (Expand_N_Package_Declaration): Generate TSDs of the main compilation
        units that are a package declaration or a package instantiation.
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
        reorganization to improve the error generated by the frontend when the
        function Ada.Tags.Secondary_Tag is not available.
        * rtsfind.ads (RE_Register_TSD): New runtime entity.
        * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * s-imenne.ads: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
        * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
        * s-stalib.ads: Add pragma Suppress_Initialization for Big_String

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.ads (Materialize_Entity): Document this is only for renamings
        * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
        required debug information in the case where we transform the object
        declaration into a renaming declaration.
        * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
        object
        * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
        Materialize_Entity.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
        Suppress_Init_Procs.
        * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
        Suppress_Initialization/Initialization_Suppressed.
        * gnat_rm.texi: New documentation for pragma Suppress_Initialization
        * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
        * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
        * sem_prag.adb: New processing for pragma Suppress_Initialization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
        Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
        only have inheritable classwide pre/postconditions.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
        * rtsfind.ads (RE_Check_TSD): New runtime entity.
        * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
        checks if the external tag of a type is the same as the external tag
        of some other declaration.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

        * s-taskin.ads: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb (Display_Help): swap the order in which it prints the
        short help and the general usage.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
        the aspect declarations and attach them to the generic copy for
        subsequent analysis.
        (Analyze_Subprogram_Instantiation): copy explicitly the aspect
        declarations of the generic tree to the new subprogram declarations.
        * sem_attr.adb (Check_Precondition_Postcondition): recognize
        conditions that apply to a subprogram instance.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
        private type with a tagged full view is not derived in the immediate
        scope of the partial view, (RM 7.3 (7)) use the scope of the base type.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
        Ada2012 iterator, the loop will be rewritten during expansion into a
        while loop with a cursor and an element declaration. Do not analyze the
        body in this case, because if the container is for indefinite types the
        actual subtype of the elements will only be determined when the cursor
        declaration is analyzed.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
        size/alignment related attributes in CodePeer_Mode.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
        Prepend_Element, since this can result in the operation getting the
        wrong slot in the full type's dispatch table if the full type has
        inherited operations. The incomplete type's operation will get added
        to the proper position in the full type's primitives
        list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
        (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
        dispatching operations, since there are cases where nonprimitive
        subprograms can get added to the list of incomplete dependents (such
        as subprograms in nested packages).
        * sem_ch6.adb (Process_Formals): First, remove test for being in a
        private part when determining whether to add a primitive with a
        parameter of a tagged incomplete type to the Private_Dependents list.
        Such primitives can also occur in the visible part, and should not have
        been excluded from being private dependents.
        * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
        RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
        list of a Taft-amendment incomplete type is a primitive before issuing
        an error that the full type must appear in the same unit. There are
        cases where nonprimitives can be in the list (such as subprograms in
        nested packages).
        * sem_disp.adb (Derives_From): Use correct condition for checking that
        a formal's type is derived from the type of the corresponding formal in
        the parent subprogram (the condition was completely wrong). Add
        checking that was missing for controlling result types being derived
        from the result type of the parent operation.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * errout.adb (First_Node): minor renaming
        * restrict.adb (Check_Formal_Restriction): put restriction warning on
        first node.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
        before accessing operands.
        * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
        decide whether an initialization expression respects SPARK rules, as
        the plain node is the expanded one. This allows for more valid warnings
        to be issued.
        * gnat_rm.texi: Minor update.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
        previous change.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch4.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
        loop statements and the element renaming declaration with a block when
        the element type is controlled.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sinfo.ads: Minor formatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Add_Association): if the association has a box and no
        expression, use the Sloc of the aggregate itself for the new
        association.
        * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
        the Original_Node.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
        When a container is provided via a function call, generate a renaming
        of the function result. This avoids the creation of a transient scope
        and the premature finalization of the container.
        * exp_ch7.adb (Is_Container_Cursor): Removed.
        (Wrap_Transient_Declaration): Remove the supression of the finalization
        of the list controller when the declaration denotes a container cursor,
        it is not needed.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * restrict.adb (Check_Formal_Restriction): only issue a warning if the
        node is from source, instead of the original node being from source.
        * sem_aggr.adb
        (Resolve_Array_Aggregate): refine the check for a static expression, to
        recognize also static ranges
        * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
        Array_Type_Declaration): postpone the test for the type being a subtype
        mark after the type has been resolved, so that component-selection and
        expanded-name are discriminated.
        (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
        to distinguish the case of an iteration scheme, so that an error is
        issed on a non-static range in SPARK except in an iteration scheme.
        * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
        In_Iter_Schm = True.
        * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
        user-defined operators so that they are allowed in renaming
        * sem_ch8.adb
        (Find_Selected_Component): refine the check for prefixing of operators
        so that they are allowed in renaming. Move the checks for restrictions
        on selector name after analysis discriminated between
        component-selection and expanded-name.
        * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
        concatenation argument of string type if it is static.
        * sem_util.adb, sem_util.ads
        (Check_Later_Vs_Basic_Declarations): add a new function
        Is_Later_Declarative_Item to decice which declarations are allowed as
        later items, in the two different modes Ada 83 and SPARK. In the SPARK
        mode, add that renamings are considered as later items.
        (Enclosing_Package): new function to return the enclosing package
        (Enter_Name): correct the rule for homonyms in SPARK
        (Is_SPARK_Initialization_Expr): default to returning True on nodes not
        from source (result of expansion) to avoid issuing wrong warnings.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * errout.adb: On anything but an expression First_Node returns its
        argument.

2011-08-02  Pascal Obry  <obry@adacore.com>

        * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
        Set the associated loop as the related expression of internally
        generated cursors.
        * exp_ch7.adb (Is_Container_Cursor): New routine.
        (Wrap_Transient_Declaration): Supress the finalization of the list
        controller when the declaration denotes a container cursor.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
        command line now.
        * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
        expression is a simple expression. This check cannot be performed in
        the semantics, so just drop it.
        (P_Index_Or_Discriminant_Constraint): move check that the index or
        discriminant is a subtype mark to Analyze_Subtype_Declaration in the
        semantics. Other cases were previously checked in the semantics.
        * par-ch4.adb (P_Name): move checks that a selector name is not
        character literal or an operator symbol to Find_Selected_Component in
        the semantics
        * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
        declarations are not placed after later declarations in a separate
        procedure in Sem_Util (possibly not the best choice?), to be used both
        during parsing, for Ada 83 mode, and during semantic analysis, for
        SPARK mode.
        * par-endh.adb (Check_End): move check that end label is not missing
        to Process_End_Label in the semantics
        * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
        the special case for SPARK restriction
        * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
        * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
        parameter Force to issue the error message even on internal node (used
        for generated end label). Call Check_Restriction to check when an error
        must be issued. In SPARK mode, issue an error message even if the
        restriction is not set.
        (Check_Restriction): new procedure with an additional out parameter to
        inform the caller that a message has been issued
        * sem_aggr.adb: Minor modification of message
        * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
        instead of issuing an error message directly
        * sem_ch3.adb (Analyze_Declarations): move here the check that basic
        declarations are not placed after later declarations, by calling
        Check_Later_Vs_Basic_Declarations
        (Analyze_Subtype_Declaration): move here the check that an index or
        discriminant constraint must be a subtype mark. Change the check that
        a subtype of String must start at one so that it works on subtype marks.
        * sem_ch4.adb (Analyze_Call): move here the check that a named
        association cannot follow a positional one in a call
        * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
        instead of issuing an error message directly
        * sem_ch8.adb (Find_Selected_Component): move here the check that a
        selector name is not a character literal or an operator symbol. Move
        here the check that the prefix of an expanded name cannot be a
        subprogram or a loop statement.
        * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
        procedure called from parsing and semantics to check that basic
        declarations are not placed after later declarations
        (Process_End_Label): move here the check that end label is not missing

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
        representation clause in codepeer mode, since it confuses CodePeer and
        does not bring useful info.

2011-08-02  Ed Falis  <falis@adacore.com>

        * init.c: initialize fp hw on MILS.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * errout.adb (First_Node): for bodies, return the node itself (small
        optimization). For other nodes, do not check source_unit if the node
        comes from Standard.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch3.adb: Minor comment additions.
        * sem_ch13.adb: Minor reformatting.

2011-08-02  Pascal Obry  <obry@adacore.com>

        * make.adb, makeutl.adb: Removes some superfluous directory separator.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_attr.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
        (Has_Default_Component_Value): Removed
        * einfo.ads Comment updates
        (Has_Default_Aspect): Replaces Has_Default_Value
        (Has_Default_Component_Value): Removed
        * exp_ch13.adb
        (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
        * exp_ch3.adb
        (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
        (Get_Simple_Init_Val): Handle Default_Value aspect
        (Needs_Simple_Initialization): Handle Default_Value aspect
        * exp_ch3.ads: Needs_Simple_Initialization
        * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
        * par-prag.adb (Pragma_Default[_Component]Value) Removed
        * sem_ch13.adb
        (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
        * sem_prag.adb (Pragma_Default[_Component]Value) Removed
        * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
        package containing iteration primitives.
        exp_ch5.adb (Expand_Iterator_Loop): ditto.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
        "of", pre-analyze expression in case it is a function call with
        finalization actions that must be placed ahead of the loop.
        * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
        on an Ada2012 iterator, insert them ahead of the rewritten loop.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (Create_Float_Types): Only consider C's long double for
        Long_Long_Float, in addition to double.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
        sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
        prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
        Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb: handle properly 'Result when it is a prefix of an
        indexed component.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * einfo.ads, einfo.adb
        (Original_Access_Type): Move this attribute to Node26 since there was
        an undocumented use of Node21 in E_Access_Subprogram_Type entities
        which causes conflicts and breaks the generation of the .NET compiler.
        (Interface_Name): Add missing documentation on JGNAT only uses of
        this attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
        (Find_Back_End_Float_Type): Likewise
        (Create_Back_End_Float_Types): Likewise
        (Create_Float_Types): Likewise
        (Register_Float_Type): Likewise
        * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
        Nlist and split out type selection in new local Find_Base_Type function.
        * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
        Nlist
        * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
        alpha order).
        * opt.ads: Minor comment change.
        * sem_ch12.adb: Minor code reorganization.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
        subtype's list of rep items to the list on the full subtype in the case
        where the lists are the same.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * switch-c.adb (Free): New deallocation procedure to avoid implicitly
        using the one from System.Strings, which also deallocates all strings.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
        function.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Olivier Hainque  <hainque@adacore.com>

        * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
        end_locus.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
        associated with anonymous access to subprograms.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * opt.ads
        (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
        (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
        * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
        (Add_Symbol_Definition): Move to switch-c.adb
        (Process_Command_Line_Symbol_Definitions): Adjust references to above.
        * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
        (Add_Symbol_Definition): Move to switch-c.adb.
        * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
        * sem_warn.adb
        (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
        Move to warnsw.adb.
        * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
        Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
        Move to warnsw.adb.
        * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
        (Add_Symbol_Definition): Moved from Prepcomp.
        * switch-c.ads: Update copyright notice. Use String_List instead of
        Argument_List, removing dependency on System.OS_Lib.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
        mode on initialization expression which does not respect SPARK
        restrictions.
        * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
        if the tree referenced by its argument represents an initialization
        expression in SPARK, suitable for initializing an object in an object
        declaration.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
        internally generated access to subprogram with its associated protected
        subprogram type.
        * einfo.ads, einfo.adb (Original_Access_Type): New attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (Register_Float_Type): Print information about type to
        register, if the Debug_Flag_Dot_B is set.
        * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
        * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
        * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
        with a requested precision of more than Max_Digits digits and no more
        than Max_Base_Digits digits, if a range specification is present and the
        Predefined_Float_Types list has a suitable type to derive from.
        * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
        case of type completion with pragma Import
        * sem_prag.adb
        (Process_Import_Predefined_Type): Processing to complete a type
        with pragma Import. Currently supports floating point types only.
        (Set_Convention_From_Pragma): Do nothing without underlying type.
        (Process_Convention): Guard against absence of underlying type,
        which may happen when importing incomplete types.
        (Process_Import_Or_Interface): Handle case of importing predefined
        types. Tweak error message.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
        functions to previous change.  Reorganize code slightly.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * back_end.ads (Register_Type_Proc): New call back procedure type for
        allowing the back end to provide information about available types.
        (Register_Back_End_Types): New procedure to register back end types.
        * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
        available types.
        * cstand.adb (Back_End_Float_Types): New list for floating point types
        supported by the back end.
        (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
        (Copy_Float_Type): New procedure to make new copies of predefined types.
        (Register_Float_Type): New call back procedure to populate the BEFT list
        (Find_Back_End_Float_Type): New procedure to find a BEFT by name
        (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
        (Create_Float_Types): New procedure to create entities for floating
        point types predefined in Standard, and put these and any remaining
        BEFTs on the Predefined_Float_Types list.
        * stand.ads (Predefined_Float_Types): New list for predefined floating
        point types that do not have declarations in package Standard.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Get_Code_Unit_Entity): New local function.  Returns the
        entity node for the unit containing the parameter.
        (Add_Inlined_Body): Use it to find the unit containing the subprogram.
        (Add_Inlined_Subprogram): Likewise.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

        * s-stusta.adb (Print): Make sure Pos is always initialized to a
        suitable value.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_type.adb (Covers): Move trivial case to the top and reuse the
        computed value of Base_Type.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * restrict.adb (Check_Restriction): issue an error for any use of
        class-wide, even if the No_Dispatch restriction is not set.
        * sem_aggr.adb: Correct typos in comments and messages in formal mode
        * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
        when completing a private extension, the type named in the private part
        is not the same as that named in the visible part.
        * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
        of an inherited primitive operations of a tagged type or type extension
        that returns the tagged type.
        * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
        function which returns True for an implicit operation inherited by the
        derived type declaration for the argument type.
        (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
        order.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
        Process_Bounds, to perform analysis with expansion of a range or an
        expression that is the iteration scheme for a loop.
        (Analyze_Iterator_Specification): If domain of iteration is given by a
        function call with a controlled result, as is the case if call returns
        a predefined container, ensure that finalization actions are properly
        generated.
        * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
        determine if the analysis is performed using N or Original_Node (N).
        * exp_util.adb (Side_Effect_Free): Code cleanup since the new
        functionality of routine Is_Variable avoids code duplication.
        * checks.adb (Determine_Range): Handle temporaries generated by
        Remove_Side_Effects.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
        expansion of the condition. Required since the previous analysis was
        done with expansion disabled (see Resolve_Quantified_Expression) and
        hence checks were not inserted and record comparisons have not been
        expanded.

2011-08-02  Ed Falis  <falis@adacore.com>

        * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
        Update header.

2011-08-02  Bob Duff  <duff@adacore.com>

        * opt.ads: Minor comment fix.

2011-08-02  Bob Duff  <duff@adacore.com>

        * sem_ch12.adb (Analyze_Package_Instantiation,
        Analyze_Subprogram_Instantiation): Turn off style checking while
        analyzing an instance. Whatever style checks that apply to the generic
        unit should apply, so it makes no sense to apply them in an instance.
        This was causing trouble when compiling an instance of a runtime
        unit that violates the -gnatyO switch.
        * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
        one of the two case statements, causing spurious errors.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * uname.adb: Minor reformatting.
        * gnatcmd.adb: Minor reformatting.
        * exp_attr.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
        No_Dispatching_Calls, do not look for the Assign primitive, because
        predefined primitives are not created in this case.

2011-08-02  Bob Duff  <duff@adacore.com>

        * stylesw.ads: Minor comment fixes.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Add_To_Result): New procedure.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

        * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
        time, if the specific run-time routines for handling streams of strings
        are not available, use the default mechanism.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * s-regpat.ads: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
        not null, call it to create the in memory config project file without
        parsing an existing default config project file.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_elim.adb: an abstract subprogram does not need an eliminate
        pragma for its descendant to be eliminable.

2011-08-02  Ed Falis  <falis@adacore.com>

        * init.c: revert to handling before previous checkin for VxWorks
        * s-intman-vxworks.adb: delete unnecessary declarations related to
        using Ada interrupt facilities for handling signals.
        Delete Initialize_Interrupts. Use __gnat_install_handler instead.
        * s-intman-vxworks.ads: Import __gnat_install_handler as
        Initialize_Interrupts.
        * s-taprop-vxworks.adb: Delete Signal_Mask.
        (Abort_Handler): change construction of mask to unblock exception
        signals.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

        * a-except-2005.adb (Raise_From_Signal_Handler): Call
        Debug_Raise_Exception before propagation starts.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
        to Restriction_Check_Required.
        * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
        * sem_res.adb (Resolve_Call): Likewise.
        * sem_attr.adb (Check_Stream_Attribute): Likewise.

2011-08-02  Bob Duff  <duff@adacore.com>

        * stylesw.ads: Update comment.
        * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
        * errout.ads: Remove obsolete comment.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
        (Set_Is_Safe_To_Reevaluate): new procedure.
        * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
        assignment is allowed on safe-to-reevaluate variables.
        (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
        temporary created to remove side effects in expressions that use
        the secondary stack as safe-to-reevaluate.
        * exp_util.adb (Side_Effect_Free): Add missing code to handle well
        variables that are not true constants.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
        sem_res.adb, sem_ch6.adb: Minor reformatting.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

        * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
        not set Overridden_Operation if subprogram is an initialization
        procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-ch6.adb: Correct obsolete name in comments
        * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
        which takes two message arguments (existing function takes one), with
        second message used for continuation.
        * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
        block statements that originate from a source block statement, not
        generated block statements
        * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
        symmetry with procedure case
        * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
        function to issue an error in formal mode if a package specification
        contains more than one tagged type or type extension.
        * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
        parameters matching formals of tagged types are objects (or ancestor
        type conversions of objects), not general expressions. Issue an error
        on view conversions that are not involving ancestor conversion of an
        extended type.
        (Resolve_Type_Conversion): in formal mode, issue an error on the
        operand of an ancestor type conversion which is not an object
        * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
        procedure so that it works also for actuals of function calls
        (Is_Actual_Tagged_Parameter): new function which determines if its
        argument is an actual parameter of a formal of tagged type in a
        subprogram call
        (Is_SPARK_Object_Reference): new function which determines if the tree
        referenced by its argument represents an object in SPARK

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb: Minor reformatting
        Minor comment addition
        Minor error msg text change

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
        function. Used to be more precise when we generate a variable plus one
        assignment to remove side effects in the evaluation of the Bound
        expressions.
        (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
        of the bound expression to force its re-analysis and thus expand the
        associated transient scope (if required). Code cleanup replacing the
        previous code that declared the constant entity by an invocation to
        routine Force_Evaluation which centralizes this work in the frontend.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
        (Base_Type): Now uses improved Is_Base_Type function
        * einfo.ads (Base_Type): Inline this function

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
        (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Make-lang.in: Update dependencies.
        * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
        targets.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
        non-simple expression used in delta constraint
        (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
        index constraint which is not a subtype mark
        * par.adb: With and use Restrict
        * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
        mode on component type which is not a subtype mark and default
        expression on component
        (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
        of string which does not have a lower index bound equal to 1
        (Array_Type_Declaration): issue an error in formal mode on index or
        component type which is not a subtype mark, and on aliased keyword on
        component
        (Derived_Type_Declaration): issue an error in formal mode on interface,
        limited or abstract type
        (Record_Type_Declaration): issue an error in formal mode on interface
        (Record_Type_Definition): issue an error in formal mode on tagged types
        and type extensions not declared in the specification of a library unit
        package; on null non-tagged record; on variant part

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
        not declared for qualified library project when Library_Name is not
        declared, but Library_Dir is.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
        pragmas (affects aspects [Component_]Default_Value
        (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
        component type for the resolution

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.adb (Base_Type): Tune implementation for speed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * freeze.adb: Minor reformatting.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

        * scos.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
        base type, because the parent may be a subtype of a private type whose
        convention is established in a private part.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
        statement in a block when the expansion of the return expression has
        created a finalization chain.
        * freeze.adb (Freeze_Expression): Alphabetize all choices associated
        with the parent node.
        Add N_Extended_Return_Statement to handle the case where a transient
        object declaration appears in the Return_Object_Declarations list of
        an extended return statement.

2011-08-02  Matthew Gingell  <gingell@adacore.com>

        * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
        unused parameter 'name'.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_elim.adb (Set_Eliminated): If the overridden operation is an
        inherited operation, check whether its alias, which is the source
        operastion that it renames, has been marked eliminated.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
        in-mode parameter whose type is an access type since it can be used to
        modify its designated object. Enforce code that handles as safe an
        access type that is not access-to-constant but it is the result of a
        previous removal of side-effects.
        (Remove_Side_Effects): Minor code reorganization of cases which require
        no action. Done to incorporate documentation on new cases uncovered
        working in this ticket: no action needed if this routine was invoked
        too early and the nodes are not yet decorated.
        * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
        to routine Remove_Side_Effects by calls to Force_Evaluation since they
        were issued with actuals that are implicitly provided by
        Force_Evaluation.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_res.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
        to issue an error in formal mode on attribute not supported in this mode
        (Analyze_Attribute): issue errors on standard attributes not supported
        in formal mode.
        * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
        comment, and issue error in formal mode on modulus which is not a power
        of 2.
        (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
        range.
        * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
        subtype mark.
        * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
        operator on modular type (except 'not').

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor reformatting.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * s-osinte-linux.ads: Minor comment update and reformatting.
        * i-cexten.ads: Make this unit pure, as for its parent.
        Will allow its usage in more contexts if needed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * s-utf_32.ads: Minor comment fix.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
        operation of a tagged synchronized type, handle the case where the
        controlling argument is overloaded.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
        Replace pragma SPARK_95 with pragma Restrictions (SPARK)
        * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
        SPARK mode and formal verification mode on processing SPARK restriction
        * s-rident.ads (Restriction_Id): add SPARK restriction in those not
        requiring consistency checking.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
        a-cforse.ads: Remove unneeded with of Ada.Containers
        Remove commented out pragma Inline's
        Move specifications of new subprograms to the actual specs

2011-08-02  Yannick Moy  <moy@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
        a-cforse.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb: add attribute name when 'Result has the wrong prefix.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
        a-cforse.ads, a-cofove.ads: Minor reformatting.

2011-08-02  Claire Dross  <dross@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
        a-cofove.ads: Add comments.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi: Document formal containers.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
        are empty sections.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
        reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * aspects.adb: New aspects Default_Value and Default_Component_Value
        New format of Aspect_Names table checks for omitted entries
        * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
        handling of boolean aspects for derived types.
        New aspects Default_Value and Default_Component_Value
        New format of Aspect_Names table checks for omitted entries
        * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
        (Has_Default_Value): New flag
        (Has_Default_Component_Value): New flag
        (Has_Default_Value): New flag
        * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
        table.
        * par-prag.adb: New pragmas Default_Value and Default_Component_Value
        * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
        Default_Value and Default_Component_Value
        * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
        New aspects Default_Value and Default_Component_Value
        * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
        * sprint.adb: Print N_Aspect_Specification node when called from gdb

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
        inherit library kind.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
        Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): Fix thinko.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * impunit.adb: Add comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
        qualification of aggregates in formal mode
        (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
        another aggregate
        (Resolve_Aggregate): complete the test that an aggregate is adequately
        qualified in formal mode

2011-08-02  Pascal Obry  <obry@adacore.com>

        * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
        * mlib-prj.adb: Supress warning when compiling binder generated file.
        (Build_Library): Supress all warnings when compiling the binder
        generated file.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
        from here...
        * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
        * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
        Add with/use clauses to make Check_Formal_Restriction visible

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
        in-parameters when type of the generic formal is private in the generic
        spec and non-private in the body.

2011-08-02  Claire Dross  <dross@adacore.com>

        * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
        a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
        a-cofove.adb, a-cofove.ads: New files implementing formal containers.
        * impunit.adb, Makefile.rtl: Take new files into account.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
        sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
        formal mode
        * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
        matching static array bounds, taking into account the special case of
        string literals
        * sem_ch3.adb: Typo in comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
        which issues an error in formal mode if its argument node is originally
        from source
        * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
        has a discriminant specification so that it does not include the case
        of derived types
        (Derived_Type_Declaration): move here the test that a derived type has a
        discriminant specification
        * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
        first element of a component association before accessing its choices
        (presence of component association is not enough)
        * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
        declaration is a library item before accessing the next element in a
        list, as library items are not member of lists
        * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
        sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
        Check_Formal_Restriction whenever possible.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
        reference when needed.

2011-08-02  Bob Duff  <duff@adacore.com>

        * gnat_ugn.texi: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
        archive file name. Do not use the full path name of archives for Open
        VMS.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch12.adb, sem_ch11.adb: New calling sequence for
        Analyze_Aspect_Specifications
        * sem_ch13.adb
        (Analyze_Aspect_Specifications): New handling for boolean aspects
        * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
        * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
        sequence for Analyze_Aspect_Specifications
        * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
        * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
        aspects, since these no longer exist.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * par-ch13.adb (Aspect_Specifications_Present): Always return false on
        semicolon, do not try to see if there are aspects following it.
        * par-ch3.adb (P_Declarative_Items): Better message for unexpected
        aspect spec.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb, aspects.ads: Minor reformatting.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
        * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
        extracted from...
        (Analyze_Aspect_Specifications): ...here.  Call above procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
        mode on subprogram declaration outside of package specification, unless
        it is followed by a pragma Import
        * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
        Access_Type_Declaration): issue error in formal mode on access type
        (Analyze_Incomplete_Type_Decl): issue error in formal mode on
        incomplete type
        (Analyze_Object_Declaration): issue error in formal mode on object
        declaration which does not respect SPARK restrictions
        (Analyze_Subtype_Declaration): issue error in formal mode on subtype
        declaration which does not respect SPARK restrictions
        (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
        error in formal mode on digits or delta constraint
        (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
        decimal fixed point type
        (Derived_Type_Declaration): issue error in formal mode on derived type
        other than type extensions of tagged record types
        * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
        with check on access definition
        * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
        mode on protected definition.
        (Analyze_Task_Definition): issue error in formal mode on task definition

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch6.adb (Can_Override_Operator): New function.
        (Verify_Overriding_Indicator): Add missing code to check overriding
        indicator in operators. Fixes regression.
        (Check_Overriding_Indicator): Minor reformating after replacing the
        code that evaluates if the subprogram can override an operator by
        invocations to the above new function.
        * einfo.adb
        (Write_Field26_Name): Add missing code to ensure that, following
        the documentation in einfo.ads, this field is not shown as attribute
        "Static_Initialization" on non-dispatching functions.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

        * sem_res.adb (Resolve_Call): A call to
        Ada.Real_Time.Timing_Events.Set_Handler violates restriction
        No_Relative_Delay (AI-0211) only when it sets a relative timing event,
        i.e., when the second parameter is of type Time_Span.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
        with an archive instead of -L<library dir> -l<library name>.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
        mark the base types In_Use in addition to making the operations
        use_visible.

2011-08-02  Ed Falis  <falis@adacore.com>

        * init.c: add and setup __gnat_signal_mask for the exception signals
        * s-inmaop-vxworks.adb: new file.
        * s-intman-vxworks.adb: remove unnecessary initializations and
        simplify remaining
        * s-intman-vxworks.ads: remove unnecessary variable
        * s-taprop-vxworks.adb: simplify signal initialization

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb: Minor code reorganization, comment updates.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
        * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
        here from Sem_Res.
        (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
        (Matching_Static_Array_Bounds): Moved here from Sem_Res

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
        * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
        * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
        use_type_clauses, to handle more efficiently use_type and use_all_type
        constructs.
        * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
        Ada2012 Use_All_Type clause.
        (Use_Class_Wide_Operations): new procedure.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
        sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
        expression to expression function.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb: transform simple Ada2012 membership into equality only
        if types are compatible.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_res.adb (Matching_Static_Array_Bounds): new function which
        returns True if its argument array types have same dimension and same
        static bounds at each index.
        (Resolve_Actuals): issue an error in formal mode on actuals passed as
        OUT or IN OUT paramaters which are not view conversions in SPARK.
        (Resolve_Arithmetic_Op): issue an error in formal mode on
        multiplication or division with operands of fixed point types which are
        not qualified or explicitly converted.
        (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
        Boolean or array type (except String) operands.
        (Resolve_Equality_Op): issue an error in formal mode on equality
        operators for array types other than String with non-matching static
        bounds.
        (Resolve_Logical_Op): issue an error in formal mode on logical operators
        for array types with non-matching static bounds. Factorize the code in
        Matching_Static_Array_Bounds.
        (Resolve_Qualified_Expression): issue an error in formal mode on
        qualified expressions for array types with non-matching static bounds.
        (Resolve_Type_Conversion): issue an error in formal mode on type
        conversion for array types with non-matching static bounds

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * par-ch10.adb: Minor code reorganization (use Nkind_In).

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * par-ch9.adb: save location of entry for proper error message.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
        (Use_Full_View) which permits this routine to climb through the
        ancestors using the full-view of private parents.
        * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
        Use_Full_View to true in calls to Is_Ancestor.
        * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
        true in call to Is_Ancestor.
        * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
        Use_Full_View to true in call to Is_Ancestor.
        * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
        call to Is_Ancestor.
        * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
        Use_Full_View to true in calls to Is_Ancestor.
        * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
        Make_Select_Specific_Data_Table, Register_Primitive,
        Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
        to true in call to Is_Ancestor.
        * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
        Use_Full_View to true in calls to Is_Ancestor.
        * exp_cg.adb
        (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
        (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor reformatting.
        * sem_prag.adb: Minor reformatting.

2011-08-02  Tristan Gingold  <gingold@adacore.com>

        * vms_data.ads: Add VMS qualifier for -gnateP.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
        * par-ch7.adb (P_Package): Proper placement of aspects for package
        decl/instantiation.
        * par-endh.adb (Check_End): Ad Is_Sloc parameter
        (End_Statements): Add Is_Sloc parameterr
        * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
        (Check_End): Ad Is_Sloc parameter
        (End_Statements): Add Is_Sloc parameterr

2011-08-02  Vincent Celier  <celier@adacore.com>

        * ug_words: Add VMS qualifier equivalent to -gnateP:
        /SYMBOL_PREPROCESSING.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

        * gnat-style.texi: For hexadecimal numeric literals the typical
        grouping of digits is 4 to represent 2 bytes.
        A procedure spec which is split into several lines is indented two
        characters.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
        * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
        (Resolve_Aggregate): issue errors in formal modes when aggregate is not
        properly qualified
        (Resolve_Array_Aggregate): issue errors in formal modes on non-static
        choice in array aggregate
        (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
        mark as ancestor
        (Resolve_Record_Aggregate): issue errors in formal modes on mixed
        positional and named aggregate for record, or others in record
        aggregate, or multiple choice in record aggregate
        * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
        array operands to logical operations AND, OR and XOR do not have the
        same static lower and higher bounds
        * sem_ch5.adb, sinfo.ads: Correct typos in comments

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
        Replaces Last_Source_Node_In_Sequence.
        * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
        * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
        parens and blank in string (this was inconsistently implemented).
        * errout.ads
        (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
        blank in string (this was inconsistently implemented).
        * gnat1drv.adb
        (Set_Global_Switches): Set formal mode switches appropriately
        * opt.ads, opt.adb: Formal mode is now global switches, more consistent
        * par-prag.adb
        (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
        call Set_Error_Msg_Lang to set "spark" as language name.
        * par.adb: Remove unnecessary call to set formal language for errout
        * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
        appropriately and call Set_Error_Msg_Lang to set "spark" as language
        name.
        * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
        calls to it, moved after resolution so that types are known
        * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
        result of concatenation is not of type String
        (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
        concatenation is not properly restricted
        * gnat_rm.texi: Add doc on pragma Spark_95.
        * gcc-interface/Makefile.in: Remove obsolete target pairs for
        Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
        condition that detects if the overridden operation must replace an
        existing entity.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
        code declarations inserted by Insert_Actions in each alternative of the
        N_Case_Expression node.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb: Minor code reorganization.
        * sem_util.adb: Minor reformatting.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
        * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
        literal or operator symbol which is prefixed
        * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
        mode on access attributes.
        * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
        that concatenation operands are properly restricted in formal mode
        (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
        Analyze_Concatenation_Operand. Issue an error in formal mode if the
        result of the concatenation has a type different from String.
        (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
        Analyze_Quantified_Expression, Analyze_Slice,
        Analyze_Null): issue an error in formal mode on unsupported constructs
        * sem_ch5.adb
        (Analyze_Block_Statement): only issue error on source block statement
        * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
        function which returns the last node in a list of nodes for which
        Comes_From_Source returns True, if any
        * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
        Last_Source_Node_In_Sequence
        * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
        Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
        mode on unsupported constructs
        * sem_ch9.adb Do not return after issuing error in formal mode, as the
        rest of the actions may be needed later on since the error is marked as
        not serious.
        * sinfo.ads: Typos in comments.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * projects.texi: Minor editing.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
        insertion character ~~
        * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
        (Set_Error_Msg_Lang): new procedure which fixes the language for use
        with insertion character ~~
        (Set_Msg_Text): treat insertion character ~~
        * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
        sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
        Formal_Error_Msg_... procedures by equivalent Error_Msg_...
        procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
        errors related to the formal language restriction not serious
        (insertion character |).
        * par.adb (Par): set formal language for error messages if needed
        * sem_ch6.adb (Check_Missing_Return): take into account possible
        generated statements at the end of the function
        * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
        enumeration value to define a new pragma SPARK_95
        * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
        SPARK_Version): new type and variables to store the SPARK version
        (none by default).
        (SPARK_Mode): return True when SPARK_Version is set
        * par-prag.adb: Correct indentation
        (Prag): take Pragma_SPARK_95 into account
        * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
        into account.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
        sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
        sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting

2011-08-01  Pascal Obry  <obry@adacore.com>

        * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
        Target_Name to Get_Path call.
        (Parse_Single_Project): Likewise.
        (Post_Parse_Context_Clause): Likewise.
        * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
        Call Initialise_Project_Path with the proper Target_Name.
        (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
        search path.
        (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
        with the proper Target_Name.
        * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
        Part.Parse routine.
        (Parse_Project_And_Apply_Config): Likewise.
        * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
        This is fine as this part of the code is supporting only native
        compilation.
        * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
        is fine as this part of the code is supporting only native compilation.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sem_util.adb (Enter_Name): issue error in formal mode on declaration
        of homonym, unless the homonym is one of the cases allowed in SPARK
        * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
        package declaration occurring after a body.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * checks.adb, exp_ch4.adb: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * einfo.ads (Access_Disp_Table): Fix documentation.
        (Dispatch_Table_Wrappers): Fix documentation.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * prj-env.adb, prj-env.ads: Minor reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sem_util.ads, sem_util.adb, par.adb, par_util.adb
        (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
        procedures out of these packages.
        * errout.ads, errout.adb
        (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
        procedures in of this package
        (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
        * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
        on misplaced later vs initial declarations, like in Ada 83
        * sem_attr.adb (Processing for Analyze_Attribute): issue error in
        formal mode on attribute of private type whose full type declaration
        is not visible
        * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
        package declaration inside a package specification
        (Analyze_Full_Type_Declaration): issue error in formal mode on
        controlled type or discriminant type
        * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
        user-defined operator means that it should come from the source
        (New_Overloaded_Entity): issue error in formal mode on overloaded
        entity.
        * sem_ch6.ads, sem_ch13.ads: typos in comments.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * atree.adb: Minor reformatting.
        * checks.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * s-parame-vms-ia64.ads: Fix typo in comment
        Minor reformatting
        * s-parame-vms-restrict.ads: Removed, unused.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * exp_ch3.adb
        (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
        * sem_ch3.adb
        (Constrain_Index): Remove side effects in the evaluation of the bounds.
        * sem_ch3.ads, sem_ch3.adb
        (Is_Constant_Bound): New extended version of the subprogram that was
        previously located inside function Exp_Ch3.Is_Variable_Size_Array.
        Moved here since it is shared by routines of sem_ch3 and exp_ch3.
        * sem_aux.ads (Constant_Value): Fix typo in comment.
        * checks.adb (Generate_Index_Checks): New implementation which, for
        array objects with constant bounds, generates the runtime check
        referencing the bounds of the array type. For other cases this routine
        provides its previous behavior obtaining such values from the array
        object.
        * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
        parent type.
        * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
        we cannot have semantic interpretations of the new node.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
        expressions.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch8.adb: Minor code editing.
        * s-vxwext.adb: Remove trailing space.
        * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
        consistency with other files.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * par-ch10.adb: reject parameterized expressions as compilation unit.
        * sem_ch4.adb: handle properly conditional expression with overloaded
        then_clause and no else_clause.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

        * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
        like done by System.Aux_DEC.
        * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
        missing label at end of declaration (subprogram or package)
        * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
        of positional and named parameter association
        * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
        Error_Msg_SP which adds a prefix to the error message giving the name
        of the formal language analyzed
        * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
        access result type in subprogram, unconstrained array as result type,.
        (Analyze_Subprogram_Declaration): issue an error in formal mode for null
        procedure
        * sem_ch8.adb: Code clean up.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
        * einfo.ads (Access_Disp_Table): Fix documentation.
        (Dispatch_Table_Wrappers): Fix documentation.
        * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
        Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
        to enforce the documentation of this attribute.
        (Set_Is_Interface): Cleanup the assertion.
        * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
        the Underlying_Type entity before reading attribute Access_Disp_Table.
        * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
        Locate the Underlying_Type before reading attribute Access_Disp_Table.
        * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
        the Underlying_Type entity before reading attribute Access_Disp_Table.
        * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
        Locate the Underlying_Type entity before reading attribute
        Access_Disp_Table.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * s-poosiz.ads: Additional overriding indicators.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
        formal mode.
        (Analyze_Iteration_Scheme): issue error in formal mode when loop
        parameter specification does not include a subtype mark.
        * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
        formal mode on abstract subprogram.
        (Analyze_Subprogram_Specification): issue error in formal mode on
        user-defined operator.
        (Process_Formals): issue error in formal mode on access parameter and
        default expression.
        * sem_ch9.adb (Analyze_Abort_Statement,
        Analyze_Accept_Statement, Analyze_Asynchronous_Select,
        Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
        Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
        Analyze_Requeue, Analyze_Selective_Accept,
        Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
        * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
        issue error in formal mode on user-defined raise statement.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
        declaration being hidden when overriding an implicit inherited
        subprogram.
        * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
        (-gnats), do not complain about a source file that contains only a
        pragma No_Body.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
        variable if already set.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
        g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
        s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
        g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
        g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
        g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
        g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
        g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
        g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
        g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
        g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
        s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
        g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
        s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
        g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
        g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
        g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
        g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
        g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
        g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
        s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
        s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
        a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
        s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
        s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
        g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
        g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
        g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
        g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
        g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
        g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
        s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
        s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
        g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
        g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
        s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
        s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
        g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
        g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
        g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
        s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
        g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
        g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
        g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
        s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
        g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
        g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
        g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
        s-osinte-mingw.ads: Update to GPLv3 run-time license.
        Use GNAT instead of GNARL.

2011-08-01  Bob Duff  <duff@adacore.com>

        * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
        a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
        a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
        reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * debug.adb (d.D) reverve flag for the SPARK mode
        (d.E) reverve flag for SPARK generation mode
        (d.F) reverve flag for Why generation mode
        * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
        ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode):  New
        functions which return True when the corresponding modes are set
        (Formal_Language): return "spark" or "alfa" when in formal verification
        mode.
        * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
        Error_Msg to prefix the error message with a tag giving the formal
        language
        (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
        message with a tag giving the formal language
        * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
        block statement
        (Analyze_Case_Statement): issue error in formal mode on case statement
        with a single "others" case alternative
        (Analyze_Exit_Statement): issue errors in formal mode on exit
        statements which do not respect SPARK restrictions
        (Analyze_Goto_Statement): issue error in formal mode on goto statement
        (Check_Unreachable_Code): always issue an error (not a warning) in
        formal mode on unreachable code (concerns both code after an infinite
        loop and after an unconditional jump, both not allowed in SPARK)
        * sem_ch6.adb (Analyze_Return_Statement): add call to
        Set_Return_Present for a procedure containing a return statement
        (already done for functions in Analyze_Function_Return)
        (Analyze_Function_Return): issue error in formal mode on extended
        return or if return is not last statement in function
        (Check_Missing_Return): issue error in formal mode if function does
        not end with return or if procedure contains a return
        * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
        function to detect if there is an inner scope of its parameter S which
        is a loop.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch6.ads: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_util.adb (Abstract_Interface_List): Complete condition when
        processing private type declarations to avoid reading unavailable
        attribute.
        (Is_Synchronized_Tagged_Type): Complete condition when processing
        private extension declaration nodes to avoid reading unavailable
        attribute.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
        i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
        s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
        s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
        for VMS, instead parametrize the common implementation with
        System.Parameters declarations.

2011-08-01  Eric Botcazou  <ebotcazou@adacore.com>

        * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

        * seh_init.c: Fix SEH handler installation on win64.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
        double analysis of an anonymous access to subprogram, because it can
        lead to improper sharing of profiles and a back-end crash.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * make.adb, sem_ch4.adb: Minor reformatting.
        * gcc-interface/Make-lang.in: Update dependencies.
        * sem_util.adb, exp_ch5.adb: Minor reformatting.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * gnat_rm.texi: Fix definition of Long_Integer.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb: check limit size of static aggregate unconditionally,
        to prevent storage exhaustion.
        * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
        finalized is a function body, insert the cleanup code before the final
        return statement, to prevent spurious warnings.
        * s-pooglo.ads: add overriding indicator.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Operator_Check): improve error message when both a
        with_clause and a use_clause are needed to make operator usage legal.
        * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
        determine whether a compilation unit is visible within an other,
        either through a with_clause in the current unit, or a with_clause in
        its library unit or one one of its parents.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
        over an arbitrary expression of an array or container type.
        * lib-xref.adb: clarify comment.

2011-08-01  Bob Duff  <duff@adacore.com>

        * einfo.ads: Minor reformatting.
        * debug.adb: Minor comment improvement.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
        consider hidden subprograms as valid candidates.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * make.adb (Compile): Strip -mxxx switches in CodePeer mode.

2011-08-01  Vasiliy Fofanov  <fofanov@adacore.com>

        * gnat_ugn.texi: Fix typo.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
        lib-xref.adb: Minor reformatting

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
        when to generate a call to Move_Final_List.
        (Has_Controlled_Parts): Remove this function.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
        "," in choice list.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
        explicit raise of a predefined exception as Comes_From_Source if the
        original N_Raise_Statement comes from source.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sinfo.ads: Add comment.
        * sem_ch6.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Refine check for bad component size
        clause to avoid rejecting confirming clause when atomic/aliased present.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
        better determine whether an entity reference is a write.
        * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
        subcomponent.
        * lib-xref.adb (Output_References): Do no suppress a read reference at
        the same location as an immediately preceeding modify-reference, to
        handle properly in-out actuals.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

        * env.c (__gnat_setenv) [VMS]: Refine previous change.

2011-08-01  Quentin Ochem  <ochem@adacore.com>

        * i-cstrin.adb (New_String): Changed implementation, now uses only the
        heap to compute the result.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * atree.ads: Minor reformatting.

2011-08-01  Emmanuel Briot  <briot@adacore.com>

        * g-expect.adb (Get_Command_Output): Fix memory leak.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (P_Float_Type): New procedure to print the definition of
        predefined fpt types.
        (P_Mixed_Name): New procedure to print a name using mixed case
        (Print_Standard): Use P_Float_Type for printing floating point types
        * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
        precision IEEE float.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
        the completion of a generic function, insert the new body rather than
        rewriting the original.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sinfo.ads, errout.ads: Typos in comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * par-endh.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb: Add aspects for library unit pragmas
        (Pre_Post_Aspects): New subtype.
        * par-ch12.adb (P_Generic): New syntax for aspects in packages
        * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
        * par-ch7.adb (P_Package): Remove Decl parameter
        (P_Package): Handle new syntax for aspects (before IS)
        * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
        new aspect syntax
        (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
        * par.adb (P_Aspect_Specifications): Add Semicolon parameter
        (P_Package): Remove Decl parameter
        * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
        aspects
        * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
        specs
        * sem_util.ads, sem_util.adb (Static_Boolean): New function
        * sinfo.ads: Document new syntax for aspects in packages etc.
        * sprint.adb: Handle new syntax of aspects before IS in package

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * atree.ads: Minor reformatting.
        * sem_prag.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb (Insert_Actions): Fix error in handling Actions for
        case expr alternative.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb: Fix typo.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * sem_prag.adb (Check_No_Link_Name): New procedure.
        (Process_Import_Or_Interface): Use Check_No_Link_Name.
        * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
        instead of Standard_Long_Long_Float_Size global. Preparation for
        eventual removal of per type constants.
        * exp_util.ads (Get_Stream_Size): New function returning the stream
        size value of subtype E.
        * exp_util.adb (Get_Stream_Size): Implement new function.
        * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
        function.
        * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
        * einfo.adb:
        (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * cstand.adb: Fix comments.
        * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
        count of arguments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb, sem_cat.adb: Minor reformatting.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * atree.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
        * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
        * par.adb: Add with for Namet.Sp.
        * par-tchk.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
        (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
        of the init procedure of a SAL.
        * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
        New procedure.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
        reformatting.

2011-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * adaint.c (__gnat_file_time_name_attr): Get rid of warning.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
        conformant with its spec (return True only for types that have
        an overriding Initialize primitive operation that prevents them from
        having preelaborable initialization).
        * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
        initialization for controlled types in Ada 2005 or later mode.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
        Postcondition.
        (Same_Aspect): New function.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
        Type_Invariant, Precondition, Postcondition.
        * snames.ads-tmpl: Add Name_Type_Invariant.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
        here.
        (Freeze_All_Ent): Fix error in handling inherited aspects.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
        already analyzed, but don't skip entire processing of a declaration,
        that's wrong in some cases of declarations being rewritten.
        (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
        Don't delay for integer, string literals
        Treat predicates in usual manner for delay, remove special case code,
        not needed.
        (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
        (Build_Predicate_Function): Update saved expression in aspect
        (Build_Invariant_Procedure): Update saved expression in aspect
        * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
        of replacement of discriminant references if the reference is simple.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
        * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
        Static_Predicate and Dynamic_Predicate.
        (Build_Predicate_Function): Add processing for Static_Predicate
        and Dynamic_Predicate.
        * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
        (From_Static_Predicate): New flag
        * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * usage.adb: Documentation cleanup for Ada version modes in usage.
        * expander.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * atree.ads: Minor comment fix.
        * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
        a-witeio.ads, sem_prag.adb: Minor reformatting.

2011-08-01  Doug Rupp  <rupp@adacore.com>

        * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
        pointers. Use descrip.h header file for convenience. Add some
        comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
        (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
        * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
        New procedure.
        (Check_Aspect_At_End_Of_Declarations): New procedure
        (Analye_Aspect_Specification): Minor changes for above procedures
        * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
        specification node as well.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
        Windows files. Use GetFilesAttributes() in this case to check for file
        existence instead of returning with an error code.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
        High is above Source length.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads (Boolean_Aspects): New subtype.
        * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
        for derived types in cases where the parent type and derived type have
        aspects.
        * freeze.adb (Freeze_Entity): Fix problems in handling derived type
        with aspects when parent type also has aspects.
        (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
        boolean expression at this point).
        * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
        accordance with final decision on the Ada 2012 feature.
        * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

        * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
        Fix Replace_Slice when High is above current string size.
        (Replace_Slice): Fix DL computation when High is above current
        string length.

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

        * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

        * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
        of node.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
        reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
        access to protected subprograms in generic bodies.
        * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
        protected type, indicate that the convention of the subprogram is
        Convention_Protected, because it may be used in subsequent declarations
        within the protected declaration.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
        and "final" procedures when the name of the library is "ada", to avoid
        duplicate symbols "adainit" and "adafinal" in executables.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
        quantified expression that appears within a postcondition and uses the
        Ada2012 'Result attribute.

2011-07-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * init.c (__gnat_error_handler): Cast reason to int.
        (__gnat_install_handler): Explain sa_sigaction use.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
        subprogram has copy-in copy-out parameters, try to promote the mode of
        the return type if it is passed in registers.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
        left operand as addressable.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (build_function_stub): Remove.
        (build_return_expr): Likewise.
        (convert_vms_descriptor): Declare.
        * gcc-interface/utils.c (convert_vms_descriptor): Make global.
        (build_function_stub): Move to...
        * gcc-interface/utils2.c (build_return_expr): Move to...
        * gcc-interface/trans.c (build_function_stub): ...here.
        (build_return_expr): ...here.
        (Subprogram_Body_to_gnu): Add local variable for language_function.
        Disconnect the parameter attributes cache, if any, once done with it.
        Call end_subprog_body only after setting the end_locus.
        Build the stub associated with the function, if any, at the very end.
        (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
        variables and streamline control flow.

2011-07-23  Arnaud Charlet  <charlet@adacore.com>

        PR ada/49819
        * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
        g-trasym-dwarf.adb.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        PR bootstrap/49794
        * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
        Assign to act.sa_sigaction.
        * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
        current->return_address to char * before arithmetic.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
        Correct argument types.
        Extract code from reason.
        (__gnat_install_handler): Assign to act.sa_sigaction.

2011-07-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
        (GNAT1_OBJS): ...here.

2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/48711
        * g-socthi-mingw.adb (Fill): Fix formatting.

        * gcc-interface/gigi.h: Move around comment.

2011-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

        PR ada/46350
        * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.

2011-07-14  Florian Weimer  <fw@deneb.enyo.de>

        PR ada/48711
        * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.

2011-07-13  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
        range comparison if Pmode is SImode.

2011-07-12  Laurent GUERBY  <laurent@guerby.net>
            Eric Botcazou  <ebotcazou@adacore.com>

        * adadecode.c: Wrap up in extern "C" block.
        * adadecode.h: Likewise.
        * adaint.c: Likewise.  Remove 'const' keyword.
        * adaint.h: Likewise.
        * argv.c: Likewise.
        * atree.h: Likewise.
        * cio.c: Likewise.
        * cstreams.c: Likewise.
        * env.c: Likewise.
        * exit.c: Likewise.
        * fe.h: Likewise.
        * final.c: Likewise.
        * init.c: Likewise.
        * initialize.c: Likewise.
        * link.c: Likewise.
        * namet.h: Likewise.
        * nlists.h: Likewise.
        * raise.c: Likewise.
        * raise.h: Likewise.
        * repinfo.h: Likewise.
        * seh_init.c: Likewise.
        * targext.c: Likewise.
        * tracebak.c: Likewise.
        * uintp.h: Likewise.
        * urealp.h: Likewise.
        * xeinfo.adb: Wrap up generated C code in extern "C" block.
        * xsinfo.adb: Likewise.
        * xsnamest.adb: Likewise.
        * gcc-interface/gadaint.h: Wrap up in extern "C" block.
        * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
        * gcc-interface/misc.c: Likewise.
        * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
        (GNAT1_C_OBJS): Remove ada/b_gnat1.o.  List ada/seh_init.o and
        ada/targext.o here...
        (GNAT_ADA_OBJS): ...and not here.
        (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
        (GNATBIND_OBJS): Reorder.

2011-07-07  Richard Henderson  <rth@redhat.com>

        * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
        dwarf2out_frame_init.

2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/misc.c (gnat_init): Tweak previous change.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        PR target/39150
        * gcc-interface/Makefile.in: Handle x86_64-solaris2.

2011-07-06  Richard Guenther  <rguenther@suse.de>

        * gcc-interface/misc.c (gnat_init): Merge calls to
        build_common_tree_nodes and build_common_tree_nodes_2.
        Re-initialize boolean_false_node.

2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
            Olivier Hainque  <hainque@adacore.com>
            Nicolas Setton  <setton@adacore.com>

        * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
        the type according to the ARTIFICIAL_P parameter.
        (create_type_decl): Likewise.
        (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.

2011-07-01  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
        (gnatbind): Likewise.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
        local variable throughout.  Remove useless call to Base_Type.
        (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
        Take it also into account for the volatileness of the field.  Set the
        TREE_SIDE_EFFECTS flag as well in this case.  Reorder some warnings.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
        on a dereference built for a by-ref object if it has an address clause.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.ads (Address_Taken): Document use for the second argument of
        Asm_Input and Asm_Output attributes.
        * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
        argument is an entity name, then set Address_Taken on it.
        <Attribute_Asm_Output>: Likewise.
        * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
        Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
        (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
        memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.

2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>

        PR middle-end/46500
        * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
        (ada/utils.o): Update dependencies.
        * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
        ../../../libcpp/libcpp.a.
        * gcc-interface/utils.c: Include common/common-target.h.
        (process_attributes): Use targetm_common.have_named_sections.

2011-06-07  Richard Guenther  <rguenther@suse.de>

        * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
        set_sizetype.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
        TREE_THIS_NOTRAP flag.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
        Fix thinko.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
        constants whose full view has discriminants specially.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c: Include diagnostic.h.
        (gnat_write_global_declarations): Output debug information for all
        global type declarations before finalizing the compilation unit.
        * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

        * gcc-interface/utils.c (def_fn_type): Remove extra va_end.

2011-05-25  Kai Tietz  <ktietz@redhat.com>

        * adaint.c (__gnat_to_canonical_file_list_next): Use array
        initialization instead of const/none-const pointer assignment.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
        $(EXTRA_GNAT1_OBJS).
        (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
        (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
        (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
        * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
        libcommon-target.a instead of prefix.o.

2011-05-21  Joseph Myers  <joseph@codesourcery.com>

        PR ada/49097
        * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
        * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
        instead of version.o.

2011-05-18  Kai Tietz  <ktietz@redhat.com>

        * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
        boolean_false_node instead of integer_zero_node.
        (convert_with_check): Likewise.
        * gcc-interface/decl.c (choices_to_gnu): Likewise.

2011-05-12  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
        type of the parameter is an unconstrained array, convert the actual to
        the type of the formal in the In Out and Out cases as well.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
        call build_function_type_array or build_varargs_function_type_array
        instead.
        (create_subprog_type): Don't call build_function_type; call
        build_function_type_vec instead.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
        (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
        (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.

        * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
        * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
        instead of accessing TYPE_ARG_TYPES directly.
        * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/48844
        * gcc-interface/gigi.h (get_variant_part): Declare.
        * gcc-interface/decl.c (get_variant_part): Make global.
        * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
        types have the same constant size, are record types and T1 has a
        variant part while T2 doesn't.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (begin_subprog_body): Do not call
        get_pending_sizes.
        (end_subprog_body): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

        * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
        int_const_binop.
        (pos_to_constructor): Likewise.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (gigi): Call build_function_type_list instead
        of build_function_type.  Adjust calls to...
        (build_raise_check): ...this.  Do not take a void_tree parameter.
        Call build_function_type_list instead of build_function_type.
        Fix head comment and swap couple of conditional blocks.

2011-04-30  Eric Botcazou  <ebotcazou@adacore.com>

        * gnatvsn.ads (Library_Version): Bump to 4.7.
        (Current_Year): Bump to 2011.

2011-04-29  Michael Matz  <matz@suse.de>

        * gcc-interface/misc.c (gnat_handle_option): Set
        warn_maybe_uninitialized.

2011-04-23  Gerald Pfeifer  <gerald@pfeifer.com>

        * gnat_ugn.texi (Complexity Metrics Control): Update link to
        the Watson/McCabe paper.

2011-04-23  Jim Meyering  <meyering@redhat.com>

        * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
        onto the new type.

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
        parameter.
        * gcc-interface/utils.c (create_subprog_decl): Likewise.  Set
        DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
        ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
        <all>: Do not set flags on the reused DECL node coming from an alias.
        Set DECL_IGNORED_P on the DECL node built for subprograms if they
        don't need debug info here...
        * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
        (gigi): Adjust calls to create_subprog_decl.
        (build_raise_check): Likewise.
        (establish_gnat_vms_condition_handler): Likewise.
        (Compilation_Unit_to_gnu): Likewise.
        (gnat_to_gnu): Likewise.

2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
        (NO_REORDER_ADAFLAGS): New variable.
        (EXTRA_GNATTOOLS): Always define.
        (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
        Clean up and adjust list of files compiled with special options.
        * gcc-interface/Make-lang.in: Likewise.
        (ada/decl.o): Cosmetical change.
        (ada/misc.o): Remove dependency on $(PLUGIN_H).

2011-04-20  Jim Meyering  <meyering@redhat.com>

        * initialize.c (__gnat_initialize): Remove useless if-before-free.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
        $(CFLAGS) on the link line.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
        padded type built for the return type if it is unconstrained.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
        before calling TREE_CHAIN.
        * gcc-interface/misc.c (gnat_init_ts): New function.
        (LANG_HOOKS_INIT_TS): Define.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

        * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
        instead of cgraph_node.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
        alignment on fields of the RETURN type built for the Copy-In Copy-Out
        mechanism.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
        of aggregate types that contain a placeholder.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
        TYPE_ARG_TYPES.
        (handle_type_generic_attribute): Likewise.

2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/47163
        * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.

2011-04-04  Kai Tietz  <ktietz@redhat.com>

        PR ada/47163
        * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
        to flag value.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (build_allocator): In the unconstrained array
        type case, do not strip a padding type around the array type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
        types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
        * gcc-interface/misc.c (gnat_handle_option): Remove special handling
        code for -feliminate-unused-debug-types.
        (gnat_post_options): Likewise.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
        declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
        distinct copy.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
        DECL_ARTIFICIAL flag on enumeration types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
        fat pointer types artificial unconditionally.
        <E_Array_Subtype>: Attach the base array type as a parallel type if it
        isn't artificial.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (get_dummy_type): Declare.
        (build_dummy_unc_pointer_types): Likewise.
        (finish_fat_pointer_type): Likewise.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
        fat pointer type has been built, complete it in place.
        <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
        and thin pointers.  Remove useless variable.
        (finish_fat_pointer_type): Make global and move to...
        * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
        (get_dummy_type): New function.
        (build_dummy_unc_pointer_types): Likewise.
        (gnat_pushdecl): Propage the name to the anonymous variants only.
        (update_pointer_to): Only adjust the pointer types in the unconstrained
        array case.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
        if this is a Taft amendment type and the full declaration is available.
        * gcc-interface/trans.c (process_type): Likewise.
        If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
        (process_freeze_entity): Likewise.
        * gcc-interface/utils.c (dummy_global): New static variable.
        (gnat_write_global_declarations): If there are types declared as used
        at the global level, insert them in the global hash table.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
        * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
        declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
        copy.
        (record_builtin_type): Add ARTIFICIAL_P parameter.  Set DECL_ARTIFICIAL
        flag of the type accordingly.
        * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
        finalizing types when updating the pointers to the designated type.
        <all>: Finalize the deferred types even if we didn't defer processing
        of incomplete types in this invocation.

2011-04-01  Olivier Hainque  <hainque@adacore.com>
            Nicolas Setton  <setton@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/misc.c (gnat_descriptive_type): New function.
        (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.

2011-03-28  Kai Tietz  <ktietz@redhat.com>

        * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
        Windows targets.
        (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
        * system-mingw.ads (System): Change ZCX_By_Default default to True.

        * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.

2011-03-28  Tristan Gingold  <gingold@adacore.com>

        PR ada/44431
        * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
        Use ada output of gnatbind.
        (ada/b_gnatb.adb): Ditto.
        (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
        (ada.mostlyclean, ada.stage1)
        (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
        (ada.stagefeedback): Adjust.
        * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
        Use ada output of gnatbind.
        (b_gnatm.adb): Ditto.
        (b_gnatl.o, b_gnatm.o): New rules.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
        for the padded type built to support a specified size or alignment.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
        unconditionally to the end of the unit when the designated type is
        limited_with'ed.
        <all>: Rename local variable.  Attempt to un-defer types only and do it
        for limited_with'ed types as well.
        (finalize_from_with_types): Adjust comment.  Rename variable and tidy.
        * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
        consistently and remove redundant call to finalize_from_with_types.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
        subprograms without a previous spec declared in the same unit.
        * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
        subprograms at the end of the unit instead of at the beginning.
        * gcc-interface/utils.c (create_subprog_decl): Check that the entity
        isn't public for the special handling of non-inline functions nested
        inside inline external functions.

2011-03-25  Jeff Law  <law@redhat.com>

        * gcc-interface/utils.c (def_fn_type): Add missing va_end.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
        * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
        to compute Set_Size_Depends_On_Discriminant.
        (Layout_Type): Call it on array types in back-end layout mode.
        * sem_util.adb (Requires_Transient_Scope): Return true for array
        types only if the size depends on the value of discriminants.
        * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
        type if the RHS is a call to a function that returns an unconstrained
        type with default discriminant.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
        non-conversion to the nominal result type at the end.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (create_temporary): New function taken from...
        (create_init_temporary): ...here.  Call it.
        (call_to_gnu): Create the temporary for the return value early, if any.
        Create it for a function with copy-in/copy-out parameters if there is
        no target; in other cases of copy-in/copy-out, use another temporary.
        Push the new binding level lazily.  Add and rename local variables.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (validate_size): Improve comments and tweak
        error message.
        (set_rm_size): Likewise.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
        for the padded type built in order to support a specified alignment.
        Fix incorrect formatting.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

        PR bootstrap/48216
        * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
        rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
        to the end of the list.  Adjust recursive call.  Rename local variable.
        If REORDER is true, reorder components of the record type.
        (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
        components_to_record and adjust the parameter list.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (elaborate_expression_1): When optimization is
        disabled, use the variable for bounds of loop iteration scheme.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

        PR target/12171
        * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
        out whether the expression is read-only.  Short-circuit placeholder
        case and rename a couple of local variables.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (smaller_form_type_p): Declare.
        * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
        * gcc-interface/utils.c (smaller_form_type_p): ...to here.
        (convert): Deal with conversions from a smaller form type specially.

2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
        its argument, except for the special -I- switch.

2011-02-12  Gerald Pfeifer  <gerald@pfeifer.com>

        * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
        "Ada Issues".

2011-02-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.

2011-02-03  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
        GNAT_FORMAL.
        * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
        * gcc-interface/utils.c (fill_vms_descriptor): ...here.  Take GNU_TYPE
        instead of GNAT_FORMAL.  Protect the expression against multiple uses.
        Do not generate the check directly, instead instantiate the template
        check present in the descriptor.
        (make_descriptor_field): Move around.
        (build_vms_descriptor32): Build a template check in the POINTER field.
        (build_vms_descriptor): Remove useless suffixes.
        * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.

2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>

        PR bootstrap/47467
        * targext.c: Include target files if IN_RTS is defined.

2011-01-26  Richard Guenther  <rguenther@suse.de>

        PR bootstrap/47467
        * targext.c: Include config.h.
        * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
        dependency.

2011-01-04  Pascal Obry  <obry@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
        end-of-case on the end label and its associated gotos, if any.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
        expressions of the parameter cache within the statement group of
        the CICO mechanism.

2011-01-04  Olivier Hainque  <hainque@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
        (set_end_locus_from_node): New function.
        (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
        make and the function end_locus.
        (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
        for the elaboration subprogram.
        (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
        set the end_locus of the expression as well.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/47131
        * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
        variables that are referenced in exception handlers volatile.



Copyright (C) 2011 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

        * gnat_rm.texi: Ramification of pragma Eliminate documentation
         - fix bugs in the description of Source_Trace;
         - get rid of UNIT_NAME;

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch9.adb
        (Build_Dispatching_Requeue): Adding support for VM targets
        since we cannot directly reference the Tag entity.
        * exp_sel.adb (Build_K): Adding support for VM targets.
        (Build_S_Assignment): Adding support for VM targets.
        * exp_disp.adb
        (Default_Prim_Op_Position): In VM targets do not restrict availability
        of predefined interface primitives to compiling in Ada 2005 mode.
        (Is_Predefined_Interface_Primitive): In VM targets this service is not
        restricted to compiling in Ada 2005 mode.
        (Make_VM_TSD): Generate code that declares and initializes the OSD
        record. Needed to support dispatching calls through synchronized
        interfaces.
        * exp_ch3.adb
        (Make_Predefined_Primitive_Specs): Enable generation of predefined
        primitives associated with synchronized interfaces.
        (Make_Predefined_Primitive_Bodies): Enable generation of predefined
        primitives associated with synchronized interfaces.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
        statements hidden in SPARK if preceded by the HIDE directive
        (Parse_Exception_Handlers): mark each exception handler in a sequence of
        exception handlers as hidden in SPARK if preceded by the HIDE directive
        * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
        if starting with the HIDE directive
        * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
        starting with the HIDE directive; mark the declarations in a private
        part as hidden in SPARK if the private part starts with the HIDE
        directive
        * restrict.adb, restrict.ads
        (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
        (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
        argument node belongs to a part which is hidden in SPARK
        (Check_SPARK_Restriction): do not issue violations on nodes in hidden
        parts in SPARK; protect the possibly costly call to
        Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
        * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
        * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
        Accumulate_Token_Checksum_GNAT_5_03): add case for new token
        Tok_SPARK_Hide.
        (Scan): recognize special comment starting with '#' and followed by
        SPARK keyword "hide" as a HIDE directive.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * types.ads, erroutc.ads: Minor reformatting.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * link.c: Add response file support for cross platforms.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
        in an association, set parent field of copy before partial analysis.
        * sem_res.adb (Resolve_Slice): create reference to itype only when
        expansion is enabled.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
        for new flag denoting which subprogram bodies are in ALFA
        * restrict.adb, sem_ch7.adb: Update comment
        * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
        sem_ch9.adb, sem_res.adb: Add calls to
        Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
        * sem_ch6.adb (Analyze_Function_Return): add calls to
        Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
        middle of the body, and extended return.
        (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
        False when missing return.
        (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
        to True for subprograms whose spec is in ALFA. Remove later on the flag
        on the entity used for a subprogram body when there exists a separate
        declaration.
        * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
        if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
        False, otherwise do nothing.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_ch4.ads: minor formatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
        debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
        errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
        restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
        opt.ads: cleanup of SPARK mode

2011-08-02  Yannick Moy  <moy@adacore.com>

        * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
        types.
        * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
        (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
        * sem_ch3.adb
        (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
        (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
        (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
        (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
        types.
        (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
        non-static range.
        * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
        functions whose return type is not in ALFA.
        (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
        specifications.
        (Process_Formals): unset Is_In_ALFA flag for subprograms if a
        parameter's type is not in ALFA.
        * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
        types are in ALFA.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6 (Analyze_Expression_Function): treat the function as
        Inline_Always, and introduce a subprogram declaration for it when it is
        not a completion.
        * inline.adb (Add_Inlined_Body): recognize bodies that come from
        expression functions, so that the back-end can determine whether they
        can in fact be inlined.
        * sem_util.adb (Is_Expression_Function): predicate to determine whether
        a function body comes from an expression function.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
        null exclusions to test Can_Never_Be_Null on the anonymous access types
        of the formals rather than testing the formals themselves. Exclude this
        check in cases where the Old_Formal is marked as a controlling formal,
        to avoid issuing spurious errors for bodies completing dispatching
        operations (due to the flag not getting set on controlling access
        formals in body specs).
        (Find_Corresponding_Spec): When checking full and subtype conformance of
        subprogram bodies in instances, pass Designated and E in that order, for
        consistency with the expected order of the formals (New_Id followed by
        Old_Id).

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
        Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
        primitive operations of class-wide actuals.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_atag.ads, exp_atag.adb
        (Build_Common_Dispatching_Select_Statements): Remove argument Loc
        since its value is implicitly passed in argument Typ.
        * exp_disp.adb (Make_Disp_Conditional_Select_Body,
        Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
        Build_Common_Dispatching_Select_Statements.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
        exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
        Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb: Minor reformatting.
        * sem_prag.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_atag.adb, exp_atags.ads
        (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
        by the tagged type Entity. Required to use this routine in the VM
        targets since we do not have available the Tag entity in the VM
        platforms.
        * exp_ch6.adb
        (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
        Ada.Tags has not been previously loaded.
        * exp_ch7.adb
        (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
        Build_VM_TSDs if package Ada.Tags has not been previously loaded.
        * sem_aux.adb
        (Enclosing_Dynamic_Scope): Add missing support to handle the full
        view of enclosing scopes. Required to handle enclosing scopes that
        are synchronized types whose full view is a task type.
        * exp_disp.adb
        (Build_VM_TSDs): Minor code improvement to avoid generating and
        analyzing lists with empty nodes.
        (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
        (Make_Disp_Conditional_Select_Body): Add support for VM targets.
        (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
        (Make_Disp_Timed_Select_Body): Add support for VM targets.
        (Make_Select_Specific_Data_Table): Add support for VM targets.
        (Make_VM_TSD): Generate code to initialize the SSD structure of
        the TSD.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
        cross-references section in ALI.
        * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
        (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
        Sub).
        (Enclosing_Subprogram_Or_Package): new function to return the enclosing
        subprogram or package entity of a node
        (Is_Local_Reference_Type): new function returns True for references
        selected in local cross-references.
        (Lt): function extracted from Lt in Output_References
        (Write_Entity_Name): function extracted from Output_References
        (Generate_Definition): generate reference with type 'D' for definition
        of objects (object declaration and parameter specification), with
        appropriate locations and units, for use in local cross-references.
        (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
        references of type 'I' for initialization in object definition.
        (Output_References): move part of function Lt and procedure
        Write_Entity_Name outside of the body. Ignore references of types 'D'
        and 'I' introduced for local cross-references.
        (Output_Local_References): new procedure to output the local
        cross-references sections.
        (Lref_Entity_Status): new array defining whether an entity is a local
        * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
        with 'I' type when initialization expression is present.
        * get_scos.adb, get_scos.ads: Correct comments and typos

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
        the JVM target.
        * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
        the JVM target.
        * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
        TSD support.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
        (No_Space_Img): New function
        (Find_Excluded_Sources): When reading from a file, record the file name
        and the line number for each excluded source.
        (Mark_Excluded_Sources): When reporting an error, if the excluded
        sources were read from a file, include file name and line number in
        the error message.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
        generation of TSDs to the DOTNET compiler.
        * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
        generation of TSDs to the DOTNET compiler.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
        record of all the tagged types declared inside library level package
        declarations, library level package bodies or library level subprograms.
        * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
        associated with a given tagged type.
        (Build_VM_TSDs): New subprogram.
        * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
        compilation units that are subprograms.
        * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
        compilation units that are package bodies.
        (Expand_N_Package_Declaration): Generate TSDs of the main compilation
        units that are a package declaration or a package instantiation.
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
        reorganization to improve the error generated by the frontend when the
        function Ada.Tags.Secondary_Tag is not available.
        * rtsfind.ads (RE_Register_TSD): New runtime entity.
        * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * s-imenne.ads: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
        * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
        * s-stalib.ads: Add pragma Suppress_Initialization for Big_String

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.ads (Materialize_Entity): Document this is only for renamings
        * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
        required debug information in the case where we transform the object
        declaration into a renaming declaration.
        * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
        object
        * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
        Materialize_Entity.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
        Suppress_Init_Procs.
        * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
        Suppress_Initialization/Initialization_Suppressed.
        * gnat_rm.texi: New documentation for pragma Suppress_Initialization
        * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
        * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
        * sem_prag.adb: New processing for pragma Suppress_Initialization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
        Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
        only have inheritable classwide pre/postconditions.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
        * rtsfind.ads (RE_Check_TSD): New runtime entity.
        * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
        checks if the external tag of a type is the same as the external tag
        of some other declaration.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

        * s-taskin.ads: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb (Display_Help): swap the order in which it prints the
        short help and the general usage.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
        the aspect declarations and attach them to the generic copy for
        subsequent analysis.
        (Analyze_Subprogram_Instantiation): copy explicitly the aspect
        declarations of the generic tree to the new subprogram declarations.
        * sem_attr.adb (Check_Precondition_Postcondition): recognize
        conditions that apply to a subprogram instance.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
        private type with a tagged full view is not derived in the immediate
        scope of the partial view, (RM 7.3 (7)) use the scope of the base type.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
        Ada2012 iterator, the loop will be rewritten during expansion into a
        while loop with a cursor and an element declaration. Do not analyze the
        body in this case, because if the container is for indefinite types the
        actual subtype of the elements will only be determined when the cursor
        declaration is analyzed.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
        size/alignment related attributes in CodePeer_Mode.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
        Prepend_Element, since this can result in the operation getting the
        wrong slot in the full type's dispatch table if the full type has
        inherited operations. The incomplete type's operation will get added
        to the proper position in the full type's primitives
        list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
        (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
        dispatching operations, since there are cases where nonprimitive
        subprograms can get added to the list of incomplete dependents (such
        as subprograms in nested packages).
        * sem_ch6.adb (Process_Formals): First, remove test for being in a
        private part when determining whether to add a primitive with a
        parameter of a tagged incomplete type to the Private_Dependents list.
        Such primitives can also occur in the visible part, and should not have
        been excluded from being private dependents.
        * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
        RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
        list of a Taft-amendment incomplete type is a primitive before issuing
        an error that the full type must appear in the same unit. There are
        cases where nonprimitives can be in the list (such as subprograms in
        nested packages).
        * sem_disp.adb (Derives_From): Use correct condition for checking that
        a formal's type is derived from the type of the corresponding formal in
        the parent subprogram (the condition was completely wrong). Add
        checking that was missing for controlling result types being derived
        from the result type of the parent operation.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * errout.adb (First_Node): minor renaming
        * restrict.adb (Check_Formal_Restriction): put restriction warning on
        first node.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
        before accessing operands.
        * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
        decide whether an initialization expression respects SPARK rules, as
        the plain node is the expanded one. This allows for more valid warnings
        to be issued.
        * gnat_rm.texi: Minor update.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
        previous change.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch4.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
        loop statements and the element renaming declaration with a block when
        the element type is controlled.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sinfo.ads: Minor formatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_aggr.adb (Add_Association): if the association has a box and no
        expression, use the Sloc of the aggregate itself for the new
        association.
        * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
        the Original_Node.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
        When a container is provided via a function call, generate a renaming
        of the function result. This avoids the creation of a transient scope
        and the premature finalization of the container.
        * exp_ch7.adb (Is_Container_Cursor): Removed.
        (Wrap_Transient_Declaration): Remove the supression of the finalization
        of the list controller when the declaration denotes a container cursor,
        it is not needed.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * restrict.adb (Check_Formal_Restriction): only issue a warning if the
        node is from source, instead of the original node being from source.
        * sem_aggr.adb
        (Resolve_Array_Aggregate): refine the check for a static expression, to
        recognize also static ranges
        * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
        Array_Type_Declaration): postpone the test for the type being a subtype
        mark after the type has been resolved, so that component-selection and
        expanded-name are discriminated.
        (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
        to distinguish the case of an iteration scheme, so that an error is
        issed on a non-static range in SPARK except in an iteration scheme.
        * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
        In_Iter_Schm = True.
        * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
        user-defined operators so that they are allowed in renaming
        * sem_ch8.adb
        (Find_Selected_Component): refine the check for prefixing of operators
        so that they are allowed in renaming. Move the checks for restrictions
        on selector name after analysis discriminated between
        component-selection and expanded-name.
        * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
        concatenation argument of string type if it is static.
        * sem_util.adb, sem_util.ads
        (Check_Later_Vs_Basic_Declarations): add a new function
        Is_Later_Declarative_Item to decice which declarations are allowed as
        later items, in the two different modes Ada 83 and SPARK. In the SPARK
        mode, add that renamings are considered as later items.
        (Enclosing_Package): new function to return the enclosing package
        (Enter_Name): correct the rule for homonyms in SPARK
        (Is_SPARK_Initialization_Expr): default to returning True on nodes not
        from source (result of expansion) to avoid issuing wrong warnings.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * errout.adb: On anything but an expression First_Node returns its
        argument.

2011-08-02  Pascal Obry  <obry@adacore.com>

        * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
        Set the associated loop as the related expression of internally
        generated cursors.
        * exp_ch7.adb (Is_Container_Cursor): New routine.
        (Wrap_Transient_Declaration): Supress the finalization of the list
        controller when the declaration denotes a container cursor.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
        command line now.
        * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
        expression is a simple expression. This check cannot be performed in
        the semantics, so just drop it.
        (P_Index_Or_Discriminant_Constraint): move check that the index or
        discriminant is a subtype mark to Analyze_Subtype_Declaration in the
        semantics. Other cases were previously checked in the semantics.
        * par-ch4.adb (P_Name): move checks that a selector name is not
        character literal or an operator symbol to Find_Selected_Component in
        the semantics
        * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
        declarations are not placed after later declarations in a separate
        procedure in Sem_Util (possibly not the best choice?), to be used both
        during parsing, for Ada 83 mode, and during semantic analysis, for
        SPARK mode.
        * par-endh.adb (Check_End): move check that end label is not missing
        to Process_End_Label in the semantics
        * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
        the special case for SPARK restriction
        * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
        * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
        parameter Force to issue the error message even on internal node (used
        for generated end label). Call Check_Restriction to check when an error
        must be issued. In SPARK mode, issue an error message even if the
        restriction is not set.
        (Check_Restriction): new procedure with an additional out parameter to
        inform the caller that a message has been issued
        * sem_aggr.adb: Minor modification of message
        * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
        instead of issuing an error message directly
        * sem_ch3.adb (Analyze_Declarations): move here the check that basic
        declarations are not placed after later declarations, by calling
        Check_Later_Vs_Basic_Declarations
        (Analyze_Subtype_Declaration): move here the check that an index or
        discriminant constraint must be a subtype mark. Change the check that
        a subtype of String must start at one so that it works on subtype marks.
        * sem_ch4.adb (Analyze_Call): move here the check that a named
        association cannot follow a positional one in a call
        * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
        instead of issuing an error message directly
        * sem_ch8.adb (Find_Selected_Component): move here the check that a
        selector name is not a character literal or an operator symbol. Move
        here the check that the prefix of an expanded name cannot be a
        subprogram or a loop statement.
        * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
        procedure called from parsing and semantics to check that basic
        declarations are not placed after later declarations
        (Process_End_Label): move here the check that end label is not missing

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
        representation clause in codepeer mode, since it confuses CodePeer and
        does not bring useful info.

2011-08-02  Ed Falis  <falis@adacore.com>

        * init.c: initialize fp hw on MILS.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * errout.adb (First_Node): for bodies, return the node itself (small
        optimization). For other nodes, do not check source_unit if the node
        comes from Standard.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_ch3.adb: Minor comment additions.
        * sem_ch13.adb: Minor reformatting.

2011-08-02  Pascal Obry  <obry@adacore.com>

        * make.adb, makeutl.adb: Removes some superfluous directory separator.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_attr.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
        (Has_Default_Component_Value): Removed
        * einfo.ads Comment updates
        (Has_Default_Aspect): Replaces Has_Default_Value
        (Has_Default_Component_Value): Removed
        * exp_ch13.adb
        (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
        * exp_ch3.adb
        (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
        (Get_Simple_Init_Val): Handle Default_Value aspect
        (Needs_Simple_Initialization): Handle Default_Value aspect
        * exp_ch3.ads: Needs_Simple_Initialization
        * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
        * par-prag.adb (Pragma_Default[_Component]Value) Removed
        * sem_ch13.adb
        (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
        * sem_prag.adb (Pragma_Default[_Component]Value) Removed
        * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
        package containing iteration primitives.
        exp_ch5.adb (Expand_Iterator_Loop): ditto.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
        "of", pre-analyze expression in case it is a function call with
        finalization actions that must be placed ahead of the loop.
        * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
        on an Ada2012 iterator, insert them ahead of the rewritten loop.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (Create_Float_Types): Only consider C's long double for
        Long_Long_Float, in addition to double.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
        sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
        prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
        Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb: handle properly 'Result when it is a prefix of an
        indexed component.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * einfo.ads, einfo.adb
        (Original_Access_Type): Move this attribute to Node26 since there was
        an undocumented use of Node21 in E_Access_Subprogram_Type entities
        which causes conflicts and breaks the generation of the .NET compiler.
        (Interface_Name): Add missing documentation on JGNAT only uses of
        this attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
        (Find_Back_End_Float_Type): Likewise
        (Create_Back_End_Float_Types): Likewise
        (Create_Float_Types): Likewise
        (Register_Float_Type): Likewise
        * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
        Nlist and split out type selection in new local Find_Base_Type function.
        * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
        Nlist
        * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
        alpha order).
        * opt.ads: Minor comment change.
        * sem_ch12.adb: Minor code reorganization.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

        * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
        subtype's list of rep items to the list on the full subtype in the case
        where the lists are the same.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * switch-c.adb (Free): New deallocation procedure to avoid implicitly
        using the one from System.Strings, which also deallocates all strings.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
        function.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Olivier Hainque  <hainque@adacore.com>

        * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
        end_locus.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
        associated with anonymous access to subprograms.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * opt.ads
        (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
        (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
        * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
        (Add_Symbol_Definition): Move to switch-c.adb
        (Process_Command_Line_Symbol_Definitions): Adjust references to above.
        * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
        (Add_Symbol_Definition): Move to switch-c.adb.
        * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
        * sem_warn.adb
        (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
        Move to warnsw.adb.
        * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
        Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
        Move to warnsw.adb.
        * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
        (Add_Symbol_Definition): Moved from Prepcomp.
        * switch-c.ads: Update copyright notice. Use String_List instead of
        Argument_List, removing dependency on System.OS_Lib.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
        mode on initialization expression which does not respect SPARK
        restrictions.
        * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
        if the tree referenced by its argument represents an initialization
        expression in SPARK, suitable for initializing an object in an object
        declaration.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
        internally generated access to subprogram with its associated protected
        subprogram type.
        * einfo.ads, einfo.adb (Original_Access_Type): New attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (Register_Float_Type): Print information about type to
        register, if the Debug_Flag_Dot_B is set.
        * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
        * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
        * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
        with a requested precision of more than Max_Digits digits and no more
        than Max_Base_Digits digits, if a range specification is present and the
        Predefined_Float_Types list has a suitable type to derive from.
        * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
        case of type completion with pragma Import
        * sem_prag.adb
        (Process_Import_Predefined_Type): Processing to complete a type
        with pragma Import. Currently supports floating point types only.
        (Set_Convention_From_Pragma): Do nothing without underlying type.
        (Process_Convention): Guard against absence of underlying type,
        which may happen when importing incomplete types.
        (Process_Import_Or_Interface): Handle case of importing predefined
        types. Tweak error message.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
        functions to previous change.  Reorganize code slightly.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * back_end.ads (Register_Type_Proc): New call back procedure type for
        allowing the back end to provide information about available types.
        (Register_Back_End_Types): New procedure to register back end types.
        * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
        available types.
        * cstand.adb (Back_End_Float_Types): New list for floating point types
        supported by the back end.
        (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
        (Copy_Float_Type): New procedure to make new copies of predefined types.
        (Register_Float_Type): New call back procedure to populate the BEFT list
        (Find_Back_End_Float_Type): New procedure to find a BEFT by name
        (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
        (Create_Float_Types): New procedure to create entities for floating
        point types predefined in Standard, and put these and any remaining
        BEFTs on the Predefined_Float_Types list.
        * stand.ads (Predefined_Float_Types): New list for predefined floating
        point types that do not have declarations in package Standard.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Get_Code_Unit_Entity): New local function.  Returns the
        entity node for the unit containing the parameter.
        (Add_Inlined_Body): Use it to find the unit containing the subprogram.
        (Add_Inlined_Subprogram): Likewise.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

        * s-stusta.adb (Print): Make sure Pos is always initialized to a
        suitable value.

2011-08-02  Geert Bosch  <bosch@adacore.com>

        * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_type.adb (Covers): Move trivial case to the top and reuse the
        computed value of Base_Type.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * restrict.adb (Check_Restriction): issue an error for any use of
        class-wide, even if the No_Dispatch restriction is not set.
        * sem_aggr.adb: Correct typos in comments and messages in formal mode
        * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
        when completing a private extension, the type named in the private part
        is not the same as that named in the visible part.
        * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
        of an inherited primitive operations of a tagged type or type extension
        that returns the tagged type.
        * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
        function which returns True for an implicit operation inherited by the
        derived type declaration for the argument type.
        (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
        order.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
        Process_Bounds, to perform analysis with expansion of a range or an
        expression that is the iteration scheme for a loop.
        (Analyze_Iterator_Specification): If domain of iteration is given by a
        function call with a controlled result, as is the case if call returns
        a predefined container, ensure that finalization actions are properly
        generated.
        * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
        determine if the analysis is performed using N or Original_Node (N).
        * exp_util.adb (Side_Effect_Free): Code cleanup since the new
        functionality of routine Is_Variable avoids code duplication.
        * checks.adb (Determine_Range): Handle temporaries generated by
        Remove_Side_Effects.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
        expansion of the condition. Required since the previous analysis was
        done with expansion disabled (see Resolve_Quantified_Expression) and
        hence checks were not inserted and record comparisons have not been
        expanded.

2011-08-02  Ed Falis  <falis@adacore.com>

        * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
        Update header.

2011-08-02  Bob Duff  <duff@adacore.com>

        * opt.ads: Minor comment fix.

2011-08-02  Bob Duff  <duff@adacore.com>

        * sem_ch12.adb (Analyze_Package_Instantiation,
        Analyze_Subprogram_Instantiation): Turn off style checking while
        analyzing an instance. Whatever style checks that apply to the generic
        unit should apply, so it makes no sense to apply them in an instance.
        This was causing trouble when compiling an instance of a runtime
        unit that violates the -gnatyO switch.
        * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
        one of the two case statements, causing spurious errors.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * uname.adb: Minor reformatting.
        * gnatcmd.adb: Minor reformatting.
        * exp_attr.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
        No_Dispatching_Calls, do not look for the Assign primitive, because
        predefined primitives are not created in this case.

2011-08-02  Bob Duff  <duff@adacore.com>

        * stylesw.ads: Minor comment fixes.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Add_To_Result): New procedure.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

        * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
        time, if the specific run-time routines for handling streams of strings
        are not available, use the default mechanism.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * s-regpat.ads: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
        not null, call it to create the in memory config project file without
        parsing an existing default config project file.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_elim.adb: an abstract subprogram does not need an eliminate
        pragma for its descendant to be eliminable.

2011-08-02  Ed Falis  <falis@adacore.com>

        * init.c: revert to handling before previous checkin for VxWorks
        * s-intman-vxworks.adb: delete unnecessary declarations related to
        using Ada interrupt facilities for handling signals.
        Delete Initialize_Interrupts. Use __gnat_install_handler instead.
        * s-intman-vxworks.ads: Import __gnat_install_handler as
        Initialize_Interrupts.
        * s-taprop-vxworks.adb: Delete Signal_Mask.
        (Abort_Handler): change construction of mask to unblock exception
        signals.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

        * a-except-2005.adb (Raise_From_Signal_Handler): Call
        Debug_Raise_Exception before propagation starts.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
        to Restriction_Check_Required.
        * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
        * sem_res.adb (Resolve_Call): Likewise.
        * sem_attr.adb (Check_Stream_Attribute): Likewise.

2011-08-02  Bob Duff  <duff@adacore.com>

        * stylesw.ads: Update comment.
        * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
        * errout.ads: Remove obsolete comment.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
        (Set_Is_Safe_To_Reevaluate): new procedure.
        * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
        assignment is allowed on safe-to-reevaluate variables.
        (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
        temporary created to remove side effects in expressions that use
        the secondary stack as safe-to-reevaluate.
        * exp_util.adb (Side_Effect_Free): Add missing code to handle well
        variables that are not true constants.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
        sem_res.adb, sem_ch6.adb: Minor reformatting.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

        * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
        not set Overridden_Operation if subprogram is an initialization
        procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-ch6.adb: Correct obsolete name in comments
        * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
        which takes two message arguments (existing function takes one), with
        second message used for continuation.
        * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
        block statements that originate from a source block statement, not
        generated block statements
        * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
        symmetry with procedure case
        * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
        function to issue an error in formal mode if a package specification
        contains more than one tagged type or type extension.
        * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
        parameters matching formals of tagged types are objects (or ancestor
        type conversions of objects), not general expressions. Issue an error
        on view conversions that are not involving ancestor conversion of an
        extended type.
        (Resolve_Type_Conversion): in formal mode, issue an error on the
        operand of an ancestor type conversion which is not an object
        * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
        procedure so that it works also for actuals of function calls
        (Is_Actual_Tagged_Parameter): new function which determines if its
        argument is an actual parameter of a formal of tagged type in a
        subprogram call
        (Is_SPARK_Object_Reference): new function which determines if the tree
        referenced by its argument represents an object in SPARK

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb: Minor reformatting
        Minor comment addition
        Minor error msg text change

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
        function. Used to be more precise when we generate a variable plus one
        assignment to remove side effects in the evaluation of the Bound
        expressions.
        (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
        of the bound expression to force its re-analysis and thus expand the
        associated transient scope (if required). Code cleanup replacing the
        previous code that declared the constant entity by an invocation to
        routine Force_Evaluation which centralizes this work in the frontend.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
        (Base_Type): Now uses improved Is_Base_Type function
        * einfo.ads (Base_Type): Inline this function

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
        (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * gcc-interface/Make-lang.in: Update dependencies.
        * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
        targets.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
        non-simple expression used in delta constraint
        (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
        index constraint which is not a subtype mark
        * par.adb: With and use Restrict
        * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
        mode on component type which is not a subtype mark and default
        expression on component
        (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
        of string which does not have a lower index bound equal to 1
        (Array_Type_Declaration): issue an error in formal mode on index or
        component type which is not a subtype mark, and on aliased keyword on
        component
        (Derived_Type_Declaration): issue an error in formal mode on interface,
        limited or abstract type
        (Record_Type_Declaration): issue an error in formal mode on interface
        (Record_Type_Definition): issue an error in formal mode on tagged types
        and type extensions not declared in the specification of a library unit
        package; on null non-tagged record; on variant part

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
        not declared for qualified library project when Library_Name is not
        declared, but Library_Dir is.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
        pragmas (affects aspects [Component_]Default_Value
        (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
        component type for the resolution

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.adb (Base_Type): Tune implementation for speed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * freeze.adb: Minor reformatting.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

        * scos.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
        base type, because the parent may be a subtype of a private type whose
        convention is established in a private part.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
        statement in a block when the expansion of the return expression has
        created a finalization chain.
        * freeze.adb (Freeze_Expression): Alphabetize all choices associated
        with the parent node.
        Add N_Extended_Return_Statement to handle the case where a transient
        object declaration appears in the Return_Object_Declarations list of
        an extended return statement.

2011-08-02  Matthew Gingell  <gingell@adacore.com>

        * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
        unused parameter 'name'.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_elim.adb (Set_Eliminated): If the overridden operation is an
        inherited operation, check whether its alias, which is the source
        operastion that it renames, has been marked eliminated.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
        in-mode parameter whose type is an access type since it can be used to
        modify its designated object. Enforce code that handles as safe an
        access type that is not access-to-constant but it is the result of a
        previous removal of side-effects.
        (Remove_Side_Effects): Minor code reorganization of cases which require
        no action. Done to incorporate documentation on new cases uncovered
        working in this ticket: no action needed if this routine was invoked
        too early and the nodes are not yet decorated.
        * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
        to routine Remove_Side_Effects by calls to Force_Evaluation since they
        were issued with actuals that are implicitly provided by
        Force_Evaluation.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_res.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
        to issue an error in formal mode on attribute not supported in this mode
        (Analyze_Attribute): issue errors on standard attributes not supported
        in formal mode.
        * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
        comment, and issue error in formal mode on modulus which is not a power
        of 2.
        (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
        range.
        * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
        subtype mark.
        * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
        operator on modular type (except 'not').

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor reformatting.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

        * s-osinte-linux.ads: Minor comment update and reformatting.
        * i-cexten.ads: Make this unit pure, as for its parent.
        Will allow its usage in more contexts if needed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * s-utf_32.ads: Minor comment fix.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
        operation of a tagged synchronized type, handle the case where the
        controlling argument is overloaded.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
        Replace pragma SPARK_95 with pragma Restrictions (SPARK)
        * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
        SPARK mode and formal verification mode on processing SPARK restriction
        * s-rident.ads (Restriction_Id): add SPARK restriction in those not
        requiring consistency checking.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
        a-cforse.ads: Remove unneeded with of Ada.Containers
        Remove commented out pragma Inline's
        Move specifications of new subprograms to the actual specs

2011-08-02  Yannick Moy  <moy@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
        a-cforse.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb: add attribute name when 'Result has the wrong prefix.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
        a-cforse.ads, a-cofove.ads: Minor reformatting.

2011-08-02  Claire Dross  <dross@adacore.com>

        * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
        a-cofove.ads: Add comments.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * gnat_rm.texi: Document formal containers.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

        * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
        are empty sections.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
        reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * aspects.adb: New aspects Default_Value and Default_Component_Value
        New format of Aspect_Names table checks for omitted entries
        * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
        handling of boolean aspects for derived types.
        New aspects Default_Value and Default_Component_Value
        New format of Aspect_Names table checks for omitted entries
        * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
        (Has_Default_Value): New flag
        (Has_Default_Component_Value): New flag
        (Has_Default_Value): New flag
        * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
        table.
        * par-prag.adb: New pragmas Default_Value and Default_Component_Value
        * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
        Default_Value and Default_Component_Value
        * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
        New aspects Default_Value and Default_Component_Value
        * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
        * sprint.adb: Print N_Aspect_Specification node when called from gdb

2011-08-02  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
        inherit library kind.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
        Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): Fix thinko.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * impunit.adb: Add comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
        qualification of aggregates in formal mode
        (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
        another aggregate
        (Resolve_Aggregate): complete the test that an aggregate is adequately
        qualified in formal mode

2011-08-02  Pascal Obry  <obry@adacore.com>

        * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
        * mlib-prj.adb: Supress warning when compiling binder generated file.
        (Build_Library): Supress all warnings when compiling the binder
        generated file.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
        from here...
        * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
        * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
        Add with/use clauses to make Check_Formal_Restriction visible

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
        in-parameters when type of the generic formal is private in the generic
        spec and non-private in the body.

2011-08-02  Claire Dross  <dross@adacore.com>

        * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
        a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
        a-cofove.adb, a-cofove.ads: New files implementing formal containers.
        * impunit.adb, Makefile.rtl: Take new files into account.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
        sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
        formal mode
        * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
        matching static array bounds, taking into account the special case of
        string literals
        * sem_ch3.adb: Typo in comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
        which issues an error in formal mode if its argument node is originally
        from source
        * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
        has a discriminant specification so that it does not include the case
        of derived types
        (Derived_Type_Declaration): move here the test that a derived type has a
        discriminant specification
        * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
        first element of a component association before accessing its choices
        (presence of component association is not enough)
        * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
        declaration is a library item before accessing the next element in a
        list, as library items are not member of lists
        * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
        sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
        Check_Formal_Restriction whenever possible.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
        reference when needed.

2011-08-02  Bob Duff  <duff@adacore.com>

        * gnat_ugn.texi: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
        archive file name. Do not use the full path name of archives for Open
        VMS.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch12.adb, sem_ch11.adb: New calling sequence for
        Analyze_Aspect_Specifications
        * sem_ch13.adb
        (Analyze_Aspect_Specifications): New handling for boolean aspects
        * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
        * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
        sequence for Analyze_Aspect_Specifications
        * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
        * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
        aspects, since these no longer exist.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * par-ch13.adb (Aspect_Specifications_Present): Always return false on
        semicolon, do not try to see if there are aspects following it.
        * par-ch3.adb (P_Declarative_Items): Better message for unexpected
        aspect spec.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb, aspects.ads: Minor reformatting.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

        * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
        * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
        extracted from...
        (Analyze_Aspect_Specifications): ...here.  Call above procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
        mode on subprogram declaration outside of package specification, unless
        it is followed by a pragma Import
        * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
        Access_Type_Declaration): issue error in formal mode on access type
        (Analyze_Incomplete_Type_Decl): issue error in formal mode on
        incomplete type
        (Analyze_Object_Declaration): issue error in formal mode on object
        declaration which does not respect SPARK restrictions
        (Analyze_Subtype_Declaration): issue error in formal mode on subtype
        declaration which does not respect SPARK restrictions
        (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
        error in formal mode on digits or delta constraint
        (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
        decimal fixed point type
        (Derived_Type_Declaration): issue error in formal mode on derived type
        other than type extensions of tagged record types
        * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
        with check on access definition
        * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
        mode on protected definition.
        (Analyze_Task_Definition): issue error in formal mode on task definition

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_ch6.adb (Can_Override_Operator): New function.
        (Verify_Overriding_Indicator): Add missing code to check overriding
        indicator in operators. Fixes regression.
        (Check_Overriding_Indicator): Minor reformating after replacing the
        code that evaluates if the subprogram can override an operator by
        invocations to the above new function.
        * einfo.adb
        (Write_Field26_Name): Add missing code to ensure that, following
        the documentation in einfo.ads, this field is not shown as attribute
        "Static_Initialization" on non-dispatching functions.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

        * sem_res.adb (Resolve_Call): A call to
        Ada.Real_Time.Timing_Events.Set_Handler violates restriction
        No_Relative_Delay (AI-0211) only when it sets a relative timing event,
        i.e., when the second parameter is of type Time_Span.

2011-08-02  Vincent Celier  <celier@adacore.com>

        * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
        with an archive instead of -L<library dir> -l<library name>.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
        mark the base types In_Use in addition to making the operations
        use_visible.

2011-08-02  Ed Falis  <falis@adacore.com>

        * init.c: add and setup __gnat_signal_mask for the exception signals
        * s-inmaop-vxworks.adb: new file.
        * s-intman-vxworks.adb: remove unnecessary initializations and
        simplify remaining
        * s-intman-vxworks.ads: remove unnecessary variable
        * s-taprop-vxworks.adb: simplify signal initialization

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_ch8.adb: Minor code reorganization, comment updates.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
        * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
        here from Sem_Res.
        (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
        (Matching_Static_Array_Bounds): Moved here from Sem_Res

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
        * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
        * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
        use_type_clauses, to handle more efficiently use_type and use_all_type
        constructs.
        * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
        Ada2012 Use_All_Type clause.
        (Use_Class_Wide_Operations): new procedure.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
        sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
        expression to expression function.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb: transform simple Ada2012 membership into equality only
        if types are compatible.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * sem_res.adb (Matching_Static_Array_Bounds): new function which
        returns True if its argument array types have same dimension and same
        static bounds at each index.
        (Resolve_Actuals): issue an error in formal mode on actuals passed as
        OUT or IN OUT paramaters which are not view conversions in SPARK.
        (Resolve_Arithmetic_Op): issue an error in formal mode on
        multiplication or division with operands of fixed point types which are
        not qualified or explicitly converted.
        (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
        Boolean or array type (except String) operands.
        (Resolve_Equality_Op): issue an error in formal mode on equality
        operators for array types other than String with non-matching static
        bounds.
        (Resolve_Logical_Op): issue an error in formal mode on logical operators
        for array types with non-matching static bounds. Factorize the code in
        Matching_Static_Array_Bounds.
        (Resolve_Qualified_Expression): issue an error in formal mode on
        qualified expressions for array types with non-matching static bounds.
        (Resolve_Type_Conversion): issue an error in formal mode on type
        conversion for array types with non-matching static bounds

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * par-ch10.adb: Minor code reorganization (use Nkind_In).

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

        * par-ch9.adb: save location of entry for proper error message.

2011-08-02  Javier Miranda  <miranda@adacore.com>

        * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
        (Use_Full_View) which permits this routine to climb through the
        ancestors using the full-view of private parents.
        * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
        Use_Full_View to true in calls to Is_Ancestor.
        * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
        true in call to Is_Ancestor.
        * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
        Use_Full_View to true in call to Is_Ancestor.
        * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
        call to Is_Ancestor.
        * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
        Use_Full_View to true in calls to Is_Ancestor.
        * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
        Make_Select_Specific_Data_Table, Register_Primitive,
        Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
        to true in call to Is_Ancestor.
        * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
        Use_Full_View to true in calls to Is_Ancestor.
        * exp_cg.adb
        (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
        (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi: Minor reformatting.
        * sem_prag.adb: Minor reformatting.

2011-08-02  Tristan Gingold  <gingold@adacore.com>

        * vms_data.ads: Add VMS qualifier for -gnateP.

2011-08-02  Robert Dewar  <dewar@adacore.com>

        * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
        * par-ch7.adb (P_Package): Proper placement of aspects for package
        decl/instantiation.
        * par-endh.adb (Check_End): Ad Is_Sloc parameter
        (End_Statements): Add Is_Sloc parameterr
        * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
        (Check_End): Ad Is_Sloc parameter
        (End_Statements): Add Is_Sloc parameterr

2011-08-02  Vincent Celier  <celier@adacore.com>

        * ug_words: Add VMS qualifier equivalent to -gnateP:
        /SYMBOL_PREPROCESSING.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

        * gnat-style.texi: For hexadecimal numeric literals the typical
        grouping of digits is 4 to represent 2 bytes.
        A procedure spec which is split into several lines is indented two
        characters.

2011-08-02  Yannick Moy  <moy@adacore.com>

        * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
        * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
        (Resolve_Aggregate): issue errors in formal modes when aggregate is not
        properly qualified
        (Resolve_Array_Aggregate): issue errors in formal modes on non-static
        choice in array aggregate
        (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
        mark as ancestor
        (Resolve_Record_Aggregate): issue errors in formal modes on mixed
        positional and named aggregate for record, or others in record
        aggregate, or multiple choice in record aggregate
        * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
        array operands to logical operations AND, OR and XOR do not have the
        same static lower and higher bounds
        * sem_ch5.adb, sinfo.ads: Correct typos in comments

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
        Replaces Last_Source_Node_In_Sequence.
        * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
        * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
        parens and blank in string (this was inconsistently implemented).
        * errout.ads
        (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
        blank in string (this was inconsistently implemented).
        * gnat1drv.adb
        (Set_Global_Switches): Set formal mode switches appropriately
        * opt.ads, opt.adb: Formal mode is now global switches, more consistent
        * par-prag.adb
        (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
        call Set_Error_Msg_Lang to set "spark" as language name.
        * par.adb: Remove unnecessary call to set formal language for errout
        * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
        appropriately and call Set_Error_Msg_Lang to set "spark" as language
        name.
        * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
        calls to it, moved after resolution so that types are known
        * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
        result of concatenation is not of type String
        (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
        concatenation is not properly restricted
        * gnat_rm.texi: Add doc on pragma Spark_95.
        * gcc-interface/Makefile.in: Remove obsolete target pairs for
        Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
        * gcc-interface/Make-lang.in: Update dependencies.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
        condition that detects if the overridden operation must replace an
        existing entity.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
        code declarations inserted by Insert_Actions in each alternative of the
        N_Case_Expression node.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sem_ch6.adb: Minor code reorganization.
        * sem_util.adb: Minor reformatting.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
        * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
        literal or operator symbol which is prefixed
        * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
        mode on access attributes.
        * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
        that concatenation operands are properly restricted in formal mode
        (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
        Analyze_Concatenation_Operand. Issue an error in formal mode if the
        result of the concatenation has a type different from String.
        (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
        Analyze_Quantified_Expression, Analyze_Slice,
        Analyze_Null): issue an error in formal mode on unsupported constructs
        * sem_ch5.adb
        (Analyze_Block_Statement): only issue error on source block statement
        * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
        function which returns the last node in a list of nodes for which
        Comes_From_Source returns True, if any
        * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
        Last_Source_Node_In_Sequence
        * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
        Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
        mode on unsupported constructs
        * sem_ch9.adb Do not return after issuing error in formal mode, as the
        rest of the actions may be needed later on since the error is marked as
        not serious.
        * sinfo.ads: Typos in comments.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * projects.texi: Minor editing.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
        insertion character ~~
        * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
        (Set_Error_Msg_Lang): new procedure which fixes the language for use
        with insertion character ~~
        (Set_Msg_Text): treat insertion character ~~
        * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
        sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
        Formal_Error_Msg_... procedures by equivalent Error_Msg_...
        procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
        errors related to the formal language restriction not serious
        (insertion character |).
        * par.adb (Par): set formal language for error messages if needed
        * sem_ch6.adb (Check_Missing_Return): take into account possible
        generated statements at the end of the function
        * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
        enumeration value to define a new pragma SPARK_95
        * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
        SPARK_Version): new type and variables to store the SPARK version
        (none by default).
        (SPARK_Mode): return True when SPARK_Version is set
        * par-prag.adb: Correct indentation
        (Prag): take Pragma_SPARK_95 into account
        * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
        into account.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
        sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
        sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting

2011-08-01  Pascal Obry  <obry@adacore.com>

        * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
        Target_Name to Get_Path call.
        (Parse_Single_Project): Likewise.
        (Post_Parse_Context_Clause): Likewise.
        * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
        Call Initialise_Project_Path with the proper Target_Name.
        (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
        search path.
        (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
        with the proper Target_Name.
        * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
        Part.Parse routine.
        (Parse_Project_And_Apply_Config): Likewise.
        * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
        This is fine as this part of the code is supporting only native
        compilation.
        * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
        is fine as this part of the code is supporting only native compilation.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sem_util.adb (Enter_Name): issue error in formal mode on declaration
        of homonym, unless the homonym is one of the cases allowed in SPARK
        * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
        package declaration occurring after a body.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * checks.adb, exp_ch4.adb: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * einfo.ads (Access_Disp_Table): Fix documentation.
        (Dispatch_Table_Wrappers): Fix documentation.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * prj-env.adb, prj-env.ads: Minor reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sem_util.ads, sem_util.adb, par.adb, par_util.adb
        (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
        procedures out of these packages.
        * errout.ads, errout.adb
        (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
        procedures in of this package
        (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
        * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
        on misplaced later vs initial declarations, like in Ada 83
        * sem_attr.adb (Processing for Analyze_Attribute): issue error in
        formal mode on attribute of private type whose full type declaration
        is not visible
        * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
        package declaration inside a package specification
        (Analyze_Full_Type_Declaration): issue error in formal mode on
        controlled type or discriminant type
        * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
        user-defined operator means that it should come from the source
        (New_Overloaded_Entity): issue error in formal mode on overloaded
        entity.
        * sem_ch6.ads, sem_ch13.ads: typos in comments.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * atree.adb: Minor reformatting.
        * checks.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * s-parame-vms-ia64.ads: Fix typo in comment
        Minor reformatting
        * s-parame-vms-restrict.ads: Removed, unused.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * exp_ch3.adb
        (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
        * sem_ch3.adb
        (Constrain_Index): Remove side effects in the evaluation of the bounds.
        * sem_ch3.ads, sem_ch3.adb
        (Is_Constant_Bound): New extended version of the subprogram that was
        previously located inside function Exp_Ch3.Is_Variable_Size_Array.
        Moved here since it is shared by routines of sem_ch3 and exp_ch3.
        * sem_aux.ads (Constant_Value): Fix typo in comment.
        * checks.adb (Generate_Index_Checks): New implementation which, for
        array objects with constant bounds, generates the runtime check
        referencing the bounds of the array type. For other cases this routine
        provides its previous behavior obtaining such values from the array
        object.
        * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
        parent type.
        * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
        we cannot have semantic interpretations of the new node.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
        expressions.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * sem_ch8.adb: Minor code editing.
        * s-vxwext.adb: Remove trailing space.
        * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
        consistency with other files.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * par-ch10.adb: reject parameterized expressions as compilation unit.
        * sem_ch4.adb: handle properly conditional expression with overloaded
        then_clause and no else_clause.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

        * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
        like done by System.Aux_DEC.
        * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
        missing label at end of declaration (subprogram or package)
        * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
        of positional and named parameter association
        * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
        Error_Msg_SP which adds a prefix to the error message giving the name
        of the formal language analyzed
        * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
        access result type in subprogram, unconstrained array as result type,.
        (Analyze_Subprogram_Declaration): issue an error in formal mode for null
        procedure
        * sem_ch8.adb: Code clean up.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
        * einfo.ads (Access_Disp_Table): Fix documentation.
        (Dispatch_Table_Wrappers): Fix documentation.
        * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
        Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
        to enforce the documentation of this attribute.
        (Set_Is_Interface): Cleanup the assertion.
        * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
        the Underlying_Type entity before reading attribute Access_Disp_Table.
        * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
        Locate the Underlying_Type before reading attribute Access_Disp_Table.
        * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
        the Underlying_Type entity before reading attribute Access_Disp_Table.
        * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
        Locate the Underlying_Type entity before reading attribute
        Access_Disp_Table.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * s-poosiz.ads: Additional overriding indicators.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
        formal mode.
        (Analyze_Iteration_Scheme): issue error in formal mode when loop
        parameter specification does not include a subtype mark.
        * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
        formal mode on abstract subprogram.
        (Analyze_Subprogram_Specification): issue error in formal mode on
        user-defined operator.
        (Process_Formals): issue error in formal mode on access parameter and
        default expression.
        * sem_ch9.adb (Analyze_Abort_Statement,
        Analyze_Accept_Statement, Analyze_Asynchronous_Select,
        Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
        Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
        Analyze_Requeue, Analyze_Selective_Accept,
        Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
        * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
        issue error in formal mode on user-defined raise statement.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
        declaration being hidden when overriding an implicit inherited
        subprogram.
        * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
        (-gnats), do not complain about a source file that contains only a
        pragma No_Body.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
        variable if already set.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
        g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
        s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
        g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
        g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
        g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
        g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
        g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
        g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
        g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
        g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
        s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
        g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
        s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
        g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
        g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
        g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
        g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
        g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
        g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
        s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
        s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
        a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
        s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
        s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
        g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
        g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
        g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
        g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
        g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
        g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
        s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
        s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
        g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
        g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
        s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
        s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
        g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
        g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
        g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
        s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
        g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
        g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
        g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
        s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
        g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
        g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
        g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
        s-osinte-mingw.ads: Update to GPLv3 run-time license.
        Use GNAT instead of GNARL.

2011-08-01  Bob Duff  <duff@adacore.com>

        * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
        a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
        a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
        reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * debug.adb (d.D) reverve flag for the SPARK mode
        (d.E) reverve flag for SPARK generation mode
        (d.F) reverve flag for Why generation mode
        * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
        ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode):  New
        functions which return True when the corresponding modes are set
        (Formal_Language): return "spark" or "alfa" when in formal verification
        mode.
        * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
        Error_Msg to prefix the error message with a tag giving the formal
        language
        (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
        message with a tag giving the formal language
        * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
        block statement
        (Analyze_Case_Statement): issue error in formal mode on case statement
        with a single "others" case alternative
        (Analyze_Exit_Statement): issue errors in formal mode on exit
        statements which do not respect SPARK restrictions
        (Analyze_Goto_Statement): issue error in formal mode on goto statement
        (Check_Unreachable_Code): always issue an error (not a warning) in
        formal mode on unreachable code (concerns both code after an infinite
        loop and after an unconditional jump, both not allowed in SPARK)
        * sem_ch6.adb (Analyze_Return_Statement): add call to
        Set_Return_Present for a procedure containing a return statement
        (already done for functions in Analyze_Function_Return)
        (Analyze_Function_Return): issue error in formal mode on extended
        return or if return is not last statement in function
        (Check_Missing_Return): issue error in formal mode if function does
        not end with return or if procedure contains a return
        * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
        function to detect if there is an inner scope of its parameter S which
        is a loop.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch6.ads: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_util.adb (Abstract_Interface_List): Complete condition when
        processing private type declarations to avoid reading unavailable
        attribute.
        (Is_Synchronized_Tagged_Type): Complete condition when processing
        private extension declaration nodes to avoid reading unavailable
        attribute.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
        i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
        s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
        s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
        for VMS, instead parametrize the common implementation with
        System.Parameters declarations.

2011-08-01  Eric Botcazou  <ebotcazou@adacore.com>

        * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

        * seh_init.c: Fix SEH handler installation on win64.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
        double analysis of an anonymous access to subprogram, because it can
        lead to improper sharing of profiles and a back-end crash.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * make.adb, sem_ch4.adb: Minor reformatting.
        * gcc-interface/Make-lang.in: Update dependencies.
        * sem_util.adb, exp_ch5.adb: Minor reformatting.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * gnat_rm.texi: Fix definition of Long_Integer.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb: check limit size of static aggregate unconditionally,
        to prevent storage exhaustion.
        * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
        finalized is a function body, insert the cleanup code before the final
        return statement, to prevent spurious warnings.
        * s-pooglo.ads: add overriding indicator.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Operator_Check): improve error message when both a
        with_clause and a use_clause are needed to make operator usage legal.
        * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
        determine whether a compilation unit is visible within an other,
        either through a with_clause in the current unit, or a with_clause in
        its library unit or one one of its parents.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
        over an arbitrary expression of an array or container type.
        * lib-xref.adb: clarify comment.

2011-08-01  Bob Duff  <duff@adacore.com>

        * einfo.ads: Minor reformatting.
        * debug.adb: Minor comment improvement.

2011-08-01  Javier Miranda  <miranda@adacore.com>

        * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
        consider hidden subprograms as valid candidates.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

        * make.adb (Compile): Strip -mxxx switches in CodePeer mode.

2011-08-01  Vasiliy Fofanov  <fofanov@adacore.com>

        * gnat_ugn.texi: Fix typo.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
        lib-xref.adb: Minor reformatting

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
        when to generate a call to Move_Final_List.
        (Has_Controlled_Parts): Remove this function.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
        "," in choice list.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
        explicit raise of a predefined exception as Comes_From_Source if the
        original N_Raise_Statement comes from source.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * sinfo.ads: Add comment.
        * sem_ch6.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Refine check for bad component size
        clause to avoid rejecting confirming clause when atomic/aliased present.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
        better determine whether an entity reference is a write.
        * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
        subcomponent.
        * lib-xref.adb (Output_References): Do no suppress a read reference at
        the same location as an immediately preceeding modify-reference, to
        handle properly in-out actuals.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

        * env.c (__gnat_setenv) [VMS]: Refine previous change.

2011-08-01  Quentin Ochem  <ochem@adacore.com>

        * i-cstrin.adb (New_String): Changed implementation, now uses only the
        heap to compute the result.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * atree.ads: Minor reformatting.

2011-08-01  Emmanuel Briot  <briot@adacore.com>

        * g-expect.adb (Get_Command_Output): Fix memory leak.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * cstand.adb (P_Float_Type): New procedure to print the definition of
        predefined fpt types.
        (P_Mixed_Name): New procedure to print a name using mixed case
        (Print_Standard): Use P_Float_Type for printing floating point types
        * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
        precision IEEE float.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_ch3.adb: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
        the completion of a generic function, insert the new body rather than
        rewriting the original.

2011-08-01  Yannick Moy  <moy@adacore.com>

        * sinfo.ads, errout.ads: Typos in comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * par-endh.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb: Add aspects for library unit pragmas
        (Pre_Post_Aspects): New subtype.
        * par-ch12.adb (P_Generic): New syntax for aspects in packages
        * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
        * par-ch7.adb (P_Package): Remove Decl parameter
        (P_Package): Handle new syntax for aspects (before IS)
        * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
        new aspect syntax
        (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
        * par.adb (P_Aspect_Specifications): Add Semicolon parameter
        (P_Package): Remove Decl parameter
        * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
        aspects
        * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
        specs
        * sem_util.ads, sem_util.adb (Static_Boolean): New function
        * sinfo.ads: Document new syntax for aspects in packages etc.
        * sprint.adb: Handle new syntax of aspects before IS in package

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * atree.ads: Minor reformatting.
        * sem_prag.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * exp_util.adb (Insert_Actions): Fix error in handling Actions for
        case expr alternative.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb: Fix typo.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * sem_prag.adb (Check_No_Link_Name): New procedure.
        (Process_Import_Or_Interface): Use Check_No_Link_Name.
        * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
        instead of Standard_Long_Long_Float_Size global. Preparation for
        eventual removal of per type constants.
        * exp_util.ads (Get_Stream_Size): New function returning the stream
        size value of subtype E.
        * exp_util.adb (Get_Stream_Size): Implement new function.
        * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
        function.
        * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
        * einfo.adb:
        (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * cstand.adb: Fix comments.
        * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
        count of arguments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb, sem_cat.adb: Minor reformatting.

2011-08-01  Geert Bosch  <bosch@adacore.com>

        * atree.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
        * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
        * par.adb: Add with for Namet.Sp.
        * par-tchk.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
        (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
        of the init procedure of a SAL.
        * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
        New procedure.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
        reformatting.

2011-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * adaint.c (__gnat_file_time_name_attr): Get rid of warning.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

        * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
        conformant with its spec (return True only for types that have
        an overriding Initialize primitive operation that prevents them from
        having preelaborable initialization).
        * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
        initialization for controlled types in Ada 2005 or later mode.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
        Postcondition.
        (Same_Aspect): New function.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
        Type_Invariant, Precondition, Postcondition.
        * snames.ads-tmpl: Add Name_Type_Invariant.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
        here.
        (Freeze_All_Ent): Fix error in handling inherited aspects.
        * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
        already analyzed, but don't skip entire processing of a declaration,
        that's wrong in some cases of declarations being rewritten.
        (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
        Don't delay for integer, string literals
        Treat predicates in usual manner for delay, remove special case code,
        not needed.
        (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
        (Build_Predicate_Function): Update saved expression in aspect
        (Build_Invariant_Procedure): Update saved expression in aspect
        * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
        of replacement of discriminant references if the reference is simple.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
        * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
        Static_Predicate and Dynamic_Predicate.
        (Build_Predicate_Function): Add processing for Static_Predicate
        and Dynamic_Predicate.
        * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
        (From_Static_Predicate): New flag
        * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * usage.adb: Documentation cleanup for Ada version modes in usage.
        * expander.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * atree.ads: Minor comment fix.
        * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
        a-witeio.ads, sem_prag.adb: Minor reformatting.

2011-08-01  Doug Rupp  <rupp@adacore.com>

        * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
        pointers. Use descrip.h header file for convenience. Add some
        comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
        (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
        * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
        New procedure.
        (Check_Aspect_At_End_Of_Declarations): New procedure
        (Analye_Aspect_Specification): Minor changes for above procedures
        * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
        specification node as well.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
        Windows files. Use GetFilesAttributes() in this case to check for file
        existence instead of returning with an error code.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
        High is above Source length.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

        * aspects.ads (Boolean_Aspects): New subtype.
        * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
        for derived types in cases where the parent type and derived type have
        aspects.
        * freeze.adb (Freeze_Entity): Fix problems in handling derived type
        with aspects when parent type also has aspects.
        (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
        boolean expression at this point).
        * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
        accordance with final decision on the Ada 2012 feature.
        * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

        * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
        Fix Replace_Slice when High is above current string size.
        (Replace_Slice): Fix DL computation when High is above current
        string length.

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

        * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

        * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
        of node.

2011-08-01  Pascal Obry  <obry@adacore.com>

        * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
        reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
        access to protected subprograms in generic bodies.
        * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
        protected type, indicate that the convention of the subprogram is
        Convention_Protected, because it may be used in subsequent declarations
        within the protected declaration.

2011-08-01  Vincent Celier  <celier@adacore.com>

        * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
        and "final" procedures when the name of the library is "ada", to avoid
        duplicate symbols "adainit" and "adafinal" in executables.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
        quantified expression that appears within a postcondition and uses the
        Ada2012 'Result attribute.

2011-07-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * init.c (__gnat_error_handler): Cast reason to int.
        (__gnat_install_handler): Explain sa_sigaction use.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
        subprogram has copy-in copy-out parameters, try to promote the mode of
        the return type if it is passed in registers.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
        left operand as addressable.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (build_function_stub): Remove.
        (build_return_expr): Likewise.
        (convert_vms_descriptor): Declare.
        * gcc-interface/utils.c (convert_vms_descriptor): Make global.
        (build_function_stub): Move to...
        * gcc-interface/utils2.c (build_return_expr): Move to...
        * gcc-interface/trans.c (build_function_stub): ...here.
        (build_return_expr): ...here.
        (Subprogram_Body_to_gnu): Add local variable for language_function.
        Disconnect the parameter attributes cache, if any, once done with it.
        Call end_subprog_body only after setting the end_locus.
        Build the stub associated with the function, if any, at the very end.
        (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
        variables and streamline control flow.

2011-07-23  Arnaud Charlet  <charlet@adacore.com>

        PR ada/49819
        * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
        g-trasym-dwarf.adb.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        PR bootstrap/49794
        * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
        Assign to act.sa_sigaction.
        * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
        current->return_address to char * before arithmetic.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
        Correct argument types.
        Extract code from reason.
        (__gnat_install_handler): Assign to act.sa_sigaction.

2011-07-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
        (GNAT1_OBJS): ...here.

2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/48711
        * g-socthi-mingw.adb (Fill): Fix formatting.

        * gcc-interface/gigi.h: Move around comment.

2011-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

        PR ada/46350
        * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.

2011-07-14  Florian Weimer  <fw@deneb.enyo.de>

        PR ada/48711
        * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.

2011-07-13  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
        range comparison if Pmode is SImode.

2011-07-12  Laurent GUERBY  <laurent@guerby.net>
            Eric Botcazou  <ebotcazou@adacore.com>

        * adadecode.c: Wrap up in extern "C" block.
        * adadecode.h: Likewise.
        * adaint.c: Likewise.  Remove 'const' keyword.
        * adaint.h: Likewise.
        * argv.c: Likewise.
        * atree.h: Likewise.
        * cio.c: Likewise.
        * cstreams.c: Likewise.
        * env.c: Likewise.
        * exit.c: Likewise.
        * fe.h: Likewise.
        * final.c: Likewise.
        * init.c: Likewise.
        * initialize.c: Likewise.
        * link.c: Likewise.
        * namet.h: Likewise.
        * nlists.h: Likewise.
        * raise.c: Likewise.
        * raise.h: Likewise.
        * repinfo.h: Likewise.
        * seh_init.c: Likewise.
        * targext.c: Likewise.
        * tracebak.c: Likewise.
        * uintp.h: Likewise.
        * urealp.h: Likewise.
        * xeinfo.adb: Wrap up generated C code in extern "C" block.
        * xsinfo.adb: Likewise.
        * xsnamest.adb: Likewise.
        * gcc-interface/gadaint.h: Wrap up in extern "C" block.
        * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
        * gcc-interface/misc.c: Likewise.
        * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
        (GNAT1_C_OBJS): Remove ada/b_gnat1.o.  List ada/seh_init.o and
        ada/targext.o here...
        (GNAT_ADA_OBJS): ...and not here.
        (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
        (GNATBIND_OBJS): Reorder.

2011-07-07  Richard Henderson  <rth@redhat.com>

        * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
        dwarf2out_frame_init.

2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/misc.c (gnat_init): Tweak previous change.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        PR target/39150
        * gcc-interface/Makefile.in: Handle x86_64-solaris2.

2011-07-06  Richard Guenther  <rguenther@suse.de>

        * gcc-interface/misc.c (gnat_init): Merge calls to
        build_common_tree_nodes and build_common_tree_nodes_2.
        Re-initialize boolean_false_node.

2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
            Olivier Hainque  <hainque@adacore.com>
            Nicolas Setton  <setton@adacore.com>

        * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
        the type according to the ARTIFICIAL_P parameter.
        (create_type_decl): Likewise.
        (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.

2011-07-01  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
        (gnatbind): Likewise.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
        local variable throughout.  Remove useless call to Base_Type.
        (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
        Take it also into account for the volatileness of the field.  Set the
        TREE_SIDE_EFFECTS flag as well in this case.  Reorder some warnings.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
        on a dereference built for a by-ref object if it has an address clause.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.ads (Address_Taken): Document use for the second argument of
        Asm_Input and Asm_Output attributes.
        * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
        argument is an entity name, then set Address_Taken on it.
        <Attribute_Asm_Output>: Likewise.
        * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
        Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
        (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
        memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.

2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>

        PR middle-end/46500
        * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
        (ada/utils.o): Update dependencies.
        * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
        ../../../libcpp/libcpp.a.
        * gcc-interface/utils.c: Include common/common-target.h.
        (process_attributes): Use targetm_common.have_named_sections.

2011-06-07  Richard Guenther  <rguenther@suse.de>

        * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
        set_sizetype.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
        TREE_THIS_NOTRAP flag.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
        Fix thinko.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
        constants whose full view has discriminants specially.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c: Include diagnostic.h.
        (gnat_write_global_declarations): Output debug information for all
        global type declarations before finalizing the compilation unit.
        * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

        * gcc-interface/utils.c (def_fn_type): Remove extra va_end.

2011-05-25  Kai Tietz  <ktietz@redhat.com>

        * adaint.c (__gnat_to_canonical_file_list_next): Use array
        initialization instead of const/none-const pointer assignment.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
        $(EXTRA_GNAT1_OBJS).
        (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
        (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
        (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
        * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
        libcommon-target.a instead of prefix.o.

2011-05-21  Joseph Myers  <joseph@codesourcery.com>

        PR ada/49097
        * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

        * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
        * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
        instead of version.o.

2011-05-18  Kai Tietz  <ktietz@redhat.com>

        * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
        boolean_false_node instead of integer_zero_node.
        (convert_with_check): Likewise.
        * gcc-interface/decl.c (choices_to_gnu): Likewise.

2011-05-12  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
        type of the parameter is an unconstrained array, convert the actual to
        the type of the formal in the In Out and Out cases as well.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
        call build_function_type_array or build_varargs_function_type_array
        instead.
        (create_subprog_type): Don't call build_function_type; call
        build_function_type_vec instead.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
        (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
        (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.

        * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
        * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
        instead of accessing TYPE_ARG_TYPES directly.
        * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/48844
        * gcc-interface/gigi.h (get_variant_part): Declare.
        * gcc-interface/decl.c (get_variant_part): Make global.
        * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
        types have the same constant size, are record types and T1 has a
        variant part while T2 doesn't.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (begin_subprog_body): Do not call
        get_pending_sizes.
        (end_subprog_body): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

        * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
        int_const_binop.
        (pos_to_constructor): Likewise.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (gigi): Call build_function_type_list instead
        of build_function_type.  Adjust calls to...
        (build_raise_check): ...this.  Do not take a void_tree parameter.
        Call build_function_type_list instead of build_function_type.
        Fix head comment and swap couple of conditional blocks.

2011-04-30  Eric Botcazou  <ebotcazou@adacore.com>

        * gnatvsn.ads (Library_Version): Bump to 4.7.
        (Current_Year): Bump to 2011.

2011-04-29  Michael Matz  <matz@suse.de>

        * gcc-interface/misc.c (gnat_handle_option): Set
        warn_maybe_uninitialized.

2011-04-23  Gerald Pfeifer  <gerald@pfeifer.com>

        * gnat_ugn.texi (Complexity Metrics Control): Update link to
        the Watson/McCabe paper.

2011-04-23  Jim Meyering  <meyering@redhat.com>

        * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
        onto the new type.

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
        parameter.
        * gcc-interface/utils.c (create_subprog_decl): Likewise.  Set
        DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
        ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
        <all>: Do not set flags on the reused DECL node coming from an alias.
        Set DECL_IGNORED_P on the DECL node built for subprograms if they
        don't need debug info here...
        * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
        (gigi): Adjust calls to create_subprog_decl.
        (build_raise_check): Likewise.
        (establish_gnat_vms_condition_handler): Likewise.
        (Compilation_Unit_to_gnu): Likewise.
        (gnat_to_gnu): Likewise.

2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
        (NO_REORDER_ADAFLAGS): New variable.
        (EXTRA_GNATTOOLS): Always define.
        (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
        Clean up and adjust list of files compiled with special options.
        * gcc-interface/Make-lang.in: Likewise.
        (ada/decl.o): Cosmetical change.
        (ada/misc.o): Remove dependency on $(PLUGIN_H).

2011-04-20  Jim Meyering  <meyering@redhat.com>

        * initialize.c (__gnat_initialize): Remove useless if-before-free.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
        $(CFLAGS) on the link line.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
        padded type built for the return type if it is unconstrained.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
        before calling TREE_CHAIN.
        * gcc-interface/misc.c (gnat_init_ts): New function.
        (LANG_HOOKS_INIT_TS): Define.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

        * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
        instead of cgraph_node.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
        alignment on fields of the RETURN type built for the Copy-In Copy-Out
        mechanism.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
        of aggregate types that contain a placeholder.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

        * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
        TYPE_ARG_TYPES.
        (handle_type_generic_attribute): Likewise.

2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/47163
        * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.

2011-04-04  Kai Tietz  <ktietz@redhat.com>

        PR ada/47163
        * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
        to flag value.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils2.c (build_allocator): In the unconstrained array
        type case, do not strip a padding type around the array type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
        types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
        * gcc-interface/misc.c (gnat_handle_option): Remove special handling
        code for -feliminate-unused-debug-types.
        (gnat_post_options): Likewise.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
        declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
        distinct copy.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
        DECL_ARTIFICIAL flag on enumeration types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
        fat pointer types artificial unconditionally.
        <E_Array_Subtype>: Attach the base array type as a parallel type if it
        isn't artificial.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (get_dummy_type): Declare.
        (build_dummy_unc_pointer_types): Likewise.
        (finish_fat_pointer_type): Likewise.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
        fat pointer type has been built, complete it in place.
        <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
        and thin pointers.  Remove useless variable.
        (finish_fat_pointer_type): Make global and move to...
        * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
        (get_dummy_type): New function.
        (build_dummy_unc_pointer_types): Likewise.
        (gnat_pushdecl): Propage the name to the anonymous variants only.
        (update_pointer_to): Only adjust the pointer types in the unconstrained
        array case.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
        if this is a Taft amendment type and the full declaration is available.
        * gcc-interface/trans.c (process_type): Likewise.
        If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
        (process_freeze_entity): Likewise.
        * gcc-interface/utils.c (dummy_global): New static variable.
        (gnat_write_global_declarations): If there are types declared as used
        at the global level, insert them in the global hash table.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
        * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
        declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
        copy.
        (record_builtin_type): Add ARTIFICIAL_P parameter.  Set DECL_ARTIFICIAL
        flag of the type accordingly.
        * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
        finalizing types when updating the pointers to the designated type.
        <all>: Finalize the deferred types even if we didn't defer processing
        of incomplete types in this invocation.

2011-04-01  Olivier Hainque  <hainque@adacore.com>
            Nicolas Setton  <setton@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/misc.c (gnat_descriptive_type): New function.
        (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.

2011-03-28  Kai Tietz  <ktietz@redhat.com>

        * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
        Windows targets.
        (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
        * system-mingw.ads (System): Change ZCX_By_Default default to True.

        * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.

2011-03-28  Tristan Gingold  <gingold@adacore.com>

        PR ada/44431
        * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
        Use ada output of gnatbind.
        (ada/b_gnatb.adb): Ditto.
        (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
        (ada.mostlyclean, ada.stage1)
        (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
        (ada.stagefeedback): Adjust.
        * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
        Use ada output of gnatbind.
        (b_gnatm.adb): Ditto.
        (b_gnatl.o, b_gnatm.o): New rules.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
        for the padded type built to support a specified size or alignment.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
        * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
        unconditionally to the end of the unit when the designated type is
        limited_with'ed.
        <all>: Rename local variable.  Attempt to un-defer types only and do it
        for limited_with'ed types as well.
        (finalize_from_with_types): Adjust comment.  Rename variable and tidy.
        * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
        consistently and remove redundant call to finalize_from_with_types.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

        * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
        subprograms without a previous spec declared in the same unit.
        * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
        subprograms at the end of the unit instead of at the beginning.
        * gcc-interface/utils.c (create_subprog_decl): Check that the entity
        isn't public for the special handling of non-inline functions nested
        inside inline external functions.

2011-03-25  Jeff Law  <law@redhat.com>

        * gcc-interface/utils.c (def_fn_type): Add missing va_end.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

        * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
        * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
        to compute Set_Size_Depends_On_Discriminant.
        (Layout_Type): Call it on array types in back-end layout mode.
        * sem_util.adb (Requires_Transient_Scope): Return true for array
        types only if the size depends on the value of discriminants.
        * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
        type if the RHS is a call to a function that returns an unconstrained
        type with default discriminant.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
        non-conversion to the nominal result type at the end.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (create_temporary): New function taken from...
        (create_init_temporary): ...here.  Call it.
        (call_to_gnu): Create the temporary for the return value early, if any.
        Create it for a function with copy-in/copy-out parameters if there is
        no target; in other cases of copy-in/copy-out, use another temporary.
        Push the new binding level lazily.  Add and rename local variables.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (validate_size): Improve comments and tweak
        error message.
        (set_rm_size): Likewise.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
        for the padded type built in order to support a specified alignment.
        Fix incorrect formatting.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

        PR bootstrap/48216
        * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
        rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
        to the end of the list.  Adjust recursive call.  Rename local variable.
        If REORDER is true, reorder components of the record type.
        (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
        components_to_record and adjust the parameter list.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (elaborate_expression_1): When optimization is
        disabled, use the variable for bounds of loop iteration scheme.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

        PR target/12171
        * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
        out whether the expression is read-only.  Short-circuit placeholder
        case and rename a couple of local variables.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (smaller_form_type_p): Declare.
        * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
        * gcc-interface/utils.c (smaller_form_type_p): ...to here.
        (convert): Deal with conversions from a smaller form type specially.

2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
        its argument, except for the special -I- switch.

2011-02-12  Gerald Pfeifer  <gerald@pfeifer.com>

        * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
        "Ada Issues".

2011-02-08  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.

2011-02-03  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
        GNAT_FORMAL.
        * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
        * gcc-interface/utils.c (fill_vms_descriptor): ...here.  Take GNU_TYPE
        instead of GNAT_FORMAL.  Protect the expression against multiple uses.
        Do not generate the check directly, instead instantiate the template
        check present in the descriptor.
        (make_descriptor_field): Move around.
        (build_vms_descriptor32): Build a template check in the POINTER field.
        (build_vms_descriptor): Remove useless suffixes.
        * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.

2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>

        PR bootstrap/47467
        * targext.c: Include target files if IN_RTS is defined.

2011-01-26  Richard Guenther  <rguenther@suse.de>

        PR bootstrap/47467
        * targext.c: Include config.h.
        * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
        dependency.

2011-01-04  Pascal Obry  <obry@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
        end-of-case on the end label and its associated gotos, if any.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
        expressions of the parameter cache within the statement group of
        the CICO mechanism.

2011-01-04  Olivier Hainque  <hainque@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
        (set_end_locus_from_node): New function.
        (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
        make and the function end_locus.
        (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
        for the elaboration subprogram.
        (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
        set the end_locus of the expression as well.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/47131
        * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
        variables that are referenced in exception handlers volatile.



Copyright (C) 2011 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.