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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2006] - Rev 729

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

2006-12-07  Geoffrey Keating  <geoffk@apple.com>

        * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
        * adaint.c: Likewise.

2006-12-05  Aldy Hernandez  <aldyh@redhat.com>

        Merge from gimple-tuples-branch:
        2006-11-02  Aldy Hernandez  <aldyh@redhat.com>

        * ada-tree.h (lang_tree_node): Handle gimple tuples.
        * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
        GIMPLE_MODIFY_STMT.

2006-12-02  Kazu Hirata  <kazu@codesourcery.com>

        * Makefile.in, mingw32.h, trans.c: Fix comment typos.
        * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
        Fix typos.

2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/27936
        * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
        if the initializer takes into account the padding.

2006-11-11  Richard Guenther  <rguenther@suse.de>

        * trans.c (maybe_stabilize_reference): Remove handling of
        FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.

2006-11-05  Arnaud Charlet  <charlet@adacore.com>

        PR ada/29707
        * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
        (To_Target_Priority): New function.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
        a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
        s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
        a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
        a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
        a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
        a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
        a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
        a-szbzha.adb: Minor reformatting. Fix header.

        * a-numaux-x86.adb: Add parentheses for use of unary minus
        * a-ngcefu.adb: Supply missing parentheses for unary minus
        * a-ngcoty.adb: Add parens for use of unary minus
        * a-ngelfu.adb: Add missing parens for unary minus
        * a-tifiio.adb: Add parentheses for uses of unary minus

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Bob Duff  <duff@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
        with multiplying operator.
        (Expected_Type_Is_Any_Real): New function to determine from the Parent
        pointer whether the context expects "any real type".
        (Resolve_Arithmetic_Op): Do not give an error on calls to the
        universal_fixed "*" and "/" operators when they are used in a context
        that expects any real type. Also set the type of the node to
        Universal_Real in this case, because downstream processing requires it
        (mainly static expression evaluation).
        Reword some continuation messages
        Add some \\ sequences to continuation messages
        (Resolve_Call): Refine infinite recursion case. The test has been
        sharpened to eliminate some false positives.
        Check for Current_Task usage now includes entry barrier, and is now a
        warning, not an error.
        (Resolve): If the call is ambiguous, indicate whether an interpretation
        is an inherited operation.
        (Check_Aggr): When resolving aggregates, skip associations with a box,
        which are priori correct, and will be replaced by an actual default
        expression in the course of expansion.
        (Resolve_Type_Conversion): Add missing support for conversion from
        a class-wide interface to a tagged type. Minor code cleanup.
        (Valid_Tagged_Converion): Add support for abstact interface type
        conversions.
        (Resolve_Selected_Component): Call Generate_Reference here rather than
        during analysis, and use May_Be_Lvalue to distinguish read/write.
        (Valid_Array_Conversion): New procedure, abstracted from
        Valid_Conversion, to incorporate accessibility checks for arrays of
        anonymous access types.
        (Valid_Conversion): For a conversion to a numeric type occurring in an
        instance or inlined body, no need to check that the operand type is
        numeric, since this has been checked during analysis of the template.
        Remove legacy test for scope name Unchecked_Conversion.

        * sem_res.ads: Minor reformatting

        * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
        (PE_Current_Task_In_Entry_Body): New exception code
        (SE_Restriction_Violation): Removed, not used

        * a-except.ads:  Update comments.

        * types.h, types.ads: Add definition for Validity_Check
        (PE_Current_Task_In_Entry_Body): New exception code
        (SE_Restriction_Violation): Removed, not used

2006-10-31  Thomas Quinot  <quinot@adacore.com>

        * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
        error status.

2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
            Jose Ruiz  <ruiz@adacore.com>

        * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
        part of Ada.Calendar: all subprogram raise Unimplemented.
        (Split_W_Offset): Temp function body, raising Unimplemented

        * a-calend.ads, a-calend-vms.ads:
        Add imported variable Invalid_TZ_Offset used to designate targets unable
        to support time zones.
        (Unimplemented): Temporary function raised by the body of new
        subprograms below.
        (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
        unit provides handling of leap seconds and is used by the new Ada 2005
        packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
        (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
        version returns an extra value which is the offset to UTC.

        * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
        (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
        (Split_W_Offset): New function body.
        (Time_Of): When a date is close to UNIX epoch, compute the time for
        that date plus one day (that amount is later substracted after
        executing mktime) so there are no problems with time zone adjustments.

        * a-calend-mingw.adb: Remove Windows specific version no longer needed.

        * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
        a-catizo.ads, a-catizo.adb: New files.

        * impunit.adb: Add new Ada 2005 entries

        * sysdep.c: Add external variable __gnat_invalid_tz_offset.
        Rename all occurences of "__gnat_localtime_r" to
        "__gnat_localtime_tzoff".
        (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
        zone data and calculate the GMT offset.
        (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
        Use the field "tm_gmtoff" to extract the GMT offset.
        (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
        the external variable "timezone" to calculate the GMT offset.

2006-10-31  Arnaud Charlet  <charlet@adacore.com>
            Jose Ruiz  <ruiz@adacore.com>

        * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
        s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
        s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
        s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
        System.Any_Priority to a POSIX priority on the target.

        * system-linux-ia64.ads:
        Extend range of Priority types on Linux to use the whole range made
        available by the system.

        * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
        function maps from System.Any_Priority to a POSIX priority on the
        target.
        (PTHREAD_PRIO_PROTECT): Set real value.
        (PTHREAD_PRIO_INHERIT): Now a function.
        (SIGCPUFAIL): New signal.
        (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
        are documented as reserved by the OS.

        * system-aix.ads: Use the full range of priorities provided by the
        system on AIX.

        * s-taprop-posix.adb: Call new function To_Target_Priority.
        (Set_Priority): Take into account Task_Dispatching_Policy and
        Priority_Specific_Dispatching pragmas when determining if Round Robin
        must be used for scheduling the task.

        * system-linux-x86_64.ads, system-linux-x86.ads,
        system-linux-ppc.ads: Extend range of Priority types on Linux to use
        the whole range made available by the system.

        * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
        s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
        s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
        when deallocating the TCB in order to avoid potential references to
        deallocated data.
        (Set_Priority): Take into account Task_Dispatching_Policy and
        Priority_Specific_Dispatching pragmas when determining if Round Robin
        or FIFO within priorities must be used for scheduling the task.

        * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
        the Thread field (to be used internally by the run-time system) and the
        kernel-level task id in the LWP field (to be used by the debugger).
        (Create_Task): Reorganize to unify the calls to taskSpawn into a single
        instance, and propagate the current task options to the spawned task.
        (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
        (Initialize): Set Round Robin dispatching when the corresponding pragma
        is in effect.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
        system-linux-hppa.ads, system-hpux-ia64.ads,
        system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
        system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
        system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
        system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
        Default_Bit_Order) to kill constant condition warnings for references
        to this switch.

2006-10-31  Vincent Celier  <celier@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
        mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
        mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
        Ext_To, when building the library file name

        * mlib-tgt-vxworks.adb: ditto.
        (Get_Target_Suffix): Add support for x86 targets.

        * mlib-fil.ads, mlib-fil.adb: (Append_To): New function

        * mlib-tgt-darwin.adb:
        Use Append_To, instead of Ext_To, when building the library file name
        (Flat_Namespace): New global variable.
        (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
        (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
        (Link_Shared_Libgcc): Delete.
        (Build_Dynamic_Library): Adjust for above changes.
        Use Opt package.
        (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.

2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>

        * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
        (Initialize): Add type conversions required by above change.

2006-10-31  Jose Ruiz  <ruiz@adacore.com>

        * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
        (getpid): New body for this function that uses the underlying taskIdSelf
        function for VxWorks 5 and VxWorks 6 in kernel mode.
        (unsigned_int): New type, modular to allow logical bit operations.
        (taskOptionsGet): New imported function.

        * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
        field to be compliant with the type used by the corresponding operating
        system primitive.

2006-10-31  Pascal Obry  <obry@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>
            Vincent Celier  <celier@adacore.com>

        * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
        ASCII version of the registry API. This is needed as the GNAT runtime
        is now UNICODE by default.
        Include version.h.
        (get_gcc_version): Do not hardcode the return value.
        (__gnat_file_time_name): On Windows properly set the default returned
        value to -1 which corresponds to Invalid_Time.
        (__gnat_fopen): New routine. A simple wrapper on all plateforms
         except on Windows where it does conversion for unicode support.
        (__gnat_freopen): Idem.
        (__gnat_locate_exec_on_path): If environment variable PATH does not
        exist, return a NULL pointer

        * adaint.h: (__gnat_fopen): Declare.
        (__gnat_freopen): Likewise.

        * mingw32.h (_tfreopen): Define this macro here for older MingW
        version.
        Activate the unicode support on platforms using a MingW runtime
        version 3.9 or newer.

        * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
        This is needed for proper unicode support on Windows.
        (freopen): Idem.

2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
            Nicolas Setton  <setton@adacore.com>
            Olivier Hainque  <hainque@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * gigi.h: (tree_code_for_record_type): Declare.
        (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
        (get_global_renaming_pointers): Rename to
        invalidate_global_renaming_pointers.
        (static_ctors): Delete.
        (static_dtors): Likewise.
        (gnat_write_global_declarations): Declare.
        (create_var_decl): Adjust descriptive comment to indicate that the
        subprogram may return a CONST_DECL node.
        (create_true_var_decl): Declare new function, similar to
        create_var_decl but forcing the creation of a VAR_DECL node.
        (get_global_renaming_pointers): Declare.
        (add_global_renaming_pointer): Likewise.

        * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.

        * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
        tree before setting TREE_ADDRESSABLE for by-reference return mechanism
        processing.
        (gnat_to_gnu_entity): Remove From_With_Type from computation for
        imported_p.
        <E_Access_Type>: Use the Non_Limited_View as the full view of the
        designated type if the pointer comes from a limited_with clause.  Make
        incomplete designated type if it is in the main unit and has a freeze
        node.
        <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
        Underlying_Full_View similarly.  Return earlier if the full view already
        has an associated tree.
        (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
        (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
        (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
        reference type built for objects with an address clause.
        Use create_true_var_decl with const_flag set for
        DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
        TREE_READONLY set.
        (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
        for Character and Wide_Character types. This info is read by the
        dwarf-2 writer, and is needed to be able to use the command "ptype
        character" in the debugger.
        (gnat_to_gnu_entity): When generating a type representing
        a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
        so that debug writers can distinguish it from ordinary integers.
        (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
        addition to TREE_READONLY to assert the constantness of variables for
        elaboration purposes.
        (gnat_to_gnu_entity, subprogram cases): Change loops on formal
        parameters to call new Einfo function First_Formal_With_Extras.
        (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
        protected type with its corresponding discriminant, to obtain a usable
        declaration
        (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
        for a multiple elaboration of the "equivalent" type.
        (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
        into record_global_renaming_pointer.
        (gnat_to_gnu_entity) <E_Array_Type>: Do not force
        TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
        <E_Array_Subtype>: Likewise.
        (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
        incomplete subtypes and incomplete subtypes of incomplete types visible
        through a limited with clause.
        (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
        the base index type for the maximum size of the array only if they are
        constant.
        (gnat_to_gnu_entity, renaming object case): Do not wrap up the
        expression into a SAVE_EXPR if stabilization failed.

        * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
        a result decl into DECL_BY_REFERENCE on this decl, now what is expected
        by lower level compilation passes.
        (gnat_genericize): New function, lowering a function body to GENERIC.
        Turn the type of RESULT_DECL into a real reference type if the decl
        has been marked DECL_BY_REFERENCE, and adjust references to the latter
        accordingly.
        (gnat_genericize_r): New function. Tree walking callback for
        gnat_genericize.
        (convert_from_reference, is_byref_result): New functions. Helpers for
        gnat_genericize_r.
        (create_type_decl): Call gnat_pushdecl before calling
        rest_of_decl_compilation, to make sure that field TYPE_NAME of
        type_decl is properly set before calling the debug information writers.
        (write_record_type_debug_info): The heuristics which compute the
        alignment of a field in a variant record might not be accurate. Add a
        safety test to make sure no alignment is set to a smaller value than
        the alignment of the field type.
        (make_dummy_type): Use the Non_Limited_View as the underlying type if
        the type comes from a limited_with clause. Do not loop on the full view.
        (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
        (dummy_node_table): New global variable, moved from decl.c.
        (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
        (save_gnu_tree): Use above macros.
        (get_gnu_tree): Likewise.
        (present_gnu_tree): Likewise.
        (init_dummy_type): New function, moved from decl.c. Use above macros.
        (make_dummy_type): Likewise.
        (tree_code_for_record_type): New function extracted from make_dummy_type
        (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
        (static_ctors): Change it to a vector, make static.
        (static_dtors): Likewise.
        (end_subprog_body): Adjust for above change.
        (build_global_cdtor): Moved from trans.c.
        (gnat_write_global_declarations): Emit global constructor and
        destructor, and call cgraph_optimize before emitting debug info for
        global declarations.
        (global_decls): New global variable.
        (gnat_pushdecl): Store the global declarations in global_decls, for
        later use.
        (gnat_write_global_declarations): Emit debug information for global
         declarations.
        (create_var_decl_1): Former create_var_decl, with an extra argument to
         state whether the creation of a CONST_DECL is allowed.
        (create_var_decl): Behavior unchanged. Now a wrapper around
        create_var_decl_1 allowing CONST_DECL creation.
        (create_true_var_decl): New function, similar to create_var_decl but
        forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
        (create_field_decl): Do not always mark the field as addressable
        if its type is an aggregate.
        (global_renaming_pointers): New static variable.
        (add_global_renaming_pointer): New function.
        (get_global_renaming_pointers): Likewise.

        * misc.c (gnat_dwarf_name): New function.
        (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
        (gnat_post_options): Add comment about structural alias analysis.
        (gnat_parse_file): Do not call cgraph_optimize here.
        (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.

        * trans.c (process_freeze_entity): Don't abort if we already have a
        non dummy GCC tree for a Concurrent_Record_Type, as it might
        legitimately have been elaborated while processing the associated
        Concurrent_Type prior to this explicit freeze node.
        (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
        exception handler volatile if it is of variable size.
        (process_type): Remove bypass for types coming from a limited_with
        clause.
        (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
        actual, convert the corresponding gnu_actual to the real destination
        type when necessary.
        (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
        originally TREE_READONLY but whose elaboration cannot be performed
        statically.
        Part of fix for F504-021.
        (tree_transform, subprogram cases): Change loops on formal parameters to
        call new Einfo function First_Formal_With_Extras.
        (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
        stemming from type conversion for the lhs.
        (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
        number of bits per unit for components of records.
        (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
        (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
        with At_End_Proc after the SJLJ EH cleanup.
        (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
        compilation unit.
        (elaborate_all_entities): Do not retest type_annotate_only.
        (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
        result type of an abstract subprogram, which may be an itype associated
        with an anonymous access result (related to AI-318-02).
        (build_global_cdtor): Move to utils.c.
        (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
        this choice is not a null tree nor an integer constant.
        (gigi): Run unshare_save_expr via walk_tree_without_duplicates
        on the body of elaboration routines instead of mark_unvisited.
        (add_stmt): Do not mark the tree.
        (add_decl_expr): Tweak comment.
        (mark_unvisited): Delete.
        (unshare_save_expr): New static function.
        (call_to_gnu): Issue an error when making a temporary around a
        procedure call because of non-addressable actual parameter if the
        type of the formal is by_reference.
        (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
        after building the elaboration routine.

2006-10-31  Bob Duff  <duff@adacore.com>

        * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
        as finalization-started, so we can raise Program_Error on 'new'.

        * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
        collection has already started.

        * s-finimp.ads (Collection_Finalization_Started): Added new special
        flag value for indicating that a collection's finalization has started.

        * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
        create a task whose master has already waited for dependent tasks.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * lib.adb, lib.ads: (In_Predefined_Unit): New functions

        * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
        a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
        a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
        a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
        a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
        a-except-2005.ads: Add pragma Preelaborable_Warning

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Jose Ruiz  <ruiz@adacore.com>

        * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.

        * ali.adb (Get_Name): Properly handle scanning of wide character names
        encoded with brackets notation.
        (Known_ALI_Lines): Add S lines to this list.
        (Scan_ALI): Acquire S (priority specific dispatching) lines.
        New flag Elaborate_All_Desirable in unit table

        * ali.ads (Priority_Specific_Dispatching): Add this range of
        identifiers to be used for Priority_Specific_Dispatching table entries.
        (ALIs_Record): Add First_Specific_Dispatching and
        Last_Specific_Dispatching that point to the first and last entries
        respectively in the priority specific dispatching table for this unit.
        (Specific_Dispatching): Add this table for storing each S (priority
        specific dispatching) line encountered in the input ALI file.
        New flag Elaborate_All_Desirable in unit table

        * bcheck.adb: (Check_Configuration_Consistency): Add call to
        Check_Consistent_Dispatching_Policy.
        (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
        verifying that the use of Priority_Specific_Dispatching,
        Task_Dispatching_Policy, and Locking_Policy is consistent across the
        partition.

        * bindgen.adb: (Public_Version_Warning): function removed.
        (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
        required information from ALI files in order to initialize the table
        containing the specific dispatching policy.
        (Gen_Adainit_Ada): Generate the variables required for priority specific
        dispatching entries (__gl_priority_specific_dispatching and
        __gl_num_specific_dispatching).
        (Gen_Adainit_C): Generate the variables required for priority specific
        dispatching entries (__gl_priority_specific_dispatching and
        __gl_num_specific_dispatching).
        (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
        pragma entries.
        (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
        (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
        (Tab_To): Removed.
        (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
        a call to gnat_set_globals.
        Generate a string containing settings from
        Priority_Specific_Dispatching pragma entries.
        (Gen_Object_Files_Options): Do not include the runtime libraries when
        pragma No_Run_Time is specified.

        * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
        consistency with s-intman-posix.adb.
        (__gnat_error_handler, case FreeBSD): Account for the fact that the
        handler is installed with SA_SIGINFO.
        (__gnat_adjust_context_for_raise, FreeBSD case): New function for
        FreeBSD ZCX support, copied from Linux version.
        Add MaRTE-specific definitions for the linux target. Redefine sigaction,
        sigfillset, and sigemptyset so the routines defined by MaRTE.
        (__gl_priority_specific_dispatching): Add this variable that stores the
        string containing priority specific dispatching policies in the
        partition.
        (__gl_num_specific_dispatching): Add this variable that indicates the
        highest priority for which a priority specific dispatching pragma
        applies.
        (__gnat_get_specific_dispatching): Add this routine that returns the
        priority specific dispatching policy, as set by a
        Priority_Specific_Dispatching pragma appearing anywhere in the current
        partition. The input argument is the priority number, and the result
        is the upper case first character of the policy name.
        (__gnat_set_globals): Now a dummy function.
        (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
        mechargs instead of sigargs, as the latter can be retrieved from the
        former and sigargs is not what we want on ia64.
        (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
        mechargs argument.
        (__gnat_adjust_context_for_raise, ia64-vms): New function.
        (tasking_error): Remove unused symbol.
        (_abort_signal): Move this symbol to the IRIX specific part since this
        is the only target that uses this definition.
        (Check_Abort_Status): Move this symbol to the IRIX specific part since
        this is the only target that uses this definition.
        (Lock_Task): Remove unused symbol.
        (Unlock_Task): Remove unused symbol.

        * lib-writ.adb (Write_ALI): Output new S lines for
        Priority_Specific_Dispatching pragmas.
        Implement new flag BD for elaborate body desirable

        * lib-writ.ads: Document S lines for Priority Specific Dispatching.
        (Specific_Dispatching): Add this table for storing the entries
        corresponding to Priority_Specific_Dispatching pragmas.
        Document new BD flag for elaborate body desirable

        * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
        of known pragmas.

2006-10-31  Javier Miranda  <miranda@adacore.com>

        * a-tags.ads, a-tags.adb:
        (Predefined_DT): New function that improves readability of the code.
        (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
        Inherit_DT): Use the new function Predefined_DT to improve code
        readability.
        (Register_Interface_Tag): Update assertion.
        (Set_Interface_Table): Update assertion.
        (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
        determining progenitor interfaces in Tags.
        (Inherit_CPP_DT): New subprogram.

        * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
        analysis of the thunk code.
        (Expand_Interface_Conversion): Handle run-time conversion of
        access to class wide types.
        (Expand_Dispatching_Call): When generating the profile for the
        subprogram itype for a dispatching operation, properly terminate the
        formal parameters chaind list (set the Next_Entity of the last formal
        to Empty).
        (Collect_All_Interfaces): Removed. This routine has been moved to
        sem_util and renamed as Collect_All_Abstract_Interfaces.
        (Set_All_DT_Position): Hidden entities associated with abstract
        interface primitives are not taken into account in the check for
        3.9.3(10); this check is done with the aliased entity.
        (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
        interfacing with CPP by default.
        (Expand_Interface_Conversion): Add missing support for static conversion
        from an interface to a tagged type.
        (Collect_All_Interfaces): Add new out formal containing the list of
        abstract interface types to cleanup the subprogram Make_DT.
        (Make_DT): Update the code to generate the table of interfaces in case
        of abstract interface types.
        (Is_Predefined_Dispatching_Alias): New function that returns true if
        a primitive is not a predefined dispatching primitive but it is an
        alias of a predefined dispatching primitive.
        (Make_DT): If the ancestor of the type is a CPP_Class and we are
        compiling under full ABI compatibility mode we avoid the generation of
        calls to run-time services that fill the dispatch tables because under
        this mode we currently inherit the dispatch tables in the IP subprogram.
        (Write_DT): Emit an "is null" indication for a null procedure primitive.
        (Expand_Interface_Conversion): Use an address as the type of the formal
        of the internally built function that handles the case in which the
        target type is an access type.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * bindusg.ads, bindusg.adb:
        Change to package and rename procedure as Display, which
        now ensures that it only outputs usage information once.

2006-10-31  Jose Ruiz  <ruiz@adacore.com>

        * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
        using RTPs.

        * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
        when using RTPs.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * treepr.adb: Use new subtype N_Membership_Test

        * checks.ads, checks.adb: Add definition for Validity_Check
        (Range_Or_Validity_Checks_Suppressed): New function
        (Ensure_Valid): Test Validity_Check suppressed
        (Insert_Valid_Check): Test Validity_Check suppressed
        (Insert_Valid_Check): Preserve Do_Range_Check flag
        (Validity_Check_Range): New procedure
        (Expr_Known_Valid): Result of membership test is always valid
        (Selected_Range_Checks): Range checks cannot be applied to discriminants
        by themselves. Disabling those checks must also be done for task types,
        where discriminants may be used for the bounds of entry families.
        (Apply_Address_Clause_Check): Remove side-effects if address expression
        is non-static and is not the name of a declared constant.
        (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
        Code cleanup and new error messages.
        (Enable_Range_Check): Test for some cases of suppressed checks
        (Generate_Index_Checks): Suppress index checks if index checks are
        suppressed for array object or array type.
        (Apply_Selected_Length_Checks): Give warning for compile-time detected
        length check failure, even if checks are off.
        (Ensure_Valid): Do not generate a check on an indexed component whose
        prefix is a packed boolean array.
        * checks.adb: (Alignment_Checks_Suppressed): New function
        (Apply_Address_Clause_Check): New procedure, this is a completely
        rewritten replacement for Apply_Alignment_Check
        (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
        we request a discriminal value only in case of discriminants.
        (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
        assignments where the target subtype is unconstrained and the target
        object is a parameter or dereference (other aliased cases are known
        to be unconstrained).

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
        prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
        vms_conv.adb: Fix bad table increment values (much too small)

        * table.adb (Realloc): Make sure we get at least some new elements
        Defends against silly small values for table increment

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Bob Duff  <duff@adacore.com>

        * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
        entities. Move other fields around to make this possible
        (Is_Derived_Type): Add missing call to Is_Type.
        (Extra_Formals): New function for subprograms, entries, subprogram
        types.
        (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
        (First_Formal_With_Extras): New function for subprogs, entries, subp
        types.
        (Write_Field28_Name): New procedure for node display of "Extra_Formals".
        Add node information for E_Return_Statement.
        (Elaborate_Body_Desirable): New flag
        (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
        to be Is_Inherently_Limited_Type, because return-by-reference has
        no meaning in Ada 2005.
        (E_Return_Statement): New entity kind.
        (Return_Applies_To): Field of E_Return_Statement.
        (Is_Return_Object): New flag in object entities.
        (Is_Dynamic_Scope): Make it True for E_Return_Statement.
        (Must_Have_Preelab_Init): New flag
        (Known_To_Have_Preelab_Init): New flag
        (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
        (Is_Visible_Formal): New flag on entities in formal packages.
        (Low_Bound_Known): New flag
        (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
        Incomplete_Kind.
        (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
        output when Id is an incomplete subtype.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
        Avoid abbreviation Creat
        (Finalize): List all sources in extended mail source if -gnatl
        switch is active.
        Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
        (Finalize): Implement new -gnatl=xxx switch to output listing to file
        (Set_Specific_Warning_On): New procedure
        (Set_Specific_Warning_Off): New procedure
        Add implementation of new insertion \\
        (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
        (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
        types.
        (Error_Msg_Internal): Make sure that we set Last_Killed to
        True when a message from another package is suppressed.
        Implement insertion character ~ (insert string)
        (First_Node): Minor adjustments to get better placement.

        * frontend.adb:
        Implement new -gnatl=xxx switch to output listing to file

        * gnat1drv.adb:
        Implement new -gnatl=xxx switch to output listing to file

        * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
        (Commands_To_Stdout): New flag
        Implement new -gnatl=xxx switch to output listing to file
        New switch Dump_Source_Text
        (Warn_On_Deleted_Code): New warning flag for -gnatwt
        Define Error_Msg_Line_Length
        (Warn_On_Assumed_Low_Bound): New switch

        * osint.ads, osint.adb
        (Normalize_Directory_Name): Fix bug.
        Implement new -gnatl=xxx switch to output listing to file
        (Concat): Removed, replaced by real concatenation
        Make use of concatenation now allowed in compiler
        (Executable_Prefix.Get_Install_Dir): First get the full path, so that
        we find the 'lib' or 'bin' directory even when the tool has been
        invoked with a relative path.
        (Executable_Name): New function taking string parameters.

        * osint-c.ads, osint-c.adb:
        Implement new -gnatl=xxx switch to output listing to file

        * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File

        * switch-c.adb:
        Implement new -gnatl=xxx switch to output listing to file
        Recognize new -gnatL switch
        (no longer keep in old warning about old style usage)
        Use concatenation to simplify code
        Recognize -gnatjnn switch
        (Scan_Front_End_Switches): Clean up handling of -gnatW
        (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
        (Set_Specific_Warning_Off): New procedure
        (Warning_Specifically_Suppressed): New function
        (Validate_Specific_Warnings): New procedure
        (Output_Msg_Text): Complete rewrite to support -gnatjnn

        * err_vars.ads: Implement insertion character ~ (insert string)

2006-10-31  Bob Duff  <duff@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
        the parent part is a build-in-place function call, generate assignments.
        (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
        are build-in-place function calls.
        (Replace_Self_Reference): New subsidiary of
        Make_OK_Assignment_Statement, to replace an access attribute that is a
        self-reference into an access to the appropriate component of the
        target object. Generalizes previous mechanism to handle self-references
        nested at any level.
        (Is_Self_Referential_Init): Remove, not needed.
        (Is_Self_Referential_Init): New predicate to simplify handling of self
        referential components in record aggregates.
        (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
        check for presence of entity before checking for self-reference.
        (Has_Default_Init_Comps): Return True if a component association is a
        self-reference to the enclosing type, which can only come from a
        default initialization.
        (Make_OK_Assignment_Statement): If the expression is of the form
        Typ'Acc, where Acc is an access attribute, the expression comes from a
        default initialized self-referential component.
        (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
        that has been derived from several abstract interfaces we must also
        initialize the tags of the secondary dispatch tables.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Thomas Quinot  <quinot@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb:
        (Expand_Access_To_Protected_Op): If the context indicates that an access
        to a local operation may be transfered outside of the object, create an
        access to the wrapper operation that must be used in an external call.
        (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
        target, pass the Valid attribute applied to a floating-point prefix on
        to the back end without expansion.
        (Storage_Size): Use the new run-time function Storage_Size to retrieve
        the allocated storage when it is specified by a per-object expression.
        (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
        Nothing to do here, the attribute has been rewritten during semantic
        analysis.
        (Expand_Attribute_Reference): Handle expansion of the new Priority
        attribute
        (Find_Fat_Info): Handle case of universal real
        (Expand_Access_To_Protected_Op): Fix use of access to protected
        subprogram from inside the body of a protected entry.
        (Expand_Access_To_Protected_Op): Common procedure for the expansion of
        'Access and 'Unrestricted_Access, to transform the attribute reference
        into a fat pointer.
        (Is_Constrained_Aliased_View): New predicate to help determine whether a
        subcomponent's enclosing variable is aliased with a constrained subtype.
        (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
        test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
        an aliased prefix must be known to be constrained in order to use True
        for the attribute value, and now it's possible for some aliased views
        to be unconstrained.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
        (Expand_Entity_Reference): Correct error of not handling subprogram
        formals in current_value processing.

2006-10-31  Javier Miranda  <miranda@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
        register in the final list objects containing class-wide interfaces;
        otherwise we incorrectly register the tag of the interface in the final
        list.
        (Make_Controlling_Function_Wrappers): Add missing barrier to do not
        generate the wrapper if the parent primitive is abstract. This is
        required to report the correct error message.
        (Expand_N_Subtype_Indication): Do validity checks on range
        (Clean_Task_Names): If an initialization procedure includes a call to
        initialize a task (sub)component, indicate that the procedure will use
        the secondary stack.
        (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
        compatibility for interfacing with CPP by default.
        (Expand_N_Object_Declaration): Only build an Adjust call when the
        object's type is a nonlimited controlled type.
        * exp_ch3.adb: Add with and use of Exp_Ch6.
        (Expand_N_Object_Declaration): Check for object initialization that is a
        call to build-in-place function and apply Make_Build_In_Place_Call_In_
        Object_Declaration to the call.
        (Freeze_Type): When the designated type of an RACW was not frozen at the
        point where the RACW was declared, validate the primitive operations
        with respect to E.2.2(14) when it finally is frozen.
        (Build_Initialization_Call,Expand_Record_Controller): Rename
        Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
        return-by-reference has no meaning in Ada 2005.
        (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
        to register tag of the immediate ancestor interfaces in the
        run-time structure.
        (Init_Secondary_Tags): Moved to the specification to allow the
        initialization of extension aggregates with abstract interfaces.
        (Build_Master_Renaming): Make public, for use by function declarations
        whose return type is an anonymous access type.
        (Freeze_Record_Type): Replace call to Insert_List_Before by call to
        Insert_List_Before_And_Analyze after the generation of the specs
        associated with null procedures.
        (Expand_Tagged_Root): Update documentation in its specification.
        (Init_Secondary_Tags): Update documentation.
        (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
        tibility mode and the immediate ancestor is a CPP_Pragma tagged type
        then generate code to inherit the contents of the dispatch table
        directly from the ancestor.
        (Expand_Record_Controller): Insert controller component after tags of
        implemented interfaces.
        (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
        create null procedure overridings when null procedures are inherited
        from interfaces.
        (Make_Null_Procedure_Specs): New procedure to generate null procedure
        declarations for overriding null primitives inherited from interfaces.
        (Is_Null_Interface_Procedure): New function in
        Make_Null_Procedure_Specs.
        (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
        immediate ancestor of a tagged type is an abstract interface type we
        must generate the specification of the predefined primitives associated
        with controlled types (because the dispatch table of the ancestor is
        null and hence these entries cannot be inherited). This is required to
        elaborate well the dispatch table.

2006-10-31  Javier Miranda  <miranda@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Bob Duff  <duff@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
        conversion.
        (Expand_N_In): Do validity checks on range
        (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
        (Expand_N_Allocator): For "new T", if the object is constrained by
        discriminant defaults, allocate the right amount of memory, rather than
        the maximum for type T.
        (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
        when the allocator is initialized by a build-in-place call, since the
        allocator is already rewritten as a reference to the function result,
        and this prevents an unwanted duplication of the function call.
        Add with and use of Exp_Ch6.
        (Expand_Allocator_Expresssion): Check for an allocator whose expression
        is a call to build-in-place function and apply
        Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
        untagged designated types).
        (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
        optimization if source or target is biased.
        (Expand_N_Allocator): Add comments for case of an allocator within a
        function that returns an anonymous access type designating tasks.
        (Expand_N_Allocator): apply discriminant checks for access
        discriminants of anonymous access types (AI-402, AI-416)

2006-10-31  Bob Duff  <duff@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.

        * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
        (Expand_N_Assignment_Statement): Call
        Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
        build-in-place function call. Currently, this can happen only for
        assignments that come from aggregates.
        Add -gnatd.l --Use Ada 95 semantics for limited function returns,
        in order to alleviate the upward compatibility introduced by AI-318.
        (Expand_N_Extended_Return_Statement): Add support for handling the
        return object as a build-in-place result.
        (Expand_Non_Function_Return): Implement simple return statements nested
        within an extended return.
        (Enable_New_Return_Processing): Turn on the new processing of return
        statements.
        (Expand_Non_Function_Return): For a return within an extended return,
        don't raise Program_Error, because Sem_Ch6 now gives a warning.
        (Expand_N_Extended_Return_Statement): Implement AI-318
        (Expand_Simple_Function_Return): Ditto.
        (Expand_N_If_Statement): Handle new -gnatwt warning
        (Expand_N_Case_Statement): Handle new -gnatwt warning
        (Expand_N_Assignment): Handle assignment to the Priority attribute of
        a protected object.
        (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
        validity checking of assignments to elementary record components.
        (Expand_N_Return_Statement): return Class Wide types on the secondary
        stack independantly of their controlled status since with HIE runtimes,
        class wide types are not potentially controlled anymore.

        * expander.adb (Expand): Add case for new N_Extended_Return_Statement
        node kind.

        * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
        Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
        it expects a block, procedure, or task. The return statement will get
        turned into a block, and Expand_Cleanup_Actions will happen then.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Bob Duff  <duff@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
        capability.
        (Expand_Inlined_Call): Tagged types are by-reference types, and
        therefore should be replaced by a renaming declaration in the expanded
        body, as is done for limited types.
        (Expand_Call): If this is a call to a function with dispatching access
        result, propagate tag from context.
        (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
        CPP by default.
        (Make_Build_In_Place_Call_In_Assignment): New procedure to do
        build-in-place when the right-hand side of an assignment is a
        build-in-place function call.
        (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
        of the explicit dereference of the allocator to the result subtype of
        the build-in-place function. This is needed to satisfy type checking
        in cases where the caller's return object is created by an allocator for
        a class-wide access type and the type named in the allocator is a
        specific type.
        (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
        conversion of the reference to the declared object to the result subtype
        of the build-in-place function. This is needed to satisfy type checking
        in cases where the declared object has a class-wide type. Also, in the
        class-wide case, change the type of the object entity to the specific
        result subtype of the function, to avoid passing a class-wide object
        without explicit initialization to the back end.
        (Register_Interface_DT_Entry): Moved outside the body of
        Freeze_Subprogram because this routine is now public; it is called from
        Check_Dispatching_Overriding to handle late overriding of abstract
        interface primitives.
        (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
        adding an implicit access actual on a call to a build-in-place function.
        (Expand_Actuals): Test for an actual parameter that is a call to a
        build-in-place function and apply
        Make_Build_In_Place_Call_In_Anonymous_Context to the call.
        (Is_Build_In_Place_Function): New function to determine whether an
        entity is a function whose calls should be handled as build-in-place.
        (Is_Build_In_Place_Function_Call): New function to determine whether an
        expression is a function call that should handled as build-in-place.
        (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
        calls to build-in-place functions as the initialization of an allocator.
        (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
        handling calls to build-in-place functions in contexts that do not
        involve init of a separate object (for example, actuals of subprogram
        calls).
        (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
        handling calls to build-in-place functions as the initialization of an
        object declaration.
        (Detect_Infinite_Recursion): Add explicit parameter Process to
        instantiation of Traverse_Body to avoid unreferenced warning.
        (Check_Overriding_Inherited_Interfaces): Removed.
        (Register_Interface_DT_Entry): Code cleanup.
        (Register_Predefined_DT_Entry): Code cleanup.
        (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
        inlined statements if within a transient scope.
        (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
        formal parameters with occurrences of actuals in inlined body, establish
        visibility on the proper view of the actual's subtype for the body's
        context.
        (Freeze_Subprogram): Do nothing if we are compiling under full ABI
        compatibility mode and we have an imported CPP subprogram because
        for now we assume that imported CPP primitives correspond with
        objects whose constructor is in the CPP side (and therefore we
        don't need to generate code to register them in the dispatch table).
        (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
        aligned selected component.
        (Add_Call_By_Copy_Node): Add missing code to handle the case in which
        the actual of an in-mode parameter is a type conversion.
        (Expand_Actuals): If the call does not come from source and the actual
        is potentially misaligned, let gigi handle it rather than rejecting the
        (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
        Class Wide types as returning by reference independantly of their
        controlled status since with HIE runtimes class wide types are not
        potentially controlled anymore.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
        references that are private components of the protected object.
        (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
        (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
        instantiation to deal with warnings.
        (Initialize_Protection): If expression for priority is non-static, use
        System_Priority as its expected type, in case the expression has not
        been analyzed yet.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
        initialization of Homonym_Len.
        (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
        names from fully qualified name. Fixes problem of duplicate
        external names differing only in the presence of such a block name.

2006-10-31  Thomas Quinot  <quinot@adacore.com>
            Pablo Oliveira  <oliveira@adacore.com>

        * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
        subprogram Ids, even if they are not yet assigned.
        (Build_Subprogram_Id): It is now this function that will take care of
        calling Assign_Subprogram_Ids if necessary.
        (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
        should be done only once they are assigned.
        (Build_From_Any_Function, case of tagged types): Add missing call to
        Allocate_Buffer.
        (Corresponding_Stub_Type): New subprogram. Returns the associated stub
        type for an RACW type.
        (Add_RACW_Features): When processing an RACW declaration for which the
        designated type is already frozen, enforce E.2.2(14) rules immediately.
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
        special reordering of controlling formals.

        * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
        associated stub type for an RACW type.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>

        * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
        fixed-point operations in an integer context, i.e. as operands of a
        conversion to an integer type, indicate that result must be rounded.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
        cases, pass the encoding method, since it is now required by the run
        time.

        * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
        assumption that Str'First = 1.
        (Value_Wide_Character): Takes EM (encoding method) parameter and passes
        it on to the Value_Wide_Wide_Character call.
        (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
        properly handles a string of the form quote-encoded_wide_char-quote.

        * s-wchcnv.adb: Minor reformatting

2006-10-31  Javier Miranda  <miranda@adacore.com>

        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
        run-time membership test to ensure that the constructed object
        implements the target abstract interface.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
        Machine_Attribute pragma internally to implement the user pragma.
        Add processing for pragma Interface so that it is now completely
        equivalent to pragma Import.

        * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
        so that it can be applied to all entities, including record components
        and enumeration literals.
        (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
        priority ranges are correct, verify compatibility against task
        dispatching and locking policies, and if everything is correct an entry
        is added to the table containing priority specific dispatching entries
        for this compilation unit.
        (Delay_Config_Pragma_Analyze): Delay processing
        Priority_Specific_Dispatching pragmas because when processing the
        pragma we need to access run-time data, such as the range of
        System.Any_Priority.
        (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
        Allow pragma Unreferenced as a context item
        Add pragma Preelaborable_Initialization
        (Analyze_Pragma, case Interface): Interface is extended so that it is
        now syntactically and semantically equivalent to Import.
        (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
        insertion characters.
        Add handling for Pragma_Wide_Character_Encoding
        (Process_Restrictions_Restriction_Warnings): Ensure that a warning
        never supercedes a real restriction, and that a real restriction
        always supercedes a warning.
        (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
        appropriate form.

2006-10-31  Bob Duff  <duff@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
        Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
        Is_Inherently_Limited_Type, because return-by-reference has no meaning
        in Ada 2005.
        (Find_Node_To_Be_Wrapped): Use new method of determining the result
        type of the function containing a return statement, because the
        Return_Type field was removed. We now use the Return_Applies_To field.

        * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
        (Build_Task_Image_Decl): If procedure is not called from an
        initialization procedure, indicate that function that builds task name
        uses the sec. stack. Otherwise the enclosing initialization procedure
        will carry the indication.
        (Insert_Actions): Remove N_Return_Object_Declaration. We now use
        N_Object_Declaration instead.
        (Kill_Dead_Code): New interface to implement -gnatwt warning for
        conditional dead code killed, and change implementation accordingly.
        (Insert_Actions): Add N_Return_Object_Declaration case.
        Correct comment to mention N_Extension_Aggregate node.
        (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
        attempts to save information for global variables which cannot be
        safely tracked.
        (Get_Current_Value_Condition): Handle conditions the other way round
        (constant on left). Also handle right operand of AND and AND THEN
        (Set_Current_Value_Condition): Corresponding changes
        (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
        (Get_Current_Value_Condition): Handle simple boolean operands
        (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
        (Get_Current_Value_Condition): If the variable reference is within an
        if-statement, does not appear in the list of then_statments, and does
        not come from source, treat it as being at unknown location.
        (Get_Current_Value_Condition): Enhance to allow while statements to be
        processed as well as if statements.
        (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
        come from source.
        (OK_To_Do_Constant_Replacement): Allow constant replacement within body
        of loop. This is safe now that we fixed Kill_Current_Values.
        (OK_To_Do_Constant_Replacement): Check whether current scope is
        Standard, before examining outer scopes.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
        When True, apply VMS treatment to children of packages A, G, I and S.
        For F320-016

        * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb: Add handling of Last_Assignment field
        (Warn_Overlay): Supply missing continuation marks in error msgs
        (Freeze_Entity): Add check for Preelaborable_Initialization

        * g-comlin.adb: Add Warnings (Off) to prevent new warning

        * g-expect.adb: Add Warnings (Off) to prevent new warning

        * lib-xref.adb: Add handling of Last_Assignment field
        (Generate_Reference): Centralize handling of pragma Obsolescent here
        (Generate_Reference): Accept an implicit reference generated for a
        default in an instance.
        (Generate_Reference): Accept a reference for a node that is not in the
        main unit, if it is the generic body corresponding to an subprogram
        instantiation.

        * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings

        * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
        -gnatwq/Q.
        (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
        exception handler.
        (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
        use clauses, to avoid messages on packages used to qualify, and also
        to avoid messages from obsolescent units.
        (Warn_On_Useless_Assignments): Don't generate messages for imported
        and exported variables.
        (Warn_On_Useless_Assignments): New procedure
        (Output_Obsolescent_Entity_Warnings): New procedure
        (Check_Code_Statement): New procedure

        * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
        Change name Is_Ada_2005 to Is_Ada_2005_Only
        (Last_Assignment): New field for useless assignment warning

2006-10-31  Olivier Hainque  <hainque@adacore.com>

        * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
        closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.

2006-10-31  Bob Duff  <duff@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * g-awk.adb (Default_Session, Current_Session): Compile this file in
        Ada 95 mode, because it violates the new rules for AI-318.

        * g-awk.ads: Use overloaded subprograms in every case where we used to
        have a default of Current_Session. This makes the code closer to be
        correct for both Ada 95 and 2005.

        * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
        code, relying on the fact that the compiler generates a warning
        instead of an error in -gnatg mode.

        * lib-xref.ads (Xref_Entity_Letters): Add entry for new
        E_Return_Statement entity kind.
        Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.

        * par.adb (P_Interface_Type_Definition): Addition of one formal to
        report an error if the reserved word abstract has been previously found.
        (SS_End_Type): Add E_Return for new extended_return_statement syntax.

        * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
        parenthesized range attribute usage
        (P_Expression_No_Right_Paren): Add missing comment about error recovery.

        * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
        in the syntax for extended_return_statement. This is not in the latest
        RM, but the ARG is expected to issue an AI allowing this.
        (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
        N_Return_Object_Declaration. We now use N_Object_Declaration instead.
        (P_Return_Object_Declaration, P_Return_Subtype_Indication,
        P_Return_Statement): Parse the new syntax for extended_return_statement.

        * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
        Output_End_Missing): Add error-recovery code for the new
        extended_return_statement syntax; that is, the new E_Return entry on
        the scope stack.

        * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
        limited to nonlimited, because otherwise we violate the new Ada 2005
        rules about returning limited types in function Create_AST_Handler in
        s-asthan.adb.

        * sem.adb (Analyze): Add cases for new node kinds
        N_Extended_Return_Statement and N_Return_Object_Declaration.

        * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
        type is in the same category as type of context before applying check,
        to prevent anomalies in instantiations.
        (Resolve_Aggregate): Remove test for limited components in aggregates.
        It's unnecessary in Ada 95, because if it has limited components, then
        it must be limited. It's wrong in Ada 2005, because limited aggregates
        are now allowed.
        (Resolve_Record_Aggregate): Move check for limited types later, because
        OK_For_Limited_Init requires its argument to have been resolved.
        (Get_Value): When copying the component default expression for a
        defaulted association in an aggregate, use the sloc of the aggregate
        and not that of the original expression, to prevent spurious
        elaboration errors, when the expression includes function calls.
        (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
        were missing. We also didn't handle qualified expressions. Now also
        allow function calls. Use new common routine OK_For_Limited_Init.
        (Resolve_Extension_Aggregate): Minor fix to bad error message (started
        with space can upper case letter).

        * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
        Has_Static_Discriminants flag
        (Record_Type_Declaration): Diagnose an attempt to declare an interface
        type with discriminants.
        (Process_Range_Expr_In_Decl): Do validity checks on range
        (Build_Discriminant_Constraints): Use updated form of
        Denotes_Discriminant.
        (Process_Subtype): If the subtype is a private subtype whose full view
        is a concurrent subtype, introduce an itype reference to prevent scope
        anomalies in gigi.
        (Build_Derived_Record_Type, Collect_Interface_Primitives,
        Record_Type_Declaration):  The functionality of the subprograms
        Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
        is now performed by a single routine.
        (Build_Derived_Record_Type): If the type definition includes an explicit
        indication of limitedness, then the type must be marked as limited here
        to ensure that any access discriminants will not be treated as having
        a local anonymous access type.
        (Check_Abstract_Overriding): Issue a detailed error message when an
        abstract subprogram was not overridden due to incorrect mode of its
        first parameter.
        (Analyze_Private_Extension_Declaration): Add support for the analysis of
        synchronized private extension declarations. Verify that the ancestor is
        a limited or synchronized interface or in the generic case, the ancestor
        is a tagged limited type or synchronized interface and all progenitors
        are either limited or synchronized interfaces.
        Derived_Type_Declaration): Check for presence of private extension when
        dealing with synchronized formal derived types.
        Process_Full_View): Enchance the check done on the usage of "limited" by
        testing whether the private view is synchronized.
        Verify that a synchronized private view is completed by a protected or
        task type.
        (OK_For_Limited_Init_In_05): New function.
        (Analyze_Object_Declaration): Move check for limited types later,
        because OK_For_Limited_Init requires its argument to have been resolved.
        Add -gnatd.l --Use Ada 95 semantics for limited function returns,
        in order to alleviate the upward compatibility introduced by AI-318.
        (Constrain_Corresponding_Record): If the constraint is for a component
        subtype, mark the itype as frozen, to avoid out-of-scope references to
        discriminants in the back-end.
        (Collect_Implemented_Interfaces): Protect the recursive algorithm of
        this subprogram against wrong sources.
        (Get_Discr_Value, Is_Discriminant): Handle properly references to a
        discriminant of limited type completed with a protected type, when the
        discriminant is used to constrain a private component of the type, and
        expansion is disabled.
        (Find_Type_Of_Object): Do not treat a return subtype that is an
        anonymous subtype as a local_anonymous_type, because its accessibility
        level is the return type of the enclosing function.
        (Check_Initialization): In -gnatg mode, turn the error "cannot
        initialize entities of limited type" into a warning.
        (OK_For_Limited_Init): Return true for generated nodes, since it
        sometimes violates the legality rules.
        (Make_Incomplete_Declaration): If the type for which an incomplete
        declaration is created happens to be the currently visible entity,
        preserve the homonym chain when removing it from visibility.
        (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
        inherited subprograms.
        (Access_Definition): If this is an access to function that is the return
        type of an access_to_function definition, context is a type declaration
        and the scope of the anonymous type is the current one.
        (Analyze_Subtype_Declaration): Add the defining identifier of a regular
        incomplete subtype to the set of private dependents of the original
        incomplete type.
        (Constrain_Discriminated_Type): Emit an error message whenever an
        incomplete subtype is being constrained.
        (Process_Incomplete_Dependents): Transform an incomplete subtype into a
        corresponding subtype of the full view of the original incomplete type.
        (Check_Incomplete): Properly detect invalid usage of incomplete types
        and subtypes.

2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>

        * g-catiio.ads, g-catiio.adb (Value): New function.
        Given an input String, try and parse a valid Time value.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * g-debpoo.adb (Is_Valid): Correctly compute Offset using
        Integer_Address arithmetic, as in Set_Valid.

2006-10-31  Arnaud Charlet  <charlet@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
        handling executable extension manually and duplicating code.

        * make.adb: Implement new -S switch
        (Gnatmake): Use new function Osint.Executable_Name instead
        of handling executable extension manually.

        * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
        is specified, the executable name ends with this suffix.
        Take advantage of Osint.Executable_Name instead of duplicating code.

        * switch-m.adb: Recognize new gnatmake -S switch

        * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
        variable.
        (Get_Target_Parameters): Set Executable_Extension_On_Target if
        available.

        * makeusg.adb: Add line for gnatmake -S switch

2006-10-31  Vincent Celier  <celier@adacore.com>

        * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
        call it with -static-libgcc, as there are some platforms, such as
        Darwin, where one of these two switches is compulsory to link.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
        instead of ADA_PROJECT_PATH, for the project path.
        (Gnatls): When displaying the project path directories, use host dir
        specs.

        * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
        names in the project path, as absolute paths may correspond to
        multi-valued VMS logical names.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
        absolute path name.
        (Locate_Regular_File): Ditto
        (Change_Dir): Remove, no longer used
        (Normalize_Pathname): Do not use Change_Dir to get the drive letter
        on Windows. Get it calling Get_Current_Dir.
        (OpenVMS): Remove imported boolean, no longer needed.
        (Normalize_Pathname)[VMS]: Do not resolve directory names.
        (Pid_To_Integer): New function to convert a Process_Id to  Integer

2006-10-31  Thomas Quinot  <quinot@adacore.com>

        * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
        sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
        to No_Socket.
        (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
        W_Sig_Socket.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
        initial letter o as a zero.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
        variant records
        (Layout_Variant_Record): Retrieve the discriminants from the entity
        rather than from the type definition, because in the case of a full
        type for a private type we need to take the discriminants from the
        partial view.
        (Layout_Component_List): When applying the Max operator to variants with
        a nonstatic size, check whether either operand is static and scale that
        operand from bits to storage units before applying Max.
        (Layout_Type): In VMS, if a C-convention access type has no explicit
        size clause (and does not inherit one in the case of a derived type),
        then the size is reset to 32 from 64.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * lib-load.adb (Load_Unit): Skip the test for a unit not found when
        its file has already been loaded, according to the unit being loaded,
        not to the current value of Multiple_Unit_Index.

2006-10-31  Thomas Quinot  <quinot@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>
            Arnaud Charlet  <charlet@adacore.com>

        * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
        (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
        possible.
        (a-except.o): Pass it to the compiler.
        (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
        (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
        a-calend-mingw.adb version.

        * Makefile.rtl: Added s-dsaser.
        Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
        (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
        Ada.Dispatching.Round_Robin.
        Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists

        * Make-lang.in: Remove all references to gt-ada-decl.h.
        Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
        sources.
        Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
        Update dependencies.

        * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD

2006-10-31  Vincent Celier  <celier@adacore.com>

        * mlib-utl.adb (Initialized): Remove, no longer used
        (Initialize): Remove, no longer used
        (Ar): If Ar_Exec is null, get the location of the archive builder and,
        if there is one, the archive indexer. Fail if the archive builder cannot
        be found.
        (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
        be found.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
        Process_Body_Clauses): If the context of a body includes a use clause
        for P.Q then a with_clause for P in the same body is not redundant,
        even if the spec also has a with_clause on P.
        Add missing continuation mark to error msg
        (Build_Limited_Views): A limited view of a type is tagged if its
        declaration includes a record extension.
        (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
        node, even if the subunit has errors. This avoids malfunction by
        Lib.Check_Same_Extended_Unit in the presence of syntax errors.
        (Analyze_Compilation_Unit): Add circuit to make sure we get proper
        generation of obsolescent messages for with statements (cannot do
        this too early, or we cannot implement avoiding the messages in the
        case of obsolescent units withing obsolescent units).
        (Install_Siblings): If the with_clause is on a remote descendant of
        an ancestor of the current compilation unit, find whether there is
        a sibling child unit that is immediately visible.
        (Remove_Private_With_Clauses): New procedure, invoked after completing
        the analysis of the private part of a nested package, to remove from
        visibility the private with_clauses of the enclosing package
        declaration.
        (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
        now centralized in Generate_Reference.
        (Install_Limited_Context_Clauses): Remove superfluous error
        message associated with unlimited view visible through use
        and renamings. In addition, at the point in which the error
        is reported, we add the backslash to the text of the error
        to ensure that it is reported as a single error message.
        Use new // insertion for some continuation messages
        (Expand_Limited_With_Clause): Use copy of name rather than name itself,
        to create implicit with_clause for parent unit mentioned in original
        limited_with_clause.
        (Install_Limited_With_Unit): Set entity of parent identifiers if the
        unit is a child unit. For ASIS queries.
        (Analyze_Subunit): If the subunit appears within a child unit, make all
        ancestor child units directly visible again.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * par-ch10.adb (P_Context_Clause): Minor error message fix

2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * par-ch12.adb: Grammar update and cleanup.
        (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
        support for synchronized derived type definitions.
        Add the new actual Abstract_Present to every call to
        P_Interface_Type_Definition.
        (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
        a formal object declaration with an access definition or a subtype mark
        with a null exclusion.
        (P_Generic_Association): Handle association with box, and others_choice
        with box, to support Ada 2005 partially parametrized formal packages.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
        (P_Type_Declaration): Remove barrier against the reserved word "limited"
        after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
        (P_Type_Declaration): Minor code cleanup. Add support for synchronized
        private extensions.
        (P_Type_Declaration): Add the new actual Abstract_Present to every call
        to P_Interface_Type_Definition.
        (P_Interface_Type_Definition): Addition of one formal to report an error
        if the reserved word abstract has been previously found.
        (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
        object renaming declaration with an access definition or subtype mark
        with a possible null exclusion.

        * par-ch9.adb: Minor error msg fix

        * par-load.adb: Add missing continuation mark to error msg

        * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation

2006-10-31  Vincent Celier  <celier@adacore.com>

        * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
        unknown attribute in unknown package or in package that does not need
        to be checked.
        (Parse_Package_Declaration): Do not issue warning for unknown package in
        quiet output.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
        (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
        Packages_To_Check.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
        on VMS, change "__" to '.' before checking the name.
        (Record_Ada_Source): Always add the source file name in the list of
        of sources, even if it is not the first time, as it is for another
        source index.
        (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
        dot, instead of replacing only the first '_'.

        * prj-part.adb (Parse): Convert project file path to canonical form

        * prj-proc.adb (Recursive_Process): Make sure that, when a project is
        extended, the project id of the project extending it is recorded in its
        data, even when it has already been processed as an imported project.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * repinfo.adb (List_Entities): Don't list entities from renaming
        declarations.

2006-10-31  Arnaud Charlet  <charlet@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
        only a restriction warning is active for the given restriction. This is
        desirable because we do not want to modify code in the case where only
        a warning is set.
        (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
        causes overriding of real restrictions.
        Take advantage of new No_Restrictions constant.

        * raise.h: (__gnat_set_globals): Change profile.

2006-10-31  Arnaud Charlet  <charlet@adacore.com>

        * rtsfind.adb: Remove s-polint from comment as it exists no more.

        * rtsfind.ads:
        Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
        Move all the entities in obsolete package System.PolyORB_Interface to
        System.Partition_Interface.
        (RE_Storage_Size): New function in System.Tasking.
        (RE_Get_Ceiling): New entity.
        (RE_Set_Ceiling): New entity.
        (RO_PE_Get_Ceiling): New entity.
        (RO_RE_Set_Ceiling): New entity.
        (Inherit_CPP_DT): New entity

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * scng.adb (Scan, case of numeric literal): Better msg for identifier
        starting with a digit.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Thomas Quinot  <quinot@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
        properly an attempt to apply Unchecked_Access to a protected operation.
        (OK_Self_Reference): New subprogram to check the legality of an access
        attribute whose prefix is the type of an enclosing aggregate.
        Generalizes previous mechanism to handle attribute references nested
        arbitrarily deep within the aggregate.
        (Analyze_Access_Attribute): An access attribute whose prefix is a type
        can appear in an aggregate if this is a default-initialized aggregate
        for a self-referential type.
        (Resolve_Attribute, case Access): Ditto.
        Add support for new implementation defined attribute Stub_Type.
        (Eval_Attribute, case Attribute_Stub_Type): New case.
        (Analyze_Attribute, case Attribute_Stub_Type): New case.
        (Stream_Attribute_Available): Implement using new subprogram from
        sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
        Has_Specified_Stream_Attribute flag.
        Disallow Storage_Size and Storage_Pool for access to subprogram
        (Resolve_Attribute, case 'Access et al): Take into account anonymous
        access types of return subtypes in extended return statements. Remove
        accessibility checks on anonymous access types when Unchecked_Access is
        used.
        (Analyze_Attribute): Add support for the use of 'Class to convert
        a class-wide interface to a tagged type.
        Add support for the attribute Priority.
        (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
        whether the designated type is discriminated with a constrained partial
        view and require static matching in that case.
        Add local variable Des_Btyp. The Designated_Type
        of an access to incomplete subtype is either its non-limited view if
        coming from a limited with or its etype if regular incomplete subtype.

        * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
        Fix predicate to identify and allow cases of (expander-generated)
        references to tag of designated object of a RACW.
        (Validate_Static_Object_Name): In Ada 2005, a formal object is
        non-static, and therefore cannot appear as a primary in a preelaborable
        package.
        (Has_Stream_Attribute_Definition): New subprogram, abstracted from
        Has_Read_Write_Attributes.
        (Has_Read_Write_Attributes): Reimplement in termes of
        Has_Stream_Attribute_Definition.
        (Missing_Read_Write_Attributes): When checking component types in a
        record, unconditionally call Missing_Read_Write_Attributes recursively
        (remove guard checking for Is_Record_Type / Is_Access_Type).

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
        useless assignments here and conditionalize it on absence of exception
        handlers.
        (Analyze_Exception_Handlers): Small code reorganization of error
        detection code, for new handling of formal packages.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Hristian Kirtchev  <kirtchev@adacore.com>

        * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
        that has been constant-folded, preserve information of original tree,
        for ASIS uses.
        (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
        generated private extension declaration if the formal derived type is
        synchronized. Carry synchronized present over to the generated private
        extension.
        (Validate_Derived_Type_Instance): Ensure that the actual of a
        synchronized formal derived type is a synchronized tagged type.
        (Instantiate_Formal_Package): When creating the instantiation used to
        validate the actual package of a formal declared without a box, check
        whether the formal itself depends on a prior actual.
        (Instantiate_Formal_Subprogram): Create new entities for the defining
        identifiers of the formals in the renaming declaration, for ASIS use.
        (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
        a renaming declaration or a subtype declaration for an actual in an
        instance, capture location information of declaration in generic, for
        ASIS use.
        (Instantiate_Formal_Package): Add comments on needed additional tests.
        AI-317 (partial parametrization) is fully implemented.
        (Validate_Private_Type_Instance): Add check for actual which
        must have preelaborable initialization
        Use new // insertion for some continuation messages
        (Analyze_Formal_Object_Declaration): Change usage of Expression to
        Default_Expression. Add type retrieval when the declaration has an
        access definition. Update premature usage of incomplete type check.
        (Check_Access_Definition): New subsidiary routine. Check whether the
        current compilation version is Ada 05 and the supplied node has an
        access definition.
        (Instantiate object): Alphabetize local variables. Handle the creation
        of new renaming declarations with respect to the kind of definition
        used - either an access definition or a subtype mark. Guard against
        unnecessary error message in the context of anonymous access types after
        they have been resolved. Add check for required null exclusion in a
        formal object declaration.
        (Switch_View): A private subtype of a non-private type needs to be
        switched (the base type can have been switched without its private
        dependents because of the last branch of Check_Private_View.
        (Check_Private_View): Do not recompute Base_Type (T), instead use cached
        value from BT.
        (Instantiate_Type): Emit an error message whenever a class-wide type of
        a tagged incomplete type is used as a generic actual.
        (Find_Actual_Type): Extend routine to handle a component type in a child
        unit that is imported from a formal package in a parent.
        (Validate_Derived_Type_Instance): Check that analyzed formal and actual
        agree on constrainedness, rather than checking against ultimate ancestor
        (Instantiate_Subprogram_Body): Create a cross-reference link to the
        generic body, for navigation purposes.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Thomas Quinot  <quinot@adacore.com>

        * sem_ch13.adb: Storage pool cannot be given for access to subprogram
        type.
        (New_Stream_Subprogram): When processing an attribute definition clause
        for a stream-oriented subprogram, record an entity node occurring at
        the point of clause to use for checking the visibility of the clause,
        as defined by 8.3(23) as amended by AI-195.
        (New_Stream_Subprogram): New procedure, factoring behaviour from both
         New_Stream_Function and New_Stream_Procedure.
        (New_Stream_Function, New_Stream_Procedure): Removed.
        (Analyze_Attribute_Definition_Clause, case Address): Check new
        Alignment_Check check

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
        generate the same errors compiling under -gnatc.
        (Try_Object_Operation): If no candidate interpretation succeeds, but
        there is at least one primitive operation with the right name, report
        error in call rather than on a malformed selected component.
        (Analyze_Selected_Component): If the prefix is an incomplete type from
        a limited view, and the full view is available, use the full view to
        determine whether this is a prefixed call to a primitive operation.
        (Operator_Check): Verify that a candidate interpretation is a binary
        operation before checking the type of its second formal.
        (Analyze_Call): Add additional warnings for function call contexts not
        yet supported.
        (Analyze_Allocator): Move the check for "initialization not allowed for
        limited types" after analyzing the expression. This is necessary,
        because OK_For_Limited_Init looks at the structure of the expression.
        Before analysis, we don't necessarily know what sort of expression it
        is. For example, we don't know whether F(X) is a function call or an
        indexed component; the former is legal in Ada 2005; the latter is not.
        (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
        were missing. We also didn't handle qualified expressions. Now also
        allow function calls. Use new common routine OK_For_Limited_Init.
        (Analyze_Type_Conversion): Do not perform some legality checks in an
        instance, because the error message will be redundant or spurious.
        (Analyze_Overloaded_Selected_Component): Do not do style check when
        setting an entity, since we do not know it is the right entity yet.
        (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
        (Analyze_Overloaded_Selected_Component): Same change
        (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
        since regular incomplete subtypes are transformed into corresponding
        subtypes of their full views.
        (Complete_Object_Operation): Treat name of transformed subprogram call
        as coming from source, for browsing purposes.
        (Try_Primitive_Operation): If formal is an access parameter, compare
        with base type of object to determine whether it is a primitive
        operation.
        (Operator_Check): If no interpretation of the operator matches, check
        whether a use clause on any candidate might make the operation legal.
        (Try_Class_Wide_Operation): Check whether the first parameter is an
        access type whose designated type is class-wide.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
        warn on infinite loops.
        Add \\ to some continuation messages
        (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
        (Process_Bounds): If the bounds are integer literals that result from
        constant-folding, and they carry a user-defined type, preserve that type
        rather than treating this as an integer range.
        (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
        (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
        (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
        left hand side of assignment.
        (Analyze_Assignment): Add suport to manage assigments to the attribute
        priority of a protected object.
        (Check_Possible_Current_Value_Condition): Allow fully qualified names
        not just identifiers.
        (Check_Possible_Current_Value_Condition): Acquire left operand of AND
        or AND THEN for possible tracking.
        (Analyze_Iteration_Scheme): Check for setting Current_Value for the
        case of while loops so we can track values in the loop body.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Hristian Kirtchev  <kirtchev@adacore.com>
            Bob Duff  <duff@adacore.com>

        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
        procedure cannot be a protected operation (it is a basic_declaration,
        not a subprogram_declaration).
        (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
        Subp. Add logic for entry processing.
        (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
        Determine whether an entry or subprogram of a protected or task type
        override an inherited primitive of an implemented interface.
        (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
        Update the actual used in calls to Check_Overriding_Indicator.
        (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
        generate the proper reference to the parent unit, for cross-reference.
        (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
        Is_Formal.
        Add -gnatd.l --Use Ada 95 semantics for limited function returns,
        (Add_Extra_Formal): Revise procedure to allow passing in associated
        entity, scope, and name suffix, and handle setting of the new
        Extra_Formals field.
        (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
        pass new parameters. Add support for adding the new extra access formal
        for functions whose calls are treated as build-in-place.
        (Analyze_A_Return_Statement): Correct casing in error message.
        Move Pop_Scope to after Analyze_Function_Return, because an extended
        return statement really is a full-fledged scope. Otherwise, visibility
        doesn't work right. Correct use of "\" for continuation messages.
        (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
        evilly trying to call Analyze_Object_Declaration directly. Otherwise,
        the node doesn't get properly marked as analyzed.
        (Analyze_Subprogram_Body): If subprogram is a function that returns
        an anonymous access type that denotes a task, build a Master Entity
        for it.
        (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
        proper usage of null exclusion in a result definition.
        (Process_Formals): Code cleanup and new error message.
        (Process_Formals): Detect incorrect application of null exclusion to
        non-access types.
        (Conforming_Types): Handle conformance between [sub]types and itypes
         generated for entities that have null exclusions applied to them.
        (Maybe_Primitive_Operation): Add an additional type retrieval when the
         base type is an access subtype. This case arrises with null exclusions.
        (New_Overloaded_Entity): Do not remove the overriden entity from the
        homonym chain if it corresponds with an abstract interface primitive.
        (Process_Formals): Replace membership test agains Incomplete_Kind with a
        call to the synthesized predicate Is_Incomplete_Type.
        (Analyze_Subprogram_Body): Check wrong placement of abstract interface
        primitives.
        (Analyze_Subprogram_Declaration): Check that abstract interface
        primitives are abstract or null.
        (Analyze_Subprogram_Specification): Remove previous check for abstract
        interfaces because it was not complete.
        (Has_Interface_Formals): Removed.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
        of Analyze_Package_Body, to create Itype references for anonymous
        access types created in the package declaration, whose designated types
        may have only a limited view.
        (Analyze_Package_Specification): For the private part of a nested
        package, install private_with_clauses of enclosing compilation unit if
        we are in its visible part.
        (Declare_Inherited_Private_Subprograms): Complete barrier
        to ensure that the primitive operation has an alias to some parent
        primitive. This is now required because, after the changes done for the
        implementation of abstract interfaces, the contents of the list of
        primitives has entities whose alias attribute references entities of
        such list of primitives.
        (Analyze_Package_Specification): Simplify code that handles parent units
        of instances and formal packages.
        (Uninstall_Declarations): Check the convention consistency among
        primitive overriding operations of a tagged record type.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Hristian Kirtchev  <kirtchev@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_ch8.adb: Minor error msg rewording
        (Undefined): When checking for misspellings, invert arguments (to get
        expected and found set right)
        (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
        (Analyze_Generic_Renaming): Same fix
        (Use_One_Package): Do not take into account the internal entities of
        abstract interfaces during the analysis of entities that are marked
        as potentially use-visible.
        (Find_Type): Handle the case of an attribute reference for
        implementation defined attribute Stub_Type (simply let the analysis of
        the attribute reference rewrite it).
        (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
        type that appears in a Use_Type clause.
        (Analyze_Object_Renaming): Add support for renaming of the Priority
        attribute.
        (Find_Type): In Ada 2005, a task type can be used within its own body,
        when it appears in an access definition.
        (Analyze_Object_Renaming): Remove warning on null_exclusion.
        (Analyze_Object_Renaming): Introduce checks for required null exclusion
         in a formal object declaration or in a subtype declaration.
        (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
        (Check_Null_Exclusion): New local routine to
        Analyze_Subprogram_Renaming. Check whether the formals and return
        profile of a renamed subprogram have required null exclusions when
        their counterparts of the renaming already impose them.
        (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
        Determine whether an entity is inside a generic scope.
        (In_Open_Scope): First pass of documentation update.
        (Find_Expanded_Name): Add support for shadow entities associated with
        limited withed packages. This is required to handle nested packages.
        (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
        that makes a renaming of a limited withed package illegal.

2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
        Check_Overriding_Indicator.
        (Analyze_Task_Definition): Ditto.
        (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
        (Check_Overriding_Indicator): To find overridden interface operation,
        examine only homonyms that have an explicit subprogram declaration, not
        inherited operations created by an unrelated type derivation.
        (Check_Overriding_Indicator): When checking for the presence of "null"
        in a procedure, ensure that the queried node is a procedure
        specification.
        (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
        type when the formal is an access to variable.
        (Analyze_Protected_Type): Add check for Preelaborable_Initialization
        (Analyze_Task_Type): Same addition
        (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
        provide navigation capabilities for entries.

2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
        inherited from an interface ancestor by another interface in the
        context of an instance as 'late'.
        (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
        of a call to a function that dispatches on access result.
        (Check_Dispatching_Operation): In case of late overriding of a primitive
        that covers abstract interface subprograms we register it in all the
        secondary dispatch tables associated with abstract interfaces.
        (Check_Dispatching_Call): Add check that a dispatching call is not made
        to a function with a controlling result of a limited type. This is a
        current implementation restriction.
        (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
        (Check_Dispatching_Operation): Do no emit a warning if the controlling
        argument is an interface type that is a generic formal.
        (Is_Interface_Subprogram): Removed.
        (Check_Dispatching_Operation): If the subprogram is not a dispatching
        operation, check the formals to handle the case in which it is
        associated with an abstract interface type.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
        Add new calls to this procedure during traversal
        (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
        another unit if expansion is disabled.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * sem_eval.adb (Compile_Time_Compare): Make use of information from
        Current_Value in the conditional case, to evaluate additional
        comparisons at compile time.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Hristian Kirtchev  <kirtchev@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
        subprogram type to provide better diagnostics in case of ambiguity.
        (Covers): Handle coverage of formal and actual anonymous access types in
        the context of generic instantiation.
        (Covers/Interface_Present_In_Ancestors): Use the base type to manage
        abstract interface types; this is required to handle concurrent types
        with discriminants and abstract interface types.
        (Covers): Include type coverage of both regular incomplete subtypes and
        incomplete subtypes of incomplete type visibles through a limited with
        clause.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Hristian Kirtchev  <kirtchev@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
        messages for entities in packages which are not used.
        (Collect_Synchronized_Interfaces): New procedure.
        (Overrides_Synchronized_Primitive): New function.
        (Denotes_Discriminant): Extend predicate to apply to task types.
        Add missing continuation marks in error msgs
        (Unqualify): New function for removing zero or more levels of
        qualification from an expression. There are numerous places where this
        ought to be used, but we currently only deal properly with zero or one
        level.
        (In_Instance); The analysis of the actuals in the instantiation of a
        child unit is not within an instantiation, even though the parent
        instance is on the scope stack.
        (Safe_To_Capture_Value): Exclude the case of variables that are
        renamings.
        (Check_Obsolescent): Removed
        (Is_Aliased_View): A reference to an enclosing instance in an aggregate
        is an aliased view, even when rewritten as a reference to the target
        object in an assignment.
        (Get_Subprogram_Entity): New function
        (Known_To_Be_Assigned): New function
        (Type_Access_Level): Compute properly the access level of a return
        subtype that is an anonymous access type.
        (Explain_Limited_Type): Correct use of "\" for continuation messages.
        (Is_Transfer): The new extended_return_statement causes a transfer of
        control.
        (Has_Preelaborable_Initialization): New function
        (Has_Null_Exclusion): New function. Given a node N, determine whether it
        has a null exclusion depending on its Nkind.
        Change Is_Lvalue to May_Be_Lvalue
        (May_Be_Lvalue): Extensive additional code to deal with subprogram
        arguments (IN parameters are not Lvalues, IN OUT parameters are).
        (Safe_To_Capture_Value): Extend functionality so it can be used for
        the current value condition case.
        (Has_Compatible_Alignment): New function
        (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
        objects to handle the Ada 2005 case, where aliasedness no longer implies
        that the object is constrained. In particular, for dereferenced names,
        the designated object must be assumed to be unconstrained.
        (Kill_Current_Values): Properly deal with the case where we encounter
        a loop in the scope chain.
        (Safe_To_Capture_Value): Do not let a loop stop us from capturing
        a value.
        (Compile_Time_Constraint_Error): Improve error message in error case

        * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
        associated with entities of abstract interface primitives.
        Call Apply_Address_Clause_Check instead of Apply_Alignment_Check

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * s-osinte-tru64.adb:
        Mark Asm statements Volatile to prevent warnings (seems a
        reasonable change anyway)
        Fixes new warnings

        * s-mastop-irix.adb: Add Volatile to Asm statements
        Suppresses warning, and seems appropriate in any case

        * s-osinte-vms.adb: Add Volatile to Asm statement

        * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements

        * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
        returned.
        Add call to Check_Code_Statement

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Bob Duff  <duff@adacore.com>

        * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
        Synchronized_Present): Add Formal_Derived_Type_Definition and
        Private_Extension_Declaration to the list of assertions.
        (Is_Entry_Barrier_Function): New flag
        (Has_Self_Reference): New flag on aggregates, to indicate that they
        contain a reference to the enclosing type, inserted through a default
        initialization.
        (Next_Rep_Item): Move from Node4 to Node5.
        (Entity): Add this field for N_Attribute_Definition_Clause.
        (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
        (N_Return_Object_Declaration): Remove this node kind. We now use
        N_Object_Declaration instead.
        (Actual_Designated_Subtype): Move to a different place to make room in
        N_Extended_Return_Statement.
        (Procedure_To_Call): Move to a different place to make room in
        N_Extended_Return_Statement.
        (Return_Type): Removed this field to make room in return statements
        (both kinds).
        (Return_Statement_Entity): New field in return statements, in part to
        replace Return_Type, and in part to support the fact that return
        statements are now pushed on the scope stack during semantic analysis.
        (Return_Object_Declarations): New field to support extended return
        statements.
        (N_Extended_Return_Statement): New node for extended_return_statement
        nonterminal.
        (N_Return_Object_Declaration): New node for part of
        extended_return_statement nonterminal. Needed because all the necessary
        fields won't fit in N_Extended_Return_Statement.
        Generic_associations now carry the Box_Present flag, to indicate a
        default for an actual in a partially parametrized formal package.

        * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
        (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
        and for the new predefined dispatching policies: EDF_Across_Priorities,
        Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
        Introduce new name Stub_Type for implementation defined attribute.
        Add pragma Preelaborable_Initialization
        Add entry for Priority attribute.
        Add Pragma_Wide_Character_Encoding
        (Get_Convention_Name): Given a convention id, this function returns the
        corresponding name id from the names table.

2006-10-31  Ed Schonberg  <schonberg@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Bob Duff  <duff@adacore.com>

        * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
        print null exclusion twice in the case of an access definition,
        Implement new -gnatL switch
        Remove N_Return_Object_Declaration. We now use
        N_Object_Declaration instead. Implement the case for
        N_Extended_Return_Statement. Alphabetize the cases.
        Add cases for new nodes N_Extended_Return_Statement and
        N_Return_Object_Declaration. The code is not yet written.
        Update the output for N_Formal_Object_Declaration
        and N_Object_Renaming_Declaration.
        (Write_Itype): Account for the case of a modular integer subtype whose
        base type is private.

2006-10-31  Arnaud Charlet  <charlet@adacore.com>

        * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
        Remove elaboration code, now done in the binder.

        * s-rident.ads: Make this unit Preelaborate.
        (No_Restrictions): New constant used to clean up code and follow
        preelaborate constraints.

        * s-stalib.adb:
        Add System.Restrictions dependence, referenced directly from the
        binder generated file.

2006-10-31  Gary Dismukes  <dismukes@adacore.com>

        * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
        True when AAMP extended floating-point is in use (48-bit). Change type
        ByteLF to ByteLLF, add new array type ByteLF and condition the size of
        the two byte array types on AFloat. Change type of IV_Ilf overlay
        variable from Byte8 to ByteLF. Add appropriate initializations of
        floating-point overlays for AAMP cases.

2006-10-31  Javier Miranda  <miranda@adacore.com>

        * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
        (Get_Ceiling): New subprogram that returns
        the ceiling priority of the protected object.
        (Set_Ceiling): New subprogram that sets the new ceiling priority of
        the protected object.

        * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.

        * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.

2006-10-31  Jose Ruiz  <ruiz@adacore.com>

        * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
        requeuing to the same protected object to give higher priority tasks
        the opportunity to execute.

2006-10-31  Robert Dewar  <dewar@adacore.com>

        * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
        add more precise check for the character sequence that follows '[' to
        avoid possible confusion in case if '[' is the last character of a
        string literals.
        (Scan_Wide): Always allow brackets encoding

2006-10-31  Olivier Hainque  <hainque@adacore.com>

        * s-stchop.ads: make this unit preelaborate. This is desirable in
        general and made mandatory by the use of this unit by s-taprop which
        is itself preelaborate.

        * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
        Td_Events component.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
        in file names.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005

2006-10-31  Vincent Celier  <celier@adacore.com>

        * makegpr.adb (Check_Compilation_Needed): Take into account path names
        with spaces.
        (Check_Compilation_Needed): When checking a C or C++ source, do not
        resolve symbolic links.
        (Display_Command): New Boolean parameter Ellipse, defaulted to False.
        When not in verbose mode and Ellipse is True, display "..." for the
        first argument with Display set to False.
        (Build_Global_Archive): Always set Display True for the first object
        file. Call Display_Command with Ellipse set to True.

2006-10-31  Matt Heaney  <heaney@adacore.com>

        * a-crbtgo.ads: Commented each subprogram

        * a-crbtgo.adb: Added reference to book from which algorithms were
        adapted.

        * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
        indicate which child.
        (Generic_Conditional_Insert): changed parameter name from "Success" to
        "Inserted".
        (Generic_Unconditional_Insert_With_Hint): improved algorithm

        * a-coorse.adb (Replace_Element): changed parameter name in call to
        conditional insert operation.

        * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment

        * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
        Generic_Iteration

        * a-ciorse.adb (Replace_Element): changed parameter name in call to
        conditional insert operation.

        * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
        Generic_Iteration.

        * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
        instead of mode inout.

        * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
        draft
        (Generic_Read): preserve existing buckets array if possible
        (Generic_Write): don't send buckets array length anymore

        * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
        instead of mode inout.

        * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
        (Iterate): manipulate busy-bit here, instead of in Generic_Iteration

        * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
        (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
        (Replace_Element): local operation is now an instantiation

        * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
        check current length.
        (Generic_Replace_Element): new operation

2006-10-31  Doug Rupp  <rupp@adacore.com>

        * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
        Call TBK$SYMBOLIZE without omitting parameters.

2006-10-31  Vincent Celier  <celier@adacore.com>

        * symbols-processing-vms-ia64.adb,
        symbols-processing-vms-alpha.adb (Process): Do not include symbols
        that come from generic instantiations in bodies.

2006-10-31  Pat Rogers  <rogers@adacore.com>

        * a-rttiev.ads, a-rttiev.adb:
        This is a significant redesign primarily for the sake of automatic
        timer task termination but also to fix a design flaw.
        Therefore we are now using an RTS lock, instead of a protected
        object, to provide mutual exclusion to the queue of pending events
        and the type Timing_Event is no longer a protected type.

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Cyrille Comar  <comar@adacore.com>
            Ben Brosgol  <brosgol@adacore.com>

        * debug.adb:  Update flags documentation

        * gnat_ugn.texi: Add documentation for new -gnatwq switch
        Clean up documentation for several other warning switches
        Clarify how task stack size can be specified with various
        versions of Windows.
        Add note that -gnatVo includes ranges including loops
        Add documentation for -gnatL switch
        Add note on elaboration warning for initializing variables
        Add documentation for new -gnatwt warning switch
        Document new form of pragma Warnings (On|Off, string)
        Add comment on use of pragma Warnings to control warnings
        Add documentation for -gnatjnn switch
        Modify section on interfacing with C for VMS 64-bit.
        Add doc for -gnatVe/E
        Add documentation of new warning flags -gnatww/-gnatwW
        Add warnings about address clause overlays to list of warnings
        (Exception Handling Control): Document that the option --RTS must be
        used consistently for gcc and gnatbind.
        Clarify that inlining is not always possible
        Update documentation on pragma Unchecked_Union.

        * gnat_rm.texi:
        Add documentation for new extended version of pragma Obsolescent
        Add documentation for implementation defined attribute 'Stub_Type.
        Add note on use of Volatile in asm statements
        Add documentation on use of pragma Unreferenced in context clause
        Document new form of pragma Warnings (On|Off, pattern)
        Document pragma Wide_Character_Encoding
        Add note that pragma Restrictions (No_Elaboration_Code) is only fully
        enforced if code generation is active.
        Add section on pragma Suppress to document GNAT specific check
        Alignment_Check
        Clarify difference between No_Dispatching_Calls & No_Dispatch.
        Add documentation for pragma Restrictions (No_Elaboration_Code)

        * gnat-style.texi:
        Add comments on layout of subprogram local variables in the
        presence of nested subprograms.

        * ug_words: Resync.

        * elists.ads: Minor reformatting
        Node returns Node_Or_Entity_Id (doc change only)

        * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION

        * g-arrspl.ads (Create): Update comments.

        * sem.ads: Add details on the handling of the scope stack.

        * usage.adb: Update documentation.

        * validsw.ads, validsw.adb:
        Add definition of Validity_Check_Components and implement -gnatVe/E

        * vms_data.ads: Add missing VMS qualifiers.

        * s-addope.ads: Add documentation on overflow and divide by zero

2006-10-31  Robert Dewar  <dewar@adacore.com>
            Thomas Quinot  <quinot@adacore.com>
            Arnaud Charlet  <charlet@adacore.com>

        * fmap.adb: Put routines in alpha order

        * g-boumai.ads: Remove redundant 'in' keywords

        * g-cgi.adb: Minor reformatting

        * g-cgi.ads: Remove redundant 'in' keywords

        * get_targ.adb: Put routines in alpha order

        * prj-attr.ads: Minor reformatting

        * s-atacco.ads: Minor reformatting

        * scn.adb: Put routines in alpha order

        * sinput-l.adb: Minor comment fix

        * sinput-p.adb: Minor comment fix

        * s-maccod.ads: Minor reformatting

        * s-memory.adb: Minor reformatting

        * s-htable.adb: Fix typo in comment.

        * s-secsta.adb: Minor comment update.

        * s-soflin.adb: Minor reformatting

        * s-stoele.ads:
        Add comment about odd qualification in Storage_Offset declaration

        * s-strxdr.adb:
        Remove unnecessary 'in' keywords for formal parameters.

        * treeprs.adt: Minor reformatting

        * urealp.adb: Put routines in alpha order

        * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
        taking string.

        * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords

        * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords

        * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
        workaround as on other platforms.

        * g-eacodu-vms.adb: Remove redundant 'in' keywords
        * g-expect-vms.adb: Remove redundant 'in' keywords

        * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
        clear error message if the list-of-files file cannot be opened.

        * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
        equality operator is always visible.

        * lang.opt: Woverlength-strings: New option.

        * nmake.adt:
        Update copyright, since nmake.ads and nmake.adb have changed.

        * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
        (Binder_Output_Time_Stamps_Set): removed.
        (Old_Binder_Output_Time_Stamp): idem.
        (New_Binder_Output_Time_Stamp): idem.
        (Recording_Time_From_Last_Bind): idem.
        (Recording_Time_From_Last_Bind): Make constant.

        * output.ads, output.adb (Write_Str): Allow LF characters
        (Write_Spaces): New procedure

        * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%

        * inline.adb: Minor reformatting

        * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords

        * s-mastop-vms.adb: Remove redundant 'in' keywords

        * s-osprim-vms.adb: Remove redundant 'in' keywords

        * s-trafor-default.adb: Remove redundant 'in' keywords

        * 9drpc.adb: Remove redundant 'in' keywords

        * s-osinte-mingw.ads: Minor reformatting

        * s-inmaop-posix.adb: Minor reformatting

        * a-direio.ads: Remove quotes from Compile_Time_Warning message

        * a-exexda.adb: Minor code reorganization

        * a-filico.adb: Minor reformatting

        * a-finali.adb: Minor reformatting

        * a-nudira.ads: Remove quote from Compile_Time_Warning message

        * a-numeri.ads: Minor reformatting

        * a-sequio.ads: Remove quotes from Compile_Time_Warning message

        * exp_pakd.ads: Fix obsolete comment

        * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
        a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
        Probably not a bug, but certainly neater and more efficient.

        * a-tienio.adb: Minor reformatting

        * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
        Avoid assuming low bound of string is 1.

        * gnatbind.adb: Change Bindusg to package and rename procedure as
        Display, which now ensures that it only outputs usage information once.
        (Scan_Bind_Arg): Avoid assuming low bound of string is 1.

        * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
        Table'First.

        * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
        warning.
        (Match): Add pragma Assert to ensure that Matches'First is zero

        * g-regpat.ads (Match): Document that Matches lower bound must be zero

        * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
        documented preconditions (also kills warnings about bad indexes).

        * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
        is 1.
        (Build_Import_Library): Ditto;

        * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1

        * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.

        * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
        lower bound of choice table is 1.

        * sem_case.ads (Analyze_Choices): Document that lower bound of
        Choice_Table is 1.

        * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
        string is 1.

        * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
        and add appropriate Assert pragma to suppress warnings.

        * atree.h, atree.ads, atree.adb
        Change Elist24 to Elist25
        Add definitions of Field28 and Node28
        (Traverse_Field): Use new syntactic parent table in sinfo.

        * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only

        * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only

        * exp_tss.adb: Put routines in alpha order

        * fe.h: Remove redundant declarations.

2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

        * utils.c (builtin_function): Rename to gnat_builtin_function.
        Move common code to add_builtin_function.
        * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
        gnat_builtin_function.
        * gigi.h (builtin_function): Rename to gnat_builtin_function.
        Change the signature.

2006-10-16  Brooks Moses  <bmoses@stanford.edu>

        * Makefile.in: Add TEXI2PDF definition.
        * Make-lang.in: Add "ada.pdf" target.

2006-10-03  Kazu Hirata  <kazu@codesourcery.com>

        * decl.c, utils.c: Fix comment typos.
        * utils.c: Fix a typo.

2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>

        * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
        on "pure" Ada subprograms if SJLJ exceptions are used.
        * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
        on the declaration node of JMPBUF_SAVE.
        * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
        of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
        * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.

2006-08-20  Laurent Guerby  <laurent@guerby.net>

        PR ada/28716
        g-socket.adb (Bind_Socket): Call Set_Address.

2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/15802
        * decl.c (same_discriminant_p): New static function.
        (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
        subtype and we have discriminants, fix up the COMPONENT_REFs
        for the discriminants to make them reference the corresponding
        fields of the parent subtype after it has been built.

2006-09-15  Roger Sayle  <roger@eyesopen.com>

        PR ada/18817
        * utils.c (max_size): Perform constant folding of (A ? B : C) - D
        into A ? B - D : C - D when calculating the size of a MINUS_EXPR.

2006-09-13  Olivier Hainque  <hainque@adacore.com>

        PR ada/29025
        * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
        of a SAVE_EXPR, just make the operand addressable/not-readonly and
        let the common gimplifier code make and propagate a temporary copy.
        (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
        out/in-out actuals and defer setting the addressable/readonly bits
        to the gimplifier.

2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/28591
        * decl.c (components_to_record): Defer emitting debug info for the
        record type associated with the variant until after we are sure to
        actually use it.

2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/21952
        * gigi.h (gnat_internal_attribute_table): Declare.
        * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
        * utils.c (gnat_internal_attribute_table): New global variable.
        (builtin_function): Always call decl_attributes on the builtin.
        (handle_const_attribute): New static function.
        (handle_nothrow_attribute): Likewise.

2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.

2006-06-23  Olivier Hainque  <hainque@adacore.com>

        * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
        not been able to get a constant upper bound from TYPE_SIZE_UNIT.

2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
            Eric Botcazou  <ebotcazou@adacore.com>

        PR ada/18692
        * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
        check-gnat into check-acats.

2006-06-17  Karl Berry  <karl@gnu.org>

        * gnat-style.texi (@dircategory): Use "Software development"
        instead of "Programming", following the Free Software Directory.

2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

        PR ada/27944
        * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.

2006-06-06  Laurent Guerby  <laurent@guerby.net>

        PR ada/27769
        mlib-utl.adb: Use Program_Name.

2006-05-28  Kazu Hirata  <kazu@codesourcery.com>

        * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
        sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
        trans.c, utils.c: Fix comment typos.  Follow spelling
        conventions.
        * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
        conventions.

2006-05-19  Nicolas Setton  <setton@adacore.com>

        * misc.c (gnat_dwarf_name): New function.
        (LANG_HOOKS_DWARF_NAME): Define to it.

2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>

        * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
        (ada/misc.o): Likewise.
        (ada/utils.o): Likewise.

2006-04-08  Aurelien Jarno  <aurel32@debian.org>

        * Makefile.in: Add Ada support for GNU/kFreeBSD.
        * s-osinte-kfreebsd-gnu.ads: New file.

2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>

        * Make-lang.in: Rename docdir to gcc_docdir.

2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>

        * gigi.h (get_ada_base_type): Delete.
        * utils2.c (get_ada_base_type): Likewise.
        * trans.c (convert_with_check): Operate in the real base type.

2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * uintp.adb (Num_Bits): Handle Uint_Int_First specially.

2006-03-02  Richard Sandiford  <richard@codesourcery.com>

        * utils.c (create_var_decl): Use have_global_bss_p when deciding
        whether to make the decl common.

2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

        * Make-lang.in (Ada): Remove.
        (.PHONY): Remove Ada

2006-02-17  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
        aggregate, check the interpretations of the other operand to find one
        that may be a boolean array.

        (Analyze_Selected_Component): Fix flow-of-control typo in case where
        the prefix is a private extension.

2006-02-17  Eric Botcazou  <botcazou@adacore.com>

        PR ada/26315
        * utils2.c (find_common_type): If both input types are BLKmode and
        have the same constant size, keep using the first one.

        * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.

        * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.

        * misc.c (gnat_handle_option): New case for -Woverlength-strings.

2006-02-17  Jose Ruiz  <ruiz@adacore.com>

        * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
        s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
        s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
        s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
        Abort_Defer/Undefer pairs to avoid the possibility of a task being
        aborted while owning a lock.

2006-02-17  Javier Miranda  <miranda@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
        through an access to class-wide interface we force the displacement of
        the pointer to the allocated object to reference the corresponding
        secondary dispatch table.
        (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
        if Long_Shifts are supported on the target, even if 64 bit divides
        are not supported (configurable run time mode).
        (Expand_N_Type_Conversion): Do validity check if validity checks on
        operands are enabled.
        (Expand_N_Qualified_Expression): Do validity check if validity checks
        on operands are enabled.

2006-02-17  Ed Schonberg  <schonberg@adacore.com>

        * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
        must be materialized when the renamed expression is an explicit
        dereference.

2006-02-17  Ed Schonberg  <schonberg@adacore.com>

        * freeze.adb (Statically_Discriminated_Components): Return false if
        the bounds of the type of the discriminant are not static expressions.

        * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
        the bounds of the discriminant type are not static.

2006-02-17  Robert Dewar  <dewar@adacore.com>

        * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
        then we close To if it is valid.

2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>

        * init.c (facility_resignal_table): new array
        (__gnat_default_resignal_p): enhance default predicate to resignal if
        VMS condition has one of the predefined facility codes.

2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>

        * Makefile.in: Use VMS64 specialized versions of several units in
        Interfaces.C hierarchy to be compatible with HP C default size choices.
        Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.

2006-02-17  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
        instantiation, the corresponding entity is the related_instance of the
        wrapper package created for the instance.

2006-02-17  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
        the current instance is nested within another instance in a child unit.

2006-02-17  Javier Miranda  <miranda@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
        type we cannot inherit the primitive operations; we inherit the
        Corresponding_Record_Type (which has the list of primitive operations).
        (Check_Anonymous_Access_Types): When creating anonymous access types for
        access components, use Rewrite in order to preserve the tree structure,
        for ASIS use.
        (Analyze_Object_Declaration): For limited types with access
        discriminants with defaults initialized by an aggregate, obtain
        subtype from aggregate as for other mutable types.
        (Derived_Type_Declaration): If the derived type is a limited interface,
        set the corresponding flag (Is_Limited_Record is not sufficient).

2006-02-17  Ed Schonberg  <schonberg@adacore.com>

        * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
        to inline a function that returns an unconstrained type, the return
        expression must be the first variable declared in the body of the
        function.

2006-02-17  Javier Miranda  <miranda@adacore.com>

        * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
        abstract interface type, the static analysis is not enough to know if
        the interface is implemented or not by the source tagged type. Hence
        we must pass the work to the expander to generate the required code to
        evaluate the conversion at run-time.
        (Resolve_Equality_Op): Do not apply previous
        transformation if expansion is disasbled, to prevent anomalies when
        locating global references in a generic unit.

2006-02-17  Vincent Celier  <celier@adacore.com>

        * snames.ads, snames.adb: New standard names for new project attributes:
        archive_builder, archive_indexer, compiler_pic_option,
        config_body_file_name, config_body_file_name_pattern,
        config_file_switches, config_file_unique, config_spec_file_name,
        config_spec_file_name_pattern, default_builder_switches,
        default_global_compiler_switches, default_language,
        dependency_file_kind, global_compiler_switches, include_path,
        include_path_file, language_kind, linker_executable_option,
        linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
        roots, runtime_project.

2006-02-17  Matthew Heaney  <heaney@adacore.com>

        * a-convec.ads, a-convec.adb:
        (operator "&"): handle potential overflow for large index types
        (Insert): removed Contraint_Error when using large index types
        (Insert_Space): removed Constraint_Error for large index types
        (Length): moved constraint check from Length to Insert

        * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
        as not null access.
        Explicit raise statements now include an exception message.
        (operator "&"): handle potential overflow for large index types
        (Insert): removed Contraint_Error when using large index types
        (Insert_Space): removed Constraint_Error for large index types
        (Length): moved constraint check from Length to Insert

2006-02-17  Robert Dewar  <dewar@adacore.com>

        * s-wchcnv.adb: Document handling of [ on output (we do not change
        this to ["5B"] and the new comments say why not.

        * gnat_ugn.texi:
        Add note for -gnatVo that this now includes the cases of type
        conversions and qualified expressions.
        Add comments on handling of brackets encoding for Text_IO

2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
            Thomas Quinot  <quinot@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * expander.adb: Fix typo in comment

        * exp_pakd.adb: Fix typo
        Minor comment reformatting.

        * g-dyntab.adb: Minor reformatting

        * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
        aliased subprograms to look for the abstract interface subprogram.

2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>

        * env.c (__gnat_setenv): Use size_t.
        (__gnat_unsetenv): Likewise.
        (__gnat_clearenv): Likewise.

2006-02-16  Arnaud Charlet  <charlet@adacore.com>

        * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.

2006-02-13  Arnaud Charlet  <charlet@adacore.com>

        * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
        g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
        i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
        s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
        s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
        s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
        s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
        s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
        s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
        no longer used.

2006-02-13  Jose Ruiz  <ruiz@adacore.com>

        * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
        protection against race conditions is not needed.
        (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
        fallback handler.
        (Set_Specific_Handler): Add mutual exclusive access to the specific
        handler.
        (Specific_Handler): Add mutual exclusive access for retrieving the
        specific handler.

        * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
        back handler.

        * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
        Fall_Back_Handler and Specific_Handler.

        * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
        termination handlers.
        Set two different owerflow depending on the maximal stack size.

        * s-solita.adb (Task_Termination_Handler_T): Document why explicit
        protection against race conditions is not needed when executing the
        task termination handler.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
        a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
        a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
        a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
        a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
        a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
        a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
        a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
        a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
        a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
        a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
        a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
        a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
        a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
        a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
        a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
        a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
        a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
        a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
        a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
        g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
        g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
        mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
        prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
        s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
        s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
        s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
        s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
        s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
        s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
        a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
        fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
        par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
        system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
        reformatting.

2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
        s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
        s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
        s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
        a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
        s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
        a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
        s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
        s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.

2006-02-13  Arnaud Charlet  <charlet@adacore.com>

        * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
        s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
        s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
        s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
        s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
        s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
        replaced by anonymous access type.
        (pthread_sigmask): Now take an access sigset_t

        * s-osinte-hpux.ads:  Ditto.
        (pthread_mutex_t, pthread_cond_t): Update definitions to support
        properly 32 and 64 bit ABIs.

2006-02-13  Pascal Obry  <obry@adacore.com>

        * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
        s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
        s-taprop-linux.adb, s-taprop-solaris.adb,
        s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
        adjustement is already done when calling this routine.

2006-02-13  Pascal Obry  <obry@adacore.com>

        * system-mingw.ads (Underlying_Priorities): Update the priority mapping
        table to take advantage of the 16 priority levels available on Windows
        2000 and XP. On NT4 there are only 7 priority levels, this is properly
        supported by this new mapping.

2006-02-13  Nicolas Setton  <setton@adacore.com>

        * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
        (get_encoding): New subprogram. Extracts the encodings from an encoded
        Ada name.

2006-02-13  Pascal Obry  <obry@adacore.com>
            Nicolas Roche  <roche@adacore.com>
            Arnaud Charlet  <charlet@adacore.com>

        * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
        support.
        (__gnat_try_lock): Add unicode support by using a specific section on
        Windows.
        (__gnat_get_current_dir): Idem.
        (__gnat_open_read): Idem.
        (__gnat_open_rw): Idem.
        (__gnat_open_create): Idem.
        (__gnat_create_output_file): Idem.
        (__gnat_open_append): Idem.
        (__gnat_open_new): Idem.
        (__gnat_file_time_name): Idem.
        (__gnat_set_file_time_name): Idem.
        (__gnat_stat): Idem.
        (win32_no_block_spawn): Idem.
        (__gnat_locate_exec_on_path): Idem.
        (__gnat_opendir): New routine.
        (__gnat_closedir): Idem.
        (__gnat_readdir): Add new parameter length (pointer to int). Update
        implementation to use it and add specific Win32 code for Unicode
        support.
        (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
        (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
        (convert_addresses): Do not define this dummy routine on VMS.

        * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
        runtime Unicode support will be activated.
        (S2WS): String to Wide-String conversion. This version just copy a
        string in non Unicode version.
        (WS2S): Wide-String to String conversion. This version just copy a
        string in non Unicode version.

        * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
        (Open): Now import __gnat_opendir from adaint.c.
        (Read): Change the implementation to support unicode characters. It is
        not possible to use strlen() on Windows as this version supports only
        standard ASCII characters. So the length of the directory entry is now
        returned from the imported __gnat_readdir routine.
        Update copyright notice.

        * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
        (opendir): Moved to adaint.c.

        * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
        (Get_Directory): Fix wrong indexing.
        (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
        __gnat_getenv from env.c
        (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
        from env.c

        * env.h, env.c: New file.

        * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
        adaint.c by __gnat_getenv from env.c

        * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
        adaint.c by __gnat_getenv from env.c

        * Make-lang.in: Add env.o in the list of C object needed by gnat1
        and gnatbind.
        Update dependencies.

2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
            Olivier Hainque  <hainque@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.

        * gigi.h (value_factor_p): Add prototype and description, now public.

        * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
        promotion for field with rep clause if the associated size was proven
        to be in error.
        Expand comments describing attempts to use a packable type.
        (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
        E_Floating_Point_Subtype>: Inherit alias set of what we are making a
        subtype of to ensure conflicts amongst all subtypes in a hierarchy,
        necessary since these are not different types and pointers may
        actually designate any subtype in this hierarchy.
        (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
        discriminants but put them into record only if not Unchecked_Union;
        pass flag to components_to_record showing Unchecked_Union.
        (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
        components before variants; don't set TYPE_UNCHECKED_UNION_P.
        (components_to_record): New argument UNCHECKED_UNION.
        Remove special case code for Unchecked_Union and instead use main code
        with small changes.

        PR ada/26096
        (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
        variable with the expression being built, only its inner field.

        * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
        emit_sequence_entry_statements.
        (emit_sequence_entry_statements, body_with_handlers_p): Delete.
        (establish_gnat_vms_condition_handler): Move before
        Subprogram_Body_to_gnu.
        (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
        for a subprogram if it has a foreign convention or is exported.
        (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
        substituted for a CONST_DECL.
        (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
        Etype to assoc_to_constructor.
        (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
        discriminants of Unchecked_Union.
        (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
        don't need cluttering preprocessor directives.
        (establish_gnat_vms_condition_handler): New function. Establish the GNAT
        condition handler as current in the compiled function.
        (body_with_handlers_p): New function. Tell whether a given sequence of
        statements node is attached to a package or subprogram body and involves
        exception handlers possibly nested within inner block statements.
        (emit_sequence_entry_statements): New function, to emit special
        statements on entry of sequences when necessary. Establish GNAT
        condition handler in the proper cases for VMS.
        (Handled_Sequence_Of_Statements_to_gnu): Start block code with
        emit_sequence_entry_statements.

        * utils2.c (find_common_type): If both input types are BLKmode and
        have a constant size, use the smaller one.
        (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
        the same.

        * utils.c (value_factor_p): Make public, to allow uses from other gigi
        units.
        (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
        (convert, case UNION_TYPE): Remove special treatment for unchecked
        unions.

        PR ada/18659
        (update_pointer_to): Update variants of pointer types to unconstrained
        arrays by attaching the list of fields of the main variant.

2006-02-13  Arnaud Charlet  <charlet@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * a-exexpr.adb, a-exexpr-gcc.adb
        (Process_Raise_Exception): Removed, merged with Propagate_Exception.
        (Propagate_Exception): Now take extra From_Signal_Handler parameter.
        Remove code unused for exception propagation for the compiler itself
        from a-except.adb and update to still share separate packages.

        * a-except.ads, a-except.adb: Ditto.
        Add comments that this version is now used only by the compiler and
        other basic tools. The full version that includes the Ada 2005 stuff
        is in separate files a-except-2005.ads/adb. The reason is that we do
        not want to cause bootstrap problems with compilers not recognizing
        Wide_Wide_String.
        Add exception reason code PE_Implicit_Return
        Add new exception reason code (Null Exception_Id)

        * a-except-2005.adb, a-except-2005.ads: New files.

        * s-wchcon.ads: (Get_WC_Encoding_Method): New function.

        * s-wchcon.adb: New file.

        * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
        (traceback.o deps): Likewise.
        (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
        Activate build of GMEM instrumentation library on VMS targets.
        (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
        Use a-except-2005.ads/adb for all run-time library builds unless
        specified otherwise.
        [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
        s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
        Use s-parame.adb on all native platforms.
        Use s-parame-vxworks.adb on all vxworks platforms.
        Add env.c env.h in LIBGNAT_SRCS
        Add env.o in LIBGNAT_OBJS
        (GNATMAKE_OBJS): Remove ctrl_c.o object.
        (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
        s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
        supports VxWorks 6 RTPs.
        (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
        i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.

        * types.h, types.ads (Terminate_Program): New exception
        Add comment on modifying multiple versions of a-except.adb when the
        table of exception reasons is modified.
        Add exception reason code PE_Implicit_Return
        Add new exception reason code (Null Exception_Id)

        * clean.adb (Initialize): Get the target parameters before checking
        if target is OpenVMS. Move the OpenVMS specific code here from package
        body elaboration code.

2006-02-13  Thomas Quinot  <quinot@adacore.com>
            Vincent Celier  <celier@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * ali-util.adb (Get_File_Checksum): Update to account for change in
        profile of Initialize_Scanner.

        * gprep.adb (Gnatprep): Update to account for change in profile of
        Initialize_Scanner.
        (Process_One_File): Same.

        * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
        common code between Get_Code_Unit and Get_Source_Unit. Reimplement
        that behaviour using the new Unit information recorded in the source
        files table, rather than going through all units every time.
        (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
        (Get_Source_Unit): Same.

        * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
        change in profile of Initialize_Scanner.
        (Prepare_To_Preprocess): Same.

        * lib.ads: Fix typo in comment (templace -> template).

        * prj-part.adb (Parse_Single_Project): Update to account for change in
        profile of Initialize_Scanner.

        * scn.adb (Initialize_Scanner): Account for change in profile of
        Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
        Also record the association of the given Source_File_Index to the
        corresponding Unit_Number_Type.

        * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
        procedure.
        (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
        Remove Unit formal for generic scanner: this formal
        is only relevant to Scn (the scanner instance used to parse Ada source
        files), not to other instances. Update comment accordingly.
        (Scan): Use new function Snames.Is_Keyword_Name.

        * sinfo-cn.adb: Fix typo in comment.

        * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
        Unit.

        * sinput.ads (Source_File_Record): New component Unit, used to capture
        the unit identifier (if any) associated to a source file.

        * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
        Unit in Source_File_Record.

        * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
        in profile of Initialize_Scanner.

        * scans.adb (Initialize_Ada_Keywords): New procedure

        * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
        Ada keywords in the Namet table, without the need to call
        Initialize_Scanner.

        * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
        (Is_Keyword_Name): New function

        * snames.ads: Add subtype Configuration_Pragma_Names
        Add pragma Ada_2005 (synonym for Ada_05)
        (Is_Keyword_Name): New function

        * snames.h: Add pragma Ada_2005 (synonym for Ada_05)

2006-02-13  Arnaud Charlet  <charlet@adacore.com>

        * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
        index.

        * a-stwima.adb (To_Set): Add extra check when N = 0.

        * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.

2006-02-13  Arnaud Charlet  <charlet@adacore.com>

        * s-parame-mingw.adb, s-parame-linux.adb,
        s-parame-solaris.adb: Removed, replaced by s-parame.adb

        * s-parame-vxworks.ads: Fix typo.

        * s-parame-vxworks.adb: New file.

        * s-parame.adb: Version now used by all native platforms.
        (Default_Stack_Size): Use 2 megs for default stack size and use
        __gl_default_stack_size when available.
        (Minimum_Stack_Size): Use 12K.

        * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
        (Create_Task): Refine implementation taking advantage of the XP stack
        size support. On XP, we now create the thread using the flag
        STACK_SIZE_PARAM_IS_A_RESERVATION.

        * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.

        * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
        XP and 0 on older Windows versions.

        * interfac-vms.ads: Removed, no longer used.

2006-02-13  Matthew Heaney  <heaney@adacore.com>

        * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
        a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
        a-cohase.adb: All explicit raise statements now include an exception
        message.

        * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
        (Update_Element_Preserving_Key): renamed op to just Update_Element.
        Explicit raise statements now include an exception message

        * a-cihase.ads, a-cohase.ads: Removed comment.

        * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
        a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
        a-szbzha.adb, a-szfzha.ads: New files.

2006-02-13  Matthew Heaney  <heaney@adacore.com>

        * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
        quicksort.

2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>

        * lang.opt: Wvariadic-macros: New option.
        Wold-style-definition: Likewise.
        Wmissing-format-attribute: Likewise.

        * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
        -Wold-style-definition and -Wmissing-format-attribute.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)

        * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.

2006-02-13  Nicolas Roche  <roche@adacore.com>

        * a-envvar.adb, a-envvar.ads: New files.

2006-02-13  Douglas Rupp  <rupp@adacore.com>

        * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads

        * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.

2006-02-13  Pat Rogers  <rogers@adacore.com>

        * a-rttiev.adb, a-rttiev.ads: New files.

2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>

        * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
        a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.

        * impunit.adb, Makefile.rtl: Added new Ada 2005 units.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
        sem_case.adb: Minor code reorganization (not Present should be No)

2006-02-13  Geert Bosch  <bosch@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
        0, since the lower bound of the actual string may be greater than one.

        PR ada/20753
        * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
        layout is requested.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * back_end.adb (Scan_Compiler_Arguments): Check if
        Search_Directory_Present is True and, if it is, add the argument in
        the source search directory path.

        * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
        Search_Directory_Present to True.

2006-02-13  Joel Brobecker  <brobecke@adacore.com>

        * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
        volatile, to tell the compiler to preserve this variable at any level
        of optimization.
        (Gen_Versions_Ada): Temporarily work around codegen bug.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
        gcc to link with option -shared-libgcc.
        (Gnatlink): Remove duplicate switches -shared-libgcc

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * gnatvsn.ads (Current_Year): New constant, used to easily update
        copyright on all GNAT tools.

        * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
        copyright notice.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
        after hyphen (small aesthetic change useful for a range of numbers
        using ^-^.
        Suppress range checks for a couple of assignments which otherwise
        cause validity checks with validity checking turned on.

        * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
        Improvement in error message for object.
        (Rep_Item_Too_Late): Remove '!' in warning message.

2006-02-13  Robert Dewar  <dewar@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * err_vars.ads: Suppress range checks for a couple of assignments
        which otherwise cause validity checks with validity checking turned on.
        Update comments.

        * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
        Make message unconditional if it is a warning.
        (Error_Msg_NEL): Always output warning messages.
        Suppress range checks for a couple of assignments which otherwise
        cause validity checks with validity checking turned on.

        * errout.ads (Message Insertion Characters): Document that '!' is
        implied by '?' in error messages.

        * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
        (Gnat1drv): Use a goto to end of main subprogram instead of
        Exit_Program (E_Success) so that finalization can occur normally.

2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>

        * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
        wrapped around.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
        Unchecked_Conversion functions.
        (Modification_Time): Use direct conversion of OS_Time to Calendar time
        when OpenVMS returns False.

        * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
        a-dirval.adb (OpenVMS): New Boolean function

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Thomas Quinot  <quinot@adacore.com>

        * checks.adb (Build_Discriminant_Checks): If the expression being
        checks is an aggregate retrieve the values of its discriminants to
        generate the check, rather than creating a temporary and a reference
        to it.
        (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
        (Install_Null_Excluding_Check): Ditto
        (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
        not for the renamed object, so that the actual itype is attached in the
        proper context.

2006-02-13  Robert Dewar  <dewar@adacore.com>
            Vincent Celier  <celier@adacore.com>

        * debug.adb: Eliminate numeric switches for binder/gnatmake

        * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
        switches for the compiler.
        (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
        (Scan_Make_Switches): When failing with an illegal switch, output an
        error message with the full switch.
        Eliminate numeric switches for binder/gnatmake

        * switch.ads, switch.adb (Bad_Switch): New procedure

        * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
        Remove 0-9 as debug flag character possibilities
        -d is now controlling the primary stack size when its value is a
        positive. Also add checks against invalid values, and support for kb,
        mb. Ditto for -D switch.

2006-02-13  Robert Dewar  <dewar@adacore.com>
            Serguei Rybin  <rybin@adacore.com>

        * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
        save/restore routines.
        Properly handle Ada_Version_Explicit and Ada_Version_Config, which
        were not always properly handled previously.
        Since we are changing the tree format anyway, also get rid of the
        junk obsolete Immediate_Errors flag.
        (Tree_Read): Change the way of reading Tree_Version_String - now we
        read the version string from the tree even if its length is not the
        same as the length of the version string computed from Gnatvsn.
        (Search_Directory_Present): New Boolean flag for the compiler.
        Define Tree_Version_String as a dynamic string.
        (Default_Stack_Size): new variable, used to handle switch -d.

        * par-prag.adb:
        For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
        only for main unit.
        Add pragma Ada_2005 (synonym for Ada_05)
        Properly handle Ada_Version_Explicit and Ada_Version_Config, which
        were not always properly handled previously.

        * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
        explicit Ada_95 to Ada_2005.

2006-02-13  Javier Miranda  <miranda@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
        against errors in the source program: a private types for which the
        corresponding full type declaration is missing and pragma CPP_Virtual
        is used.
        (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
        (Is_Known_Null): New flag
        (Has_Pragma_Pure): New flag
        (No_Return): Present in all entities, set only for procedures
        (Is_Limited_Type): A type whose ancestor is an interface is limited if
        explicitly declared limited.
        (DT_Offset_To_Top_Func): New attribute that is present in E_Component
        entities. Only used for component marked Is_Tag. If present it stores
        the Offset_To_Top function used to provide this value in tagged types
        whose ancestor has discriminants.

        * exp_ch2.adb: Update status of new Is_Known_Null flag

        * sem_ch7.adb: Maintain status of new Is_Known_Null flag

        * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
        the categorization sense if Is_Pure was set by pragma Pure_Function.

2006-02-13  Quentin Ochem  <ochem@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

        * bindusg.adb: Updated documentation for -d and -D switches.

        * raise.h (__gnat_set_globals): added new parameter for
        Default_Stack_Size.

        * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
        (__gnat_handle_vms_condition): Adjust context before raise.
        (__gnat_install_handler): Restore the global vector setup for GCC
        versions before 3.4, as the frame based circtuitry is not available
        in this case.
        (__gnat_set_globals): added a parameter default_stack_size
        (__gl_default_stack_size): new variable.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>

        * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
        "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
        does not exist in the Ada RM.
        (Compatible_Int_Bounds): Determine whether two integer range bounds
        are of equal length and have the same start and end values.
        (Is_Int_Range_Bounds): Determine whether a node is an integer range.
        (Build_Record_Aggr_Code): Perform proper sliding of a nested array
        aggregate when it is part of an object declaration.
        (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
        constrains discriminants of its parent, add explicitly the discriminant
        constraints of the ancestor by retrieving them from the
        stored_constraint of the parent.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
        attribute Mechanism_Code is applied to renamed subprogram, modify
        prefix to point to base subprogram.
        Max/Min attributes now violate Restriction No_Implicit_Conditionals

        * sinfo.ads: Document that Mechanism_Code cannot be applied to
        renamed subprograms so that the front-end must replace the prefix
        appropriately.

2006-02-13  Javier Miranda  <miranda@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
        availability of RE_Interface_Tag.
        (Build_Initialization_Call): Fix wrong access to the discriminant value.
        (Freeze_Record_Type): Do not generate the tables associated with
        timed and conditional dispatching calls through synchronized
        interfaces if compiling under No_Dispatching_Calls restriction.
        When compiling for Ada 2005, for a nonabstract
        type with a null extension, call Make_Controlling_Function_Wrappers
        and insert the wrapper function declarations and bodies (the latter
        being appended as freeze actions).
        (Predefined_Primitive_Bodies): Do not generate the bodies of the
        predefined primitives associated with timed and conditional
        dispatching calls through synchronized interfaces if we are
        compiling under No_Dispatching_Calls.
        (Build_Init_Procedure):  Use RTE_Available to check if a run-time
        service is available before generating a call.
        (Make_Controlling_Function_Wrappers): New procedure.
        (Expand_N_Full_Type_Declaration): Create a class-wide master for
        access-to-limited-interfaces because they can be used to reference
        tasks that implement such limited interface.
        (Build_Offset_To_Top_Functions): Build the tree corresponding to the
        procedure spec and body of the Offset_To_Top function that is generated
        when the parent of a type with discriminants has secondary dispatch
        tables.
        (Init_Secondary_Tags): Handle the case in which the parent of the type
        containing secondary dispatch tables has discriminants to generate the
        correct arguments to call Set_Offset_To_Top.
        (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.

        * a-tags.ads, a-tags.adb: (Check_Index): Removed.
        Add Wide_[Wide_]Expanded_Name.
        (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
        the same functionality of Get_Prim_Op_Address but applied to predefined
        primitive operations because the pointers to the predefined primitives
        are now saved in a separate table.
        (Parent_Size): Modified to get access to the separate table of primitive
        operations or the parent type.
        (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
        functionality of Set_Prim_Op_Address but applied to predefined primitive
        operations.
        (Set_Signature): New subprogram used to store the signature of a DT.
        (Displace): If the Offset_To_Top value is not static then call the
        function generated by the expander to get such value; otherwise use
        the value stored in the table of interfaces.
        (Offset_To_Top): The type of the actual has been changed to Address to
        give the correct support to tagged types with discriminants. In this
        case this value is stored just immediately after the tag field.
        (Set_Offset_To_Top): Two new formals have been added to indicate if the
        offset_to_top value is static and hence pass this value to the run-time
        to store it in the table of interfaces, or else if this value is dynamic
        and then pass to the run-time the address of a function that is
        generated by the expander to provide this value for each object of the
        type.

        * rtsfind.ads (Default_Prin_Op_Count): Removed.
        (Default_Prim_Op_Count): New entity
        (Get_Predefined_Prim_Op_Address): New entity
        (Set_Predefined_Prim_Op_Address): New entity
        (RE_Set_Signature): New entity

2006-02-13  Thomas Quinot  <quinot@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
        Make_Adjust_Call done for a newly-allocated object.

        * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
        in a subprogram are wrapped in a cleanup block, indicate that the
        subprogram contains an inner block with an exception handler.
        (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
        Adjust call is for a newly-allocated object. In that case we must not
        assume that the finalization list chain pointers are correct (since they
        come from a bit-for-bit copy of the original object's pointers) so if
        the attach level would otherwise be zero (no change), we set it to 4
        instead to cause the pointers to be reset to null.

        * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
        reset chain pointers to null.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>

        * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
        string, and the context requires a loop for the assignment (e.g.
        because the left-hand side is packed), generate a unique name for the
        temporary that holds the string, to prevent spurious name clashes.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
        return unconstrained arrays.
        Update comments.
        (Expand_Call):  An indirect call through an access parameter of a
        protected operation is not a protected call.
        Add circuit to raise CE in Ada 2005 mode following call
        to Raise_Exception.
        (Register_DT_Entry): Do nothing if
        the run-time does not give support to abstract interfaces.
        (Freeze_Subprogram): In case of dispatching operations, do not generate
        code to register the operation in the dispatch table if the source
        is compiled with No_Dispatching_Calls.
        (Register_Predefined_DT_Entry): Generate code that calls the new
        run-time subprogram Set_Predefined_Prim_Op_Address instead of
        Set_Prim_Op_Address.

        * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
        on array assignments if the right-hand side is a function call that has
        been inlined. Check is performed on the assignment in the block.
        (Process_Bounds): If bounds and range are overloaded, apply preference
        rule for root operations to disambiguate, and diagnose true ambiguity.
        (Analyze_Assignment): Propagate the tag for a class-wide assignment with
        a tag-indeterminate right-hand side even when Expander_Active is True.
        Needed to ensure that dispatching calls to T'Input are allowed and
        get the tag of the target class-wide object.

        * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
        an inherited primitive operation that already overrides several
        abstract interface primitives. For transitivity, the new entity must
        also override all the abstract interface primitives covered by the
        inherited overriden primitive.
        Emit warning if new entity differs from homograph in same scope only in
        that one has an access parameter and the other one has a parameter of
        a general access type with the same designated type, at the same
        position in the signature.
        (Make_Inequality_Operator): Use source locations of parameters and
        subtype marks from corresponding equality operator when creating the
        tree structure for the implicit declaration of "/=". This does not
        change anything in behaviour except that the decoration of the
        components of the subtree created for "/=" allows ASIS to get the
        string images of the corresponding identifiers.
        (Analyze_Return_Statement): Remove '!' in warning message.
        (Check_Statement_Sequence): Likewise.
        (Analyze_Subprogram_Body): For an access parameter whose designated type
        is an incomplete type imported through a limited_with clause, use the
        type of the corresponding formal in the body.
        (Check_Returns): Implicit return in No_Return procedure now raises
        Program_Error with a compile time warning, instead of beging illegal.
        (Has_Single_Return):  Function returning unconstrained type cannot be
        inlined if expression in unique return statement is not an identifier.
        (Build_Body_To_Inline): It is possible to inline a function call that
        returns an unconstrained type if all return statements in the function
        return the same local variable. Subsidiary procedure Has_Single_Return
        verifies that the body conforms to this restriction.

        * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
        same type, and  one of them is of an anonymous access type, convert
        the other operand to it, so that this is a valid binary operation for
        gigi.
        (Resolve_Type_Conversion): Handle subtypes of protected types and
        task types when accessing to the corresponding record type.
        (Resolve_Allocator): Add '\' in 2-line warning message.
        Remove '!' in warning message.
        (Resolve_Call): Add '\' in 2-line warning message.
        (Valid_Conversion): Likewise.
        (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
        resulting type may be an access type with an implicit dereference.
        Obtain the proper component from the designated type.
        (Make_Call_Into_Operator): Handle properly a call to predefined equality
        given by an expanded name with prefix Standard, when the operands are
        of an anonymous access type.
        (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
        Explicit_Dereference and Resolve_Selected_Component, to verify that the
        prefix of the expression is not of an incomplete type. Allows full
        diagnoses of all semantic errors.
        (Resolve_Actuals): If the actual is an allocator whose directly
        designated type is a class-wide interface we build an anonymous
        access type to use it as the type of the allocator. Later, when
        the subprogram call is expanded, if the interface has a secondary
        dispatch table the expander will add a type conversion to force
        the displacement of the pointer.
        (Resolve_Call): If a function that returns an unconstrained type is
        marked Inlined_Always and inlined, the call will be inlined and does
        not require the creation of a transient scope.
        (Check_Direct_Boolean_Op): Removed
        (Resolve_Comparison_Op): Remove call to above
        (Resolve_Equality_Op): Remove call to above
        (Resolve_Logical_Op): Inline above, since this is only call.
        (Valid_Conversion): Handle properly conversions between arrays of
        convertible anonymous access types.

        PR ada/25885
        (Set_Literal_String_Subtype): If the lower bound is not static, wrap
        the literal in an unchecked conversion, because GCC 4.x needs a static
        value for a string bound.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Hristian Kirtchev  <kirtchev@adacore.com>

        * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
        components of the corresponding record, take into account component
        definitions that are access definitions.
        (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
        procedure is not considered a dispatching call and will be expanded
        properly.

2006-02-13  Javier Miranda  <miranda@adacore.com>

        * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
        controlling argument of the dispatching call is an abstract interface
        class-wide type then we use it directly.
        Check No_Dispatching_Calls restriction.
        (Default_Prim_Op_Position): Remove the code that looks for the last
        entity in the list of aliased subprograms. This code was wrong in
        case of renamings.
        (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
        when the source is compiled with the No_Dispatching_Calls restriction.
        (Init_Predefined_Interface_Primitives): No need to inherit primitives
        if we are compiling with restriction No_Dispatching_Calls.
        (Make_Disp_XXX): Addition of assertion to avoid the use of all these
        subprograms if we are compiling under No_Dispatching_Calls restriction.
        (Make_DT): Generate a dispatch table with a single dummy entry if
        we are compiling with the No_Dispatching_Calls restriction. In
        addition, in this case we don't generate code that calls to the
        following run-time subprograms: Set_Type_Kind, Inherit_DT.
        (Make_Select_Specific_Data_Table): Add assertion to avoid the use
        of this subprogram if compiling with the No_Dispatching_Calls
        restriction.
        (Expand_Type_Conversion): Instead of using the actual parameter,
        the argument passed as parameter to the conversion function was
        erroneously referenced by the expander.
        (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
        Set_Predefined_Primitive_Op_Address and Set_Signature.
        (Expand_Dispatching_Call): Generate call to
        Get_Predefined_Prim_Op_Address for predefined primitives.
        (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
        predefined primitives.
        (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
        primitives we reserve one dummy entry to ensure that the tag does not
        point to some memory that is associated with some other object. In
        addition, remove all the old code that generated the assignments
        associated with the signature of the dispatch table and replace them
        by a call to the new subprogram Set_Signature.
        (Set_All_DT_Position): Change the algorithm because now we have a
        separate dispatch table associated with predefined primitive operations.
        (Expand_Interface_Conversion): In case of non-static offset_to_top
        add explicit dereference to get access to the object after the call
        to displace the pointer to the object.
        (Expand_Interface_Thunk): Modify the generation of the actual used
        in the calls to the run-time function Offset_To_Top to fulfil its
        new interface.
        (Make_DT): Add the new actuals required to call Set_Offset_To_Top.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>

        * exp_dist.adb (Copy_Specification): For access parameters, copy
        Null_Exclusion flag, which will have been set for stream subprograms
        in Ada2005 mode.

2006-02-13  Pascal Obry  <obry@adacore.com>

        * expect.c (__gnat_expect_portable_execvp): New implementation. The
        previous implementation was using the C runtime spawnve routine but
        the corresponding wait was using directly the Win32 API. This was
        causing some times a lock when waiting for an event using
        WaitForSingleObject in __gnat_waitpid. This new implementation uses
        the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
        API fixes this problem.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
        call.

2006-02-13  Thomas Quinot  <quinot@adacore.com>

        * exp_pakd.ads: Fix typos in comments.

        * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
        array reference that is an explicit dereference, mark the converted
        (packed) array reference as analyzed to prevent a forthcoming
        reanalysis from resetting its type to the original (non-packed) array
        type.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>
            Eric Botcazou  <ebotcazou@adacore.com>

        * exp_util.ads, exp_util.adb (Find_Prim_Op,
        Is_Predefined_Primitive_Operation): When
        searching for the predefined equality operator, verify that operands
        have the same type.
        (Is_Predefined_Dispatching_Operation): Remove the code that looks
        for the last entity in the list of aliased subprograms. This code
        was wrong in case of renamings.
        (Set_Renamed_Subprogram): New procedure
        (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
        Exp_Type constant computed when entering this subprogram.
        (Known_Null): New function
        (OK_To_Do_Constant_Replacement): New function
        (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
        (Side_Effect_Free): An attribute reference 'Input is not free of
        side effect, unlike other attributes that are functions. (from code
        reading).
        (Remove_Side_Effects): Expressions that involve packed arrays or records
        are copied at the point of reference, and therefore must be marked as
        renamings of objects.
        (Is_Predefined_Dispatching_Operation): Return false if the operation is
        not a dispatching operation.

        PR ada/18819
        (Remove_Side_Effects): Lift enclosing type conversion nodes for
        elementary types in all cases.

2006-02-13  Javier Miranda  <miranda@adacore.com>

        * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
        task types when accessing to the corresponding record type.
        Remove '!' in warning message.

2006-02-13  Olivier Hainque  <hainque@adacore.com>

        * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
        to avoid useless and space inefficient overalignments on targets where
        Max_Alignment is larger than 16.

2006-02-13  Pascal Obry  <obry@adacore.com>

        * g-catiio.adb (Sec_Number): New type used to compute the number of
        seconds since 1-1-1970.
        (Image) [Natural]: The parameter was an Integer, as we can't deal with
        negative numbers (years, months...) it is better to have a Natural here.
        Code clean-up.
        (Image) [Number]: Change parameter from Long_Integer to Number.
        (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
        overflow for dates past year 2038.

2006-02-13  Matthew Heaney  <heaney@adacore.com>

        *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
        Constraint_Error.

2006-02-13  Arnaud Charlet  <charlet@adacore.com>

        * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
        native platforms.
        (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
        finalization can occur normally.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * gnatcmd.adb (Rules_Switches): New table
        (Add_To_Rules_Switches): New procedure
        (GNATCmd): For command CHECK, put all options following "-rules" in the
        Rules_Switches table. Append these -rules switches after the -cargs
        switches.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
        These two cases were generating incorrect output, and if this unit
        was built with checks on, generated a discriminant mismatch constraint
        error.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * lib-xref.adb (Get_Type_Reference): For a private type whose full
        view is an array type, indicate the component type as well, for
        navigation purposes.
        (Generate_Reference): Don't consider array ref on LHS to be a case
        of violating pragma Unreferenced.
        Do not give Ada 2005 warning except on real reference.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
        main source, add switch -mdebug-main=_ada_ so that the executable can
        be debugged by the standard VMS debugger.
        (Gnatmake): Set No_Main_Subprogram to True when there is no main
        subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
        Exit the Multi_Main_Loop when Unique_Compile is True after compilation
        of the last source, as the binding and linking phases are never
        performed.
        Set all executable obsolete when rebuilding a library.

        * makeutl.adb (Linker_Options_Switches): Do not process empty linker
        options.

2006-02-13  Javier Miranda  <miranda@adacore.com>

        PR ada/23973
        * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
        code to improve the error message reported when the program has
        declarations of abstract interface types and it is not compiled with
        the -gnat05 switch.
        (P_Access_Definition): Reorganize the code to improve the error
        message reported when the new Ada 2005 syntax for anonymous
        access types is used and the program is not compiled with the
        -gnat05 switch.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
        stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
        (MODE_IN)

2006-02-13  Javier Miranda  <miranda@adacore.com>

        * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
        against source containing syntax errors.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * prj.adb (Reset): Initialize the first element of table Namings with
        the standard naming data.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * prj.ads (Error_Warning): New enumeration type

        * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
        unknown, use the location of the project to report the error.
        (When_No_Sources): New global variable
        (Report_No_Ada_Sources): New procedure
        (Check): New parameter When_No_Sources. Set value of global variable
        When_No_Sources,
        (Find_Sources): Call Report_No_Ada_Sources when appropriate
        (Get_Sources_From_File): Ditto
        (Warn_If_Not_Sources): Better warning messages indicating the unit name
        and the file name.

        * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
        Call Prj.Proc.Process with parameter When_No_Sources.

        * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
        Call Recursive_Check with parameter When_No_Sources.
        (Recursive_Check): New parameter When_No_Sources. Call itself and
        Prj.Nmsc.Check with parameter When_No_Sources.
        (Process): New parameter When_No_Sources. Call Check with parameter
        When_No_Sources.
        (Copy_Package_Declarations): New procedure to copy renamed parameters
        and setting the location of the declared attributes to the location
        of the renamed package.
        (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
        packages.

2006-02-13  Vincent Celier  <celier@adacore.com>

        * prj-makr.adb (Make): Preserve the comments from the original project
        file.
        When removing nodes (attributes Source_Dirs, Source_Files,
        Source_List_File and package Naming), save the comments and attach the
        saved comments to the newly created nodes.
        Do not add a with clause for the naming package if one already exists.

2006-02-13  Javier Miranda  <miranda@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * restrict.ads (No_Dispatching_Calls): New GNAT restriction.

        * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
        aliased entities to look for the overriden abstract interface
        subprogram.
        (Is_Interface_Subprogram): Complete documentation.
        (Check_Dispatching_Operation): Do not generate code to register the
        operation in the dispatch table if the source is compiled with
        restriction No_Dispatching_Calls.
        (Override_Dispatching_Operation): Check for illegal attempt to override
        No_Return procedure with procedure that is not No_Return
        (Check_Dispatching_Call): Suppress the check for an abstract operation
        when the original node of an actual is a tag-indeterminate attribute
        call, since the attribute, which must be 'Input, can never be abstract.
        (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
        call to the Input attribute (even when rewritten).
        (Propagate_Tag): Augment comment to indicate the possibility of a call
        to an Input attribute.

        * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
        calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.

        * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
        No_Wide_Characters is no longer partition-wide
        No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
        rather than GNAT

2006-02-13  Douglas Rupp  <rupp@adacore.com>

        * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.

2006-02-13  Javier Miranda  <miranda@adacore.com>

        * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
        handles default-initialized components to keep separate the management
        of this feature but also avoid the unrequired resolution and
        expansion of components that do not have partially initialized
        values.
        (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
        (Check_Bounds): Likewise.
        (Check_Length): Likewise.

2006-02-13  Javier Miranda  <miranda@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

        * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
        abstract interface type call analyze_and_resolve to expand the type
        conversion into the corresponding displacement of the
        reference to the base of the object.
        (Eval_Attribute, case Width): For systems where IEEE extended precision
        is supported, the maximum exponent occupies 4 decimal digits.
        (Accessibility_Message): Add '\' in 2-line warning message.
        (Resolve_Attribute): Likewise.
        (case Attribute_Access): Significantly revise checks
        for illegal access-to-subprogram Access attributes to properly enforce
        the rules of 3.10.2(32/2).
        Diagnose use of current instance with an illegal attribute.

        * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
        to a Node_Id.
        (Enclosing_Generic_Unit): New function to return a node's innermost
        enclosing generic declaration node.
        (Compile_Time_Constraint_Error): Remove '!' in warning messages.
        (Type_Access_Level): The accessibility level of anonymous acccess types
        associated with discriminants is that of the current instance of the
        type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
        (Compile_Time_Constraint_Error): Handle case of conditional expression.
        (Kill_Current_Values_For_Entity): New function
        (Enter_Name): Change formal type to Entity_Id

2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Gary Dismukes  <dismukes@adacore.com>

        * sem_ch10.adb (Check_Redundant_Withs): New procedure in
        Analyze_Compilation_Unit.
        Detect and warn on redundant with clauses detected in a package spec
        and/or body when -gnatwr is used.
        (Analyze_Context): Analyze config pragmas before other items
        (Install_Context_Items): Don't analyze config pragmas here
        (Install_Limited_Withed_Unit): Set limited entity of package in
        with_clause so that cross-reference information or warning messages on
        unused packages can be properly generated
        (Is_Visible_Through_Renamings): Return false if the limited_with_clause
        has Error_Posted set. Prevent infinite loops in illegal programs.
        (Check_Private_Child_Unit): Move test for a nonprivate with clause down
        to the point of the error test requiring the current unit to be private.
        This ensures that private with clauses are not exempted from the basic
        checking for being a descendant of the same library unit parent as a
        withed private descendant unit.
        (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
        handle private with clauses properly, as well as to account for cases
        where the withed unit is a public descendant of a private ancestor
        (in which case the current unit must be a descendant of the private
        ancestor's parent). The spec comments were updated accordingly. Also,
        the old error message in this subprogram was replaced with error
        messages that mirror the errors tested and reported by
        Check_Private_Child_Unit.
        Parameter and variable names improved for readability.
        (Install_Limited_Context_Clauses): Remove test for a withed unit being
        private as the precondition for calling
        Check_Private_Limited_Withed_Unit since that subprogram has been
        revised to test public units as well as private units.

2006-02-13  Thomas Quinot  <quinot@adacore.com>
            Robert Dewar  <dewar@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
        that Scope_Stack.First = 1.
        Properly handle Ada_Version_Explicit and Ada_Version_Config, which
        were not always properly handled previously.
        (Formal_Entity): Complete rewrite, to handle properly some complex case
        with multiple levels of parametrization by formal packages.
        (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
        to the corresponding derived type declaration for proper semantics.

        * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
        (Check_Component): Enforce restriction on components of
        unchecked_unions: a component in a variant cannot contain tasks or
        controlled types.
        (Unchecked_Union): Allow nested variants and multiple discriminants, to
        conform to AI-216.
        Add pragma Ada_2005 (synonym for Ada_05)
        Properly handle Ada_Version_Explicit and Ada_Version_Config, which
        were not always properly handled previously.
        Document that pragma Propagate_Exceptions has no effect
        (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
        (Set_Convention_From_Pragma): Check that if a convention is
        specified for a dispatching operation, then it must be
        consistent with the existing convention for the operation.
        (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
        longer required to specify an vtable-ptr component in the record. For
        compatibility reasons we leave the support for the previous definition.
        (Analyze_Pragma, case No_Return): Allow multiple arguments

        * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
        non-overrideen inherited operation with a controlling result as
        illegal only its implicit declaration comes from the derived type
        declaration of its result's type.
        (Check_Possible_Deferred_Completion): Relocate the object definition
        node of the subtype indication of a deferred constant completion rather
        than directly analyzing it. The analysis of the generated subtype will
        correctly decorate the GNAT tree.
        (Record_Type_Declaration): Check whether this is a declaration for a
        limited derived record before analyzing components.
        (Analyze_Component_Declaration): Diagnose record types  not explicitly
        declared limited when a component has a limited type.
        (Build_Derived_Record_Type): Code reorganization to check if some of
        the inherited subprograms of a tagged type cover interface primitives.
        This check was missing in case of a full-type associated with a private
        type declaration.
        (Constant_Redeclaration): Check that the subtypes of the partial and the
        full view of a constrained deferred constant statically match.
        (Mentions_T): A reference to the current type in an anonymous access
        component declaration  must be an entity name.
        (Make_Incomplete_Type_Declaration): If type is tagged, set type of
        class_wide type to refer to full type, not to the incomplete one.
        (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
        available. Required to give support to the certified run-time.
        (Analyze_Component_Declaration): In case of anonymous access components
        perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
        (Process_Discriminants): For an access discriminant, use the
        discriminant specification as the associated_node_for_itype, to
        simplify accessibility checks.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
        abstract interpretations on an operator, remove interpretations that
        yield Address or a type derived from it, if one of the operands is an
        integer literal.
        (Try_Object_Operation.Try_Primitive_Operation,
        Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
        location when creating the new reference to a primitive or class-wide
        operation as a part of rewriting a subprogram call.
        (Try_Primitive_Operations): If context requires a function, collect all
        interpretations after the first match, because there may be primitive
        operations of the same type with the same profile and different return
        types. From code reading.
        (Try_Primitive_Operation): Use the node kind to choose the proper
        operation when a function and a procedure have the same parameter
        profile.
        (Complete_Object_Operation): If formal is an access parameter and prefix
        is an object, rewrite as an Access reference, to match signature of
        primitive operation.
        (Find_Equality_Type, Find_One_Interp): Handle properly equality given
        by an expanded name with prefix Standard, when the operands are of an
        anonymous access type.
        (Remove_Abstract_Operations): If the operation is abstract because it is
        inherited by a user-defined type derived from Address, remove it as
        well from the set of candidate interpretations of an overloaded node.
        (Analyze_Membership_Op): Membership test not applicable to cpp-class
        types.

2006-02-13  Bob Duff  <duff@adacore.com>

        * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
        redundant use clauses.
        In particular, if the scope of two use clauses overlaps, but one is not
        entirely included in the other, we should not warn.  This can happen
        with nested packages.
        (Analyze_Subprogram_Renaming): Protect the compiler against previously
        reported errors. The bug was reported when the compiler was built
        with assertions enabled.
        (Find_Type): If the node is a 'Class reference and the prefix is a
        synchronized type without a corresponding record, return the type
        itself.

2006-02-13  Javier Miranda  <miranda@adacore.com>

        * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
        if this is the full-declaration associated with a private declaration
        that implement interfaces, then the private type declaration must be
        limited.
        (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
        as aliased. The use of the 'access attribute is not available for such
        object (for this purpose the object should be explicitly marked as
        aliased, but being an anonymous type this is not possible).

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * sem_elab.adb (Same_Elaboration_Scope): A package that is a
        compilation unit is an elaboration scope.
        (Add_Task_Proc): Add '\' in 2-line warning message.
        (Activate_All_Desirable): Deal with case of unit with'ed by parent

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Javier Miranda  <miranda@adacore.com>

        * sem_type.adb (Write_Overloads): Improve display of candidate
        interpretations.
        (Add_One_Interp): Do not add to the list of interpretations aliased
        entities corresponding with an abstract interface type that is an
        immediate ancestor of a tagged type; otherwise we have a dummy
        conflict between this entity and the aliased entity.
        (Disambiguate): The predefined equality on universal_access is not
        usable if there is a user-defined equality with the proper signature,
        declared in the same declarative part as the designated type.
        (Find_Unique_Type): The universal_access equality operator defined under
        AI-230 does not cover pool specific access types.
        (Covers): If one of the types is a generic actual subtype, check whether
        it matches the partial view of the other type.

2006-02-13  Thomas Quinot  <quinot@adacore.com>

        * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
        line. This is necessary to allow In_Extended_Main_Unit to provide
        correct results for itypes while writing out expanded source.
        (Close_File): No need to update the source_index_table here since it's
        now done for each line.

2006-02-13  Ed Schonberg  <schonberg@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
        preserve the source unit where the itype is declared, and prevent a
        backend abort.
        (Note_Implicit_Run_Time_Call): New procedure
        (Write_Itype): Handle missing cases (E_Class_Wide_Type and
        E_Subprogram_Type)

        * sprint.ads: Document use of $ for implicit run time routine call

2006-02-13  Quentin Ochem  <ochem@adacore.com>

        * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
        task name.

2006-02-13  Bob Duff  <duff@adacore.com>

        * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
        Scan_Unsigned, so we do not scan leading blanks and sign twice.
        Integer'Value("- 5") and Integer'Value("-+5") now correctly
        raise Constraint_Error.

        * s-vallli.adb (Scan_Long_Long_Integer): Call
        Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
        do not scan leading blanks and sign twice.
        Integer'Value("- 5") and Integer'Value("-+5") now correctly
        raise Constraint_Error.

        * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
        Scan_Long_Long_Unsigned): Split out most of the processing from
        Scan_Long_Long_Unsigned out into
        Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
        This prevents scanning leading blanks and sign twice.
        Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
        See RM-3.5(44).

        * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
        out most of the processing from Scan_Unsigned out into
        Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
        This prevents scanning leading blanks and sign twice.

        * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
        use with Modular'Value attribute.
        (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
        attribute.

2006-02-13  Robert Dewar  <dewar@adacore.com>

        * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value

2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>

        * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
        (PPC VxWorks): Likewise.
        (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
        (forced_callee): Make non-inlinable and non-pure.
        (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.

2006-02-13  Arnaud Charlet  <charlet@adacore.com>
            Ben Brosgol  <brosgol@adacore.com>
            Robert Dewar  <dewar@adacore.com>

        * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
        support.
        Document that gnatbind -M option is for cross environments only.
        Added description of using gnatmem to trace gnat rtl allocs and deallocs
        Add note on use of $ to label implicit run time calls
        Add documentation for -gnatyI (check mode IN)
        Updated chapter on compatibility with HP Ada
        VMS-oriented edits.
        Ran spell and corrected errors
        Add documentation for gnatbind -d and rework documentation of -D
        at the same time.
        Add subprogram/data elimination section.
        Minor editing of annex A.
        Add section for gnatcheck.
        Add documentation for restriction No_Dispatching_Calls
        Add documentation for pragma Ada_2005
        Remove mention of obsolete pragma Propagate_Exceptions
        Document that pragma Unreferenced can appear after DO in ACCEPT
        Clarify Pure_Function for library level units
        Mention Max/Min in connection with No_Implicit_Conditionals
        No_Wide_Characters restriction is no longer partition-wide
        Add a nice example for Universal_Literal_String attribute
        Document that pragma No_Return can take multiple arguments

        * ug_words: Added entry for gnatcheck

        * g-ctrl_c.ads (Install_Handler): Enhance comments

        * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination

        * g-trasym.ads: Add documentation on how to do off line symbolic
        traceback computation.

        * s-fatgen.adb: Add comments for Unaligned_Valid

        * stand.ads: Fix typo in comment

2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

        * Make-lang.in (check-gnat): Run run_acats with $(SHELL).

2006-02-06  Roger Sayle  <roger@eyesopen.com>

        * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.

2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

        PR target/25926
        * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
        implementation that calls __main.

2006-01-25  Peter O'Gorman  <peter@pogma.com>

        PR bootstrap/25859
        * Makefile.in (GCC_LINK): Remove quotes.
        (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
        or $(GCC_LINK).

        (powerpc-darwin): Pass -shared-libgcc when building shared library.

2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

        PR ada/24533
        * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.



Copyright (C) 2006 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.