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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2007] - Diff between revs 706 and 783

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 706 Rev 783
2007-12-27  Samuel Tardieu  
2007-12-27  Samuel Tardieu  
        PR ada/34553
        PR ada/34553
        * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
        * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
        instead of mktemp() or tmpnam() on NetBSD.
        instead of mktemp() or tmpnam() on NetBSD.
2007-12-23  Eric Botcazou  
2007-12-23  Eric Botcazou  
        * trans.c (call_to_gnu): Make the temporary for non-addressable
        * trans.c (call_to_gnu): Make the temporary for non-addressable
        In parameters passed by reference.
        In parameters passed by reference.
        (addressable_p): Return true for STRING_CST and CALL_EXPR.
        (addressable_p): Return true for STRING_CST and CALL_EXPR.
2007-12-19  Robert Dewar  
2007-12-19  Robert Dewar  
        * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
        * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
        Add pragma Warnings (Off) for unassigned IN OUT arguments
        Add pragma Warnings (Off) for unassigned IN OUT arguments
        * sem_warn.adb (Output_Reference): Suppress messages for internal names
        * sem_warn.adb (Output_Reference): Suppress messages for internal names
        (Check_References): Extensive changes to tune up warnings
        (Check_References): Extensive changes to tune up warnings
        (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
        (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
        (Has_Pragma_Unmodifed_Check_Spec): New function
        (Has_Pragma_Unmodifed_Check_Spec): New function
        (Check_References): Implement pragma Unmodified
        (Check_References): Implement pragma Unmodified
        (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
        (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
        * par-prag.adb: Dummy entry for pragma Unmodified
        * par-prag.adb: Dummy entry for pragma Unmodified
        * sem_prag.adb: Implement pragma Unmodified
        * sem_prag.adb: Implement pragma Unmodified
        * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
        * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
        (Proc_Next_Component_Or_Discriminant): Fix typo.
        (Proc_Next_Component_Or_Discriminant): Fix typo.
        Update comments.
        Update comments.
        * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
        * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
        Unmodified.
        Unmodified.
        (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
        (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
        because the former already takes care of discarding the result.
        because the former already takes care of discarding the result.
        (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
        (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
        Add comment.
        Add comment.
        * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
        * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
2007-12-19  Eric Botcazou  
2007-12-19  Eric Botcazou  
        * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
        * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
        system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
        system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
        system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
        system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
        system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
        system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
        system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
        system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
        system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
        system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
        system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
        (Dynamic_Trampolines_Used): Delete.
        (Dynamic_Trampolines_Used): Delete.
        * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
        * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
        Turn on stack probing mechanism on LynxOS.
        Turn on stack probing mechanism on LynxOS.
2007-12-19  Bob Duff  
2007-12-19  Bob Duff  
        * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
        * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
        the resulting tail recursion by hand. This prevents running out of
        the resulting tail recursion by hand. This prevents running out of
        memory on deeply nested concatenations, since Field2 is where the left
        memory on deeply nested concatenations, since Field2 is where the left
        operand of concatenations is stored.
        operand of concatenations is stored.
        Fix bug (was returning OK_Orig in some cases). Fix return subtype to
        Fix bug (was returning OK_Orig in some cases). Fix return subtype to
        clarify that it can only return OK or Abandon.
        clarify that it can only return OK or Abandon.
        * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
        * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
        operand by iteration, in order to avoid running out of memory on
        operand by iteration, in order to avoid running out of memory on
        deeply-nested concatenations. Use the Parent pointer to get back up the
        deeply-nested concatenations. Use the Parent pointer to get back up the
        tree.
        tree.
        (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
        (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
         Resolve_Op_Concat_Rest): New procedures split out of
         Resolve_Op_Concat_Rest): New procedures split out of
        Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
        Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
        clearer.
        clearer.
        * checks.adb (Remove_Checks): Use Traverse_Proc instead of
        * checks.adb (Remove_Checks): Use Traverse_Proc instead of
        Traverse_Func, because the former already takes care of discarding the
        Traverse_Func, because the former already takes care of discarding the
        result.
        result.
        * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
        * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
        because the former already takes care of discarding the result.
        because the former already takes care of discarding the result.
        (Remove_Warning_Messages): Use appropriate subtype for Status and
        (Remove_Warning_Messages): Use appropriate subtype for Status and
        Discard
        Discard
2007-12-19  Ed Schonberg  
2007-12-19  Ed Schonberg  
        * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
        * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
        discriminants forces expansion of the aggregate into assignments.
        discriminants forces expansion of the aggregate into assignments.
        (Init_Record_Controller):  If the type of the aggregate is untagged and
        (Init_Record_Controller):  If the type of the aggregate is untagged and
        is not inherently limited, the record controller is not limited either.
        is not inherently limited, the record controller is not limited either.
2007-12-19  Robert Dewar  
2007-12-19  Robert Dewar  
        * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
        * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
        handling compile time known size of record or array (case of front end
        handling compile time known size of record or array (case of front end
        layout active, e.g. in GNAAMP).
        layout active, e.g. in GNAAMP).
2007-12-19  Javier Miranda  
2007-12-19  Javier Miranda  
        * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
        * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
        that forces the construction of static dispatch tables in case of
        that forces the construction of static dispatch tables in case of
        record subtypes.
        record subtypes.
2007-12-19  Robert Dewar  
2007-12-19  Robert Dewar  
        * exp_ch9.adb (Null_Statements): Moved to library level
        * exp_ch9.adb (Null_Statements): Moved to library level
        (Trivial_Accept_OK): New function
        (Trivial_Accept_OK): New function
        (Expand_Accept_Declaration): Use Trivial_Accept_OK
        (Expand_Accept_Declaration): Use Trivial_Accept_OK
        (Expand_N_Accept_Statement): Use Trivial_Accept_OK
        (Expand_N_Accept_Statement): Use Trivial_Accept_OK
2007-12-19  Robert Dewar  
2007-12-19  Robert Dewar  
        * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
        * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
        in complex case where array is Volatile.
        in complex case where array is Volatile.
2007-12-19  Ed Schonberg  
2007-12-19  Ed Schonberg  
        * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
        * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
        properly the Ada2005 rules concerning when the current instance of a
        properly the Ada2005 rules concerning when the current instance of a
        record type is aliased.
        record type is aliased.
2007-12-19  Ed Schonberg  
2007-12-19  Ed Schonberg  
        * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
        * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
        mangled declaration
        mangled declaration
        (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
        (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
        declarations.
        declarations.
        (P_Variant_Part): Cleaner patch for parenthesized discriminant
        (P_Variant_Part): Cleaner patch for parenthesized discriminant
2007-12-19  Vincent Celier  
2007-12-19  Vincent Celier  
        * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
        * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
        package is not known
        package is not known
        * prj-attr.ads (Unknown_Package): New constant
        * prj-attr.ads (Unknown_Package): New constant
        Do not crash when an unknown package is in several projects
        Do not crash when an unknown package is in several projects
        * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
        * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
        ignored
        ignored
        * prj-nmsc.adb (Check): Remove obsolete code related to no longer
        * prj-nmsc.adb (Check): Remove obsolete code related to no longer
        existing package Language_Processing.
        existing package Language_Processing.
2007-12-19  Ed Schonberg  
2007-12-19  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
            Samuel Tardieu  
            Samuel Tardieu  
        PR ada/15803, ada/15805
        PR ada/15803, ada/15805
        * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
        * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
        illegal access subtypes when there is a constrained partial view.
        illegal access subtypes when there is a constrained partial view.
        (Check_For_Premature_Usage): New procedure inside
        (Check_For_Premature_Usage): New procedure inside
        Access_Subprogram_Declaration for checking that an access-to-subprogram
        Access_Subprogram_Declaration for checking that an access-to-subprogram
        type doesn't reference its own name within any formal parameters or
        type doesn't reference its own name within any formal parameters or
        result type (including within nested anonymous access types).
        result type (including within nested anonymous access types).
        (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
        (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
        (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
        (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
        context is an access_to_variable, the expression cannot be an
        context is an access_to_variable, the expression cannot be an
        access_to_constant.
        access_to_constant.
2007-12-19  Bob Duff  
2007-12-19  Bob Duff  
        * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
        * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
        (Analyze_Concatenation): Use iteration instead of recursion in order
        (Analyze_Concatenation): Use iteration instead of recursion in order
        to avoid running out of stack space for deeply nested concatenations.
        to avoid running out of stack space for deeply nested concatenations.
2007-12-19  Ed Schonberg  
2007-12-19  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
        whose renamed entity is a subprogram that requires overriding.
        whose renamed entity is a subprogram that requires overriding.
        (Premature_Usage): Test for the case of N_Full_Type_Declaration when
        (Premature_Usage): Test for the case of N_Full_Type_Declaration when
        issuing an error for premature usage and issue a message that says
        issuing an error for premature usage and issue a message that says
        'type' rather than 'object'.
        'type' rather than 'object'.
2007-12-19  Gary Dismukes  
2007-12-19  Gary Dismukes  
        PR ada/34149
        PR ada/34149
        * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
        * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
        presence of a statically tagged operand (Present (Static_Tag)) with
        presence of a statically tagged operand (Present (Static_Tag)) with
        test for Indeterm_Ancestor_Call when determining whether to propagate
        test for Indeterm_Ancestor_Call when determining whether to propagate
        the static tag to tag-indeterminate operands (which forces dispatching
        the static tag to tag-indeterminate operands (which forces dispatching
        on such calls).
        on such calls).
        (Check_Controlling_Formals): Ada2005, access parameters can have
        (Check_Controlling_Formals): Ada2005, access parameters can have
        defaults.
        defaults.
        (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
        (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
        not insert subprogram in list of primitive operations if already there.
        not insert subprogram in list of primitive operations if already there.
2007-12-19  Tristan Gingold  
2007-12-19  Tristan Gingold  
        * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
        * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
        global variable.
        global variable.
2007-12-19  Thomas Quinot  
2007-12-19  Thomas Quinot  
        Part of PR ada/33688
        Part of PR ada/33688
        * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
        * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
        datagram info on Linux.
        datagram info on Linux.
2007-12-19  Vincent Celier  
2007-12-19  Vincent Celier  
        * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
        * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
        that the source path name is always found in the dependencies.
        that the source path name is always found in the dependencies.
2007-12-19  Robert Dewar  
2007-12-19  Robert Dewar  
        * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
        * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
        Fix name of Wide_Wide_Latin_1/9 file names
        Fix name of Wide_Wide_Latin_1/9 file names
        Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
        Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
        Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
        Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
        Add missing documentation for Ada.Command_Line.Response_File
        Add missing documentation for Ada.Command_Line.Response_File
        Update list of warning letters for Warnings pragma
        Update list of warning letters for Warnings pragma
        Add documentation for pragma Unmodified
        Add documentation for pragma Unmodified
2007-12-19  Samuel Tardieu  
2007-12-19  Samuel Tardieu  
        * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
        * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
2007-12-17  Arnaud Charlet  
2007-12-17  Arnaud Charlet  
        * s-vxwork-alpha.ads: Removed, no longer used.
        * s-vxwork-alpha.ads: Removed, no longer used.
2007-12-15  Jakub Jelinek  
2007-12-15  Jakub Jelinek  
        * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
        * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
2007-12-13  Samuel Tardieu  
2007-12-13  Samuel Tardieu  
        PR ada/34360
        PR ada/34360
        * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
        * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
        mlib-tgt-specific.adb.
        mlib-tgt-specific.adb.
2007-12-13  Bob Duff  
2007-12-13  Bob Duff  
        * trans.c (Attribute_to_gnu): Check for violations of the
        * trans.c (Attribute_to_gnu): Check for violations of the
        No_Implicit_Dynamic_Code restriction. This checking used to be done in
        No_Implicit_Dynamic_Code restriction. This checking used to be done in
        the front end, but is moved here so we can make it more accurate.
        the front end, but is moved here so we can make it more accurate.
2007-12-13  Pascal Obry  
2007-12-13  Pascal Obry  
        * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
        * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
         version is provided for older GNU/Linux distribution not
         version is provided for older GNU/Linux distribution not
         supporting thread affinity sets.
         supporting thread affinity sets.
        * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
        * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
        call.
        call.
        (bit_field): New packed boolean type used by cpu_set_t.
        (bit_field): New packed boolean type used by cpu_set_t.
        (cpu_set_t): New type corresponding to the C type with
        (cpu_set_t): New type corresponding to the C type with
        the same name. Note that on the Ada side we use a bit
        the same name. Note that on the Ada side we use a bit
        field array for the affinity mask. There is not need
        field array for the affinity mask. There is not need
        for the C macro for setting individual bit.
        for the C macro for setting individual bit.
        (pthread_setaffinity_np): New imported routine.
        (pthread_setaffinity_np): New imported routine.
        * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
        * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
        no null.
        no null.
        (Create_Task): Set the processor affinity mask if information
        (Create_Task): Set the processor affinity mask if information
        is present.
        is present.
        * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
        * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
        * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
        s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
        s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
        s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
        s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
        s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
        s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
        s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
        s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
        s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
        s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
        s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
        s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
        i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
        i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
        for subprogram pointers.
        for subprogram pointers.
        * g-ctrl_c.adb: New file.
        * g-ctrl_c.adb: New file.
        * g-ctrl_c.ads (Install_Handler): New body.
        * g-ctrl_c.ads (Install_Handler): New body.
        * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
        * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
        instead of obsolete function Is_Always_Inlined.
        instead of obsolete function Is_Always_Inlined.
        (Freeze_Entity): check for tagged type in imported C subprogram
        (Freeze_Entity): check for tagged type in imported C subprogram
        (Freeze_Entity): check for 8-bit boolean in imported C subprogram
        (Freeze_Entity): check for 8-bit boolean in imported C subprogram
        (Freeze_Entity): check for convention Ada subprogram pointer in
        (Freeze_Entity): check for convention Ada subprogram pointer in
        imported C subprogram.
        imported C subprogram.
        (Freeze_Fixed_Point_Type): In the case of a base type where the low
        (Freeze_Fixed_Point_Type): In the case of a base type where the low
        bound would be chopped off and go from negative to zero, force
        bound would be chopped off and go from negative to zero, force
        Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
        Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
        bound) so that the size computation for the base type will take
        bound) so that the size computation for the base type will take
        negative values into account.
        negative values into account.
2007-12-13  Eric Botcazou  
2007-12-13  Eric Botcazou  
            Bob Duff  
            Bob Duff  
            Tristan Gingold  
            Tristan Gingold  
        * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
        * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
        system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
        system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
        system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
        system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
        system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
        system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
        system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
        system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
        system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
        system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
        system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
        system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
        system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
        system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
        (Always_Compatible_Rep): New flag to control trampolines globally.
        (Always_Compatible_Rep): New flag to control trampolines globally.
        (Dynamic_Trampolines_Used): New flag for implementing the
        (Dynamic_Trampolines_Used): New flag for implementing the
        No_Implicit_Dynamic_Code restriction more correctly (not yet used,
        No_Implicit_Dynamic_Code restriction more correctly (not yet used,
        and not yet set correctly for some targets).
        and not yet set correctly for some targets).
        * s-taprop-vxworks.adb: Use stack limit method of stack checking.
        * s-taprop-vxworks.adb: Use stack limit method of stack checking.
        Simply indirectly call s-stchop when a task is created.
        Simply indirectly call s-stchop when a task is created.
        * ali.ads:
        * ali.ads:
        New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
        New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
        appears as an argument (entries A) in an ALI file.
        appears as an argument (entries A) in an ALI file.
        * fe.h (Stack_Check_Limits): Declare new target parameter.
        * fe.h (Stack_Check_Limits): Declare new target parameter.
        (Check_Implicit_Dynamic_Code_Allowed): New procedure.
        (Check_Implicit_Dynamic_Code_Allowed): New procedure.
        * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
        * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
        This variable is declared in C to be sure not subject to elaboration
        This variable is declared in C to be sure not subject to elaboration
        code.
        code.
        (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
        (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
        Storage_Error.
        Storage_Error.
        * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
        * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
        (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
        (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
        * s-stchop.ads: Add comments.
        * s-stchop.ads: Add comments.
        * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
        * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
        limit method of stack checking.
        limit method of stack checking.
        * s-stchop-limit.ads: New file.
        * s-stchop-limit.ads: New file.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
        * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
        a-cihama.adb, g-awk.adb,
        a-cihama.adb, g-awk.adb,
        s-inmaop-posix.adb: Update handling of assigned value/unreferenced
        s-inmaop-posix.adb: Update handling of assigned value/unreferenced
        warnings
        warnings
        * exp_smem.adb: Update handling of assigned value/unreferenced warnings
        * exp_smem.adb: Update handling of assigned value/unreferenced warnings
        * sem.adb: Update handling of assigned value/unreferenced warnings
        * sem.adb: Update handling of assigned value/unreferenced warnings
        * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
        * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
        * lib-xref.ads: Improve documentation for k xref type
        * lib-xref.ads: Improve documentation for k xref type
        * lib-xref.adb:
        * lib-xref.adb:
        Update handling of assigned value/unreferenced warnings
        Update handling of assigned value/unreferenced warnings
        (Generate_Reference): Warning for reference to entity for which a
        (Generate_Reference): Warning for reference to entity for which a
        pragma Unreferenced has been given should be unconditional.
        pragma Unreferenced has been given should be unconditional.
        If the entity is a discriminal, mark the original
        If the entity is a discriminal, mark the original
        discriminant as referenced.
        discriminant as referenced.
        * sem_warn.ads, sem_warn.adb
        * sem_warn.ads, sem_warn.adb
        (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
        (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
        no entities referenced in package
        no entities referenced in package
        (Check_One_Unit): Don't give message about no entities referenced in
        (Check_One_Unit): Don't give message about no entities referenced in
        a package if a pragma Unreferenced has appeared.
        a package if a pragma Unreferenced has appeared.
        Handle new warning flag -gnatw.a/-gnatw.A
        Handle new warning flag -gnatw.a/-gnatw.A
        Update handling of assigned value/unreferenced warnings
        Update handling of assigned value/unreferenced warnings
        * atree.h: Add flags up to Flag247
        * atree.h: Add flags up to Flag247
        (Flag231): New macro.
        (Flag231): New macro.
2007-12-13  Jose Ruiz  
2007-12-13  Jose Ruiz  
        * adaint.h: (__gnat_plist_init): Not defined for RTX.
        * adaint.h: (__gnat_plist_init): Not defined for RTX.
        * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
        * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
        RTX systems.
        RTX systems.
        * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
        * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
        (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
        (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
        EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
        EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
        GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
        GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
        * mingw32.h:
        * mingw32.h:
        Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
        Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
        * sysdep.c (winflush_function for RTX): Procedure that does nothing
        * sysdep.c (winflush_function for RTX): Procedure that does nothing
        since we only have problems with Windows 95/98, which are not
        since we only have problems with Windows 95/98, which are not
        supported by RTX.
        supported by RTX.
        (__gnat_ttyname): Return the empty string on Nucleus, just as
        (__gnat_ttyname): Return the empty string on Nucleus, just as
        done on vxworks.
        done on vxworks.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * a-textio.adb, a-textio.ads:
        * a-textio.adb, a-textio.ads:
        Extensive changes to private part for wide character encoding
        Extensive changes to private part for wide character encoding
        * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
        * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
        (Look_Ahead): Fix mishandling of encoded sequences
        (Look_Ahead): Fix mishandling of encoded sequences
        Move declaration of Wch_Con to private part (should not be visible)
        Move declaration of Wch_Con to private part (should not be visible)
        * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
        * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
        UTF-8. Probably this is never used, but if it is, brackets is
        UTF-8. Probably this is never used, but if it is, brackets is
        clearly correct.
        clearly correct.
        * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
        * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
        setting wide character encoding for no main program case and when
        setting wide character encoding for no main program case and when
        encoding is specified using -W?
        encoding is specified using -W?
        Initialize stack limit of environment task if stack limit method of
        Initialize stack limit of environment task if stack limit method of
        stack checking is enabled.
        stack checking is enabled.
        (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
        (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
        (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
        (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
        (Get_Main_Unit_Name): New function.
        (Get_Main_Unit_Name): New function.
        (Gen_Adainit_Ada): Add call to main program for .NET when needed.
        (Gen_Adainit_Ada): Add call to main program for .NET when needed.
        (Gen_Output_File): Set Bind_Main_Program to True for .NET
        (Gen_Output_File): Set Bind_Main_Program to True for .NET
        * bindusg.adb: Add line for -Wx switch
        * bindusg.adb: Add line for -Wx switch
        * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
        * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
        Add comments
        Add comments
        Add new useful constant WC_Longest_Sequences
        Add new useful constant WC_Longest_Sequences
        * switch-b.adb: Clean up handling of -Wx switch
        * switch-b.adb: Clean up handling of -Wx switch
        For -gnatWx, set Wide_Character_Encoding_Method_Specified
        For -gnatWx, set Wide_Character_Encoding_Method_Specified
        * switch-c.adb: -gnatg activates warning on assertion errors
        * switch-c.adb: -gnatg activates warning on assertion errors
        For -gnatWx, set Wide_Character_Encoding_Method_Specified
        For -gnatWx, set Wide_Character_Encoding_Method_Specified
        * s-wchcon.adb: (Is_Start_Of_Encoding): New function
        * s-wchcon.adb: (Is_Start_Of_Encoding): New function
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * a-ngcoty.adb: New pragma Fast_Math
        * a-ngcoty.adb: New pragma Fast_Math
        * opt.adb: New pragma Fast_Math
        * opt.adb: New pragma Fast_Math
        * par-prag.adb:
        * par-prag.adb:
        Add Implemented_By_Entry to the list of pragmas which do not require any
        Add Implemented_By_Entry to the list of pragmas which do not require any
        special processing.
        special processing.
        (Favor_Top_Level): New pragma.
        (Favor_Top_Level): New pragma.
        New pragma Fast_Math
        New pragma Fast_Math
        * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
        * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
        (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
        (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
        Expand_Allocator_Expression): Take into account VM_Target
        Expand_Allocator_Expression): Take into account VM_Target
        (Expand_Attribute, case 'Identity):  Handle properly the case where
        (Expand_Attribute, case 'Identity):  Handle properly the case where
        the prefix is a task interface.
        the prefix is a task interface.
        New pragma Fast_Math
        New pragma Fast_Math
        * par.adb (Next_Token_Is): New function
        * par.adb (Next_Token_Is): New function
        (P_Pragma): Add Skipping parameter
        (P_Pragma): Add Skipping parameter
        (U_Left_Paren): New procedure
        (U_Left_Paren): New procedure
        (U_Right_Paren): New procedure
        (U_Right_Paren): New procedure
        New pragma Fast_Math
        New pragma Fast_Math
        * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
        * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
        subunit
        subunit
        New pragma Fast_Math
        New pragma Fast_Math
        * sem_prag.adb: Add significance value to table Sig_Flag for pragma
        * sem_prag.adb: Add significance value to table Sig_Flag for pragma
        Implemented_By_Entry.
        Implemented_By_Entry.
        (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
        (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
        (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
        (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
        items, since it can apply to more than one overloadable entity. Set
        items, since it can apply to more than one overloadable entity. Set
        new flag Has_Pragma_Inline_Always for Inline_Always case.
        new flag Has_Pragma_Inline_Always for Inline_Always case.
        (Analyze_Pragma, case Complex_Representation): Improve error message.
        (Analyze_Pragma, case Complex_Representation): Improve error message.
        (Analyze_Pragma, case Assert): When assertions are disabled build the
        (Analyze_Pragma, case Assert): When assertions are disabled build the
        rewritten code with Sloc of expression rather than pragma, so new
        rewritten code with Sloc of expression rather than pragma, so new
        warning about failing is not deleted.
        warning about failing is not deleted.
        (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
        (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
        protected types and update error message to reflect that. Test whether
        protected types and update error message to reflect that. Test whether
        the protected type is allowed for the pragma (an error is issued if the
        the protected type is allowed for the pragma (an error is issued if the
        type has any entries, or components that do not have preelaborable
        type has any entries, or components that do not have preelaborable
        initialization).
        initialization).
        New pragma Fast_Math
        New pragma Fast_Math
        (Analyze_Pragma, case No_Return): Handle generic instance
        (Analyze_Pragma, case No_Return): Handle generic instance
        * snames.h, snames.ads, snames.adb:
        * snames.h, snames.ads, snames.adb:
        Add new predefined name for interface primitive _Disp_Requeue.
        Add new predefined name for interface primitive _Disp_Requeue.
        New pragma Fast_Math
        New pragma Fast_Math
        * a-tags.ads, a-tags.adb: New calling sequence for
        * a-tags.ads, a-tags.adb: New calling sequence for
        String_To_Wide_[Wide_]String
        String_To_Wide_[Wide_]String
        (Secondary_Tag): New subprogram.
        (Secondary_Tag): New subprogram.
        * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
        * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
        from Exp_Attr
        from Exp_Attr
        New calling sequence for String_To_Wide_[Wide_]String
        New calling sequence for String_To_Wide_[Wide_]String
        (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
        (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
        the use of the secondary stack for image routines.
        the use of the secondary stack for image routines.
        * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
        * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
        calling sequence for String_To_Wide_[Wide_]String
        calling sequence for String_To_Wide_[Wide_]String
        * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
        * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
        Ada 95 mode
        Ada 95 mode
        (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
        (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
        * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
        (P_Formal_Part): Use Skipping parameter in P_Pragma call
        (P_Formal_Part): Use Skipping parameter in P_Pragma call
        to improve error recovery
        to improve error recovery
        * par-util.adb (Next_Token_Is): New function
        * par-util.adb (Next_Token_Is): New function
        (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
        (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
        * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
        * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
        semicolon if missing
        semicolon if missing
        (P_Pragma): Implement new Skipping parameter
        (P_Pragma): Implement new Skipping parameter
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Fix location of flag for unrecognized pragma message
        Fix location of flag for unrecognized pragma message
        * par-tchk.adb (U_Left_Paren): New procedure
        * par-tchk.adb (U_Left_Paren): New procedure
        (U_Right_Paren): New procedure
        (U_Right_Paren): New procedure
2007-12-13  Geert Bosch  
2007-12-13  Geert Bosch  
        * a-tifiio.adb:
        * a-tifiio.adb:
        (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
        (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
        the second or later Scaled_Divide would omit leading zeroes,
        the second or later Scaled_Divide would omit leading zeroes,
        resulting in too few digits produced and a Layout_Error as result.
        resulting in too few digits produced and a Layout_Error as result.
        (Put): Initialize Pos.
        (Put): Initialize Pos.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        atree.ads, atree.adb (Flag231..Flag247): New functions
        atree.ads, atree.adb (Flag231..Flag247): New functions
        (Set_Flag231..Set_Flag247): New procedures
        (Set_Flag231..Set_Flag247): New procedures
        (Basic_Set_Convention): Rename Set_Convention to be
        (Basic_Set_Convention): Rename Set_Convention to be
        Basic_Set_Convention
        Basic_Set_Convention
        (Nkind_In): New functions
        (Nkind_In): New functions
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
        * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
        instead
        instead
         of obsolete function Is_Always_Inlined
         of obsolete function Is_Always_Inlined
        (Register_Predefined_DT_Entry): Initialize slots of the second
        (Register_Predefined_DT_Entry): Initialize slots of the second
        secondary dispatch table.
        secondary dispatch table.
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        (Expand_N_Function_Call): Remove special provision for stack checking.
        (Expand_N_Function_Call): Remove special provision for stack checking.
        * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
        * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
        Include _Disp_Requeue in the list of predefined operations.
        Include _Disp_Requeue in the list of predefined operations.
        (Find_Interface_ADT): Modified to fulfill the new specification.
        (Find_Interface_ADT): Modified to fulfill the new specification.
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        * par-ch4.adb, nlists.ads, nlists.adb:
        * par-ch4.adb, nlists.ads, nlists.adb:
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
        * sinfo.ads, sinfo.adb: (Nkind_In): New functions
        * sinfo.ads, sinfo.adb: (Nkind_In): New functions
        Fix location of flag for unrecognized pragma message
        Fix location of flag for unrecognized pragma message
        * sem_ch7.adb: Use Nkind_In
        * sem_ch7.adb: Use Nkind_In
2007-12-13  Vincent Celier  
2007-12-13  Vincent Celier  
        * opt.ads:
        * opt.ads:
        Indicate what flags are used by the Project Manager, gprbuild and
        Indicate what flags are used by the Project Manager, gprbuild and
        gprclean.
        gprclean.
        (Opt.Follow_Links_For_Dirs): New flag
        (Opt.Follow_Links_For_Dirs): New flag
        (Warn_On_Assertion_Failure): New flag
        (Warn_On_Assertion_Failure): New flag
        (Wide_Character_Encoding_Method_Specified): New flag
        (Wide_Character_Encoding_Method_Specified): New flag
        (Suppress_All_Inlining): New switch set by -fno-inline
        (Suppress_All_Inlining): New switch set by -fno-inline
        (Real_VMS_Target): New flag
        (Real_VMS_Target): New flag
        New pragma Fast_Math
        New pragma Fast_Math
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * back_end.adb: Recognize -fno-inline
        * back_end.adb: Recognize -fno-inline
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * checks.adb: Fix optimization problem with short-circuited form
        * checks.adb: Fix optimization problem with short-circuited form
2007-12-13  Bob Duff  
2007-12-13  Bob Duff  
        * clean.adb (Usage): Add line for -aP
        * clean.adb (Usage): Add line for -aP
        (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
        (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
        with a parameter "procedure Usage", instead of passing a pointer to a
        with a parameter "procedure Usage", instead of passing a pointer to a
        procedure. This is to eliminate trampolines (since the Usage procedure
        procedure. This is to eliminate trampolines (since the Usage procedure
        is often nested in a main procedure, and it would be inconvenient to
        is often nested in a main procedure, and it would be inconvenient to
        unnest it).
        unnest it).
        * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
        * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
        to be generic, with a parameter "procedure Callback (...)", instead of
        to be generic, with a parameter "procedure Callback (...)", instead of
        passing a pointer to a procedure. This is to eliminate trampolines
        passing a pointer to a procedure. This is to eliminate trampolines
        (since the Callback procedure is usually nested).
        (since the Callback procedure is usually nested).
        * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
        * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
        gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
        gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
        (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
        (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
        * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
        * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
        Use the generic Heap_Sort_G instead of Heap_Sort_A.
        Use the generic Heap_Sort_G instead of Heap_Sort_A.
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
        * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
        * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
        (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
        (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
        (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
        (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
        (Renamed_In_Spec): New flag
        (Renamed_In_Spec): New flag
        (Has_Pragma_Inline_Always): New flag
        (Has_Pragma_Inline_Always): New flag
        Add missing doc for pragma Obsolescent_Warning
        Add missing doc for pragma Obsolescent_Warning
        Add missing doc for 17 additional unused flags (230-247)
        Add missing doc for 17 additional unused flags (230-247)
        (Is_Derived_Type): Remove condition "not Is_Generic_Type".
        (Is_Derived_Type): Remove condition "not Is_Generic_Type".
        Alphabetize with clauses.
        Alphabetize with clauses.
        Separate Is_Thunk and Has_Thunks flags
        Separate Is_Thunk and Has_Thunks flags
        (Write_Entity_Flags): Add forgotten entry for Has_Thunks
        (Write_Entity_Flags): Add forgotten entry for Has_Thunks
        (Related_Interface): Renamed to Related_Type.
        (Related_Interface): Renamed to Related_Type.
        (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
        (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
        (Set_Is_Flag): Restrict the assertion.
        (Set_Is_Flag): Restrict the assertion.
2007-12-13  Vincent Celier  
2007-12-13  Vincent Celier  
        * errout.adb (Output_Source_Line): Do not keep a trailing space after
        * errout.adb (Output_Source_Line): Do not keep a trailing space after
        the source line number if the source line is empty.
        the source line number if the source line is empty.
2007-12-13  Geert Bosch  
2007-12-13  Geert Bosch  
        * eval_fat.adb (Decompose_Int): Handle argument of zero.
        * eval_fat.adb (Decompose_Int): Handle argument of zero.
        (Compose): Remove special casing of zero.
        (Compose): Remove special casing of zero.
        (Exponent): Likewise.
        (Exponent): Likewise.
        (Fraction): Likewise.
        (Fraction): Likewise.
        (Machine): Likewise.
        (Machine): Likewise.
        (Decompose): Update comment.
        (Decompose): Update comment.
2007-12-13  Ed Schonberg  
2007-12-13  Ed Schonberg  
        * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
        * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
        limited ancestor part, initialize controllers of enclosing record
        limited ancestor part, initialize controllers of enclosing record
        before expanding ancestor aggregate.
        before expanding ancestor aggregate.
        (Gen_Assign): If a component of the aggregate is box-initialized, add
        (Gen_Assign): If a component of the aggregate is box-initialized, add
        code to call Initialize if the component is controlled, and explicit
        code to call Initialize if the component is controlled, and explicit
        assignment of null if the component is an access type.
        assignment of null if the component is an access type.
        Handle properly aggregates for limited types that appear in object
        Handle properly aggregates for limited types that appear in object
        declarations when the aggregate contains controlled values such as
        declarations when the aggregate contains controlled values such as
        protected types.
        protected types.
        When expanding limited aggregates into individual components, do not
        When expanding limited aggregates into individual components, do not
        call Adjust on controlled components that are limited.
        call Adjust on controlled components that are limited.
2007-12-13  Ed Schonberg  
2007-12-13  Ed Schonberg  
        * expander.adb: Take into account N_Subprogram_Renaming_Declaration
        * expander.adb: Take into account N_Subprogram_Renaming_Declaration
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
        * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
        * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
        predefined primitive _Disp_Requeue.
        predefined primitive _Disp_Requeue.
        (Make_Predefined_Primitive_Specs): Create the spec for predefined
        (Make_Predefined_Primitive_Specs): Create the spec for predefined
        primitive _Disp_Requeue.
        primitive _Disp_Requeue.
        (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
        (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
        type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
        type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
        (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
        (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
        an interface type. In case of limited interfaces we now declare all the
        an interface type. In case of limited interfaces we now declare all the
        predefined primitives associated with synchronized interfaces as
        predefined primitives associated with synchronized interfaces as
        abstract.
        abstract.
        (Predef_Spec_Or_Body): For interface types generate abstract subprogram
        (Predef_Spec_Or_Body): For interface types generate abstract subprogram
        declarations.
        declarations.
        (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
        (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
        tagged type is an interface type and there is no user-defined equality
        tagged type is an interface type and there is no user-defined equality
        function.
        function.
        Add also bodies of predefined primitives associated with synchronized
        Add also bodies of predefined primitives associated with synchronized
        interfaces.
        interfaces.
        (Freeze_Record_Type): Do not build bodies of predefined primitives of
        (Freeze_Record_Type): Do not build bodies of predefined primitives of
        interface types because they are now defined abstract.
        interface types because they are now defined abstract.
        Add missing documentation.
        Add missing documentation.
        (Expand_Record_Controller): Update occurrence of Related_Interface
        (Expand_Record_Controller): Update occurrence of Related_Interface
        to Related_Type.
        to Related_Type.
        (Build_Offset_To_Top_Functions): Do nothing in case of VM.
        (Build_Offset_To_Top_Functions): Do nothing in case of VM.
        (Expand_N_Object_Declaration): Take into account VM_Target when handling
        (Expand_N_Object_Declaration): Take into account VM_Target when handling
        class wide interface object declaration.
        class wide interface object declaration.
        (Expand_Previous_Access_Type): Do not create a duplicate master entity
        (Expand_Previous_Access_Type): Do not create a duplicate master entity
        if the access type already has one.
        if the access type already has one.
        (Expand_N_Object_Declaration): Defend against attempt to validity check
        (Expand_N_Object_Declaration): Defend against attempt to validity check
        generic types. Noticed for -gnatVcf specified with previous errors.
        generic types. Noticed for -gnatVcf specified with previous errors.
2007-12-13  Arnaud Charlet  
2007-12-13  Arnaud Charlet  
        * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
        * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
        Expand_Allocator_Expression): Take into account VM_Target
        Expand_Allocator_Expression): Take into account VM_Target
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
        secondary stack when VM_Target /= No_VM
        secondary stack when VM_Target /= No_VM
2007-12-13  Javier Miranda  
2007-12-13  Javier Miranda  
            Ed Schonberg  
            Ed Schonberg  
        * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
        * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
        Is_Complation_Unit by Is_Library_Level_Entity in the code
        Is_Complation_Unit by Is_Library_Level_Entity in the code
        that decides if the static dispatch tables need to be built.
        that decides if the static dispatch tables need to be built.
        (Wrap_Transient_Declaration): Do not generate a finalization call if
        (Wrap_Transient_Declaration): Do not generate a finalization call if
        this is a renaming declaration and the renamed object is a component
        this is a renaming declaration and the renamed object is a component
        of a controlled type.
        of a controlled type.
2007-12-13  Gary Dismukes  
2007-12-13  Gary Dismukes  
        * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
        * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
        In the case where the renamed subprogram is a dereference, call
        In the case where the renamed subprogram is a dereference, call
        Force_Evaluation on the prefix.
        Force_Evaluation on the prefix.
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
            Ed Schonberg  
            Ed Schonberg  
        * exp_ch9.adb (Expand_N_Asynchronous_Select,
        * exp_ch9.adb (Expand_N_Asynchronous_Select,
        Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
        Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
        comment reformatting.
        comment reformatting.
        (Set_Privals): Inherit aliased flag from formal. From code reading.
        (Set_Privals): Inherit aliased flag from formal. From code reading.
        (Build_Simple_Entry_Call): Out parameters of an access type are passed
        (Build_Simple_Entry_Call): Out parameters of an access type are passed
        by copy and initialized from the actual. This includes entry parameters.
        by copy and initialized from the actual. This includes entry parameters.
        (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
        (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
        and Ada 2005 models of requeue.
        and Ada 2005 models of requeue.
        (Null_Statements): Still connsider do-end block null if it contains
        (Null_Statements): Still connsider do-end block null if it contains
        Unreferenced and Warnings pragmas.
        Unreferenced and Warnings pragmas.
        (Expand_N_Accept_Statement): Do not optimize away null do end if
        (Expand_N_Accept_Statement): Do not optimize away null do end if
        dispatching policy is other than defaulted.
        dispatching policy is other than defaulted.
        (Expand_N_Timed_Entry_Call): When the triggering statement is a
        (Expand_N_Timed_Entry_Call): When the triggering statement is a
        dispatching call, manually analyze the delay statement.
        dispatching call, manually analyze the delay statement.
        (Find_Parameter_Type): Move subprogram to Sem_Util.
        (Find_Parameter_Type): Move subprogram to Sem_Util.
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
            Javier Miranda  
            Javier Miranda  
        * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
        * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
        _Disp_Requeue occupies dispatch table slot number 15. Move
        _Disp_Requeue occupies dispatch table slot number 15. Move
        _Disp_Timed_Select to slot 16.
        _Disp_Timed_Select to slot 16.
        (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
        (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
        generate the spec and body of _Disp_Reqeueue.
        generate the spec and body of _Disp_Reqeueue.
        (Make_DT): Build and initialize the second dispatch table.
        (Make_DT): Build and initialize the second dispatch table.
        Handle initialization of RC_Offset when the parent
        Handle initialization of RC_Offset when the parent
        is a private type with variable size components.
        is a private type with variable size components.
        (Make_Secondary_DT): Complete documentation. Add support to
        (Make_Secondary_DT): Complete documentation. Add support to
        initialize the second dispatch table.
        initialize the second dispatch table.
        (Make_Tags): Generate the tag of the second dispatch table.
        (Make_Tags): Generate the tag of the second dispatch table.
        (Register_Primitive): Add support to register primitives in the
        (Register_Primitive): Add support to register primitives in the
        second dispatch table.
        second dispatch table.
2007-12-13  Pascal Obry  
2007-12-13  Pascal Obry  
        * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
        * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
        Windows. This signal is used by gnatmake to kill child processes for
        Windows. This signal is used by gnatmake to kill child processes for
        example.
        example.
2007-12-13  Javier Miranda  
2007-12-13  Javier Miranda  
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
        * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
        support for generic dispatching constructor calls in which we need to
        support for generic dispatching constructor calls in which we need to
        locate the tag of a secondary dispatch table associated with an
        locate the tag of a secondary dispatch table associated with an
        interface type to properly dispatch the call.
        interface type to properly dispatch the call.
        (Expand_N_Attribute_Reference [case Address],
        (Expand_N_Attribute_Reference [case Address],
        Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
        Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
        handling of VM targets.
        handling of VM targets.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
        * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
        assert fail
        assert fail
        * ug_words: Add entries for -gnatw.a -gnatw.A
        * ug_words: Add entries for -gnatw.a -gnatw.A
        * sem_res.adb (Set_String_Literal_Subtype): If the context of the
        * sem_res.adb (Set_String_Literal_Subtype): If the context of the
        literal is a subtype with non-static constraints, use the base type of
        literal is a subtype with non-static constraints, use the base type of
        the context as the base of the string subtype, to prevent type
        the context as the base of the string subtype, to prevent type
        mismatches in gigi.
        mismatches in gigi.
        (Resolve_Actuals): If the actual is an entity name, generate a
        (Resolve_Actuals): If the actual is an entity name, generate a
        reference before the actual is resolved and expanded, to prevent
        reference before the actual is resolved and expanded, to prevent
        spurious warnings on formals of enclosing protected operations.
        spurious warnings on formals of enclosing protected operations.
        (Analyze_Overloaded_Selected_Component): If type of prefix if
        (Analyze_Overloaded_Selected_Component): If type of prefix if
        class-wide, use visible components of base type.
        class-wide, use visible components of base type.
        (Resolve_Selected_Component): Ditto.
        (Resolve_Selected_Component): Ditto.
        (Resolve_Short_Circuit): Detect case of pragma Assert argument
        (Resolve_Short_Circuit): Detect case of pragma Assert argument
        evaluating to False, and issue warning message.
        evaluating to False, and issue warning message.
        * usage.adb: Add lines for -gnatw.a and -gnatw.A
        * usage.adb: Add lines for -gnatw.a and -gnatw.A
2007-12-13  Emmanuel Briot  
2007-12-13  Emmanuel Briot  
        * g-calend.ads (No_Time): New constant, to represent an uninitialized
        * g-calend.ads (No_Time): New constant, to represent an uninitialized
        time value
        time value
        * g-catiio.ads, g-catiio.adb (Value): Added support for more date
        * g-catiio.ads, g-catiio.adb (Value): Added support for more date
        formats.
        formats.
        (Month_Name_To_Number): New subprogram
        (Month_Name_To_Number): New subprogram
        * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
        * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
        letter to upper-case.
        letter to upper-case.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
        * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
        * layout.adb (Resolve_Attribute, case 'Access): If designated type of
        * layout.adb (Resolve_Attribute, case 'Access): If designated type of
        context is a limited view, use non-limited view when available. If the
        context is a limited view, use non-limited view when available. If the
        non-limited view is an unconstrained array, this enforces consistency
        non-limited view is an unconstrained array, this enforces consistency
        requirements in 3.10.2 (27).
        requirements in 3.10.2 (27).
        (Layout_Type): For an access type whose designated type is a limited
        (Layout_Type): For an access type whose designated type is a limited
        view, examine its declaration to determine if it is an unconstrained
        view, examine its declaration to determine if it is an unconstrained
        array, and size the access type accordingly.
        array, and size the access type accordingly.
        (Layout_Type): Do not force 32-bits for convention c subprogram
        (Layout_Type): Do not force 32-bits for convention c subprogram
        pointers in -gnatdm mode, only if real vms target.
        pointers in -gnatdm mode, only if real vms target.
        * sem_attr.adb (Analyze_Access_Attribute): Use new flag
        * sem_attr.adb (Analyze_Access_Attribute): Use new flag
        Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
        Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
        (Analyze_Access_Attribute,Attribute_Address): Remove checks for
        (Analyze_Access_Attribute,Attribute_Address): Remove checks for
        violations of the No_Implicit_Dynamic_Code restriction.
        violations of the No_Implicit_Dynamic_Code restriction.
        (Resolve_Attribute, case 'Access): If designated type of context is a
        (Resolve_Attribute, case 'Access): If designated type of context is a
        limited view, use non-limited view when available. If the non-limited
        limited view, use non-limited view when available. If the non-limited
        view is an unconstrained array, this enforces consistency requirements
        view is an unconstrained array, this enforces consistency requirements
        in 3.10.2 (27).
        in 3.10.2 (27).
        (Layout_Type): For an access type whose designated type is a limited
        (Layout_Type): For an access type whose designated type is a limited
        view, examine its declaration to determine if it is an unconstrained
        view, examine its declaration to determine if it is an unconstrained
        array, and size the access type accordingly.
        array, and size the access type accordingly.
2007-12-13  Vincent Celier  
2007-12-13  Vincent Celier  
        * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
        * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
        object directory of main project does not exist.
        object directory of main project does not exist.
        On VMS, correctly set then environment variable for the source
        On VMS, correctly set then environment variable for the source
        directories.
        directories.
2007-12-13  Vasiliy Fofanov  
2007-12-13  Vasiliy Fofanov  
        * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
        * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
        set to True this procedure will create the value of type REG_EXPAND_SZ.
        set to True this procedure will create the value of type REG_EXPAND_SZ.
        It was only possible to create REG_SZ values before.
        It was only possible to create REG_SZ values before.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
        * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
        g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
        g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
        namet-sp.adb, namet-sp.ads: New files.
        namet-sp.adb, namet-sp.ads: New files.
        * g-speche.adb: Use generic routine in g-spchge
        * g-speche.adb: Use generic routine in g-spchge
        * s-wchcnv.ads, s-wchcnv.adb:
        * s-wchcnv.ads, s-wchcnv.adb:
        Minor code cleanup (make formal type consistent with spec)
        Minor code cleanup (make formal type consistent with spec)
        * namet.adb: Update comments.
        * namet.adb: Update comments.
        * par-endh.adb (Evaluate_End_Entry): Use new
        * par-endh.adb (Evaluate_End_Entry): Use new
        Namet.Sp.Is_Bad_Spelling_Of function
        Namet.Sp.Is_Bad_Spelling_Of function
        * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
        * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
        * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
        * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
        ancestor is an access type initialized with a box, set its type
        ancestor is an access type initialized with a box, set its type
        explicitly, for use in subsequent expansion.
        explicitly, for use in subsequent expansion.
        (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
        (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
        function
        function
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
        * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
        access Vstring)
        access Vstring)
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * inline.adb (Back_End_Cannot_Inline): Use new flag
        * inline.adb (Back_End_Cannot_Inline): Use new flag
        Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
        Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
        Has_Pragma_Inline_Always instead.
        Has_Pragma_Inline_Always instead.
        of obsolete function Is_Always_Inlined
        of obsolete function Is_Always_Inlined
        (Build_Body_To_Inline): Same change
        (Build_Body_To_Inline): Same change
        (Cannot_Inline): Same change
        (Cannot_Inline): Same change
        Do not give warning on exception raise in No_Return function
        Do not give warning on exception raise in No_Return function
        * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
        * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
        component has two inconsistent component clauses in the same record
        component has two inconsistent component clauses in the same record
        representation clause, favor the message that complains about
        representation clause, favor the message that complains about
        duplication rather than inconsistency.
        duplication rather than inconsistency.
        Update comments.
        Update comments.
        (Record_Representation_Clause): Do not warn on missing component
        (Record_Representation_Clause): Do not warn on missing component
        clauses for inherited components of a type extension.
        clauses for inherited components of a type extension.
        (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
        (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
        an overloadable item if it is a pragma that can apply to multiple
        an overloadable item if it is a pragma that can apply to multiple
        overloadable entities (e.g. Inline) because a pragma cannot be on
        overloadable entities (e.g. Inline) because a pragma cannot be on
        more than one chain at a time.
        more than one chain at a time.
        (Validate_Unchecked_Conversion): Add code to warn on unchecked
        (Validate_Unchecked_Conversion): Add code to warn on unchecked
        conversion where one of the operands is Ada.Calendar.Time.
        conversion where one of the operands is Ada.Calendar.Time.
        (Analyze_Attribute_Definition_Clause): Fix typo in error message.
        (Analyze_Attribute_Definition_Clause): Fix typo in error message.
        For now, ignore Component_Size clause on VM targets, as done for
        For now, ignore Component_Size clause on VM targets, as done for
        pragma Pack.
        pragma Pack.
2007-12-13  Emmanuel Briot  
2007-12-13  Emmanuel Briot  
            Vincent Celier  
            Vincent Celier  
        * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
        * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
        string
        string
        (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
        (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
        prj.ads
        prj.ads
        (Hash): Move instantiation of System.HTable.Hash from spec to body
        (Hash): Move instantiation of System.HTable.Hash from spec to body
        (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
        (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
        systems, since we do not need to recompute the Name_Id for the canonical
        systems, since we do not need to recompute the Name_Id for the canonical
        file name.
        file name.
        (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
        (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
        as a parameter. This parameter is in fact always "ada" in all calls, and
        as a parameter. This parameter is in fact always "ada" in all calls, and
        we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
        we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
        while loading a project with 40000 files
        while loading a project with 40000 files
        * prj-attr.adb: Fix name of attribute Dependency_Driver
        * prj-attr.adb: Fix name of attribute Dependency_Driver
        Change the kind of indexing for attribute Root
        Change the kind of indexing for attribute Root
        * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
        * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
        variables already declared, in case constructions.
        variables already declared, in case constructions.
        * prj-env.adb (Initialize): Reset Current_Source_Path_File and
        * prj-env.adb (Initialize): Reset Current_Source_Path_File and
        Current_Object_Path_File to No_Path.
        Current_Object_Path_File to No_Path.
        * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
        * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
        ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
        ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
        * prj-makr.adb: new parameter Current_Dir
        * prj-makr.adb: new parameter Current_Dir
        * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
        * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
        Ada sources when language is not Ada.
        Ada sources when language is not Ada.
        Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
        Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
        (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
        (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
        (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
        (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
        (Locate_Directory): Always resolve links when computing Canonical_Path
        (Locate_Directory): Always resolve links when computing Canonical_Path
        (Look_For_Sources): Make sure that Name_Buffer contains the file name
        (Look_For_Sources): Make sure that Name_Buffer contains the file name
        in Source_Files before checking for the presence of a directory
        in Source_Files before checking for the presence of a directory
        separator.
        separator.
        Optimize calls to Name_Find when on case sensitive systems.
        Optimize calls to Name_Find when on case sensitive systems.
        (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
        (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
        as a parameter.
        as a parameter.
        (Prj.Nmsc.Check): new parameter Current_Dir
        (Prj.Nmsc.Check): new parameter Current_Dir
        (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
        (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
        cannot be empty and the spec suffix cannot be the same as the body or
        cannot be empty and the spec suffix cannot be the same as the body or
        separate suffix.
        separate suffix.
        (Get_Unit): When a file name can be of several unit kinds (spec, body or
        (Get_Unit): When a file name can be of several unit kinds (spec, body or
        subunit), always consider the longest suffix.
        subunit), always consider the longest suffix.
        (Check_Configuration): Do not issue an error if there is no compiler
        (Check_Configuration): Do not issue an error if there is no compiler
        for a language. Just issue a warning and ignore the sources for the
        for a language. Just issue a warning and ignore the sources for the
        language.
        language.
        (Check_Library_Attributes): Only check Library_Dir if Library_Name is
        (Check_Library_Attributes): Only check Library_Dir if Library_Name is
        not empty.
        not empty.
        (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
        (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
        (Unit_Exceptions): New hash table
        (Unit_Exceptions): New hash table
        (Check_Naming_Schemes): Check if a file that could be a unit because of
        (Check_Naming_Schemes): Check if a file that could be a unit because of
        the naming scheme is not in fact a source because there is an exception
        the naming scheme is not in fact a source because there is an exception
        for the unit.
        for the unit.
        (Look_For_Sources): Put the unit exceptions in hash table
        (Look_For_Sources): Put the unit exceptions in hash table
        Unit_Exceptions
        Unit_Exceptions
        (Get_Unit_Exceptions): Give initial value No_Source to local variable
        (Get_Unit_Exceptions): Give initial value No_Source to local variable
        Other_Part to avoid exception when code is compiled with validity
        Other_Part to avoid exception when code is compiled with validity
        checking.
        checking.
        (Get_Sources_From_File): Check that there is no directory information
        (Get_Sources_From_File): Check that there is no directory information
        in the file names.
        in the file names.
        (Look_For_Sources): Check that there is no directory information in the
        (Look_For_Sources): Check that there is no directory information in the
        list of file names in Source_Files.
        list of file names in Source_Files.
        (Look_For_Sources): In multi-language mode, do not allow exception file
        (Look_For_Sources): In multi-language mode, do not allow exception file
        names that are excluded.
        names that are excluded.
        (Excluded_Sources_Htable): New hash table
        (Excluded_Sources_Htable): New hash table
        (Search_Directories.Check_File): New procedure to simplify
        (Search_Directories.Check_File): New procedure to simplify
        Search_Directories.
        Search_Directories.
        (Search_Directories): Do not consider excluded sources
        (Search_Directories): Do not consider excluded sources
        (Look_For_Sources): Populate Excluded_Sources_Htable before calling
        (Look_For_Sources): Populate Excluded_Sources_Htable before calling
        Search_Directories.
        Search_Directories.
        (Get_Exceptions): Set component Lang_Kind of Source_Data
        (Get_Exceptions): Set component Lang_Kind of Source_Data
        (Get_Unit_Exceptions): Ditto
        (Get_Unit_Exceptions): Ditto
        (Search_Directories): Ditto
        (Search_Directories): Ditto
        * prj-pars.adb: new parameter Current_Dir
        * prj-pars.adb: new parameter Current_Dir
        * prj-part.ads, prj-part.adb:
        * prj-part.ads, prj-part.adb:
        Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
        Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
        (Opt.Follow_Links_For_Dirs): New flag
        (Opt.Follow_Links_For_Dirs): New flag
        (Project_Path_Name_Of): Cache information returned by this routine as
        (Project_Path_Name_Of): Cache information returned by this routine as
        Locate_Regular_File is a costly routine. The code to output a log
        Locate_Regular_File is a costly routine. The code to output a log
        information and the effective call to Locate_Regular_File is now
        information and the effective call to Locate_Regular_File is now
        factorized into a routine (code clean-up).
        factorized into a routine (code clean-up).
        (Parse, Parse_Single_Project): new parameter Current_Dir
        (Parse, Parse_Single_Project): new parameter Current_Dir
        When main project file cannot be found, indicate in the error
        When main project file cannot be found, indicate in the error
        message the project path that was used to do the search.
        message the project path that was used to do the search.
        * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
        * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
        (Prj.Proc.Process*): new parameter Current_Dir
        (Prj.Proc.Process*): new parameter Current_Dir
        * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
        * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
2007-12-13  Bob Duff  
2007-12-13  Bob Duff  
        * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
        * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
        procedure to be called from the back end to check the
        procedure to be called from the back end to check the
        No_Implicit_Dynamic_Code restriction.
        No_Implicit_Dynamic_Code restriction.
2007-12-13  Arnaud Charlet  
2007-12-13  Arnaud Charlet  
        * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
        * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
        Fixes another case where RTE_Available_Call was ignored instead of being
        Fixes another case where RTE_Available_Call was ignored instead of being
        taken into account.
        taken into account.
        (Load_Fail): Ditto.
        (Load_Fail): Ditto.
        * rtsfind.ads: Add new entries.
        * rtsfind.ads: Add new entries.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
        * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
        g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
        g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
        * scn.adb: Implement BOM recognition
        * scn.adb: Implement BOM recognition
2007-12-13  Thomas Quinot  
2007-12-13  Thomas Quinot  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
        * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
        subprogram body that acts as its own spec may not have a non-private
        subprogram body that acts as its own spec may not have a non-private
        WITH clause on a private sibling.
        WITH clause on a private sibling.
        (Build_Unit_Name): If the parent unit in the name in a with_clause on a
        (Build_Unit_Name): If the parent unit in the name in a with_clause on a
        child unit is a renaming, create an implicit with_clause on that
        child unit is a renaming, create an implicit with_clause on that
        parent, and not on the unit it renames, to prevent visibility errors
        parent, and not on the unit it renames, to prevent visibility errors
        in the current unit.
        in the current unit.
2007-12-13  Ed Schonberg  
2007-12-13  Ed Schonberg  
        * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
        * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
        renaming declaration, use the Slocs of the formal parameters from the
        renaming declaration, use the Slocs of the formal parameters from the
        declaration of the formal subprogram when creating the formal parameter
        declaration of the formal subprogram when creating the formal parameter
        entities in the renaming declaration.
        entities in the renaming declaration.
        (Analyze_Formal_Type_Declaration): Change the placement of the error
        (Analyze_Formal_Type_Declaration): Change the placement of the error
        message concerning illegal known discriminants. It is now posted on the
        message concerning illegal known discriminants. It is now posted on the
        type rather than on the first discriminant. This change ensures early
        type rather than on the first discriminant. This change ensures early
        error report.
        error report.
        (Freeze_Subprogram_Body): If the generic subprogram is nested within
        (Freeze_Subprogram_Body): If the generic subprogram is nested within
        the package body that contains the instance, do not generate an
        the package body that contains the instance, do not generate an
        out-of-place freeze node for the enclosing package.
        out-of-place freeze node for the enclosing package.
        (Collect_Previous_Instantiations): Ignore internal instantiations
        (Collect_Previous_Instantiations): Ignore internal instantiations
        generated for formal packages.
        generated for formal packages.
        (Validate_Derived_Type_Instance): Add a check that when a formal
        (Validate_Derived_Type_Instance): Add a check that when a formal
        derived type is Known_To_Have_Preelab_Init then the actual type must
        derived type is Known_To_Have_Preelab_Init then the actual type must
        have preelaborable initialization, and issue an error when this
        have preelaborable initialization, and issue an error when this
        condition is violated.
        condition is violated.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * s-imenne.adb, s-imenne.ads: New files.
        * s-imenne.adb, s-imenne.ads: New files.
        * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
        * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
        s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
        s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
        s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
        s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
        s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
        s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
        s-imgwch.ads: New calling sequence for Image routines to avoid sec
        s-imgwch.ads: New calling sequence for Image routines to avoid sec
        stack usage.
        stack usage.
2007-12-13  Javier Miranda  
2007-12-13  Javier Miranda  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
        * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
        generation of spurious error if parent is an interface type; caused
        generation of spurious error if parent is an interface type; caused
        because predefined primitive bodies will be generated later by
        because predefined primitive bodies will be generated later by
        Freeze_Record_Type.
        Freeze_Record_Type.
        (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
        (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
        flag.
        flag.
        (Derive_Subprograms): Handle derivations of predefined primitives
        (Derive_Subprograms): Handle derivations of predefined primitives
        after all the user-defined primitives to ensure that they are
        after all the user-defined primitives to ensure that they are
        found in proper order in instantiations.
        found in proper order in instantiations.
        (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
        (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
        of Related_Interface to Related_Type.
        of Related_Interface to Related_Type.
        (Record_Type_Declaration): Minor reordering of calls to decorate the
        (Record_Type_Declaration): Minor reordering of calls to decorate the
        Tag component because the entity must have set its Ekind attribute
        Tag component because the entity must have set its Ekind attribute
        before setting its Is_Tag attribute.
        before setting its Is_Tag attribute.
        (Analyze_Subtype_Declaration): In the case of subtypes with
        (Analyze_Subtype_Declaration): In the case of subtypes with
        Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
        Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
        * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
        statement to the list of contexts where a selected component with a
        statement to the list of contexts where a selected component with a
        concurrent tagged type prefix should yield a primitive operation.
        concurrent tagged type prefix should yield a primitive operation.
        (Find_Primitive_Operation): Handle case of class-wide types.
        (Find_Primitive_Operation): Handle case of class-wide types.
        (Analyze_Overloaded_Selected_Component): If type of prefix is
        (Analyze_Overloaded_Selected_Component): If type of prefix is
        class-wide, use visible components of base type.
        class-wide, use visible components of base type.
        (Resolve_Selected_Component): Ditto.
        (Resolve_Selected_Component): Ditto.
        (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
        (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
        formal of a generic subprogram. find candidate interpretations by
        formal of a generic subprogram. find candidate interpretations by
        scanning the list of generic formal declarations.:
        scanning the list of generic formal declarations.:
        (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
        (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
        type from a limited_with_clause, and the full view is available, use it
        type from a limited_with_clause, and the full view is available, use it
        for subsequent semantic checks.
        for subsequent semantic checks.
        (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
        (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
        (Find_Primitive_Operation): New function.
        (Find_Primitive_Operation): New function.
        (Analyze_Overloaded_Selected_Component): insert explicit dereference
        (Analyze_Overloaded_Selected_Component): insert explicit dereference
        only once if several interpretations of the prefix yield an access type.
        only once if several interpretations of the prefix yield an access type.
        (Try_Object_Operation): Code and comment cleanup.
        (Try_Object_Operation): Code and comment cleanup.
        (Analyze_Selected_Component): Reorder local variables. Minot comment and
        (Analyze_Selected_Component): Reorder local variables. Minot comment and
        code reformatting. When the type of the prefix is tagged concurrent, a
        code reformatting. When the type of the prefix is tagged concurrent, a
        correct interpretation might be available in the primitive and
        correct interpretation might be available in the primitive and
        class-wide operations of the type.
        class-wide operations of the type.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
        * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
        renaming entry as subprogram using rename-as-body if subprogram spec
        renaming entry as subprogram using rename-as-body if subprogram spec
        frozen.
        frozen.
        (Use_One_Type): The clause is legal on an access type whose designated
        (Use_One_Type): The clause is legal on an access type whose designated
        type has a limited view.
        type has a limited view.
        (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
        (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
        (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
        (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
        (Analyze_Renamed_Primitive_Operation): new procedure to determine the
        (Analyze_Renamed_Primitive_Operation): new procedure to determine the
        operation denoted by a selected component.
        operation denoted by a selected component.
        (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
        (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
        it can be an expression, possibly overloaded, that returns a task or
        it can be an expression, possibly overloaded, that returns a task or
        an access to one.
        an access to one.
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
            Gary Dismukes  
            Gary Dismukes  
        * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
        * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
        requeue statement is dispatching. Do not emit an error when the name is
        requeue statement is dispatching. Do not emit an error when the name is
        not an entry and the context is a dispatching select. Add code to
        not an entry and the context is a dispatching select. Add code to
        perform subtype conformance between the formals of the current entry
        perform subtype conformance between the formals of the current entry
        and those of the target interface primitive.
        and those of the target interface primitive.
        (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
        (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
        Timed_Entry_Call): Analyze the triggering statement as the first step of
        Timed_Entry_Call): Analyze the triggering statement as the first step of
        the processing. If this is a dispatching select, postpone the analysis
        the processing. If this is a dispatching select, postpone the analysis
        of all select statements until the Expander transforms the select. This
        of all select statements until the Expander transforms the select. This
        approach avoids generating duplicate identifiers after the Expander has
        approach avoids generating duplicate identifiers after the Expander has
        replicated some of the select statements. In case the Expander is
        replicated some of the select statements. In case the Expander is
        disabled, perform regular analysis.
        disabled, perform regular analysis.
        (Check_Triggering_Statement): New routine.
        (Check_Triggering_Statement): New routine.
        (Analyze_Requeue): Exclude any interpretations that are not entries when
        (Analyze_Requeue): Exclude any interpretations that are not entries when
        checking overloaded names in a requeue. Also test type conformance for
        checking overloaded names in a requeue. Also test type conformance for
        matching interpretations rather than requiring subtype conformance at
        matching interpretations rather than requiring subtype conformance at
        that point to conform with the RM's resolution rule for requeues.
        that point to conform with the RM's resolution rule for requeues.
2007-12-13  Ed Schonberg  
2007-12-13  Ed Schonberg  
        * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
        * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
        inherited operation is a defaulted tag-indeterminate call, and there is
        inherited operation is a defaulted tag-indeterminate call, and there is
        a statically tagged actual, use the static tag as a controlling actual
        a statically tagged actual, use the static tag as a controlling actual
        for the defaulted actual.
        for the defaulted actual.
2007-12-13  Geert Bosch  
2007-12-13  Geert Bosch  
        * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
        * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
        context, so do not call Check_Non_Static_Context.
        context, so do not call Check_Non_Static_Context.
2007-12-13  Hristian Kirtchev  
2007-12-13  Hristian Kirtchev  
        * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
        * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
        whether formal E is an entity which may have parameters.
        whether formal E is an entity which may have parameters.
2007-12-13  Bob Duff  
2007-12-13  Bob Duff  
            Javier Miranda  
            Javier Miranda  
            Robert Dewar  
            Robert Dewar  
        * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
        * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
        (Set_Convention): New procedure to set the Convention flag, and in
        (Set_Convention): New procedure to set the Convention flag, and in
        addition make sure the Favor_Top_Level flag is kept in sync (all
        addition make sure the Favor_Top_Level flag is kept in sync (all
        foreign-language conventions require Favor_Top_Level = True).
        foreign-language conventions require Favor_Top_Level = True).
        (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
        (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
        to Related_Type.
        to Related_Type.
        (Collect_Interfaces_Info): Minor update to handle the two secondary
        (Collect_Interfaces_Info): Minor update to handle the two secondary
        dispatch tables. Update occurrence of Related_Interface to Related_Type.
        dispatch tables. Update occurrence of Related_Interface to Related_Type.
        (Generate_Parent_Ref): Add parameter to specify entity to check
        (Generate_Parent_Ref): Add parameter to specify entity to check
        (Is_Preelaborable_Expression): Allow the name of a discriminant to
        (Is_Preelaborable_Expression): Allow the name of a discriminant to
        initialize a component of a type with preelaborable initialization.
        initialize a component of a type with preelaborable initialization.
        This includes the case of a discriminal used in such a context.
        This includes the case of a discriminal used in such a context.
        (Is_Dependent_Component_Of_Mutable_Object): Take into account the
        (Is_Dependent_Component_Of_Mutable_Object): Take into account the
        latest Ada 2005 rules about renaming and 'Access of
        latest Ada 2005 rules about renaming and 'Access of
        discriminant-dependent components.
        discriminant-dependent components.
        (Check_Nested_Access): Add handling when there are no enclosing
        (Check_Nested_Access): Add handling when there are no enclosing
        subprograms (e.g. case of a package body).
        subprograms (e.g. case of a package body).
        (Find_Parameter_Type): Factor routine from several other compiler files.
        (Find_Parameter_Type): Factor routine from several other compiler files.
        Remove routine from Find_Overridden_Synchronized_Primitive.
        Remove routine from Find_Overridden_Synchronized_Primitive.
2007-12-13  Thomas Quinot  
2007-12-13  Thomas Quinot  
        * sinput.adb (Get_Source_File_Index): Add assertion to guard against
        * sinput.adb (Get_Source_File_Index): Add assertion to guard against
        an invalid access to an uninitialized slot in the
        an invalid access to an uninitialized slot in the
        Source_File_Index_Table.
        Source_File_Index_Table.
2007-12-13  Thomas Quinot  
2007-12-13  Thomas Quinot  
        * sinput-l.adb (Load_File): Disable style checks when preprocessing.
        * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2007-12-13  Bob Duff  
2007-12-13  Bob Duff  
        * s-soflin.ads: Apply new pragma Favor_Top_Level to all
        * s-soflin.ads: Apply new pragma Favor_Top_Level to all
        access-to-subprogram types in this package.
        access-to-subprogram types in this package.
2007-12-13  Olivier Hainque  
2007-12-13  Olivier Hainque  
        * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
        * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
        with Stack_Grows_Down in System.Parameters. Rename Array_Address into
        with Stack_Grows_Down in System.Parameters. Rename Array_Address into
        Stack_Overlay_Address and document that we are using an internal
        Stack_Overlay_Address and document that we are using an internal
        abstraction.
        abstraction.
        (Byte_Size, Unsigned_32_Size): Remove, now useless.
        (Byte_Size, Unsigned_32_Size): Remove, now useless.
        (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
        (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
        consistently throughout the various implementation pieces.
        consistently throughout the various implementation pieces.
        * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
        * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
        overlay we are using to fill the stack area with patterns.
        overlay we are using to fill the stack area with patterns.
        (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
        (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
        (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
        (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
        (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
        (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
        * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2007-12-13  Arnaud Charlet  
2007-12-13  Arnaud Charlet  
        * s-tassta.adb:
        * s-tassta.adb:
        (Create_Task): Take into account tasks created by foreign threads.
        (Create_Task): Take into account tasks created by foreign threads.
        Code clean up: use constants instead of hard coded values.
        Code clean up: use constants instead of hard coded values.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * styleg.adb (Check_Comment): More liberal rules for comment placement
        * styleg.adb (Check_Comment): More liberal rules for comment placement
2007-12-13  Olivier Hainque  
2007-12-13  Olivier Hainque  
        * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
        * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
        of Procedure Value instead of Frame Pointer as the invocation
        of Procedure Value instead of Frame Pointer as the invocation
        identifier associated with the instruction pointer in each traceback
        identifier associated with the instruction pointer in each traceback
        entry.
        entry.
        * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
        * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
        TB_Entry_For): Revert back to use of Procedure Value instead of Frame
        TB_Entry_For): Revert back to use of Procedure Value instead of Frame
        Pointer as the invocation identifier passed to tbk$symbolize.
        Pointer as the invocation identifier passed to tbk$symbolize.
        * s-traent-vms.ads, s-traent-vms.adb
        * s-traent-vms.ads, s-traent-vms.adb
        (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
        (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
        Procedure Value instead of Frame Pointer as the invocation identifier
        Procedure Value instead of Frame Pointer as the invocation identifier
        passed to tbk$symbolize.
        passed to tbk$symbolize.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * tbuild.ads, tbuild.adb:
        * tbuild.ads, tbuild.adb:
        Fix location of flag for unrecognized pragma message
        Fix location of flag for unrecognized pragma message
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * treepr.ads, treepr.adb: (pl): implement use of positive value
        * treepr.ads, treepr.adb: (pl): implement use of positive value
        shorthands
        shorthands
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * xeinfo.adb: Remove warnings
        * xeinfo.adb: Remove warnings
        * xnmake.adb: Remove warnings
        * xnmake.adb: Remove warnings
        * xsinfo.adb: Remove warnings
        * xsinfo.adb: Remove warnings
        * xtreeprs.adb: Remove warnings
        * xtreeprs.adb: Remove warnings
        * xsnames.adb: Remove warnings
        * xsnames.adb: Remove warnings
        * a-ngcoar.adb: Fix typo.
        * a-ngcoar.adb: Fix typo.
        * s-interr.adb: Minor reformatting
        * s-interr.adb: Minor reformatting
        * env.c: Minor reformatting.
        * env.c: Minor reformatting.
        * g-bytswa.adb: Minor reformatting.
        * g-bytswa.adb: Minor reformatting.
        * g-rannum.ads: Minor documentation improvements
        * g-rannum.ads: Minor documentation improvements
        * s-tasinf-mingw.adb: Minor header fix
        * s-tasinf-mingw.adb: Minor header fix
        * a-clrefi.adb: Minor reformatting
        * a-clrefi.adb: Minor reformatting
        * g-sttsne.ads: Minor documentation improvement
        * g-sttsne.ads: Minor documentation improvement
        * g-sttsne-locking.ads: Minor documentation improvement
        * g-sttsne-locking.ads: Minor documentation improvement
        * g-soliop-solaris.ads: Minor documentation improvement
        * g-soliop-solaris.ads: Minor documentation improvement
        * g-soliop-mingw.ads: Minor documentation improvement
        * g-soliop-mingw.ads: Minor documentation improvement
        * g-soliop.ads: Minor documentation improvement
        * g-soliop.ads: Minor documentation improvement
        * exp_aggr.ads: Minor reformatting
        * exp_aggr.ads: Minor reformatting
        * debug.adb: Add documentation for the gprbuild debug flags
        * debug.adb: Add documentation for the gprbuild debug flags
        * exp_ch2.adb: Use Nkind_In to simplify code throughout
        * exp_ch2.adb: Use Nkind_In to simplify code throughout
        * exp_pakd.adb: Minor reformatting
        * exp_pakd.adb: Minor reformatting
        * g-altive.ads, g-alleve.adb: Remove assertions.
        * g-altive.ads, g-alleve.adb: Remove assertions.
        Add comment about minor differences between targets regarding
        Add comment about minor differences between targets regarding
        floating-point operations.
        floating-point operations.
        * g-thread.adb: Remove pragma unreferenced.
        * g-thread.adb: Remove pragma unreferenced.
        * lib.ads: Minor reformatting
        * lib.ads: Minor reformatting
        * par-ch9.adb: Minor reformatting of error messages
        * par-ch9.adb: Minor reformatting of error messages
        * sem_case.adb: Minor reformatting
        * sem_case.adb: Minor reformatting
        * s-fileio.adb: Minor reformattinng
        * s-fileio.adb: Minor reformattinng
        * s-vmexta.ads: Minor typo
        * s-vmexta.ads: Minor typo
        * vxaddr2line.adb:
        * vxaddr2line.adb:
        Take into account 'Success' value as per new GNAT warning.
        Take into account 'Success' value as per new GNAT warning.
2007-12-13  Vincent Celier  
2007-12-13  Vincent Celier  
        * a-direct.adb (Create_Path): Always take '/' as a directory separator,
        * a-direct.adb (Create_Path): Always take '/' as a directory separator,
        even on Windows
        even on Windows
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
            Bob Duff  
            Bob Duff  
        * gnat_ugn.texi: Dcoument new rules for style check comment alignment
        * gnat_ugn.texi: Dcoument new rules for style check comment alignment
        Document that suffixes may be terminations of each others
        Document that suffixes may be terminations of each others
        Add doc for -gnatw.a and -gnatw.A
        Add doc for -gnatw.a and -gnatw.A
        Document gnatbind -Wx switch
        Document gnatbind -Wx switch
        Document BOM recognition
        Document BOM recognition
        Document pragma Implemented_By_Entry.
        Document pragma Implemented_By_Entry.
        Document new units.
        Document new units.
        * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
        * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
        Add doc for pragma Unreferenced suppressing no entities referenced msg
        Add doc for pragma Unreferenced suppressing no entities referenced msg
        Add documentation of GNAT.Directory_Operations.Iteration
        Add documentation of GNAT.Directory_Operations.Iteration
        Add documentation of GNAT.Random_Numbers
        Add documentation of GNAT.Random_Numbers
        Add documentation for pragma Shared.
        Add documentation for pragma Shared.
        Correct documentation for Bit_Order
        Correct documentation for Bit_Order
        Add documentation for the Pool_Address attribute.
        Add documentation for the Pool_Address attribute.
        Fix and improve documentation of pragma machine_attribute.
        Fix and improve documentation of pragma machine_attribute.
        New pragma Fast_Math
        New pragma Fast_Math
        Document BOM recognition
        Document BOM recognition
        * vms_data.ads: Add entries for -gnatw.a -gnatw.A
        * vms_data.ads: Add entries for -gnatw.a -gnatw.A
        Add /Wide_Character_Encoding for binder
        Add /Wide_Character_Encoding for binder
        Add qualifier for the new gnatpp option --no-separate-loop-then
        Add qualifier for the new gnatpp option --no-separate-loop-then
2007-12-13  Matthew Heaney  
2007-12-13  Matthew Heaney  
        * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
        * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
        which generic formal operations are called for each operation.
        which generic formal operations are called for each operation.
2007-12-13  Olivier Hainque  
2007-12-13  Olivier Hainque  
        * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
        * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
        (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
        (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2007-12-13  Emmanuel Briot  
2007-12-13  Emmanuel Briot  
        * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
        * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
        Reference_Dir unless we actually need it.
        Reference_Dir unless we actually need it.
2007-12-13  Vasiliy Fofanov  
2007-12-13  Vasiliy Fofanov  
            Tristan Gingold  
            Tristan Gingold  
        * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
        * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
        * s-osprim-vms.adb,
        * s-osprim-vms.adb,
        a-calend-vms.adb: Remove pragma warning off and add pragma
        a-calend-vms.adb: Remove pragma warning off and add pragma
        unreferenced.
        unreferenced.
2007-12-13  Robert Dewar  
2007-12-13  Robert Dewar  
        * impunit.adb: Add entries for missing units
        * impunit.adb: Add entries for missing units
        * Makefile.rtl: Add new run-time units.
        * Makefile.rtl: Add new run-time units.
        * Make-lang.in:  Update dependencies.
        * Make-lang.in:  Update dependencies.
2007-12-13  Bob Duff  
2007-12-13  Bob Duff  
        * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
        * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
        types, set Can_Use_Internal_Rep appropriately, based on
        types, set Can_Use_Internal_Rep appropriately, based on
        Always_Compatible_Rep_On_Target.
        Always_Compatible_Rep_On_Target.
2007-12-13  Gary Dismukes  
2007-12-13  Gary Dismukes  
            Arnaud Charlet  
            Arnaud Charlet  
        * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
        * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
        it to the front end and setting the aamp_target environment variable
        it to the front end and setting the aamp_target environment variable
        to the switch's argument to ensure that gnaampbind and gnaamplink will
        to the switch's argument to ensure that gnaampbind and gnaamplink will
        take the specified library into account.
        take the specified library into account.
        (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
        (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
        target, since the CIL compiler supports an "object" file (.il files).
        target, since the CIL compiler supports an "object" file (.il files).
2007-12-13  Vincent Celier  
2007-12-13  Vincent Celier  
        * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
        * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
        (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
        (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2007-12-13  Geert Bosch  
2007-12-13  Geert Bosch  
        * s-parame-vxworks.adb:
        * s-parame-vxworks.adb:
        Update comments to reflect usage of this package by Nucleus.
        Update comments to reflect usage of this package by Nucleus.
2007-12-13  Arnaud Charlet  
2007-12-13  Arnaud Charlet  
        * i-vxwork.ads: Kill new warning on Convention C, since changing the
        * i-vxwork.ads: Kill new warning on Convention C, since changing the
        spec would break code.
        spec would break code.
        * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
        * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
        * system-vxworks-alpha.ads: Removed.
        * system-vxworks-alpha.ads: Removed.
2007-12-10  Eric Botcazou  
2007-12-10  Eric Botcazou  
        * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
        * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2007-12-09  Samuel Tardieu  
2007-12-09  Samuel Tardieu  
        PR ada/34366
        PR ada/34366
        * sem_ch3.adb (Designates_T): New function.
        * sem_ch3.adb (Designates_T): New function.
        (Mentions_T): Factor reusable part of the logic into Designates_T.
        (Mentions_T): Factor reusable part of the logic into Designates_T.
        Consider non-access parameters and access and non-access result.
        Consider non-access parameters and access and non-access result.
        (Check_Anonymous_Access_Components): Set ekind of anonymous access to
        (Check_Anonymous_Access_Components): Set ekind of anonymous access to
        E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
        E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
        * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
        * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2007-12-07  Ludovic Brenta  
2007-12-07  Ludovic Brenta  
        PR ada/34361
        PR ada/34361
        * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
        * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
        the new implementation of target-specific calls.
        the new implementation of target-specific calls.
2007-12-07  Olivier Hainque  
2007-12-07  Olivier Hainque  
        * decl.c (gnat_to_gnu_entity) : When computing
        * decl.c (gnat_to_gnu_entity) : When computing
        the designated full view, only follow a second level Full_View link
        the designated full view, only follow a second level Full_View link
        for Non_Limited_Views of from_limited_with references.
        for Non_Limited_Views of from_limited_with references.
2007-12-07  Samuel Tardieu  
2007-12-07  Samuel Tardieu  
        PR ada/15805
        PR ada/15805
        * sem_ch6.adb (Process_Formals): Prevent an access type formal
        * sem_ch6.adb (Process_Formals): Prevent an access type formal
        to be initialized with an access to constant object.
        to be initialized with an access to constant object.
        * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
        * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
        when an access to constant is used to initialize an access
        when an access to constant is used to initialize an access
        value.
        value.
        PR ada/21346
        PR ada/21346
        * a-direct.adb (Compose): Containing_Directory can be an empty string.
        * a-direct.adb (Compose): Containing_Directory can be an empty string.
2007-12-07  Olivier Hainque  
2007-12-07  Olivier Hainque  
        PR ada/34173
        PR ada/34173
        * decl.c (gnat_to_gnu_entity) : When setting
        * decl.c (gnat_to_gnu_entity) : When setting
        the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
        the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
        this is from an alignment clause on the GNAT entity.
        this is from an alignment clause on the GNAT entity.
        * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
        * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
        to distinguish the case where we set it from the type's alignment.
        to distinguish the case where we set it from the type's alignment.
        When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
        When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
        whether this alignment was set from an explicit alignment clause.
        whether this alignment was set from an explicit alignment clause.
2007-12-06  Eric Botcazou  
2007-12-06  Eric Botcazou  
        * decl.c (make_packable_type): Revert last change.
        * decl.c (make_packable_type): Revert last change.
        (gnat_to_gnu_field): Avoid setting size and position multiple times.
        (gnat_to_gnu_field): Avoid setting size and position multiple times.
        * utils.c (finish_record_type): Retrieve the real name of the type.
        * utils.c (finish_record_type): Retrieve the real name of the type.
2007-12-05  Eric Botcazou  
2007-12-05  Eric Botcazou  
        * trans.c (lvalue_required_p): Take base node directly instead
        * trans.c (lvalue_required_p): Take base node directly instead
        of its parent.  Rename second parameter to 'gnu_type'.
        of its parent.  Rename second parameter to 'gnu_type'.
        : Return 0 if the node isn't the prefix.
        : Return 0 if the node isn't the prefix.
        : Likewise.
        : Likewise.
        (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
        (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
        Adjust calls to lvalue_required_p.
        Adjust calls to lvalue_required_p.
2007-12-05  Samuel Tardieu  
2007-12-05  Samuel Tardieu  
        PR ada/21489
        PR ada/21489
        * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
        * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
        parameters of an entry call.
        parameters of an entry call.
2007-12-03  Robert Dewar  
2007-12-03  Robert Dewar  
            Samuel Tardieu  
            Samuel Tardieu  
        PR ada/34287
        PR ada/34287
        * sem_util.adb (Safe_To_Capture_Value): Do not capture values
        * sem_util.adb (Safe_To_Capture_Value): Do not capture values
        of variables declared in a library-level package.
        of variables declared in a library-level package.
2007-12-02  Samuel Tardieu  
2007-12-02  Samuel Tardieu  
        * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
        * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
        of Empty_String'Unchecked_Access.
        of Empty_String'Unchecked_Access.
        * Makefile.in: Add support for sh4-linux.
        * Makefile.in: Add support for sh4-linux.
        * system-linux-sh4.ads: New file.
        * system-linux-sh4.ads: New file.
2007-12-01  Kostik Belousov  
2007-12-01  Kostik Belousov  
        PR ada/33722
        PR ada/33722
        * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
        * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
        and its argument must not be free()ed.
        and its argument must not be free()ed.
2007-11-29  Eric Botcazou  
2007-11-29  Eric Botcazou  
        * decl.c (make_packable_type): Retrieve the real name of the type.
        * decl.c (make_packable_type): Retrieve the real name of the type.
        (maybe_pad_type): Simplify similar code.
        (maybe_pad_type): Simplify similar code.
2007-11-28  Samuel Tardieu  
2007-11-28  Samuel Tardieu  
        PR ada/15804
        PR ada/15804
        * par-ch3.adb (P_Variant_Part): Signal an error when anything other
        * par-ch3.adb (P_Variant_Part): Signal an error when anything other
        than an identifier is used after "case" in a variant_part.
        than an identifier is used after "case" in a variant_part.
        PR ada/17318
        PR ada/17318
        * par-ch4.adb (Is_Parameterless_Attribute): New map.
        * par-ch4.adb (Is_Parameterless_Attribute): New map.
        (P_Name, Scan_Apostrophe block): Parse left parenthesis following
        (P_Name, Scan_Apostrophe block): Parse left parenthesis following
        attribute name or not depending on the new map.
        attribute name or not depending on the new map.
        * sem-attr.adb (Analyze_Attribute): Parameterless attributes
        * sem-attr.adb (Analyze_Attribute): Parameterless attributes
        returning a string or a type will not be called with improper
        returning a string or a type will not be called with improper
        arguments.
        arguments.
        * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
        * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
        * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
        * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
        PR ada/32792
        PR ada/32792
        * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
        * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
        Signal an error when attribute argument is a fixed-point value of
        Signal an error when attribute argument is a fixed-point value of
        an unknown type.
        an unknown type.
        PR ada/22559
        PR ada/22559
        * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
        * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
        a derived ordinary fixed point type.
        a derived ordinary fixed point type.
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
        RM_Size when a Small clause is found.
        RM_Size when a Small clause is found.
2007-11-26  Andreas Krebbel  
2007-11-26  Andreas Krebbel  
        PR 34081/C++
        PR 34081/C++
        * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
        * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
        Pass 'false' for the new allocate_struct_function parameter.
        Pass 'false' for the new allocate_struct_function parameter.
        * utils.c (build_function_stub): Likewise.
        * utils.c (build_function_stub): Likewise.
2007-11-25  Richard Guenther  
2007-11-25  Richard Guenther  
        * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
        * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
        (gnat_poplevel): Likewise.
        (gnat_poplevel): Likewise.
2007-11-25  Eric Botcazou  
2007-11-25  Eric Botcazou  
        * decl.c (gnat_to_gnu_entity) : If the type has
        * decl.c (gnat_to_gnu_entity) : If the type has
        strict alignment, no alignment clause and a known static size, cap
        strict alignment, no alignment clause and a known static size, cap
        the type alignment to the greatest power of 2 factor of the size.
        the type alignment to the greatest power of 2 factor of the size.
        (gnat_to_gnu_field): If the field has a component clause, is aliased
        (gnat_to_gnu_field): If the field has a component clause, is aliased
        or of a type with strict alignment, require that its size be equal to
        or of a type with strict alignment, require that its size be equal to
        that of the type.
        that of the type.
        (validate_size): Use the type size as the minimum size for a type with
        (validate_size): Use the type size as the minimum size for a type with
        strict alignment.
        strict alignment.
2007-11-23  Samuel Tardieu  
2007-11-23  Samuel Tardieu  
        * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
        * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
        s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
        s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
        s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
        s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
        Use 'Access instead of 'Unchecked_Access in second and third
        Use 'Access instead of 'Unchecked_Access in second and third
        arguments of pthread_sigmask.
        arguments of pthread_sigmask.
2007-11-23  Eric Botcazou  
2007-11-23  Eric Botcazou  
        * decl.c (ceil_alignment): New function.
        * decl.c (ceil_alignment): New function.
        (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
        (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
        (make_packable_type): Likewise.
        (make_packable_type): Likewise.
2007-11-22  Olivier Hainque  
2007-11-22  Olivier Hainque  
        * trans.c (gnat_to_gnu) : Reformat lines
        * trans.c (gnat_to_gnu) : Reformat lines
        to fit in 80 columns.
        to fit in 80 columns.
2007-11-21  Aurelien Jarno  
2007-11-21  Aurelien Jarno  
        * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
        * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
        * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
        * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2007-11-19  Eric Botcazou  
2007-11-19  Eric Botcazou  
        PR ada/34098
        PR ada/34098
        * misc.c (gnat_adjust_rli): Delete.
        * misc.c (gnat_adjust_rli): Delete.
        (gnat_init): Do not initialize the translation code here.
        (gnat_init): Do not initialize the translation code here.
        Do not call set_lang_adjust_rli.
        Do not call set_lang_adjust_rli.
        * trans.c (init_code_table): Make static.
        * trans.c (init_code_table): Make static.
        (gnat_init_stmt_group): Delete.
        (gnat_init_stmt_group): Delete.
        (gigi): Initialize the translation code entirely here.
        (gigi): Initialize the translation code entirely here.
        Emit debug info for the common types here instead of...
        Emit debug info for the common types here instead of...
        * utils.c (gnat_init_decl_processing): ...here.
        * utils.c (gnat_init_decl_processing): ...here.
        * gigi.h (init_code_table): Delete.
        * gigi.h (init_code_table): Delete.
        (gnat_init_stmt_group): Likewise.
        (gnat_init_stmt_group): Likewise.
2007-11-16  Olivier Hainque  
2007-11-16  Olivier Hainque  
        * utils2.c (build_call_alloc_dealloc) : Move the code
        * utils2.c (build_call_alloc_dealloc) : Move the code
        retrieving an allocator return value from a super-aligned address from
        retrieving an allocator return value from a super-aligned address from
        here to ...
        here to ...
        * trans.c (gnat_to_gnu) : ... here, and don't
        * trans.c (gnat_to_gnu) : ... here, and don't
        expect a super-aligned address for a fat or thin pointer.
        expect a super-aligned address for a fat or thin pointer.
2007-11-14  Eric Botcazou  
2007-11-14  Eric Botcazou  
        * trans.c (call_to_gnu): Always set the source location on the call
        * trans.c (call_to_gnu): Always set the source location on the call
        expression.  If the function returns-by-target, also set it on the
        expression.  If the function returns-by-target, also set it on the
        address expression.
        address expression.
2007-11-14  Samuel Tardieu  
2007-11-14  Samuel Tardieu  
        * adaint.c, init.c, initialize.c, link.c: Remove system-specific
        * adaint.c, init.c, initialize.c, link.c: Remove system-specific
        sections of non-supported Interix target.
        sections of non-supported Interix target.
        * s-osinte-interix.ads: Removed.
        * s-osinte-interix.ads: Removed.
        * i-cstrin.ads (chars_ptr): Make it a C convention type.
        * i-cstrin.ads (chars_ptr): Make it a C convention type.
2007-11-13  Samuel Tardieu  
2007-11-13  Samuel Tardieu  
        * a-tasatt.adb: Add a comment at the beginning of the package
        * a-tasatt.adb: Add a comment at the beginning of the package
        explaining why in general 'Unchecked_Access must be used instead
        explaining why in general 'Unchecked_Access must be used instead
        of 'Access.
        of 'Access.
        * sem_prag.adb (Process_Convention): Move the test for the
        * sem_prag.adb (Process_Convention): Move the test for the
        entity on which the Convention pragma applies down to also
        entity on which the Convention pragma applies down to also
        forbid pragma Convention on enumeration literals reached
        forbid pragma Convention on enumeration literals reached
        through renamings.
        through renamings.
2007-11-10  Samuel Tardieu  
2007-11-10  Samuel Tardieu  
        * a-tasatt.adb: Revert previous change for this file as it will
        * a-tasatt.adb: Revert previous change for this file as it will
        generate an error when this package is instantiated from a
        generate an error when this package is instantiated from a
        local context.
        local context.
2007-11-07  Samuel Tardieu  
2007-11-07  Samuel Tardieu  
        * a-tasatt.adb: Type Wrapper should be declared in comment instead
        * a-tasatt.adb: Type Wrapper should be declared in comment instead
        of already declared type Node_Access.
        of already declared type Node_Access.
        Use 'Access instead of 'Unchecked_Access when applicable. Local
        Use 'Access instead of 'Unchecked_Access when applicable. Local
        lifetime is the one of the package.
        lifetime is the one of the package.
        (Set_Value): W is allocated on the heap.
        (Set_Value): W is allocated on the heap.
        * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
        * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
        applicable.
        applicable.
        (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
        (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
        access type.
        access type.
        (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
        (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
        access type.
        access type.
        * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
        * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
        applicable.
        applicable.
        (elaboration code): Timer_Queue lifetime is the one of the
        (elaboration code): Timer_Queue lifetime is the one of the
        package.
        package.
        * tracebak.c (i386 alternative): Remove useless comparaison
        * tracebak.c (i386 alternative): Remove useless comparaison
        which is always false; LOWEST_ADDRESS is 0 and is never greater
        which is always false; LOWEST_ADDRESS is 0 and is never greater
        than an unsigned integer.
        than an unsigned integer.
        * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
        * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
        embedded check for "Ada_Version >= Ada_05".
        embedded check for "Ada_Version >= Ada_05".
2007-11-07  Olivier Hainque  
2007-11-07  Olivier Hainque  
        * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
        * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
        craft and expand comment.
        craft and expand comment.
2007-11-01  Eric Botcazou  
2007-11-01  Eric Botcazou  
        * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
        * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2007-10-23  Eric Botcazou  
2007-10-23  Eric Botcazou  
        * misc.c (gnat_handle_option): Replace call to abort with
        * misc.c (gnat_handle_option): Replace call to abort with
        call to gcc_unreachable.
        call to gcc_unreachable.
        (gnat_init): Likewise.
        (gnat_init): Likewise.
        (gnat_expand_expr): Likewise.
        (gnat_expand_expr): Likewise.
        (fp_prec_to_size): Likewise.
        (fp_prec_to_size): Likewise.
        (fp_size_to_prec): Likewise.
        (fp_size_to_prec): Likewise.
2007-10-23  Richard Guenther  
2007-10-23  Richard Guenther  
        PR bootstrap/33608
        PR bootstrap/33608
        * tracebak.c: #undef abort after including system.h.
        * tracebak.c: #undef abort after including system.h.
2007-10-20  Danny Smith  
2007-10-20  Danny Smith  
        * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
        * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
        s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
        s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
        for win32 targets.
        for win32 targets.
        (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
        (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2007-10-15  Eric Botcazou  
2007-10-15  Eric Botcazou  
        * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
        * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
        Set the protection status of the guard page based on the value of On.
        Set the protection status of the guard page based on the value of On.
        * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
        * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
        * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
        * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
        (Exit_Task): Pass False to Hide_Yellow_Zone.
        (Exit_Task): Pass False to Hide_Yellow_Zone.
2007-10-15  Robert Dewar  
2007-10-15  Robert Dewar  
        * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
        * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
        s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
        s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
        a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
        a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
        checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
        checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
        freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
        freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
        gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
        gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
        mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
        mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
        prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
        prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
        sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
        sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
        s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
        s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
        uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
        uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
        a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
        a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
        a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
        a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
        a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
        a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
        a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
        a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
        a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
        a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
        Minor reformatting.
        Minor reformatting.
        Add Unreferenced and Warnings (Off) pragmas for cases of
        Add Unreferenced and Warnings (Off) pragmas for cases of
        variables modified calls where they are IN OUT or OUT parameters and
        variables modified calls where they are IN OUT or OUT parameters and
        the resulting values are not subsequently referenced. In a few cases,
        the resulting values are not subsequently referenced. In a few cases,
        we also remove redundant code found by the new warnings.
        we also remove redundant code found by the new warnings.
        * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
        * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
        sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
        sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
        sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
        sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
        sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
        sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
        warning controlled by -gnatw.o that warns on cases of out parameter
        warning controlled by -gnatw.o that warns on cases of out parameter
        values being ignored.
        values being ignored.
2007-10-15  Geert Bosch  
2007-10-15  Geert Bosch  
        * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
        * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
        * expect.c: Initial port to arm-mentor-nucleus.
        * expect.c: Initial port to arm-mentor-nucleus.
        Use kill for __gnat_kill() on VMS.
        Use kill for __gnat_kill() on VMS.
2007-10-15  Emmanuel Briot  
2007-10-15  Emmanuel Briot  
        * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
        * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
        value.
        value.
        (Xref_Record): Change type for Line, since in the case of a reference to
        (Xref_Record): Change type for Line, since in the case of a reference to
        a predefined entity (as happens for array index types), the line is set
        a predefined entity (as happens for array index types), the line is set
        to 0.
        to 0.
        Add support for parsing multiple array index types info, or
        Add support for parsing multiple array index types info, or
        multiple inherited interfaces info. This information cannot be stored
        multiple inherited interfaces info. This information cannot be stored
        in Xref_Entity_Record, which only supports a single instance of Tref_*,
        in Xref_Entity_Record, which only supports a single instance of Tref_*,
        and is therefore stored in the list of references instead. It has a
        and is therefore stored in the list of references instead. It has a
        special treatement later on in tools that use this information.
        special treatement later on in tools that use this information.
2007-10-15  Tristan Gingold  
2007-10-15  Tristan Gingold  
        * debug.adb: Document use of -gnatd.a and -gnatd.I
        * debug.adb: Document use of -gnatd.a and -gnatd.I
        * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
        * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2007-10-15  Javier Miranda  
2007-10-15  Javier Miranda  
        * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
        * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
        Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
        Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
        care of access to class-wide interface types plus removal of bizarre
        care of access to class-wide interface types plus removal of bizarre
        conversion of tagged object to access type (reported by Gary
        conversion of tagged object to access type (reported by Gary
        Dismukes). After this patch there is no need to perform any
        Dismukes). After this patch there is no need to perform any
        additional management on these nodes in Expand_Interface_Actuals.
        additional management on these nodes in Expand_Interface_Actuals.
        * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
        * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
        that handles use of 'Access and 'Unchecked_Access applied to
        that handles use of 'Access and 'Unchecked_Access applied to
        actuals covering interface types. Such code is now
        actuals covering interface types. Such code is now
        centralized in Expand_N_Attribute_Reference.
        centralized in Expand_N_Attribute_Reference.
2007-10-15  Ed Schonberg  
2007-10-15  Ed Schonberg  
        * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
        * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
        of tagged types whose ultimate ancestor is a CPP type.
        of tagged types whose ultimate ancestor is a CPP type.
        (Freeze_Array_Type): For a packed array type, generate an initialization
        (Freeze_Array_Type): For a packed array type, generate an initialization
        procedure if the type is public, to handle properly a client that
        procedure if the type is public, to handle properly a client that
        specifies Normalize_Scalars.
        specifies Normalize_Scalars.
2007-10-15  Hristian Kirtchev  
2007-10-15  Hristian Kirtchev  
        * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
        * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
        inside a generic body, retrieve the full view of the entry family
        inside a generic body, retrieve the full view of the entry family
        discrete subtype if available.
        discrete subtype if available.
2007-10-15  Thomas Quinot  
2007-10-15  Thomas Quinot  
        * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
        * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
        attempt to generate stubs for hidden primitive operations.
        attempt to generate stubs for hidden primitive operations.
2007-10-15  Vincent Celier  
2007-10-15  Vincent Celier  
        * mlib-tgt-specific.adb (Support_For_Libraries): New function,
        * mlib-tgt-specific.adb (Support_For_Libraries): New function,
        returning None, used when there is no platform specific body for
        returning None, used when there is no platform specific body for
        MLib.Tgt.Specific.
        MLib.Tgt.Specific.
2007-10-15  Bob Duff  
2007-10-15  Bob Duff  
        * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
        * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
        (passing'Unrestricted_Access of nested subprograms to Sort) with use of
        (passing'Unrestricted_Access of nested subprograms to Sort) with use of
        the generic Heap_Sort_G, in order to avoid trampolines.
        the generic Heap_Sort_G, in order to avoid trampolines.
2007-10-15  Vasiliy Fofanov  
2007-10-15  Vasiliy Fofanov  
            Jose Ruiz  
            Jose Ruiz  
        * vx_stack_info.c: New file.
        * vx_stack_info.c: New file.
        * i-forbla-unimplemented.ads: New file.
        * i-forbla-unimplemented.ads: New file.
        * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
        * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
        for unsupported configurations; use it on VMS targets instead of the
        for unsupported configurations; use it on VMS targets instead of the
        real one.
        real one.
        (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
        (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
        vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
        vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
        used by VxWorks targets to have access to task-specific data and be
        used by VxWorks targets to have access to task-specific data and be
        able to extract the stack boundaries for stack checking.
        able to extract the stack boundaries for stack checking.
        Use system-vms-ia64.ads on ivms.
        Use system-vms-ia64.ads on ivms.
        * Make-lang.in: Update dependencies.
        * Make-lang.in: Update dependencies.
        * sysdep.c (__gnat_get_stack_info): Move to a standalone file
        * sysdep.c (__gnat_get_stack_info): Move to a standalone file
        (vx_stack_info.c).
        (vx_stack_info.c).
2007-10-15  Vincent Celier  
2007-10-15  Vincent Celier  
        * snames.adb, snames.ads: Add new standard name runtime_library_dir
        * snames.adb, snames.ads: Add new standard name runtime_library_dir
        * prj.ads (Language_Config): Add new component Runtime_Library_Dir
        * prj.ads (Language_Config): Add new component Runtime_Library_Dir
        * prj-attr.adb: Add project level attribute Runtime_Library_Dir
        * prj-attr.adb: Add project level attribute Runtime_Library_Dir
        * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
        * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
        the source is unknown.
        the source is unknown.
        * prj-ext.adb: Spelling error fix
        * prj-ext.adb: Spelling error fix
        * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
        * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
        95 reserved word in its name.
        95 reserved word in its name.
        (Process_Project_Level_Array_Attributes): Process new attribute
        (Process_Project_Level_Array_Attributes): Process new attribute
        Runtime_Library_Dir.
        Runtime_Library_Dir.
        * prj-part.adb (Parse_Single_Project): Do not check the name of the
        * prj-part.adb (Parse_Single_Project): Do not check the name of the
        config project against the user project names.
        config project against the user project names.
        * prj-proc.adb (Expression): In multi-language mode, indexes that do
        * prj-proc.adb (Expression): In multi-language mode, indexes that do
        not include a dot are always case insensitive.
        not include a dot are always case insensitive.
        (Process_Declarative_Items): Ditto
        (Process_Declarative_Items): Ditto
        (Process_Project_Tree_Phase_1): Set Success to False in case an error is
        (Process_Project_Tree_Phase_1): Set Success to False in case an error is
        detected.
        detected.
        * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
        * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
        True, compare both indexes in lower case.
        True, compare both indexes in lower case.
2007-10-15  Robert Dewar  
2007-10-15  Robert Dewar  
        * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
        * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2007-10-15  Gary Dismukes  
2007-10-15  Gary Dismukes  
        * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
        * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
        association for an access component, add an association with null as
        association for an access component, add an association with null as
        the expression. Remove testing for array subtypes and the setting in
        the expression. Remove testing for array subtypes and the setting in
        that case of Ctyp to the array component type, which prevented proper
        that case of Ctyp to the array component type, which prevented proper
        inclusion of an association for null-initialized arrays. Collapse
        inclusion of an association for null-initialized arrays. Collapse
        condition that tests for array subtypes into just a test of
        condition that tests for array subtypes into just a test of
        Is_Partially_Initialized_Type (which already covers arrays anyway).
        Is_Partially_Initialized_Type (which already covers arrays anyway).
2007-10-15  Hristian Kirtchev  
2007-10-15  Hristian Kirtchev  
        * sem_ch12.adb: Minor code reformatting.
        * sem_ch12.adb: Minor code reformatting.
        (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
        (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
        find the parent package which may have been hidden by local
        find the parent package which may have been hidden by local
        declarations.
        declarations.
2007-10-15  Gary Dismukes  
2007-10-15  Gary Dismukes  
        * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
        * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
        flag of derived concurrent types, taking into account the flag setting
        flag of derived concurrent types, taking into account the flag setting
        on the parent subtype and any new set of discriminants.
        on the parent subtype and any new set of discriminants.
2007-10-15  Hristian Kirtchev  
2007-10-15  Hristian Kirtchev  
        * sem_ch4.adb: Minor code and comment reformatting.
        * sem_ch4.adb: Minor code and comment reformatting.
        (Analyze_Allocator): When the designated type of an unconstrained
        (Analyze_Allocator): When the designated type of an unconstrained
        allocator is a record with unknown discriminants or an array with
        allocator is a record with unknown discriminants or an array with
        unknown range bounds, emit a detailed error message depending on the
        unknown range bounds, emit a detailed error message depending on the
        compilation mode and whether the designated type is limited.
        compilation mode and whether the designated type is limited.
2007-10-15  Tristan Gingold  
2007-10-15  Tristan Gingold  
        * system-vms-ia64.ads: New file.
        * system-vms-ia64.ads: New file.
        * system-vms_64.ads: Minor comment fix.
        * system-vms_64.ads: Minor comment fix.
2007-10-15  Ed Schonberg  
2007-10-15  Ed Schonberg  
        * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
        * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
        body generated for a function with a controlling result that is a null
        body generated for a function with a controlling result that is a null
        extension, discard the generated body in favor of the current explicit
        extension, discard the generated body in favor of the current explicit
        one.
        one.
2007-10-15  Ed Schonberg  
2007-10-15  Ed Schonberg  
        * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
        * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
        examining its original form, to handle properly operator calls that
        examining its original form, to handle properly operator calls that
        have been rewritten.
        have been rewritten.
2007-10-15  Olivier Hainque  
2007-10-15  Olivier Hainque  
        * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
        * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
        instead of a procedure value in each traceback entry.
        instead of a procedure value in each traceback entry.
        * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
        * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
        instead of procedure value to TBK$SYMBOLIZE.
        instead of procedure value to TBK$SYMBOLIZE.
        * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
        * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
        field.
        field.
        (TB_Entry_For): Account for the PV/FP renaming.
        (TB_Entry_For): Account for the PV/FP renaming.
        * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
        * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
        add comment.
        add comment.
        (Null_TB_Entry): Account for change of component name.
        (Null_TB_Entry): Account for change of component name.
        (PV_For): Rename as FP_For.
        (PV_For): Rename as FP_For.
2007-10-15  Tristan Gingold  
2007-10-15  Tristan Gingold  
        * trans.c (gnat_to_gnu): Remove the padding structure more often.
        * trans.c (gnat_to_gnu): Remove the padding structure more often.
        This optimize assignment to over-aligned record.
        This optimize assignment to over-aligned record.
2007-10-15  Emmanuel Briot  
2007-10-15  Emmanuel Briot  
        * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
        * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
        interfaces.
        interfaces.
        * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
        * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
        type, for dispatching calls.
        type, for dispatching calls.
2007-10-15  Vincent Celier  
2007-10-15  Vincent Celier  
            Robert Dewar  
            Robert Dewar  
        * gnat_ugn.texi: Add documentation for switches --version and --help
        * gnat_ugn.texi: Add documentation for switches --version and --help
        for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
        for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
        gnatxref, gnatfind, gnatls, and gnatclean.
        gnatxref, gnatfind, gnatls, and gnatclean.
        Document -gnatw.o.
        Document -gnatw.o.
        Mention attribute Excluded_Source_Dirs
        Mention attribute Excluded_Source_Dirs
        Replace obsolescent attribute Locally_Removed_Files with attribute
        Replace obsolescent attribute Locally_Removed_Files with attribute
        Excluded_Source_Files.
        Excluded_Source_Files.
        Improve documentation of -u (gnatbind)
        Improve documentation of -u (gnatbind)
        Document how to do reliable stack checking for the environmental task
        Document how to do reliable stack checking for the environmental task
        on iVMS.
        on iVMS.
        * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
        * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
        Document attribute Excluded_Source_Files and indicate that attribute
        Document attribute Excluded_Source_Files and indicate that attribute
        Locally_Removed_Files is obsolescent.
        Locally_Removed_Files is obsolescent.
2007-10-15  Thomas Quinot  
2007-10-15  Thomas Quinot  
        * g-soccon-vms.ads: Fix value of MSG_WAITALL.
        * g-soccon-vms.ads: Fix value of MSG_WAITALL.
        * gen-soccon.c:
        * gen-soccon.c:
        Update documentation to note that OpenVMS 8.3 or later must be used
        Update documentation to note that OpenVMS 8.3 or later must be used
        to generate g-soccon-vms.ads.
        to generate g-soccon-vms.ads.
        * atree.adb: Add ??? comment
        * atree.adb: Add ??? comment
        * exp_util.adb: Minor reformatting.
        * exp_util.adb: Minor reformatting.
        Add ??? comment in Kill_Dead_Code.
        Add ??? comment in Kill_Dead_Code.
2007-10-15  Robert Dewar  
2007-10-15  Robert Dewar  
        * errout.ads: Comment clarification
        * errout.ads: Comment clarification
        * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
        * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
        (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
        (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
        * lib.ads: Comment update
        * lib.ads: Comment update
        * init.c: Minor reformatting.
        * init.c: Minor reformatting.
        * sem_attr.adb: Minor formatting
        * sem_attr.adb: Minor formatting
        * osint-b.ads: Minor reformatting
        * osint-b.ads: Minor reformatting
        * sem_ch9.adb: Implement -gnatd.I switch
        * sem_ch9.adb: Implement -gnatd.I switch
        * g-comlin.adb: (Start): Fix handling of empty command line.
        * g-comlin.adb: (Start): Fix handling of empty command line.
        * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
        * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
        even when -rules follows the -cargs section.
        even when -rules follows the -cargs section.
2007-10-08  Ollie Wild  
2007-10-08  Ollie Wild  
        * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
        * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
        gnat_return_tree.
        gnat_return_tree.
        (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
        (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
        gnat_return_tree.
        gnat_return_tree.
        (gnat_eh_runtime_type): Removed.
        (gnat_eh_runtime_type): Removed.
        (gnat_return_tree): New function.
        (gnat_return_tree): New function.
2007-10-08  Ben Elliston  
2007-10-08  Ben Elliston  
        PR ada/33454
        PR ada/33454
        Revert:
        Revert:
        2007-08-31  Ben Elliston  
        2007-08-31  Ben Elliston  
        * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
        * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
        when compiling for powerpc64-*-linux.
        when compiling for powerpc64-*-linux.
        * system-linux-ppc64.ads: New file.
        * system-linux-ppc64.ads: New file.
2007-09-27  Eric Botcazou  
2007-09-27  Eric Botcazou  
        Mapped location support
        Mapped location support
        * back_end.adb (Call_Back_End): Pass information about source
        * back_end.adb (Call_Back_End): Pass information about source
        files instead of units to gigi.
        files instead of units to gigi.
        * gigi.h (struct File_Info_Type): New.
        * gigi.h (struct File_Info_Type): New.
        (gigi): Rename and change type of number_units parameter, change
        (gigi): Rename and change type of number_units parameter, change
        type of file_info_ptr parameter.
        type of file_info_ptr parameter.
        * trans.c (number_files): New global variable.
        * trans.c (number_files): New global variable.
        (gigi): Rename and change type of number_units parameter, change
        (gigi): Rename and change type of number_units parameter, change
        type of file_info_ptr parameter.
        type of file_info_ptr parameter.
        If mapped location support is enabled, create the isomorphic mapping
        If mapped location support is enabled, create the isomorphic mapping
        between source files and line maps.
        between source files and line maps.
        (Sloc_to_locus): If mapped location support is enabled, translate
        (Sloc_to_locus): If mapped location support is enabled, translate
        source location into mapped location.
        source location into mapped location.
        (annotate_with_node): Rename into set_expr_location_from_node.
        (annotate_with_node): Rename into set_expr_location_from_node.
        Call set_expr_location instead of annotate_with_locus.
        Call set_expr_location instead of annotate_with_locus.
        (Pragma_to_gnu): Adjust for above change.
        (Pragma_to_gnu): Adjust for above change.
        (Loop_Statement_to_gnu): Likewise.
        (Loop_Statement_to_gnu): Likewise.
        (call_to_gnu): Likewise.
        (call_to_gnu): Likewise.
        (Handled_Sequence_Of_Statements_to_gnu): Likewise.
        (Handled_Sequence_Of_Statements_to_gnu): Likewise.
        (gnat_to_gnu): Likewise.
        (gnat_to_gnu): Likewise.
        (add_stmt_with_node): Likewise.
        (add_stmt_with_node): Likewise.
        (add_cleanup): Likewise.
        (add_cleanup): Likewise.
        * utils.c (gnat_init_decl_processing): Do not set input_line.
        * utils.c (gnat_init_decl_processing): Do not set input_line.
2007-09-26  Hristian Kirtchev  
2007-09-26  Hristian Kirtchev  
        * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
        * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
        (Applicable_Use): Emit a warning when a package tries to use itself.
        (Applicable_Use): Emit a warning when a package tries to use itself.
        (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
        (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
        is already in use or the package where it is declared is in use or is
        is already in use or the package where it is declared is in use or is
        declared in the current package.
        declared in the current package.
        (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
        (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
        * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
        * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
        s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
        s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
        s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
        s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
2007-09-26  Hristian Kirtchev  
2007-09-26  Hristian Kirtchev  
        * a-calend-vms.adb, a-calend.adb:
        * a-calend-vms.adb, a-calend.adb:
        Add a section on leap seconds control along with two entities used to
        Add a section on leap seconds control along with two entities used to
        enable and disable leap seconds support. The array Leap_Second_Times is
        enable and disable leap seconds support. The array Leap_Second_Times is
        now constant and contains hard time values pre-generated. Remove
        now constant and contains hard time values pre-generated. Remove
        all elaboration code used to populate the table of leap seconds.
        all elaboration code used to populate the table of leap seconds.
        * bindgen.adb:
        * bindgen.adb:
        Add entity Leap_Seconds_Support to the list of global run-time variables
        Add entity Leap_Seconds_Support to the list of global run-time variables
        along with a comment on its usage and values.
        along with a comment on its usage and values.
        (Gen_Adainit_Ada): Add code to generate the declaration and import of
        (Gen_Adainit_Ada): Add code to generate the declaration and import of
        Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
        Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
        or one (enabled) depending on the presence of binder switch "-y".
        or one (enabled) depending on the presence of binder switch "-y".
        (Gen_Adainit_C): Add code to generate the declaration of external int
        (Gen_Adainit_C): Add code to generate the declaration of external int
        __gl_leap_seconds_support. Set is value to zero (disabled) or one
        __gl_leap_seconds_support. Set is value to zero (disabled) or one
        (enabled) depending on the presence of binder switch "-y".
        (enabled) depending on the presence of binder switch "-y".
        * init.c: Add __gl_leap_seconds_support to the list of global values
        * init.c: Add __gl_leap_seconds_support to the list of global values
        computed by the binder.
        computed by the binder.
2007-09-26  Jerome Guitton  
2007-09-26  Jerome Guitton  
        * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
        * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
        s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
        s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
        s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
        s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
        * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
        * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
        * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
        * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
        function which can be called by the debugger to interrupt the tasks of
        function which can be called by the debugger to interrupt the tasks of
        an Ada application asynchronously, as needed on VxWorks.
        an Ada application asynchronously, as needed on VxWorks.
        (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
        (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
        * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
        * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
        renamed from Stop_All_Tasks. Update comments.
        renamed from Stop_All_Tasks. Update comments.
        (Stop_All_tasks): New function declaration.
        (Stop_All_tasks): New function declaration.
2007-09-26  Olivier Hainque  
2007-09-26  Olivier Hainque  
        * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
        * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
        #include  and #define GCC_RESOURCE_H before
        #include  and #define GCC_RESOURCE_H before
        #include .
        #include .
        Add more protections in __gnat_translate_vms.
        Add more protections in __gnat_translate_vms.
        * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
        * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
        #include .
        #include .
2007-09-26  Thomas Quinot  
2007-09-26  Thomas Quinot  
            Sergey Rybin  
            Sergey Rybin  
        * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
        * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
        * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
        * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
        where it belongs.
        where it belongs.
        * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
        * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
        * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
        * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
        where it belongs.
        where it belongs.
        * sem_dist.ads: Minor comment fix
        * sem_dist.ads: Minor comment fix
        * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
        * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2007-09-26  Javier Miranda  
2007-09-26  Javier Miranda  
            Eric Botcazou  
            Eric Botcazou  
        * a-tags.adb:
        * a-tags.adb:
        (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
        (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
         indirection added to the HT_Link component of the TSD. This is required
         indirection added to the HT_Link component of the TSD. This is required
         to statically allocate the TSD.
         to statically allocate the TSD.
        * a-tags.ads:
        * a-tags.ads:
        Minor reordering of the declarations in the private part. Required to
        Minor reordering of the declarations in the private part. Required to
        add a level of indirection to the contents of the TSD component HT_Link.
        add a level of indirection to the contents of the TSD component HT_Link.
        This is required to statically allocate the TSD.
        This is required to statically allocate the TSD.
        * decl.c (gnat_to_gnu_entity) : Do not exclude objects with
        * decl.c (gnat_to_gnu_entity) : Do not exclude objects with
        Is_Statically_Allocated set from constant objects.
        Is_Statically_Allocated set from constant objects.
        Do not make exported constants created by the compiler volatile.
        Do not make exported constants created by the compiler volatile.
        (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
        (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
        as read-only.
        as read-only.
        * trans.c (Identifier_to_gnu): For constants, unshare initializers
        * trans.c (Identifier_to_gnu): For constants, unshare initializers
        before returning them.
        before returning them.
        * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
        * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
        public part of the package.
        public part of the package.
        (Make_DT): Move HT_Link component out of the TSD record. For this
        (Make_DT): Move HT_Link component out of the TSD record. For this
        purpose Make_DT now declares a separate object that stores the
        purpose Make_DT now declares a separate object that stores the
        HT_Link value, and initializes the TSD component with the address
        HT_Link value, and initializes the TSD component with the address
        of this new object. The addition of this level of indirection is
        of this new object. The addition of this level of indirection is
        required to statically allocate the TSD because the TSD cannot
        required to statically allocate the TSD because the TSD cannot
        have variable components.
        have variable components.
        (Expand_Interface_Conversion): Improve the expanded code.
        (Expand_Interface_Conversion): Improve the expanded code.
        (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
        (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
        * sem_disp.adb (Check_Dispatching_Operation): In case of a body
        * sem_disp.adb (Check_Dispatching_Operation): In case of a body
        declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
        declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
        if we are building static dispatch tables then we must not generate
        if we are building static dispatch tables then we must not generate
        extra code to register the primitive because the dispatch table will
        extra code to register the primitive because the dispatch table will
        be built at the end of the library package; otherwise we notify that
        be built at the end of the library package; otherwise we notify that
        we cannot build the static dispatch table.
        we cannot build the static dispatch table.
2007-09-26  Robert Dewar  
2007-09-26  Robert Dewar  
        * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
        * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
        overlays.
        overlays.
        * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
        * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
        (Analyze_Record_Representation_Clause): Suppress junk warning for
        (Analyze_Record_Representation_Clause): Suppress junk warning for
        missing component clause.
        missing component clause.
        (Analyze_Attribute_Definition_Clause, case Address): Apply the special
        (Analyze_Attribute_Definition_Clause, case Address): Apply the special
        tests for controlled type overlay to composites with controlled
        tests for controlled type overlay to composites with controlled
        components.
        components.
        (Analyze_Record_Representation_Clause): Add reference for component name
        (Analyze_Record_Representation_Clause): Add reference for component name
2007-09-26  Javier Miranda  
2007-09-26  Javier Miranda  
            Gary Dismukes  
            Gary Dismukes  
        * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
        * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
        for thunks associated with interface types.
        for thunks associated with interface types.
        * einfo.ads: Improve documentatation of Is_Internal
        * einfo.ads: Improve documentatation of Is_Internal
        (Is_Thunk): New attribute applicable to subprograms. True for thunks
        (Is_Thunk): New attribute applicable to subprograms. True for thunks
        associated with interface types.
        associated with interface types.
        Extensive comment fixes regarding flags that appear in all entities. The
        Extensive comment fixes regarding flags that appear in all entities. The
        documentation is now consistent for all such flags (there were a number
        documentation is now consistent for all such flags (there were a number
        of errors in the documentation in this regard).
        of errors in the documentation in this regard).
        * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
        * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
        * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
        * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
        of these procedures are passed a function call that already has
        of these procedures are passed a function call that already has
        build-in-place actuals (testing new flag
        build-in-place actuals (testing new flag
        Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
        Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
        the case where processing continues.
        the case where processing continues.
        (Expand_Call): If the call is generated from a thunk body then we
        (Expand_Call): If the call is generated from a thunk body then we
        propagate the extra actuals associated with the accessibility
        propagate the extra actuals associated with the accessibility
        level of the access type actuals.
        level of the access type actuals.
        * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
        * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
        of each extra formal of a protected operation to reference the
        of each extra formal of a protected operation to reference the
        corresponding extra formal of the subprogram denoted by the
        corresponding extra formal of the subprogram denoted by the
        operation's Protected_Body_Subprogram.
        operation's Protected_Body_Subprogram.
        * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
        * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
        N_Function_Call nodes.
        N_Function_Call nodes.
2007-09-26  Robert Dewar  
2007-09-26  Robert Dewar  
        * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
        * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
        * debug.adb: Add d.s flag.
        * debug.adb: Add d.s flag.
2007-09-26  Gary Dismukes  
2007-09-26  Gary Dismukes  
        * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
        * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
        debug variable so that it won't be initialized when pragma
        debug variable so that it won't be initialized when pragma
        Initialize_Scalars is in effect.
        Initialize_Scalars is in effect.
2007-09-26  Gary Dismukes  
2007-09-26  Gary Dismukes  
        * freeze.adb (Freeze_Entity): Remove check for preelaborable
        * freeze.adb (Freeze_Entity): Remove check for preelaborable
        initialization of a full view. This is moved to
        initialization of a full view. This is moved to
        Analyze_Package_Specification.
        Analyze_Package_Specification.
        * sem_ch7.adb (Analyze_Package_Specification): Add check for
        * sem_ch7.adb (Analyze_Package_Specification): Add check for
        preelaborable initialization of a full view in entity loop.
        preelaborable initialization of a full view in entity loop.
        (Uninstall_Declarations): If entity is a use-visible compilation unit,
        (Uninstall_Declarations): If entity is a use-visible compilation unit,
        its child units are use-visible only if they are visible child units.
        its child units are use-visible only if they are visible child units.
        * sem_util.adb (Is_Preelaborable_Expression): New function to determine
        * sem_util.adb (Is_Preelaborable_Expression): New function to determine
        whether an expression can be used within a type declaration that
        whether an expression can be used within a type declaration that
        requires preelaborable init.
        requires preelaborable init.
        (Check_Components): Replace inline code that does partial checking for
        (Check_Components): Replace inline code that does partial checking for
        preelaborable default expressions with call to
        preelaborable default expressions with call to
        Is_Preelaborable_Expression.
        Is_Preelaborable_Expression.
        (Has_Preelaborable_Initialization): In the case of a generic actual
        (Has_Preelaborable_Initialization): In the case of a generic actual
        subtype, (that is, Is_Generic_Actual is True), return the result of
        subtype, (that is, Is_Generic_Actual is True), return the result of
        applying Has_Preelaborable_Initialization to the generic actual's base
        applying Has_Preelaborable_Initialization to the generic actual's base
        type.
        type.
2007-09-26  Hristian Kirtchev  
2007-09-26  Hristian Kirtchev  
        * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
        * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
        call to Jan_1_Day _Of_Week to optimize its performance.
        call to Jan_1_Day _Of_Week to optimize its performance.
        (Is_Leap): Move the routine to the scope of Week_In_Year.
        (Is_Leap): Move the routine to the scope of Week_In_Year.
        (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
        (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
        weekday on which January 1 falls of Year - 1 and Year + 1. This function
        weekday on which January 1 falls of Year - 1 and Year + 1. This function
        avoids calling Time_Of and Split, thus making it more efficent.
        avoids calling Time_Of and Split, thus making it more efficent.
        (Week_In_Year): Reimplemented in oder to follow ISO 8601.
        (Week_In_Year): Reimplemented in oder to follow ISO 8601.
        * g-calend.ads (Week_In_Year): Change comment to reflect new
        * g-calend.ads (Week_In_Year): Change comment to reflect new
        implementation.
        implementation.
2007-09-26  Emmanuel Briot  
2007-09-26  Emmanuel Briot  
        * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
        * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
        Command_Line): New types
        Command_Line): New types
        (Define_Alias, Define_Prefix, Free): New subprograms. These provide
        (Define_Alias, Define_Prefix, Free): New subprograms. These provide
        support for defining how switches can be grouped on a command line (as
        support for defining how switches can be grouped on a command line (as
        is the case for -gnatw... for GNAT), and how simple switches can be
        is the case for -gnatw... for GNAT), and how simple switches can be
        used as aliases for more complex switches (-gnatwa is same as
        used as aliases for more complex switches (-gnatwa is same as
        -gnatwbcef...)
        -gnatwbcef...)
        (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
        (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
        (Start, Current_*): New subprograms
        (Start, Current_*): New subprograms
        Added support for parsing an array of strings in addition to the real
        Added support for parsing an array of strings in addition to the real
        command line.
        command line.
        (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
        (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
         be moved from the body to the private part of the spec.
         be moved from the body to the private part of the spec.
        (*): All subprograms now have an extra parameter with default value to
        (*): All subprograms now have an extra parameter with default value to
        specify which parser should be used. For backward compatibility, it
        specify which parser should be used. For backward compatibility, it
        defaults to parsing the command line of the application. They were also
        defaults to parsing the command line of the application. They were also
        modified to properly handle cases where each of the argument does not
        modified to properly handle cases where each of the argument does not
        start at index 1 (which is always true for Ada.Command_Line, but not
        start at index 1 (which is always true for Ada.Command_Line, but not
        when processing any Argument_List).
        when processing any Argument_List).
        (Free): New subprogram
        (Free): New subprogram
        (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
        (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
        Argument): New subprograms
        Argument): New subprograms
        (Switch_Parameter_Type): New enum, which clarifies the code. The extra
        (Switch_Parameter_Type): New enum, which clarifies the code. The extra
        special characters like ':', '=',... are now handled in a single place,
        special characters like ':', '=',... are now handled in a single place,
        which makes the code more extensible eventually.
        which makes the code more extensible eventually.
        (Getopt, Full_Switch): When the switch was returned as part of the
        (Getopt, Full_Switch): When the switch was returned as part of the
        special character '*', make sure it is prepended by the switch character
        special character '*', make sure it is prepended by the switch character
        ('-' in general), so that the application knows whether "foo" or "-foo"
        ('-' in general), so that the application knows whether "foo" or "-foo"
        was specified on the command line.
        was specified on the command line.
2007-09-26  Florian Villoing  
2007-09-26  Florian Villoing  
        * g-dirope.adb (Remove_Dir): In case we are removing directories
        * g-dirope.adb (Remove_Dir): In case we are removing directories
        recursively, make sure that if an exception is raised during the
        recursively, make sure that if an exception is raised during the
        processing, the current working directory is reset to its initial
        processing, the current working directory is reset to its initial
        value before propagating the exception.
        value before propagating the exception.
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * gnatbind.adb: If there are several ALI files specified and there is
        * gnatbind.adb: If there are several ALI files specified and there is
        a main program to bind, the first ALI is expected to contain the main
        a main program to bind, the first ALI is expected to contain the main
        subprogram and the names of the binder generated files will be derived
        subprogram and the names of the binder generated files will be derived
        from the first ALI file name.
        from the first ALI file name.
        (Gnatbind): Fix insertion character in invocation of Error_Msg
        (Gnatbind): Fix insertion character in invocation of Error_Msg
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * gnatcmd.adb (Check_Files): Do not include sources that have been
        * gnatcmd.adb (Check_Files): Do not include sources that have been
        removed by attributes Exclude_Source_Files or Locally_Removed_Files.
        removed by attributes Exclude_Source_Files or Locally_Removed_Files.
2007-09-26  Ed Schonberg  
2007-09-26  Ed Schonberg  
        * lib-xref.ads, lib-xref.adb: The entry for array types now carries
        * lib-xref.ads, lib-xref.adb: The entry for array types now carries
        information about each of its index types, following the type
        information about each of its index types, following the type
        reference for its component type.
        reference for its component type.
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * make.adb: (Kill): New procedure (__gnat_kill imported)
        * make.adb: (Kill): New procedure (__gnat_kill imported)
        (Running_Compile, Outstanding_Compiles): Global variables that
        (Running_Compile, Outstanding_Compiles): Global variables that
        were previously local to procedure Compile_Sources.
        were previously local to procedure Compile_Sources.
        (Sigint_Intercepted): Send signal SIGINT to all outstanding
        (Sigint_Intercepted): Send signal SIGINT to all outstanding
        compilation processes.
        compilation processes.
        (Gnatmake): If project files are used, create the mapping of all the
        (Gnatmake): If project files are used, create the mapping of all the
        sources, so that the correct paths will be found.
        sources, so that the correct paths will be found.
        * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
        * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
        * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
        * prj.ads, prj.adb (Default_Language): Remove function, no longer used
        * prj.ads, prj.adb (Default_Language): Remove function, no longer used
        Replace components Compiler_Min_Options and Binder_Min_Options with
        Replace components Compiler_Min_Options and Binder_Min_Options with
        Compiler_Required_Switches and Binder_Required_Switches in record
        Compiler_Required_Switches and Binder_Required_Switches in record
        Language_Config.
        Language_Config.
        Remove components Default_Language and Config in Project_Tree_Data,
        Remove components Default_Language and Config in Project_Tree_Data,
        no longer used.
        no longer used.
        * prj-attr.adb: New attributes Required_Switches () in
        * prj-attr.adb: New attributes Required_Switches () in
        packages Compiler and Binder.
        packages Compiler and Binder.
        * prj-nmsc.adb: Major rewrite of the processing of configuration
        * prj-nmsc.adb: Major rewrite of the processing of configuration
        attributes for gprbuild. No impact on GNAT tools.
        attributes for gprbuild. No impact on GNAT tools.
        * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
        * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
        process configuration attributes: this is done in Prj.Nmsc.Check.
        process configuration attributes: this is done in Prj.Nmsc.Check.
        (Recursive_Process): Make a full copy of packages inherited from project
        (Recursive_Process): Make a full copy of packages inherited from project
        being extended, instead of a shallow copy.
        being extended, instead of a shallow copy.
        (Process_Project_Tree_Phase_1): New procedure
        (Process_Project_Tree_Phase_1): New procedure
        (Process_Project_Tree_Phase_1): New procedure
        (Process_Project_Tree_Phase_1): New procedure
        (Process): Implementation now uses the two new procedures
        (Process): Implementation now uses the two new procedures
        * prj-util.adb (Executable_Of): Get the suffix and the default suffix
        * prj-util.adb (Executable_Of): Get the suffix and the default suffix
        from the project config, not the tree config that no longer exists.
        from the project config, not the tree config that no longer exists.
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * Make-lang.in: Update dependencies..
        * Make-lang.in: Update dependencies..
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * osint.adb, osint.ads: Minor reformatting
        * osint.adb, osint.ads: Minor reformatting
        * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
        * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
2007-09-26  Gary Dismukes  
2007-09-26  Gary Dismukes  
        * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
        * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
        message to cite use of <> in aggregate component associations rather
        message to cite use of <> in aggregate component associations rather
        than wrongly indicating use of limited aggregates.
        than wrongly indicating use of limited aggregates.
2007-09-26  Robert Dewar  
2007-09-26  Robert Dewar  
        * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
        * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
        Address_Taken.
        Address_Taken.
2007-09-26  Ed Schonberg  
2007-09-26  Ed Schonberg  
        * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
        * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
        ancestor of the derived type, the operations are inherited from the
        ancestor of the derived type, the operations are inherited from the
        primary dispatch table of the parent.
        primary dispatch table of the parent.
        (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
        (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
        when the context is an explicit type conversion.
        when the context is an explicit type conversion.
2007-09-26  Ed Schonberg  
2007-09-26  Ed Schonberg  
        * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
        * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
        rule for qualified expressions properly, to detect improper conversions
        rule for qualified expressions properly, to detect improper conversions
        and resolve some cases of overloading.
        and resolve some cases of overloading.
2007-09-26  Ed Schonberg  
2007-09-26  Ed Schonberg  
        * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
        * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
        proper kind of reference to the primitive operation, for better source
        proper kind of reference to the primitive operation, for better source
        navigation.
        navigation.
        (Valid_Conversion): A tagged conversion is legal if both operands are
        (Valid_Conversion): A tagged conversion is legal if both operands are
        tagged.
        tagged.
2007-09-26  Robert Dewar  
2007-09-26  Robert Dewar  
        * sem_warn.adb (Check_References): Catch more cases of unreferenced
        * sem_warn.adb (Check_References): Catch more cases of unreferenced
        packages.
        packages.
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * snames.adb, snames.ads: Change Include_Option to Include_Switches
        * snames.adb, snames.ads: Change Include_Option to Include_Switches
2007-09-26  Robert Dewar  
2007-09-26  Robert Dewar  
        * s-wchstw.adb: provide messages for run time unit exceptions
        * s-wchstw.adb: provide messages for run time unit exceptions
        * a-witeio.adb: Minor reformatting
        * a-witeio.adb: Minor reformatting
        * exp_ch13.adb: Minor reformatting
        * exp_ch13.adb: Minor reformatting
2007-09-26  Sergey Rybin  
2007-09-26  Sergey Rybin  
        * vms_data.ads: Revise gnatmetric qualifiers.
        * vms_data.ads: Revise gnatmetric qualifiers.
        Add qualified for the new gnatbind option '-y'
        Add qualified for the new gnatbind option '-y'
        * gnat_ugn.texi: Revise the gnatmetric section.
        * gnat_ugn.texi: Revise the gnatmetric section.
        Add entry for new gnatbind option '-y'.
        Add entry for new gnatbind option '-y'.
        * gnat_rm.texi: Minor spelling correction.
        * gnat_rm.texi: Minor spelling correction.
        Document restriction on overlaying controlled types
        Document restriction on overlaying controlled types
2007-09-26  Vincent Celier  
2007-09-26  Vincent Celier  
        * makegpr.adb (Link_Executables): Do not fail when the root project has
        * makegpr.adb (Link_Executables): Do not fail when the root project has
        no sources, but is an extending project.
        no sources, but is an extending project.
2007-09-25  Eric Botcazou  
2007-09-25  Eric Botcazou  
        * trans.c: Fix misplaced #define.
        * trans.c: Fix misplaced #define.
2007-09-22  Eric Botcazou  
2007-09-22  Eric Botcazou  
        * utils2.c (build_unary_op)  [INDIRECT_REF]: Propagate
        * utils2.c (build_unary_op)  [INDIRECT_REF]: Propagate
        the TYPE_REF_CAN_ALIAS_ALL flag to the result.
        the TYPE_REF_CAN_ALIAS_ALL flag to the result.
2007-09-21  Olivier Hainque  
2007-09-21  Olivier Hainque  
        * utils.c (type_for_nonaliased_component_p): Return false for
        * utils.c (type_for_nonaliased_component_p): Return false for
        all AGGREGATE_TYPEs.
        all AGGREGATE_TYPEs.
2007-09-17  Eric Botcazou  
2007-09-17  Eric Botcazou  
        * decl.c (gnat_to_gnu_entity) : Make again the type of an
        * decl.c (gnat_to_gnu_entity) : Make again the type of an
        object covered by 13.3(19) volatile.
        object covered by 13.3(19) volatile.
2007-09-12  Eric Botcazou  
2007-09-12  Eric Botcazou  
        PR ada/26797
        PR ada/26797
        PR ada/32407
        PR ada/32407
        * utils.c (unchecked_convert): Use a subtype as the intermediate type
        * utils.c (unchecked_convert): Use a subtype as the intermediate type
        in the special VIEW_CONVERT_EXPR case.
        in the special VIEW_CONVERT_EXPR case.
2007-09-12  Robert Dewar  
2007-09-12  Robert Dewar  
        * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
        * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
        * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
        * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
        lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
        lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
        s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
        s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
        s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
        s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
        s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
        s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
        s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
        s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
        s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
        s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
        s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
        s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
        a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
        a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
        g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
        g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
        s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
        s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
        s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
        s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
        snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
        snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
        s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
        s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
        s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
        s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
        s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
        s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
        s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
        s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
        pragma Compiler_Unit and adds it to relevant library units.
        pragma Compiler_Unit and adds it to relevant library units.
2007-09-12  Ed Schonberg  
2007-09-12  Ed Schonberg  
        * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
        * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
        a box need not correspond to any component.
        a box need not correspond to any component.
2007-09-12  Robert Dewar  
2007-09-12  Robert Dewar  
        * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
        * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
        the tasking version of the Ada run time when foreign threads are
        the tasking version of the Ada run time when foreign threads are
        present and there are no explicit Ada tasks or tasking constructs.
        present and there are no explicit Ada tasks or tasking constructs.
        * gnat_rm.texi: Clarify documentation of GNAT.Threads.
        * gnat_rm.texi: Clarify documentation of GNAT.Threads.
2007-09-12  Hristian Kirtchev  
2007-09-12  Hristian Kirtchev  
        * bindusg.adb (Display): Correct comment for switch -X. Add a line for
        * bindusg.adb (Display): Correct comment for switch -X. Add a line for
        the usage of switch -y.
        the usage of switch -y.
        * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
        * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
        when switch -y is present.
        when switch -y is present.
        * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
        * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
        leap seconds in Ada.Calendar and its children.
        leap seconds in Ada.Calendar and its children.
2007-09-12  Jose Ruiz  
2007-09-12  Jose Ruiz  
        * a-extiti.ads (Timer): The discriminant is a "not null access
        * a-extiti.ads (Timer): The discriminant is a "not null access
        constant" in the Reference Manual.
        constant" in the Reference Manual.
        (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
        (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
2007-09-12  Robert Dewar  
2007-09-12  Robert Dewar  
        * a-swuwha.adb: Remove junk RM header
        * a-swuwha.adb: Remove junk RM header
2007-09-12  Vincent Celier  
2007-09-12  Vincent Celier  
        * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
        * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
        indicator
        indicator
        * g-bytswa.ads: Minor reformatting
        * g-bytswa.ads: Minor reformatting
2007-09-12  Thomas Quinot  
2007-09-12  Thomas Quinot  
        * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
        * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
        Add new constant Thread_Blocking_IO, always True by default, set False
        Add new constant Thread_Blocking_IO, always True by default, set False
        on a per-runtime basis.
        on a per-runtime basis.
        (Need_Netdb_Buffer): New constant.
        (Need_Netdb_Buffer): New constant.
2007-09-12  Arnaud Charlet  
2007-09-12  Arnaud Charlet  
        * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
        * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
        Added renames for corresponding functions in System.Partition_Interface.
        Added renames for corresponding functions in System.Partition_Interface.
2007-09-12  Doug Rupp  
2007-09-12  Doug Rupp  
        * Makefile.in: Remove VMS specific System.CRTL packages which are no
        * Makefile.in: Remove VMS specific System.CRTL packages which are no
        longer needed.
        longer needed.
        * s-crtl-vms64.ads: Removed.
        * s-crtl-vms64.ads: Removed.
2007-09-12  Olivier Hainque  
2007-09-12  Olivier Hainque  
        * decl.c (gnat_to_gnu_entity) : For a subtype
        * decl.c (gnat_to_gnu_entity) : For a subtype
        with discriminant constraints, generalize the code for BIT_FIELDs
        with discriminant constraints, generalize the code for BIT_FIELDs
        to PACKED fields of constant size and propagate DECL_PACKED.
        to PACKED fields of constant size and propagate DECL_PACKED.
2007-09-11  Eric Botcazou  
2007-09-11  Eric Botcazou  
        * decl.c (array_type_has_nonaliased_component): New predicate.
        * decl.c (array_type_has_nonaliased_component): New predicate.
        (gnat_to_gnu_field) : Invoke the above predicate to
        (gnat_to_gnu_field) : Invoke the above predicate to
        set the TYPE_NONALIASED_COMPONENT flag on the type.
        set the TYPE_NONALIASED_COMPONENT flag on the type.
        : Likewise.
        : Likewise.
        * gigi.h (type_for_nonaliased_component_p): Declare.
        * gigi.h (type_for_nonaliased_component_p): Declare.
        * utils.c (type_for_nonaliased_component_p): New predicate.
        * utils.c (type_for_nonaliased_component_p): New predicate.
        (create_field_decl): Invoke the above predicate to set the
        (create_field_decl): Invoke the above predicate to set the
        DECL_NONADDRESSABLE_P flag on the field.
        DECL_NONADDRESSABLE_P flag on the field.
2007-09-11  Javier Miranda  
2007-09-11  Javier Miranda  
        * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
        * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
        in library level record type entities if we are generating statically
        in library level record type entities if we are generating statically
        allocated dispatch tables.
        allocated dispatch tables.
        * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
        * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
        importing/exporting the _tag declaration by new code
        importing/exporting the _tag declaration by new code
        importing/exporting the dispatch table wrapper. This change allows us
        importing/exporting the dispatch table wrapper. This change allows us
        to statically allocate of the TSD.
        to statically allocate of the TSD.
        (Make_DT.Export_DT): New procedure.
        (Make_DT.Export_DT): New procedure.
        (Build_Static_DT): New function.
        (Build_Static_DT): New function.
        (Has_DT): New function.
        (Has_DT): New function.
        * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
        * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
        True_Constant and Current_Value. Required to statically
        True_Constant and Current_Value. Required to statically
        allocate the dispatch tables.
        allocate the dispatch tables.
        (Check_Allocator): Make function iterative instead of recursive.
        (Check_Allocator): Make function iterative instead of recursive.
        Also return inner allocator node, when present, so that we do not have
        Also return inner allocator node, when present, so that we do not have
        to look for that node again in the caller.
        to look for that node again in the caller.
2007-09-11  Jan Hubicka  
2007-09-11  Jan Hubicka  
        * misc.c (gnat_expand_body): Kill.
        * misc.c (gnat_expand_body): Kill.
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2007-09-10  Robert Dewar  
2007-09-10  Robert Dewar  
        * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
        * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
        mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
        mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
        mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
        mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
        mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
        mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
        ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
        ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
        bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
        bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
        bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
        bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
        butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
        butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
        comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
        comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
        elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
        elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
        err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
        err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
        exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
        exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
        exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
        exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
        exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
        exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
        exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
        exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
        exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
        exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
        exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
        exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
        exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
        exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
        exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
        exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
        exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
        exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
        exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
        exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
        exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
        exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
        fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
        fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
        get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
        get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
        gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
        gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
        gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
        gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
        gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
        gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
        gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
        gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
        gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
        gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
        gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
        gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
        inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
        inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
        lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
        lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
        lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
        lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
        make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
        make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
        mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
        mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
        mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
        mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
        mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
        mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
        mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
        mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
        osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
        osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
        osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
        osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
        par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
        par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
        par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
        par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
        par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
        par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
        par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
        par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
        par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
        par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
        prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
        prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
        prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
        prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
        prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
        prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
        prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
        prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
        prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
        prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
        prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
        prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
        prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
        prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
        rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
        rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
        scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
        scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
        sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
        sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
        sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
        sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
        sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
        sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
        sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
        sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
        sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
        sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
        sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
        sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
        sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
        sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
        sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
        sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
        sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
        sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
        sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
        sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
        sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
        sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
        sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
        sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
        sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
        sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
        sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
        sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
        stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
        stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
        styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
        styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
        switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
        switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
        switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
        switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
        tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
        tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
        treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
        treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
        types.h, uintp.h, urealp.h, usage.adb, usage.ads,
        types.h, uintp.h, urealp.h, usage.adb, usage.ads,
        validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
        validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
        xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
        xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
        xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
        xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
        gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
        gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
        mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
        mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
        symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
        symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
        mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
        mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
        mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
        mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
2007-09-10  Emmanuel Briot  
2007-09-10  Emmanuel Briot  
        * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
        * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
        classes ("[]").
        classes ("[]").
2007-09-10  Vasiliy Fofanov  
2007-09-10  Vasiliy Fofanov  
        * adaint.c (__gnat_translate_vms): new function.
        * adaint.c (__gnat_translate_vms): new function.
2007-09-10  Gary Dismukes  
2007-09-10  Gary Dismukes  
            Thomas Quinot  
            Thomas Quinot  
        * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
        * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
        create an abstract subprogram in the case of 'Input. For 'Output we now
        create an abstract subprogram in the case of 'Input. For 'Output we now
        create a real spec/body when the type is abstract, since it can
        create a real spec/body when the type is abstract, since it can
        potentially be called.
        potentially be called.
        (Predefined_Primitive_Bodies): Now allow the creation of a predefined
        (Predefined_Primitive_Bodies): Now allow the creation of a predefined
        body for 'Output when the type is abstract (only the creation of the
        body for 'Output when the type is abstract (only the creation of the
        body for 'Input is excluded when the type is abstract).
        body for 'Input is excluded when the type is abstract).
        (Stream_Operation_OK): Add an additional condition in the return
        (Stream_Operation_OK): Add an additional condition in the return
        statement, so that False will be returned for TTS_Stream_Input if the
        statement, so that False will be returned for TTS_Stream_Input if the
        associated tagged type is an abstract extension. Add comments for
        associated tagged type is an abstract extension. Add comments for
        return statement.
        return statement.
        (Expand_N_Object_Declaration): For the case of a shared passive
        (Expand_N_Object_Declaration): For the case of a shared passive
        variable, insert init proc call only after the shared variable
        variable, insert init proc call only after the shared variable
        procedures have been processed, because the IP call needs to undergo
        procedures have been processed, because the IP call needs to undergo
        shared passive variable reference expansion, which requires these
        shared passive variable reference expansion, which requires these
        procedures to be available (and elaborated).
        procedures to be available (and elaborated).
2007-09-10  Vincent Celier  
2007-09-10  Vincent Celier  
        * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
        * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
        parameter Runtime_Project.
        parameter Runtime_Project.
2007-09-10  Ed Schonberg  
2007-09-10  Ed Schonberg  
        * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
        * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
        given a box association, the type of the component is discriminated,
        given a box association, the type of the component is discriminated,
        and the value of the discriminant is the discriminant of the enclosing
        and the value of the discriminant is the discriminant of the enclosing
        type, retrieve its value from the aggregate itself, where it must have
        type, retrieve its value from the aggregate itself, where it must have
        been supplied.
        been supplied.
        * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
        * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
        to remove other spurious ambiguities on arithmetic operations involving
        to remove other spurious ambiguities on arithmetic operations involving
        literals and addresses, on systems where Address is a visible integer
        literals and addresses, on systems where Address is a visible integer
        type, when the operator is called in functional notation.
        type, when the operator is called in functional notation.
        (Try_Primitive_Operation): Within an instance, a call in prefixed form
        (Try_Primitive_Operation): Within an instance, a call in prefixed form
        is legal when the types match, even if the operation is currently
        is legal when the types match, even if the operation is currently
        hidden.
        hidden.
2007-09-10  Ed Schonberg  
2007-09-10  Ed Schonberg  
        * sem_ch12.adb (Build_Local_Package): A formal package with no
        * sem_ch12.adb (Build_Local_Package): A formal package with no
        associations is legal if all formals have defaults. It is not
        associations is legal if all formals have defaults. It is not
        equivalent to a formal declared with a box.
        equivalent to a formal declared with a box.
2007-09-10  Sergey Rybin  
2007-09-10  Sergey Rybin  
        * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
        * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
2007-09-10  Sergey Rybin  
2007-09-10  Sergey Rybin  
        * gnat_ugn.texi: Add description of the new '-lratio' option
        * gnat_ugn.texi: Add description of the new '-lratio' option
        Update 7.3.1 section about availability of the feature.
        Update 7.3.1 section about availability of the feature.
2007-09-10  Thomas Quinot  
2007-09-10  Thomas Quinot  
        * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
        * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
        inserted node.
        inserted node.
2007-09-10  Olivier Hainque  
2007-09-10  Olivier Hainque  
        * Makefile.in: (mips-irix section): Activate build of libgmem.
        * Makefile.in: (mips-irix section): Activate build of libgmem.
2007-09-10  Eric Botcazou  
2007-09-10  Eric Botcazou  
        * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
        * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
        x87 registers.
        x87 registers.
2007-09-10  Eric Botcazou  
2007-09-10  Eric Botcazou  
        * decl.c (gnat_to_gnu_entity) : Deal with variable built for
        * decl.c (gnat_to_gnu_entity) : Deal with variable built for
        a debug renaming declaration specially.
        a debug renaming declaration specially.
2007-09-08  Eric Botcazou  
2007-09-08  Eric Botcazou  
        * decl.c (gnat_to_gnu_entity) : Simplify the condition under
        * decl.c (gnat_to_gnu_entity) : Simplify the condition under
        which a constant renaming is treated as a normal object declaration.
        which a constant renaming is treated as a normal object declaration.
        * trans.c (lvalue_required_p) : New case, extracted from
        * trans.c (lvalue_required_p) : New case, extracted from
        the N_Indexed_Component case.
        the N_Indexed_Component case.
        : Fall through to above case.
        : Fall through to above case.
        : Return true for all composite types.
        : Return true for all composite types.
2007-09-08  Eric Botcazou  
2007-09-08  Eric Botcazou  
        * decl.c (make_packable_type): If the new type has been given BLKmode,
        * decl.c (make_packable_type): If the new type has been given BLKmode,
        try again to get an integral mode for it.
        try again to get an integral mode for it.
2007-09-07  Eric Botcazou  
2007-09-07  Eric Botcazou  
        Re-apply accidentally reverted change:
        Re-apply accidentally reverted change:
        2007-02-07  Andreas Krebbel  
        2007-02-07  Andreas Krebbel  
        * raise-gcc.c (get_region_description_for, get_call_site_action_for,
        * raise-gcc.c (get_region_description_for, get_call_site_action_for,
        get_action_description_for): Replace _Unwind_Word with _uleb128_t
        get_action_description_for): Replace _Unwind_Word with _uleb128_t
        and _Unwind_SWord with _sleb128_t.
        and _Unwind_SWord with _sleb128_t.
2007-09-06  Eric Botcazou  
2007-09-06  Eric Botcazou  
        * trans.c (convert_with_check): Update call to real_2expN.
        * trans.c (convert_with_check): Update call to real_2expN.
2007-09-05  Sandra Loosemore  
2007-09-05  Sandra Loosemore  
        * trans.c (Compilation_unit_to_gnu): Use set_cfun.
        * trans.c (Compilation_unit_to_gnu): Use set_cfun.
        * utils.c (end_subprog_body): Likewise.
        * utils.c (end_subprog_body): Likewise.
2007-09-03  Nick Clifton  
2007-09-03  Nick Clifton  
        * Make-lang.in: Change copyright header to refer to version 3 of
        * Make-lang.in: Change copyright header to refer to version 3 of
        the GNU General Public License and to point readers at the
        the GNU General Public License and to point readers at the
        COPYING3 file and the FSF's license web page.
        COPYING3 file and the FSF's license web page.
        * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
        * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
        Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
        Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
        namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
        namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
        treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
        treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
        Likewise.
        Likewise.
2007-08-31  Vincent Celier  
2007-08-31  Vincent Celier  
        PR ada/4720
        PR ada/4720
        * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
        * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
        gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
        gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
        (Check_Version_And_Help): New procedure in package Switch to process
        (Check_Version_And_Help): New procedure in package Switch to process
        switches --version and --help.
        switches --version and --help.
        Use Check_Version_And_Help in GNAT tools
        Use Check_Version_And_Help in GNAT tools
        * make.adb:  Ditto.
        * make.adb:  Ditto.
        (Compile_Sources): Make sure that sources that are "excluded" are not
        (Compile_Sources): Make sure that sources that are "excluded" are not
        compiled.
        compiled.
        (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
        (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
        project file is used.
        project file is used.
        (Version_Switch): Remove, moved to Switch
        (Version_Switch): Remove, moved to Switch
        (Help_Switch): Remove, moved to Switch
        (Help_Switch): Remove, moved to Switch
        (Display_Version): Remove, moved to Switch
        (Display_Version): Remove, moved to Switch
        * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
        * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
        package Switch to process switches --version and --help.
        package Switch to process switches --version and --help.
        (Display_Version): New procedure
        (Display_Version): New procedure
        * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
        * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
2007-08-31  Javier Miranda  
2007-08-31  Javier Miranda  
        * a-tags.adb (Internal_Tag): Protect the run-time against wrong
        * a-tags.adb (Internal_Tag): Protect the run-time against wrong
        internal tags.
        internal tags.
2007-08-31  Hristian Kirtchev  
2007-08-31  Hristian Kirtchev  
        * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
        * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
        (Mark_Non_Null): If the node for which we just generated an access check
        (Mark_Non_Null): If the node for which we just generated an access check
        is a reference to an *in* parameter and the reference appears in the
        is a reference to an *in* parameter and the reference appears in the
        declarative part of a subprogram body, mark the node as known non null.
        declarative part of a subprogram body, mark the node as known non null.
2007-08-31  Hristian Kirtchev  
2007-08-31  Hristian Kirtchev  
        * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
        * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
        structure of E_Exception to reflect the new flag.
        structure of E_Exception to reflect the new flag.
        (Is_Raised, Set_Is_Raised): New inlined routines.
        (Is_Raised, Set_Is_Raised): New inlined routines.
        Update the usage of available flag to reflect the addition of Is_Raised.
        Update the usage of available flag to reflect the addition of Is_Raised.
        (Is_Raised, Set_Is_Raised): Bodies of new routines.
        (Is_Raised, Set_Is_Raised): Bodies of new routines.
        (Write_Entity_Flags): Write the status of flag Is_Raised.
        (Write_Entity_Flags): Write the status of flag Is_Raised.
        (Is_Descendent_Of_Address): New entity flag, to simplify handling of
        (Is_Descendent_Of_Address): New entity flag, to simplify handling of
        spurious ambiguities when integer literals appear in the context of an
        spurious ambiguities when integer literals appear in the context of an
        address type that is a visible integer type.
        address type that is a visible integer type.
        * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
        * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
        exceptions never being raised.
        exceptions never being raised.
        (Analyze_Raise_Statement): When analyzing an exception, mark it as being
        (Analyze_Raise_Statement): When analyzing an exception, mark it as being
        explicitly raised.
        explicitly raised.
2007-08-31  Javier Miranda  
2007-08-31  Javier Miranda  
        * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
        * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
        statement when compiling under restriction No_Exceptions_Proparation.
        statement when compiling under restriction No_Exceptions_Proparation.
2007-08-31  Ed Schonberg  
2007-08-31  Ed Schonberg  
        * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
        * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
        initialization aggregate for the type, generate itype references for
        initialization aggregate for the type, generate itype references for
        thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
        thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
2007-08-31  Gary Dismukes  
2007-08-31  Gary Dismukes  
        * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
        * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
        library-level package renaming, pass the declaration associated with
        library-level package renaming, pass the declaration associated with
        the renaming's special debug variable to Qualify_Entity_Names to ensure
        the renaming's special debug variable to Qualify_Entity_Names to ensure
        that its encoded name is properly qualified.
        that its encoded name is properly qualified.
        * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
        * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
        occurring in the list of entities to qualify, and do not attempt to
        occurring in the list of entities to qualify, and do not attempt to
        traverse an entity list in that case. Variables associated with
        traverse an entity list in that case. Variables associated with
`       library-level package renamings can now occur in the table.
`       library-level package renamings can now occur in the table.
        * exp_dbug.ads: Revise documentation of the encoding for renaming
        * exp_dbug.ads: Revise documentation of the encoding for renaming
        declarations.
        declarations.
2007-08-31  Richard Kenner  
2007-08-31  Richard Kenner  
        * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
        * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
        access type points to an unconstrained array.
        access type points to an unconstrained array.
2007-08-31  Hristian Kirtchev  
2007-08-31  Hristian Kirtchev  
        * restrict.adb, namet.adb, par-util.adb: Remove redundant type
        * restrict.adb, namet.adb, par-util.adb: Remove redundant type
        conversion.
        conversion.
        * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
        * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
        simple redundant qualifications. The check is performed whenever the
        simple redundant qualifications. The check is performed whenever the
        expression is a non-overloaded identifier.
        expression is a non-overloaded identifier.
        (Resolve_Type_Conversion): Enchance the redundant type conversion check
        (Resolve_Type_Conversion): Enchance the redundant type conversion check
        to include loop parameters.
        to include loop parameters.
        (Valid_Conversion): Avoid generation of spurious error message.
        (Valid_Conversion): Avoid generation of spurious error message.
2007-08-31  Bob Duff  
2007-08-31  Bob Duff  
        * par-ch4.adb (P_Simple_Expression): Fold long sequences of
        * par-ch4.adb (P_Simple_Expression): Fold long sequences of
        concatenations of string literals into a single literal, in order to
        concatenations of string literals into a single literal, in order to
        avoid very deep recursion in the front end, which was causing stack
        avoid very deep recursion in the front end, which was causing stack
        overflow.
        overflow.
        * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
        * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
        string, and the right operand is a string literal (the case of "" &
        string, and the right operand is a string literal (the case of "" &
        "..."), optimize by avoiding copying the right operand -- just use the
        "..."), optimize by avoiding copying the right operand -- just use the
        value of the right operand directly.
        value of the right operand directly.
        * stringt.adb (Store_String_Chars): Optimize by growing the
        * stringt.adb (Store_String_Chars): Optimize by growing the
        String_Chars table all at once, rather than appending characters one by
        String_Chars table all at once, rather than appending characters one by
        one.
        one.
        (Write_String_Table_Entry): If the string to be printed is very long,
        (Write_String_Table_Entry): If the string to be printed is very long,
        just print the first few characters, followed by the length. Otherwise,
        just print the first few characters, followed by the length. Otherwise,
        doing "pn(n)" in the debugger can take an extremely long time.
        doing "pn(n)" in the debugger can take an extremely long time.
        * sem_prag.adb (Process_Interface_Name): Replace loop doing
        * sem_prag.adb (Process_Interface_Name): Replace loop doing
        Store_String_Char with Store_String_Chars.
        Store_String_Char with Store_String_Chars.
2007-08-31  Vincent Celier  
2007-08-31  Vincent Celier  
        * prj-attr.adb: Add new attribute Excluded_Source_Files
        * prj-attr.adb: Add new attribute Excluded_Source_Files
        * prj-nmsc.adb: Use attribute Excluded_Source_Files before
        * prj-nmsc.adb: Use attribute Excluded_Source_Files before
        Locally_Removed_Files.
        Locally_Removed_Files.
        * snames.ads, snames.adb: New standard name Excluded_Source_Files
        * snames.ads, snames.adb: New standard name Excluded_Source_Files
2007-08-31  Ed Schonberg  
2007-08-31  Ed Schonberg  
        * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
        * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
        clauses of subunits, ignore limited_with_clauses that are illegal and
        clauses of subunits, ignore limited_with_clauses that are illegal and
        have not been fully analyzed.
        have not been fully analyzed.
2007-08-31  Ed Schonberg  
2007-08-31  Ed Schonberg  
        * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
        * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
        flag, for effiency. It is called when analyzing arithmetic operators
        flag, for effiency. It is called when analyzing arithmetic operators
        and also for actuals in calls that are universal_integers. The flag is
        and also for actuals in calls that are universal_integers. The flag is
        set for the predefined type address, and for any type or subtype
        set for the predefined type address, and for any type or subtype
        derived from it.
        derived from it.
        * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
        * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
        Universal_Integer, when the formal is a descendent of address and the
        Universal_Integer, when the formal is a descendent of address and the
        call appears in user code.
        call appears in user code.
        (Analyze_Selected_Component): if the prefix is a private extension, the
        (Analyze_Selected_Component): if the prefix is a private extension, the
        tag component is visible.
        tag component is visible.
        * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
        * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
        entity flag.
        entity flag.
2007-08-31  Robert Dewar  
2007-08-31  Robert Dewar  
        * s-fileio.adb (Open): Normalize file name to lower case in non-case
        * s-fileio.adb (Open): Normalize file name to lower case in non-case
        sensitive file name systems to avoid unexpected mismatch in Vista.
        sensitive file name systems to avoid unexpected mismatch in Vista.
2007-08-31  Vincent Celier  
2007-08-31  Vincent Celier  
        * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
        * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
2007-08-31  Vincent Celier  
2007-08-31  Vincent Celier  
        * symbols-vms.adb (Initialize): Read symbol files with continuation
        * symbols-vms.adb (Initialize): Read symbol files with continuation
        lines
        lines
        (Finalize): If symbol is long, split the line
        (Finalize): If symbol is long, split the line
2007-08-31  Vincent Celier  
2007-08-31  Vincent Celier  
        * fmap.ads: Minor comment updates
        * fmap.ads: Minor comment updates
2007-08-31  GNAT Script  
2007-08-31  GNAT Script  
        * Make-lang.in: Makefile automatically updated
        * Make-lang.in: Makefile automatically updated
2007-08-31  Bob Duff  
2007-08-31  Bob Duff  
        * sinfo.ads: Minor comment fix.
        * sinfo.ads: Minor comment fix.
2007-08-31  Thomas Quinot  
2007-08-31  Thomas Quinot  
        * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
        * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
        with implementation.
        with implementation.
        Documentation cleanup only.
        Documentation cleanup only.
2007-08-31  Sergey Rybin  
2007-08-31  Sergey Rybin  
        * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
        * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
        gnatpp '--separate-stmt-name' option.
        gnatpp '--separate-stmt-name' option.
        Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
        Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
        option.
        option.
        * gnat_ugn.texi: Add description for the new gnatpp
        * gnat_ugn.texi: Add description for the new gnatpp
        '--separate-stmt-name' and '--use-on-new-line' options.
        '--separate-stmt-name' and '--use-on-new-line' options.
2007-08-31  Ben Elliston  
2007-08-31  Ben Elliston  
        * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
        * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
        when compiling for powerpc64-*-linux.
        when compiling for powerpc64-*-linux.
        * system-linux-ppc64.ads: New file.
        * system-linux-ppc64.ads: New file.
2007-08-22  Krister Walfridsson  
2007-08-22  Krister Walfridsson  
        * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
        * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
        NetBSD.
        NetBSD.
2007-08-16  Kaveh R. Ghazi  
2007-08-16  Kaveh R. Ghazi  
        * misc.c (gnat_type_max_size): Constify.
        * misc.c (gnat_type_max_size): Constify.
2007-08-16  Gary Dismukes  
2007-08-16  Gary Dismukes  
        * cstand.adb (Create_Standard): Create an entity for a zero-sized type
        * cstand.adb (Create_Standard): Create an entity for a zero-sized type
        associated with Standard_Debug_Renaming_Type, to be used as the type of
        associated with Standard_Debug_Renaming_Type, to be used as the type of
        the special variables whose names provide debugger encodings for
        the special variables whose names provide debugger encodings for
        renaming declarations.
        renaming declarations.
        * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
        * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
        (Set_Debug_Renaming_Link): Change to set Node25.
        (Set_Debug_Renaming_Link): Change to set Node25.
        (Write_Field13_Name): Remove case for E_Enumeration_Literal.
        (Write_Field13_Name): Remove case for E_Enumeration_Literal.
        (Write_Field25_Name): Add case for E_Variable to output
        (Write_Field25_Name): Add case for E_Variable to output
        "Debug_Renaming_Link".
        "Debug_Renaming_Link".
        (Write_Field23_Name): Correct the output string for "Limited_View".
        (Write_Field23_Name): Correct the output string for "Limited_View".
        * exp_dbug.adb: Add with and use of Tbuild.
        * exp_dbug.adb: Add with and use of Tbuild.
        (Debug_Renaming_Declaration): Replace creation of an enumeration type
        (Debug_Renaming_Declaration): Replace creation of an enumeration type
        and literal with creation of a variable of type
        and literal with creation of a variable of type
        Standard_Debug_Renaming_Type whose name encodes both the renamed object
        Standard_Debug_Renaming_Type whose name encodes both the renamed object
        and the entity of the renaming declaration.
        and the entity of the renaming declaration.
        (Qualify_Entity_Name): Add the delayed qualification of the entity name
        (Qualify_Entity_Name): Add the delayed qualification of the entity name
        part of the name of a variable that has a Debug_Renaming_Link.
        part of the name of a variable that has a Debug_Renaming_Link.
        * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
        * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
        special type to be associated with variables that provide debugger
        special type to be associated with variables that provide debugger
        encodings for renaming declarations.
        encodings for renaming declarations.
2007-08-16  Gary Dismukes  
2007-08-16  Gary Dismukes  
            Ed Schonberg  
            Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
        * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
        ancestor part given by an aggregate to test for an unchecked conversion,
        ancestor part given by an aggregate to test for an unchecked conversion,
        since this can occur in some cases when the ancestor part is a function
        since this can occur in some cases when the ancestor part is a function
        call, and we don't want to fall into the recursive call to this
        call, and we don't want to fall into the recursive call to this
        procedure in that case.
        procedure in that case.
        * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
        * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
        stream attributes on limited types to account for user-specified
        stream attributes on limited types to account for user-specified
        attributes as well as whether Input (resp. Output) becomes available
        attributes as well as whether Input (resp. Output) becomes available
        due to Read (resp. Write) being available for the type. Change Boolean
        due to Read (resp. Write) being available for the type. Change Boolean
        variable to the more accurate name
        variable to the more accurate name
        Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
        Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
        double-"not" predicate at beginning of return statement to more
        double-"not" predicate at beginning of return statement to more
        understandable form.
        understandable form.
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
        * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
        return has an associated N_Handled_Sequence_Of_Statements, then wrap it
        return has an associated N_Handled_Sequence_Of_Statements, then wrap it
        in a block statement and use that as the first statement of the
        in a block statement and use that as the first statement of the
        expanded return rather than incorrectly using the handled sequence as
        expanded return rather than incorrectly using the handled sequence as
        the first statement.
        the first statement.
        * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
        * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
        operation, generate an explicit freeze node for it rather than
        operation, generate an explicit freeze node for it rather than
        generating extra formals, to ensure that gigi has the proper order of
        generating extra formals, to ensure that gigi has the proper order of
        elaboration for anonymous subtypes in the signature of the subprograms.
        elaboration for anonymous subtypes in the signature of the subprograms.
        (Build_In_Place_Formal): Move assertion to beginning of loop.
        (Build_In_Place_Formal): Move assertion to beginning of loop.
        (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
        (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
        applied to a function call (occurs for some cases of 'Input).
        applied to a function call (occurs for some cases of 'Input).
        (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
        (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
        applied to a function call (occurs for some cases of 'Input).
        applied to a function call (occurs for some cases of 'Input).
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
        * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
        2005, generate an extended return statement enclosing the result object
        2005, generate an extended return statement enclosing the result object
        and 'Read call.
        and 'Read call.
        * freeze.adb (Freeze_Record_Type): Extend the current management of
        * freeze.adb (Freeze_Record_Type): Extend the current management of
        components that are access type with an allocator as default value: add
        components that are access type with an allocator as default value: add
        missing support to the use of qualified expressions of the
        missing support to the use of qualified expressions of the
        allocator (which also cause freezing of the designated type!)
        allocator (which also cause freezing of the designated type!)
        (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
        (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
        dispatching operation, since extra formals may be needed by calls to
        dispatching operation, since extra formals may be needed by calls to
        build-in-place functions (such as stream 'Input).
        build-in-place functions (such as stream 'Input).
        * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
        * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
        formals for 'Constrained and accessibility level in the case of a
        formals for 'Constrained and accessibility level in the case of a
        predefined dispatching operation.
        predefined dispatching operation.
        * exp_util.adb (Insert_Actions): A protected body is a valid insertion
        * exp_util.adb (Insert_Actions): A protected body is a valid insertion
        point, no need to find the parent node.
        point, no need to find the parent node.
2007-08-16  Javier Miranda  
2007-08-16  Javier Miranda  
        * exp_attr.adb (Attribute_Priority): Add missing support for entries
        * exp_attr.adb (Attribute_Priority): Add missing support for entries
        and entry barriers.
        and entry barriers.
2007-08-16  Javier Miranda  
2007-08-16  Javier Miranda  
        * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
        * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
        is not really required and can introduce regression with the debugger.
        is not really required and can introduce regression with the debugger.
        The original problem is fixed with the patch written for checks.adb.
        The original problem is fixed with the patch written for checks.adb.
2007-08-16  Thomas Quinot  
2007-08-16  Thomas Quinot  
        * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
        * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
        Range_Check on Allocated_Table.
        Range_Check on Allocated_Table.
2007-08-16  Vincent Celier  
2007-08-16  Vincent Celier  
        * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
        * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
        Including_Non_Switch set to False.
        Including_Non_Switch set to False.
        (Gnatmake): For the compiler, call Test_If_Relative_Path with
        (Gnatmake): For the compiler, call Test_If_Relative_Path with
        Including_Non_Switch set to False.
        Including_Non_Switch set to False.
        * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
        * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
        parameter Including_Non_Switch, defaulted to True. When
        parameter Including_Non_Switch, defaulted to True. When
        Including_Non_Switch is False, options that are not switches and
        Including_Non_Switch is False, options that are not switches and
        appear as relative path are not converted to absolute paths.
        appear as relative path are not converted to absolute paths.
2007-08-16  Nicolas Roche  
2007-08-16  Nicolas Roche  
        * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
        * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
        makefiles
        makefiles
        * Make-lang.in: Update dependencies
        * Make-lang.in: Update dependencies
2007-08-16  Hristian Kirtchev  
2007-08-16  Hristian Kirtchev  
        * sem_ch10.adb (Has_With_Clause): If the name of the with clause
        * sem_ch10.adb (Has_With_Clause): If the name of the with clause
        currently inspected is a selected component, retrieve the entity of
        currently inspected is a selected component, retrieve the entity of
        its selector.
        its selector.
        (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
        (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
        from the immediate ancestor of Main_Unit_Entity.
        from the immediate ancestor of Main_Unit_Entity.
        (Install_Limited_Withed_Unit): Do not install the limited view of
        (Install_Limited_Withed_Unit): Do not install the limited view of
        package P if P is reachable through an ancestor chain from package C
        package P if P is reachable through an ancestor chain from package C
        and C also has a with clause for P in its body.
        and C also has a with clause for P in its body.
        (Has_Limited_With_Clause): New routine.
        (Has_Limited_With_Clause): New routine.
        (Has_With_Clause): New routine.
        (Has_With_Clause): New routine.
2007-08-16  Ed Schonberg  
2007-08-16  Ed Schonberg  
        * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
        * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
        generic for an enclosing instance is a global reference, even though
        generic for an enclosing instance is a global reference, even though
        its scope is the enclosing instance.
        its scope is the enclosing instance.
2007-08-16  Gary Dismukes  
2007-08-16  Gary Dismukes  
            Javier Miranda  
            Javier Miranda  
        * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
        * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
        initialize a limited object.
        initialize a limited object.
        (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
        (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
        13/2 and 14/2.
        13/2 and 14/2.
        Make sure Has_Complex_Representation is inherited by derived type.
        Make sure Has_Complex_Representation is inherited by derived type.
2007-08-16  Robert Dewar  
2007-08-16  Robert Dewar  
        * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
        * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
        exception case
        exception case
2007-08-16  Ed Schonberg  
2007-08-16  Ed Schonberg  
        * sem_disp.adb (Check_Dispatching_Operation): If the operation
        * sem_disp.adb (Check_Dispatching_Operation): If the operation
        implements an operation inherited from a progenitor interface, verify
        implements an operation inherited from a progenitor interface, verify
        that they are subtype-conformant.
        that they are subtype-conformant.
2007-08-16  Hristian Kirtchev  
2007-08-16  Hristian Kirtchev  
            Bob Duff  
            Bob Duff  
            Nicolas Setton  
            Nicolas Setton  
        * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
        * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
        (Resolve): Alphabetize local variables. Add new variable From_Lib. When
        (Resolve): Alphabetize local variables. Add new variable From_Lib. When
        the statement which is being resolved comes from a predefined library
        the statement which is being resolved comes from a predefined library
        unit, all non-predefined library interpretations are skipped.
        unit, all non-predefined library interpretations are skipped.
        (Resolve_Op_Concat): If string concatenation was folded in the parser,
        (Resolve_Op_Concat): If string concatenation was folded in the parser,
        but the "&" is user defined, give an error, because the folding would
        but the "&" is user defined, give an error, because the folding would
        be wrong.
        be wrong.
        * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
        * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
        the parser has folded a long sequence of concatenations of string
        the parser has folded a long sequence of concatenations of string
        literals.
        literals.
        * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
        * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
        and "JMP_BUF" variables as artificial.
        and "JMP_BUF" variables as artificial.
        (N_String_Literal): Do not use alloca for very long string literals. Use
        (N_String_Literal): Do not use alloca for very long string literals. Use
        xmalloc/free instead. Otherwise the stack might overflow.
        xmalloc/free instead. Otherwise the stack might overflow.
        * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
        * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
        compiler.
        compiler.
2007-08-16  Vincent Celier  
2007-08-16  Vincent Celier  
        * vms_conv.adb (Process_Argument): Ensure that project related options
        * vms_conv.adb (Process_Argument): Ensure that project related options
        are not put in the -cargs section when using GNAT COMPILE.
        are not put in the -cargs section when using GNAT COMPILE.
2007-08-16  Robert Dewar  
2007-08-16  Robert Dewar  
        * gnat_ugn.texi: Add note on preprocessing (output file not written)
        * gnat_ugn.texi: Add note on preprocessing (output file not written)
2007-08-16  Thomas Quinot  
2007-08-16  Thomas Quinot  
        * a-tags.adb: Minor reformatting.
        * a-tags.adb: Minor reformatting.
2007-08-16  Bob Duff  
2007-08-16  Bob Duff  
        * sem_type.ads, sem_ch4.adb: Minor reformatting.
        * sem_type.ads, sem_ch4.adb: Minor reformatting.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
        * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
        * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
        s-osinte-interix.ads, system-interix.ads: Removed.
        s-osinte-interix.ads, system-interix.ads: Removed.
2007-08-14  Hristian Kirtchev  
2007-08-14  Hristian Kirtchev  
        * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
        * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
        calls to Check_Within_Time_Bounds.
        calls to Check_Within_Time_Bounds.
        ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
        ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
        (Difference): Account for possible rounding of the resulting difference
        (Difference): Account for possible rounding of the resulting difference
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
        * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
        * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
        par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
        par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
        s-osinte-solaris.adb, s-osinte-solaris.ads,
        s-osinte-solaris.adb, s-osinte-solaris.ads,
        s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
        s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
        * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
        * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
        switch -gnatyS. Enable -gnatyS in GNAT style check mode
        switch -gnatyS. Enable -gnatyS in GNAT style check mode
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
        * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
        Suppress unmodified in-out parameter warning in some cases
        Suppress unmodified in-out parameter warning in some cases
        This patch is a also fairly significant change to the way suppressible
        This patch is a also fairly significant change to the way suppressible
        checks are handled.
        checks are handled.
        * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
        * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
        needed for access to concurrent record types generated by the expander.
        needed for access to concurrent record types generated by the expander.
        (Generate_Range_Check): When generating a temporary to capture the
        (Generate_Range_Check): When generating a temporary to capture the
        value of a conversion that requires a range check, set the type of the
        value of a conversion that requires a range check, set the type of the
        temporary before rewriting the node, so that the type is always
        temporary before rewriting the node, so that the type is always
        properly placed for back-end use.
        properly placed for back-end use.
        (Apply_Float_Conversion_Check): Handle case where the conversion is
        (Apply_Float_Conversion_Check): Handle case where the conversion is
        truncating.
        truncating.
        (Get_Discriminal): Code reformatting. Climb the scope stack looking
        (Get_Discriminal): Code reformatting. Climb the scope stack looking
        for a protected type in order to examine its discriminants.
        for a protected type in order to examine its discriminants.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Gary Dismukes  
            Gary Dismukes  
            Ed Schonberg  
            Ed Schonberg  
            Thomas Quinot  
            Thomas Quinot  
        * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
        * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
        a-stwisu.adb, a-strsup.adb: Fix warnings for range
        a-stwisu.adb, a-strsup.adb: Fix warnings for range
        tests optimized out.
        tests optimized out.
        * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
        * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
        (Get_Allocator_Final_List): For the case of an anonymous access type
        (Get_Allocator_Final_List): For the case of an anonymous access type
        that has a specified Associated_Final_Chain, do not go up to the
        that has a specified Associated_Final_Chain, do not go up to the
        enclosing scope.
        enclosing scope.
        (Expand_N_Type_Conversion): Test for the case of renamings of access
        (Expand_N_Type_Conversion): Test for the case of renamings of access
        parameters when deciding whether to apply a run-time accessibility
        parameters when deciding whether to apply a run-time accessibility
        check.
        check.
        (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
        (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
        aggregate code before allocator, and ahead of declaration for
        aggregate code before allocator, and ahead of declaration for
        temporary, to prevent access before elaboration when the allocator is
        temporary, to prevent access before elaboration when the allocator is
        an actual for an access parameter.
        an actual for an access parameter.
        (Expand_N_Type_Conversion): On an access type conversion involving an
        (Expand_N_Type_Conversion): On an access type conversion involving an
        access parameter, do not apply an accessibility check when the
        access parameter, do not apply an accessibility check when the
        operand's original node was an attribute other than 'Access. We now
        operand's original node was an attribute other than 'Access. We now
        create access conversions for the expansion of 'Unchecked_Access and
        create access conversions for the expansion of 'Unchecked_Access and
        'Unrestricted_Access in certain cases and clearly accessibility should
        'Unrestricted_Access in certain cases and clearly accessibility should
        not be checked for those.
        not be checked for those.
        * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
        * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
        includes a type conversion of a packed component that has been expanded,
        includes a type conversion of a packed component that has been expanded,
        recover the original expression for the object, and use this expression
        recover the original expression for the object, and use this expression
        in the post-call assignment statement, so that the assignment is made
        in the post-call assignment statement, so that the assignment is made
        to the object and not to a back-end temporary.
        to the object and not to a back-end temporary.
        (Freeze_Subprogram): In case of primitives of tagged types not defined
        (Freeze_Subprogram): In case of primitives of tagged types not defined
        at the library level force generation of code to register the primitive
        at the library level force generation of code to register the primitive
        in the dispatch table. In addition some code reorganization has been
        in the dispatch table. In addition some code reorganization has been
        done to leave the implementation clear.
        done to leave the implementation clear.
        (Expand_Call): When expanding an inherited implicit conversion,
        (Expand_Call): When expanding an inherited implicit conversion,
        preserve the type of the inherited function after the intrinsic
        preserve the type of the inherited function after the intrinsic
        operation has been expanded.
        operation has been expanded.
        * exp_ch2.ads, exp_ch2.adb
        * exp_ch2.ads, exp_ch2.adb
        (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
        (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
        of an entry formal appearing in an assignment statement does not assign
        of an entry formal appearing in an assignment statement does not assign
        to the formal.
        to the formal.
        (Expand_Current_Value): Instead of calling a routine to determine
        (Expand_Current_Value): Instead of calling a routine to determine
        whether the prefix of an attribute reference should be optimized or
        whether the prefix of an attribute reference should be optimized or
        not, prevent the optimization of such prefixes all together.
        not, prevent the optimization of such prefixes all together.
        * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
        * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
        component whose prefix is known to be of an access type is an implicit
        component whose prefix is known to be of an access type is an implicit
        dereference and does not assign to the prefix.
        dereference and does not assign to the prefix.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
        * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
        itype is visited, make an entry into table to link associated node and
        itype is visited, make an entry into table to link associated node and
        new itype.
        new itype.
        Add comments and correct harmless error in Build_NCT_Hash_Tables
        Add comments and correct harmless error in Build_NCT_Hash_Tables
        (Array_Aggr_Subtype): Associate each itype created for an index type to
        (Array_Aggr_Subtype): Associate each itype created for an index type to
        the corresponding range construct, and not to the aggregate itself. to
        the corresponding range construct, and not to the aggregate itself. to
        maintain a one-to-one correspondence between itype and its associated
        maintain a one-to-one correspondence between itype and its associated
        node, to prevent errors when complex expression is copied.
        node, to prevent errors when complex expression is copied.
        Fix mishandling of multiple levels of parens
        Fix mishandling of multiple levels of parens
        * sem_aggr.adb: Create a limited view of an incomplete type, to make
        * sem_aggr.adb: Create a limited view of an incomplete type, to make
        treatment of limited views uniform for all visible declarations in a
        treatment of limited views uniform for all visible declarations in a
        limited_withed package.
        limited_withed package.
        (New_Copy_Tree): If hash table is being used and itype is visited,
        (New_Copy_Tree): If hash table is being used and itype is visited,
        make an entry into table to link associated node and new itype.
        make an entry into table to link associated node and new itype.
        (Resolve_Record_Aggregate): Do not add an others box association for a
        (Resolve_Record_Aggregate): Do not add an others box association for a
        discriminated record component that has only discriminants, when there
        discriminated record component that has only discriminants, when there
        is a box association for the component itself.
        is a box association for the component itself.
        * par-ch4.adb: Fix mishandling of multiple levels of parens
        * par-ch4.adb: Fix mishandling of multiple levels of parens
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
        * comperr.adb: Fix problem with suppressing warning messages from gigi
        * comperr.adb: Fix problem with suppressing warning messages from gigi
        * erroutc.ads, erroutc.adb, errout.ads,
        * erroutc.ads, erroutc.adb, errout.ads,
        errout.adb (Write_Eol): Remove trailing spaces before writing the line
        errout.adb (Write_Eol): Remove trailing spaces before writing the line
        (Write_Eol_Keep_Blanks): New procedure to write a line, including
        (Write_Eol_Keep_Blanks): New procedure to write a line, including
        possible trailing spaces.
        possible trailing spaces.
        (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
        (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
        Fix problem with suppressing warning messages from back end
        Fix problem with suppressing warning messages from back end
        Improve handling of deleted warnings
        Improve handling of deleted warnings
        * gnat1drv.adb:
        * gnat1drv.adb:
        Fix problem with suppressing warning messages from back end
        Fix problem with suppressing warning messages from back end
        Handle setting of Static_Dispatch_Tables flag.
        Handle setting of Static_Dispatch_Tables flag.
        * prepcomp.adb:
        * prepcomp.adb:
        Fix problem with suppressing warning messages from back end
        Fix problem with suppressing warning messages from back end
        * exp_intr.adb: Improve handling of deleted warnings
        * exp_intr.adb: Improve handling of deleted warnings
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
        * debug.adb: Improve -gnatdI to cover all cases of serialization
        * debug.adb: Improve -gnatdI to cover all cases of serialization
        Add documentation of dZ, d.t
        Add documentation of dZ, d.t
        * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
        * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
        serialization.
        serialization.
        (Sprint_Node_Actual): Generate new output associated with implicit
        (Sprint_Node_Actual): Generate new output associated with implicit
        importation and implicit exportation of object declarations.
        importation and implicit exportation of object declarations.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
            Javier Miranda  
            Javier Miranda  
            Gary Dismukes  
            Gary Dismukes  
        * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
        * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
        to make treatment of limited views uniform for all visible declarations
        to make treatment of limited views uniform for all visible declarations
        in a limited_withed package.
        in a limited_withed package.
        Improve warnings for in out parameters
        Improve warnings for in out parameters
        (Set_Related_Interaface/Related_Interface): Allow the use of this
        (Set_Related_Interaface/Related_Interface): Allow the use of this
        attribute with constants.
        attribute with constants.
        (Write_Field26_Name): Handle attribute Related_Interface in constants.
        (Write_Field26_Name): Handle attribute Related_Interface in constants.
        Warn on duplicate pragma Preelaborable_Initialialization
        Warn on duplicate pragma Preelaborable_Initialialization
        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
        * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
        generation of a freezing node to ensure proper management of null
        generation of a freezing node to ensure proper management of null
        excluding access types in the backend.
        excluding access types in the backend.
        (Create_Extra_Formals): Test base type of the formal when checking for
        (Create_Extra_Formals): Test base type of the formal when checking for
        the need to add an extra accessibility-level formal. Pass the entity E
        the need to add an extra accessibility-level formal. Pass the entity E
        on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
        on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
        originally being done in a couple of cases), to ensure that the
        originally being done in a couple of cases), to ensure that the
        Extra_Formals list gets set on the entity E when the first entity is
        Extra_Formals list gets set on the entity E when the first entity is
        added.
        added.
        (Conforming_Types): Add missing calls to Base_Type to the code that
        (Conforming_Types): Add missing calls to Base_Type to the code that
        handles anonymous access types. This is required to handle the
        handles anonymous access types. This is required to handle the
        general case because Process_Formals builds internal subtype entities
        general case because Process_Formals builds internal subtype entities
        to handle null-excluding access types.
        to handle null-excluding access types.
        (Make_Controlling_Function_Wrappers): Create wrappers for constructor
        (Make_Controlling_Function_Wrappers): Create wrappers for constructor
        functions that need it, even when not marked Requires_Overriding.
        functions that need it, even when not marked Requires_Overriding.
        Improve warnings for in out parameters
        Improve warnings for in out parameters
        (Analyze_Function_Return): Warn for disallowed null return
        (Analyze_Function_Return): Warn for disallowed null return
        Warn on return from procedure with unset out parameter
        Warn on return from procedure with unset out parameter
        Ensure consistent use of # in error messages
        Ensure consistent use of # in error messages
        (Check_Overriding_Indicator): Add in parameter Is_Primitive.
        (Check_Overriding_Indicator): Add in parameter Is_Primitive.
        (Analyze_Function_Return): Move call to Apply_Constraint_Check before
        (Analyze_Function_Return): Move call to Apply_Constraint_Check before
        the implicit conversion of the expression done for anonymous access
        the implicit conversion of the expression done for anonymous access
        types. This is required to generate the code of the null excluding
        types. This is required to generate the code of the null excluding
        check (if required).
        check (if required).
        * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
        * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
        A formal parameter is never publicly referenceable outside of its body.
        A formal parameter is never publicly referenceable outside of its body.
        (Check_References): For an unreferenced formal parameter in an accept
        (Check_References): For an unreferenced formal parameter in an accept
        statement, use the same warning circuitry as for subprogram formal
        statement, use the same warning circuitry as for subprogram formal
        parameters.
        parameters.
        (Warn_On_Unreferenced_Entity): New subprogram, taken from
        (Warn_On_Unreferenced_Entity): New subprogram, taken from
        Output_Unreferenced_Messages, containing the part of that routine that
        Output_Unreferenced_Messages, containing the part of that routine that
        is now reused for entry formals as described above.
        is now reused for entry formals as described above.
        (Goto_Spec_Entity): New function
        (Goto_Spec_Entity): New function
        (Check_References): Do not give IN OUT warning for dispatching operation
        (Check_References): Do not give IN OUT warning for dispatching operation
        Improve warnings for in out parameters
        Improve warnings for in out parameters
        (Test_Ref): Check that the entity is not undefinite before calling
        (Test_Ref): Check that the entity is not undefinite before calling
        Scope_Within, in order to avoid infinite loops.
        Scope_Within, in order to avoid infinite loops.
        Warn on return from procedure with unset out parameter
        Warn on return from procedure with unset out parameter
        Improved warnings for unused variables
        Improved warnings for unused variables
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Javier Miranda  
            Javier Miranda  
            Gary Dismukes  
            Gary Dismukes  
        * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
        * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
        (Expand_N_Attribute_Reference): Further unify the handling of the
        (Expand_N_Attribute_Reference): Further unify the handling of the
        three forms of access attributes, using common code now for all three
        three forms of access attributes, using common code now for all three
        cases. Add a test for the case of applying an access attribute to
        cases. Add a test for the case of applying an access attribute to
        an explicit dereference when the context is an access-to-interface
        an explicit dereference when the context is an access-to-interface
        type. In that case we need to apply the conversion to the prefix
        type. In that case we need to apply the conversion to the prefix
        of the explicit dereference rather than the prefix of the attribute.
        of the explicit dereference rather than the prefix of the attribute.
        (Attribute_Version, UET_Address): Set entity as internal to ensure
        (Attribute_Version, UET_Address): Set entity as internal to ensure
        proper dg output of implicit importation.
        proper dg output of implicit importation.
        (Expand_Access_To_Type): Removed.
        (Expand_Access_To_Type): Removed.
        (Expand_N_Attribute_Reference): Merge the code from the three cases
        (Expand_N_Attribute_Reference): Merge the code from the three cases
        of access attributes, since the processing is largely identical for
        of access attributes, since the processing is largely identical for
        these cases. The substantive fix here is to process the case of a
        these cases. The substantive fix here is to process the case of a
        type name prefix (current instance case) before handling the case
        type name prefix (current instance case) before handling the case
        of interface prefixes.
        of interface prefixes.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
            Ed Schonberg  
            Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
            Robert Dewar  
            Robert Dewar  
        * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
        * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
        (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
        (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
        type that is an anonymous access to controlled object, establish
        type that is an anonymous access to controlled object, establish
        an associated finalization chain to avoid corrupting the global
        an associated finalization chain to avoid corrupting the global
        finalization list when a dynamically allocated object designated
        finalization list when a dynamically allocated object designated
        by such a component is deallocated.
        by such a component is deallocated.
        (Make_Controlling_Function_Wrappers): Create wrappers for constructor
        (Make_Controlling_Function_Wrappers): Create wrappers for constructor
        functions that need it, even when not marked Requires_Overriding.
        functions that need it, even when not marked Requires_Overriding.
        (Initialize_Tag): Replace call to has_discriminants by call to
        (Initialize_Tag): Replace call to has_discriminants by call to
        Is_Variable_Size_Record in the circuitry that handles the
        Is_Variable_Size_Record in the circuitry that handles the
        initialization of secondary tags.
        initialization of secondary tags.
        (Is_Variable_Size_Record): New implementation.
        (Is_Variable_Size_Record): New implementation.
        (Expand_N_Object_Declaration): Suppress call to init proc if there is a
        (Expand_N_Object_Declaration): Suppress call to init proc if there is a
        Suppress_Initialization pragma for a derived type.
        Suppress_Initialization pragma for a derived type.
        (Is_Variable_Size_Record): New subprogram.
        (Is_Variable_Size_Record): New subprogram.
        (Build_Offset_To_Top_Functions): New implementation that simplifies the
        (Build_Offset_To_Top_Functions): New implementation that simplifies the
        initial version of this routine and also fixes problems causing
        initial version of this routine and also fixes problems causing
        incomplete initialization of the table of interfaces.
        incomplete initialization of the table of interfaces.
        (Build_Init_Procedure): Improve the generation of code to initialize the
        (Build_Init_Procedure): Improve the generation of code to initialize the
        the tag components of secondary dispatch tables.
        the tag components of secondary dispatch tables.
        (Init_Secondary_Tags): New implementation that simplifies the previous
        (Init_Secondary_Tags): New implementation that simplifies the previous
        version of this routine.
        version of this routine.
        (Make_DT): Add parameter to indicate when type has been frozen by an
        (Make_DT): Add parameter to indicate when type has been frozen by an
        object declaration, for diagnostic purposes.
        object declaration, for diagnostic purposes.
        (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
        (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
        diagnose attemps to freeze a subprogram when some untagged type of its
        diagnose attemps to freeze a subprogram when some untagged type of its
        profile is a private type whose full view has not been analyzed yet.
        profile is a private type whose full view has not been analyzed yet.
        (Freeze_Array_Type): Generate init proc for packed array if either
        (Freeze_Array_Type): Generate init proc for packed array if either
        Initialize or Normalize_Scalars is set.
        Initialize or Normalize_Scalars is set.
        (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
        (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
        constructing the new profile, copy the null_exclusion indicator for each
        constructing the new profile, copy the null_exclusion indicator for each
        parameter, to ensure full conformance of the new body with the spec.
        parameter, to ensure full conformance of the new body with the spec.
        * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
        * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
        Create wrappers for constructor functions that need it, even when not
        Create wrappers for constructor functions that need it, even when not
        marked Requires_Overriding.
        marked Requires_Overriding.
        (Covers): Handle properly designated types of anonymous access types,
        (Covers): Handle properly designated types of anonymous access types,
        whose non-limited views are themselves incomplete types.
        whose non-limited views are themselves incomplete types.
        (Add_Entry): Use an entity to store the abstract operation which hides
        (Add_Entry): Use an entity to store the abstract operation which hides
        an interpretation.
        an interpretation.
        (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
        (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
        (Collect_Interps): Use Empty as an actual for Abstract_Op in the
        (Collect_Interps): Use Empty as an actual for Abstract_Op in the
        initialization aggregate.
        initialization aggregate.
        (Function_Interp_May_Be_Hidden): Rename to
        (Function_Interp_May_Be_Hidden): Rename to
        Function_Interp_Has_Abstract_Op.
        Function_Interp_Has_Abstract_Op.
        (Has_Compatible_Type): Remove machinery that skips interpretations if
        (Has_Compatible_Type): Remove machinery that skips interpretations if
        they are labeled as potentially hidden by an abstract operator.
        they are labeled as potentially hidden by an abstract operator.
        (Has_Hidden_Interp): Rename to Has_Abstract_Op.
        (Has_Hidden_Interp): Rename to Has_Abstract_Op.
        (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
        (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
        (Write_Overloads): Output the abstract operator if present.
        (Write_Overloads): Output the abstract operator if present.
        (Add_Entry): Before inserting a new entry into the interpretation table
        (Add_Entry): Before inserting a new entry into the interpretation table
        for a node, determine whether the entry will be disabled by an abstract
        for a node, determine whether the entry will be disabled by an abstract
        operator.
        operator.
        (Binary_Op_Interp_May_Be_Hidden): New routine.
        (Binary_Op_Interp_May_Be_Hidden): New routine.
        (Collect_Interps): Add value for flag May_Be_Hidden in initialization
        (Collect_Interps): Add value for flag May_Be_Hidden in initialization
        aggregate.
        aggregate.
        (Function_Interp_May_Be_Hidden): New routine.
        (Function_Interp_May_Be_Hidden): New routine.
        (Has_Compatible_Type): Do not consider interpretations hidden by
        (Has_Compatible_Type): Do not consider interpretations hidden by
        abstract operators when trying to determine whether two types are
        abstract operators when trying to determine whether two types are
        compatible.
        compatible.
        (Has_Hidden_Interp): New routine.
        (Has_Hidden_Interp): New routine.
        (Set_May_Be_Hidden_Interp): New routine.
        (Set_May_Be_Hidden_Interp): New routine.
        (Write_Overloads): Write the status of flag May_Be_Hidden.
        (Write_Overloads): Write the status of flag May_Be_Hidden.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
        * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
        types declared in the declarative part of a nested package body or in
        types declared in the declarative part of a nested package body or in
        the proper body of a stub.
        the proper body of a stub.
        (Set_All_DT_Position): Add missing check to avoid wrong assignation
        (Set_All_DT_Position): Add missing check to avoid wrong assignation
        of the same dispatch table slot to renamed primitives.
        of the same dispatch table slot to renamed primitives.
        (Make_Select_Specific_Data_Table): Handle private types.
        (Make_Select_Specific_Data_Table): Handle private types.
        (Tagged_Kind): Handle private types.
        (Tagged_Kind): Handle private types.
        (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
        (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
        output of implicit importation and exportation.
        output of implicit importation and exportation.
        (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
        (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
        first formal of the thunk is always associated with the controlling
        first formal of the thunk is always associated with the controlling
        type. In addition perform the following code cleanup: remove formal
        type. In addition perform the following code cleanup: remove formal
        Thunk_Alias which is no longer required, cleanup evaluation of the
        Thunk_Alias which is no longer required, cleanup evaluation of the
        the controlling type, and update the documentation.
        the controlling type, and update the documentation.
        Replace occurrence of Default_Prim_Op_Count by
        Replace occurrence of Default_Prim_Op_Count by
        Max_Predef_Prims. Addition of compile-time check to verify
        Max_Predef_Prims. Addition of compile-time check to verify
        that the value of Max_Predef_Prims is correct.
        that the value of Max_Predef_Prims is correct.
        (Check_Premature_Freezing): Apply check in Ada95 mode as well.
        (Check_Premature_Freezing): Apply check in Ada95 mode as well.
        (Make_DT): Add parameter to indicate when type has been frozen by an
        (Make_DT): Add parameter to indicate when type has been frozen by an
        object declaration, for diagnostic purposes.
        object declaration, for diagnostic purposes.
        (Build_Static_Dispatch_Tables): New subprogram that takes care of the
        (Build_Static_Dispatch_Tables): New subprogram that takes care of the
        construction of statically allocated dispatch tables.
        construction of statically allocated dispatch tables.
        (Make_DT): In case of library-level tagged types export the declaration
        (Make_DT): In case of library-level tagged types export the declaration
        of the primary tag. Remove generation of tags (now done by Make_Tags).
        of the primary tag. Remove generation of tags (now done by Make_Tags).
        Additional modifications to handle non-static generation of dispatch
        Additional modifications to handle non-static generation of dispatch
        tables. Take care of building tables for asynchronous interface types
        tables. Take care of building tables for asynchronous interface types
        (Make_Tags): New subprogram that generates the entities associated with
        (Make_Tags): New subprogram that generates the entities associated with
        the primary and secondary tags of Typ and fills the contents of Access_
        the primary and secondary tags of Typ and fills the contents of Access_
        Disp_Table. In case of library-level tagged types imports the forward
        Disp_Table. In case of library-level tagged types imports the forward
        declaration of the primary tag that will be declared later by Make_DT.
        declaration of the primary tag that will be declared later by Make_DT.
        (Expand_Interface_Conversion): In case of access types to interfaces
        (Expand_Interface_Conversion): In case of access types to interfaces
        replace an itype declaration by an explicit type declaration to avoid
        replace an itype declaration by an explicit type declaration to avoid
        problems associated with the scope of such itype in transient blocks.
        problems associated with the scope of such itype in transient blocks.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * exp_util.ads, exp_util.adb:
        * exp_util.ads, exp_util.adb:
        This patch replaces a number of occurrences of explicit tests for N_Null
        This patch replaces a number of occurrences of explicit tests for N_Null
        with calls to Known_Null. This improves tracking of null values, since
        with calls to Known_Null. This improves tracking of null values, since
        Known_Null also catches null constants, and variables currently known to
        Known_Null also catches null constants, and variables currently known to
        be null, so we get better tracking.
        be null, so we get better tracking.
        (Ensure_Defined): create an itype reference only in the scope of the
        (Ensure_Defined): create an itype reference only in the scope of the
        itype.
        itype.
        (Side_Effect_Free): A selected component of an access type that
        (Side_Effect_Free): A selected component of an access type that
        denotes a component with a rep clause must be treated as not
        denotes a component with a rep clause must be treated as not
        side-effect free, because if it is part of a linked structure its
        side-effect free, because if it is part of a linked structure its
        value may be affected by a renaming.
        value may be affected by a renaming.
        (Expand_Subtype_From_Expr): For limited objects initialized with build
        (Expand_Subtype_From_Expr): For limited objects initialized with build
        in place function calls, do nothing; otherwise we prematurely introduce
        in place function calls, do nothing; otherwise we prematurely introduce
        an N_Reference node in the expression initializing the object, which
        an N_Reference node in the expression initializing the object, which
        breaks the circuitry that detects and adds the additional arguments to
        breaks the circuitry that detects and adds the additional arguments to
        the called function. Bug found working in the new patch for statically
        the called function. Bug found working in the new patch for statically
        allocated dispatch tables.
        allocated dispatch tables.
        (Is_Library_Level_Tagged_Type): New subprogram.
        (Is_Library_Level_Tagged_Type): New subprogram.
        (Remove_Side_Effects): If the expression of an elementary type is an
        (Remove_Side_Effects): If the expression of an elementary type is an
        operator treat as a function call.
        operator treat as a function call.
        (Make_Literal_Range): If the index type of the array is not integer, use
        (Make_Literal_Range): If the index type of the array is not integer, use
        attributes properly to compute the constraint on the resulting aggregate
        attributes properly to compute the constraint on the resulting aggregate
        which is a string.
        which is a string.
        * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
        * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
        class-wide type whose base type is an incomplete private type, leave
        class-wide type whose base type is an incomplete private type, leave
        class-wide type unfrozen so that freeze nodes can be generated
        class-wide type unfrozen so that freeze nodes can be generated
        properly at a later point.
        properly at a later point.
        (Freeze_Entity, array case): Handle case of pragma Pack and component
        (Freeze_Entity, array case): Handle case of pragma Pack and component
        size attributre clause for same array.
        size attributre clause for same array.
2007-08-14  Vincent Celier  
2007-08-14  Vincent Celier  
        * prj.ads, prj.adb: Update Project Manager to new attribute names for
        * prj.ads, prj.adb: Update Project Manager to new attribute names for
        gprbuild.
        gprbuild.
        Allow all valid declarations in configuration project files
        Allow all valid declarations in configuration project files
        (Reset): Initialize all tables and hash tables in the project tree data
        (Reset): Initialize all tables and hash tables in the project tree data
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        (Slash_Id): Change type to be Path_Name_Type
        (Slash_Id): Change type to be Path_Name_Type
        (Slash): Return a Path_Name_Type instead of a File_Name_Type
        (Slash): Return a Path_Name_Type instead of a File_Name_Type
        * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
        * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
        gprbuild.
        gprbuild.
        Update Project Manager to new attribute names for ghprbuild
        Update Project Manager to new attribute names for ghprbuild
        Allow all valid declarations in configuration project files
        Allow all valid declarations in configuration project files
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        * prj-com.ads:
        * prj-com.ads:
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
        * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
        insensitive flag for attributes with optional index.
        insensitive flag for attributes with optional index.
        (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
        (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
        array attribute, put the index in lower case.
        array attribute, put the index in lower case.
        Update Project Manager to new attribute names for ghprbuild
        Update Project Manager to new attribute names for ghprbuild
        Allow all valid declarations in configuration project files
        Allow all valid declarations in configuration project files
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        * prj-env.ads, prj-env.adb:
        * prj-env.ads, prj-env.adb:
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        (Get_Reference): Change type of parameter Path to Path_Name_Type
        (Get_Reference): Change type of parameter Path to Path_Name_Type
        * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
        * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
        removing '-' from the path to start with the first character of the
        removing '-' from the path to start with the first character of the
        next directory.
        next directory.
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        * prj-nmsc.ads, prj-nmsc.adb:
        * prj-nmsc.ads, prj-nmsc.adb:
        Update Project Manager to new attribute names for ghprbuild
        Update Project Manager to new attribute names for ghprbuild
        Allow all valid declarations in configuration project files
        Allow all valid declarations in configuration project files
        (Search_Directories): Detect subunits that are specified with an
        (Search_Directories): Detect subunits that are specified with an
        attribute Body in package Naming. Do not replace a source/unit in the
        attribute Body in package Naming. Do not replace a source/unit in the
        same project when the order of the source dirs are known. Detect
        same project when the order of the source dirs are known. Detect
        duplicate sources/units in the same project when the order of the
        duplicate sources/units in the same project when the order of the
        source dirs are not known.
        source dirs are not known.
        (Check_Ada_Name): Allow all identifiers that are not reserved words
        (Check_Ada_Name): Allow all identifiers that are not reserved words
        in Ada 95.
        in Ada 95.
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        (Look_For_Sources): If the list of sources is empty, set the object
        (Look_For_Sources): If the list of sources is empty, set the object
        directory of non extending project to nil.
        directory of non extending project to nil.
        Change type of path name variables to be Path_Name_Type
        Change type of path name variables to be Path_Name_Type
        (Locate_Directory): Make sure that on Windows '/' is converted to '\',
        (Locate_Directory): Make sure that on Windows '/' is converted to '\',
        otherwise creating missing directories will fail.
        otherwise creating missing directories will fail.
        * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
        * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
        prj-part.ads, prj-part.adb:
        prj-part.ads, prj-part.adb:
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
        * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
        * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
        insensitive flag for attributes with optional index.
        insensitive flag for attributes with optional index.
        (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
        (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
        array attribute, put the index in lower case.
        array attribute, put the index in lower case.
        (Parse_Variable_Reference): Allow the current project name to be used in
        (Parse_Variable_Reference): Allow the current project name to be used in
        the prefix of an attribute reference.
        the prefix of an attribute reference.
        * prj-util.ads, prj-util.adb
        * prj-util.ads, prj-util.adb
        (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
        (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
        defaulted to False. When True, always check against indexes in lower
        defaulted to False. When True, always check against indexes in lower
        case.
        case.
        * snames.ads, snames.h, snames.adb:
        * snames.ads, snames.h, snames.adb:
        Update Project Manager to new attribute names for gprbuild
        Update Project Manager to new attribute names for gprbuild
        Allow all valid declarations in configuration project files
        Allow all valid declarations in configuration project files
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * opt.ads: Warning for non-local exception propagation now off by
        * opt.ads: Warning for non-local exception propagation now off by
        default
        default
        New switch -gnatI to disable representation clauses
        New switch -gnatI to disable representation clauses
        Implement new pragma Implicit_Packing
        Implement new pragma Implicit_Packing
        * usage.adb:
        * usage.adb:
        Warning for non-local exception propagation now off by default
        Warning for non-local exception propagation now off by default
        Add warning for unchecked conversion of pointers wi different
        Add warning for unchecked conversion of pointers wi different
        conventions.
        conventions.
        New switch -gnatI to disable representation clauses
        New switch -gnatI to disable representation clauses
        * usage.adb: new switch -gnatyS
        * usage.adb: new switch -gnatyS
        * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
        * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
        note that aggregates of anonymous array types are not flagged.
        note that aggregates of anonymous array types are not flagged.
        -gnatwc now includes membership tests optimized away
        -gnatwc now includes membership tests optimized away
        -gnatw.x warnings are now off by default
        -gnatw.x warnings are now off by default
        Added conditional compilation Appendix
        Added conditional compilation Appendix
        Add documentation of -gnatI
        Add documentation of -gnatI
        Add documentation for new -gnatyS style check
        Add documentation for new -gnatyS style check
        Update documentation about SAL and auto-init on Windows.
        Update documentation about SAL and auto-init on Windows.
        * gnat_rm.texi:
        * gnat_rm.texi:
        Add documentation for pragma Check_Name and 'Enabled attribute
        Add documentation for pragma Check_Name and 'Enabled attribute
        Document that Eliminate on dispatching operation is ignored
        Document that Eliminate on dispatching operation is ignored
        Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
        Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
        Document pragma Main
        Document pragma Main
        Document pragma Implicit_Packing
        Document pragma Implicit_Packing
        * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
        * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
        different conventions
        different conventions
        New switch -gnatI to disable representation clauses
        New switch -gnatI to disable representation clauses
        * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
        * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
        recognized, report the invalid characters including "-gnat" instead of
        recognized, report the invalid characters including "-gnat" instead of
        just the first character in the switch.
        just the first character in the switch.
        New switch -gnatI to disable representation clauses
        New switch -gnatI to disable representation clauses
        Set Warn_On_Object_Renames_Function true for -gnatg
        Set Warn_On_Object_Renames_Function true for -gnatg
        * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
        * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
        Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
        Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
        Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
        Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
        to switch -aP (add directory to project search dir).
        to switch -aP (add directory to project search dir).
        * par-prag.adb: Implement new pragma Implicit_Packing
        * par-prag.adb: Implement new pragma Implicit_Packing
        * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
        * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
        type as having a non-standard representation, to force expansion on
        type as having a non-standard representation, to force expansion on
        conversion to related types.
        conversion to related types.
        (Analyze_Pragma): Warn on misspelled pragma
        (Analyze_Pragma): Warn on misspelled pragma
        (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
        (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
        Ensure consistent use of # in error messages
        Ensure consistent use of # in error messages
        Implement pragma Implicit_Packing
        Implement pragma Implicit_Packing
2007-08-14  Olivier Hainque  
2007-08-14  Olivier Hainque  
            Eric Botcazou  
            Eric Botcazou  
        * targtyps.c (get_target_maximum_default_alignment): New function.
        * targtyps.c (get_target_maximum_default_alignment): New function.
        Maximum alignment
        Maximum alignment
        that the compiler might choose by default for a type or object.
        that the compiler might choose by default for a type or object.
        (get_target_default_allocator_alignment): New function. Alignment known
        (get_target_default_allocator_alignment): New function. Alignment known
        to be honored by the target default allocator.
        to be honored by the target default allocator.
        (get_target_maximum_allowed_alignment): New function. Maximum alignment
        (get_target_maximum_allowed_alignment): New function. Maximum alignment
        we might accept for any type or object on the target.
        we might accept for any type or object on the target.
        (get_target_maximum_alignment): Now synonym of maximum_default_alignment
        (get_target_maximum_alignment): Now synonym of maximum_default_alignment
        * gigi.h (get_target_maximum_default_alignment): Declare new function.
        * gigi.h (get_target_maximum_default_alignment): Declare new function.
        (get_target_default_allocator_alignment): Likewise.
        (get_target_default_allocator_alignment): Likewise.
        (get_target_maximum_allowed_alignment): Likewise.
        (get_target_maximum_allowed_alignment): Likewise.
        PR ada/19037
        PR ada/19037
        * decl.c (gnat_to_gnu_entity) : Except for the renaming of the
        * decl.c (gnat_to_gnu_entity) : Except for the renaming of the
        result of a function call, first try to use a stabilized reference for
        result of a function call, first try to use a stabilized reference for
        a constant renaming too.
        a constant renaming too.
        (validate_alignment): Use target_maximum_allowed_alignment instead of
        (validate_alignment): Use target_maximum_allowed_alignment instead of
        MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
        MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
        (gnat_to_gnu_entity): Use common nodes directly.
        (gnat_to_gnu_entity): Use common nodes directly.
        (gnat_to_gnu_entity) : Pick the values of the type to annotate
        (gnat_to_gnu_entity) : Pick the values of the type to annotate
        alignment and size for the object.
        alignment and size for the object.
        (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
        (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
        and N_Procedure_Call_Statement.
        and N_Procedure_Call_Statement.
        (takes_address): Rename to lvalue_required_p, add third parameter
        (takes_address): Rename to lvalue_required_p, add third parameter
        'aliased' and adjust recursive calls.
        'aliased' and adjust recursive calls.
        : Update 'aliased' from the array type.
        : Update 'aliased' from the array type.
        : New case.
        : New case.
        : New Likewise.
        : New Likewise.
        (Identifier_to_gnu): Adjust for above changes.
        (Identifier_to_gnu): Adjust for above changes.
        (maybe_stabilize_reference) : New case.
        (maybe_stabilize_reference) : New case.
        * utils2.c (build_binary_op) : Look through conversion
        * utils2.c (build_binary_op) : Look through conversion
        between type variants.
        between type variants.
        (build_simple_component_ref): Likewise.
        (build_simple_component_ref): Likewise.
        (build_call_alloc_dealloc): Use target_default_allocator_alignment
        (build_call_alloc_dealloc): Use target_default_allocator_alignment
        instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
        instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
        aligning type circuitry for allocations from the default storage pool.
        aligning type circuitry for allocations from the default storage pool.
        (build_allocator): Likewise.
        (build_allocator): Likewise.
        (build_simple_component_ref): Manually fold the reference for a
        (build_simple_component_ref): Manually fold the reference for a
        constructor if the record type contains a template.
        constructor if the record type contains a template.
        * utils.c (value_zerop): Delete.
        * utils.c (value_zerop): Delete.
        (gnat_init_decl_processing): Emit debug info for common types.
        (gnat_init_decl_processing): Emit debug info for common types.
        (rest_of_record_type_compilation): If a union contains a field
        (rest_of_record_type_compilation): If a union contains a field
        with a non-constant qualifier, treat it as variable-sized.
        with a non-constant qualifier, treat it as variable-sized.
        (finish_record_type): Give the stub TYPE_DECL a name.
        (finish_record_type): Give the stub TYPE_DECL a name.
        (rest_of_record_type_compilation): Likewise.
        (rest_of_record_type_compilation): Likewise.
        (convert) : New case.  Build a new constructor if
        (convert) : New case.  Build a new constructor if
        types are equivalent array types.
        types are equivalent array types.
        (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
        (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
        even if the type is not passed by reference.
        even if the type is not passed by reference.
        (static_ctors, static_dtors): Delete.
        (static_ctors, static_dtors): Delete.
        (end_subprog_body): Do not record constructors and destructors.
        (end_subprog_body): Do not record constructors and destructors.
        (build_global_cdtor): Delete.
        (build_global_cdtor): Delete.
        (gnat_write_global_declarations): Do not call build_global_cdtor.
        (gnat_write_global_declarations): Do not call build_global_cdtor.
        * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
        * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
        -fRTS=rtp is specified.
        -fRTS=rtp is specified.
        If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
        If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
        specified.
        specified.
        * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
        * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
        of the personality function with SJLJ exceptions.
        of the personality function with SJLJ exceptions.
        * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
        * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
        the name of the personality function with SJLJ exceptions.
        the name of the personality function with SJLJ exceptions.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * par.ads, par.adb: Improve handling of extra right parens.
        * par.ads, par.adb: Improve handling of extra right parens.
        (Par): Remove flag From_Limited_With_Clause.
        (Par): Remove flag From_Limited_With_Clause.
        * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
        * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
        Improve handling of extra right parens.
        Improve handling of extra right parens.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
        * par-tchk.adb (TF_Semicolon): Improve error recovery
        * par-tchk.adb (TF_Semicolon): Improve error recovery
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
        * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
        enumeration type, mark all literals as referenced.
        enumeration type, mark all literals as referenced.
        (Eval_Attribute, case 'Image): If the argument is an enumeration
        (Eval_Attribute, case 'Image): If the argument is an enumeration
        literal and names are available, constant-fold but mark nevertheless as
        literal and names are available, constant-fold but mark nevertheless as
        non-static.
        non-static.
        Clean up function names.
        Clean up function names.
        (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
        (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
        comment.
        comment.
        (Requires_Simple_Name_Prefix): Removed.
        (Requires_Simple_Name_Prefix): Removed.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch11.adb: Improved warnings for unused variables
        * sem_ch11.adb: Improved warnings for unused variables
        * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
        * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
        is a synchronized interface, the derived type is limited.
        is a synchronized interface, the derived type is limited.
        (Analyze_Object_Declaration): Mark the potential coextensions in the
        (Analyze_Object_Declaration): Mark the potential coextensions in the
        definition and expression of an object declaration node.
        definition and expression of an object declaration node.
        (Build_Derived_Type): For the completion of a private type declaration
        (Build_Derived_Type): For the completion of a private type declaration
        with a derived type declaration, chain the parent type's representation
        with a derived type declaration, chain the parent type's representation
        items to the last representation item of the derived type (not the
        items to the last representation item of the derived type (not the
        first one) if they are not present already.
        first one) if they are not present already.
        (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
        (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
        object declaration of forward references to tags.
        object declaration of forward references to tags.
        (Access_Subprogram_Declaration): In Ada2005, anonymous access to
        (Access_Subprogram_Declaration): In Ada2005, anonymous access to
        subprogram types can appear as access discriminants of synchronized
        subprogram types can appear as access discriminants of synchronized
        types.
        types.
        (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
        (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
        given in prefixed form as a selected component.
        given in prefixed form as a selected component.
        (Process_Discriminants): If not all discriminants have defaults, place
        (Process_Discriminants): If not all discriminants have defaults, place
        error message on a default that is present.
        error message on a default that is present.
        (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
        (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
        extend a synchronized tagged type.
        extend a synchronized tagged type.
        Improved warnings for unused variables
        Improved warnings for unused variables
        (Is_Visible_Component): Fix a visibility hole on a component inherited
        (Is_Visible_Component): Fix a visibility hole on a component inherited
        by a private extension when parent is itself declared as a private
        by a private extension when parent is itself declared as a private
        extension, and the derivation is in a child unit.
        extension, and the derivation is in a child unit.
        (Find_Hidden_Interface): Move spec from the package body.
        (Find_Hidden_Interface): Move spec from the package body.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch5.adb: Improve warnings on redundant assignments
        * sem_ch5.adb: Improve warnings on redundant assignments
        * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
        * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
        parameter
        parameter
        (Is_Synchronized_Tagged_Type): New subprogram that returns true
        (Is_Synchronized_Tagged_Type): New subprogram that returns true
        in case of synchronized tagged types (AARM 3.9.4 (6/2)).
        in case of synchronized tagged types (AARM 3.9.4 (6/2)).
        (Safe_To_Capture_Value): Can now return True for constants, even if Cond
        (Safe_To_Capture_Value): Can now return True for constants, even if Cond
        is set to False. Improves handling of Known_[Not_]Null.
        is set to False. Improves handling of Known_[Not_]Null.
        (Wrong_Type): Special case address arithmetic attempt
        (Wrong_Type): Special case address arithmetic attempt
        (Collect_Abstract_Interfaces): Add new formal to allow collecting
        (Collect_Abstract_Interfaces): Add new formal to allow collecting
        abstract interfaces just using the partial view of private types.
        abstract interfaces just using the partial view of private types.
        (Has_Abstract_Interfaces): Add new formal to allow checking types
        (Has_Abstract_Interfaces): Add new formal to allow checking types
        covering interfaces using the partial view of private types.
        covering interfaces using the partial view of private types.
        (Is_Fully_Initialized_Type): Special VM case for uTag component. This
        (Is_Fully_Initialized_Type): Special VM case for uTag component. This
        component still needs to be defined in this case, but is never
        component still needs to be defined in this case, but is never
        initialized as VMs are using other dispatching mechanisms.
        initialized as VMs are using other dispatching mechanisms.
        (Abstract_Interface_List): For a protected type, use base type to get
        (Abstract_Interface_List): For a protected type, use base type to get
        proper declaration.
        proper declaration.
        Improve warnings on redundant assignments
        Improve warnings on redundant assignments
        (Is_Variable): Handle properly an implicit dereference of a prefixed
        (Is_Variable): Handle properly an implicit dereference of a prefixed
        function call.
        function call.
        (Build_Actual_Subtype): If this is an actual subtype for an
        (Build_Actual_Subtype): If this is an actual subtype for an
        unconstrained formal parameter, use the sloc of the body for the new
        unconstrained formal parameter, use the sloc of the body for the new
        declaration, to prevent anomalises in the debugger.
        declaration, to prevent anomalises in the debugger.
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
        * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
        * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
        dispatching operation
        dispatching operation
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * exp_aggr.ads,
        * exp_aggr.ads,
        exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
        exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
        expanded aggregate code before allocator, and ahead of declaration for
        expanded aggregate code before allocator, and ahead of declaration for
        temporary, to prevent access before elaboration when the allocator is
        temporary, to prevent access before elaboration when the allocator is
        an actual for an access parameter.
        an actual for an access parameter.
        (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
        (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
        the TSD and the table of interfaces.
        the TSD and the table of interfaces.
        (Convert_To_Assignments): Augment the test for delaying aggregate
        (Convert_To_Assignments): Augment the test for delaying aggregate
        expansion for limited return statements to include the case of extended
        expansion for limited return statements to include the case of extended
        returns, to prevent creation of an unwanted transient scope.
        returns, to prevent creation of an unwanted transient scope.
        (Is_Static_Dispatch_Table_Aggregate): New subprogram.
        (Is_Static_Dispatch_Table_Aggregate): New subprogram.
        (Expand_Array_Aggregate): Handle aggregates associated with
        (Expand_Array_Aggregate): Handle aggregates associated with
        statically allocated dispatch tables.
        statically allocated dispatch tables.
        (Expand_Record_Aggregate): Handle aggregates associated with
        (Expand_Record_Aggregate): Handle aggregates associated with
        statically allocated dispatch tables.
        statically allocated dispatch tables.
        (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
        (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
        of anonymous access type.
        of anonymous access type.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
        * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
        * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
        is a variable that renames a slice, use the variable itself in the
        is a variable that renames a slice, use the variable itself in the
        expannsion when the renamed expression itself may be modified between
        expannsion when the renamed expression itself may be modified between
        the declaration of the renaming and the array assignment.
        the declaration of the renaming and the array assignment.
2007-08-14  Jerome Guitton  
2007-08-14  Jerome Guitton  
        * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
        * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
        s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
        s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
        s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
        s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
        New functions; dummy implementations.
        New functions; dummy implementations.
        * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
        * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
        functions, used to implement the multi-tasks mode routines on VxWorks.
        functions, used to implement the multi-tasks mode routines on VxWorks.
        * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
        * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
        New functions, thin
        New functions, thin
        binding to the VxWorks routines which have changed between VxWorks 5
        binding to the VxWorks routines which have changed between VxWorks 5
        and 6.
        and 6.
        (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
        (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
        which are not callable from a RTP.
        which are not callable from a RTP.
        * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
        * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
        implemented for the multi-tasks mode on VxWorks 5 and 6.
        implemented for the multi-tasks mode on VxWorks 5 and 6.
        * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
        * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
        * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
        * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
        functions.
        functions.
2007-08-14  Vincent Celier  
2007-08-14  Vincent Celier  
        * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
        * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
        gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
        gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
        mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
        mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
        mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
        mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
        mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
        mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
        mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
        mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
        mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
        mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
        procedure.
        procedure.
        (Major_Id_Name): New function.
        (Major_Id_Name): New function.
        mlib-tgt.ads/mlib.tgt.adb:
        mlib-tgt.ads/mlib.tgt.adb:
        (Library_Major_Minor_Id_Supported): New function, default returns True
        (Library_Major_Minor_Id_Supported): New function, default returns True
        Most mlib-tgt-*.adb that support shared libraries and symbolic links:
        Most mlib-tgt-*.adb that support shared libraries and symbolic links:
        (Build_Dynamic_Library): Add support for major/minor ids for shared libs
        (Build_Dynamic_Library): Add support for major/minor ids for shared libs
        Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
        Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
        Implementation of Library_Major_Minor_Id_Supported returns False
        Implementation of Library_Major_Minor_Id_Supported returns False
        clean.adb:
        clean.adb:
        (Clean_Library_Directory): If major/minor ids are supported, clean all
        (Clean_Library_Directory): If major/minor ids are supported, clean all
        library files.
        library files.
        Major update of the Project Manager and of the project aware tools,
        Major update of the Project Manager and of the project aware tools,
        including gprmake, so that the same sources in the GNAT repository
        including gprmake, so that the same sources in the GNAT repository
        can be used by gprbuild.
        can be used by gprbuild.
2007-08-14  Olivier Hainque  
2007-08-14  Olivier Hainque  
        * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
        * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
        (GCC_ZCX_Support): Switch to True.
        (GCC_ZCX_Support): Switch to True.
        * s-intman-solaris.adb (Notify_Exception): Call
        * s-intman-solaris.adb (Notify_Exception): Call
        Adjust_Context_For_Raise before raising, as expected for signal
        Adjust_Context_For_Raise before raising, as expected for signal
        handlers in general.
        handlers in general.
        * s-intman-posix.adb (Notify_Exception): Remove declaration of
        * s-intman-posix.adb (Notify_Exception): Remove declaration of
        Adjust_Context_For_Raise, moved to the spec of this unit to be visible
        Adjust_Context_For_Raise, moved to the spec of this unit to be visible
        to other implementation bodies.
        to other implementation bodies.
        * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
        * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
        be visible by multiple implementation bodies.
        be visible by multiple implementation bodies.
        * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
        * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
        only for conditions coming from hardware.
        only for conditions coming from hardware.
        [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
        [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
        adjustments to signal context prior to exception raise from signal
        adjustments to signal context prior to exception raise from signal
        handler.
        handler.
        (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
        (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
        mode.
        mode.
        Solaris section: (__gnat_adjust_context_for_raise): New function.
        Solaris section: (__gnat_adjust_context_for_raise): New function.
        Implementation of the machine context adjustments to perform prior to
        Implementation of the machine context adjustments to perform prior to
        raise from a signal handler. Version for both sparc and x86.
        raise from a signal handler. Version for both sparc and x86.
        (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
        (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
        (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
        (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
        prior to raising as expected for any handler, before possible nested
        prior to raising as expected for any handler, before possible nested
        faults to make sure all the contexts in a chain have been adjusted by
        faults to make sure all the contexts in a chain have been adjusted by
        the time we propagate.
        the time we propagate.
2007-08-14  Pascal Obry  
2007-08-14  Pascal Obry  
        * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
        * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
        (SYSTEM_INFO): New record.
        (SYSTEM_INFO): New record.
        (SetThreadIdealProcessor): New imported routine needed for supporting
        (SetThreadIdealProcessor): New imported routine needed for supporting
        task_info pragma on Windows.
        task_info pragma on Windows.
        * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
        * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
        info can be applied to the current host.
        info can be applied to the current host.
        (Create_Task): Set the ideal processor if information is present.
        (Create_Task): Set the ideal processor if information is present.
        * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
        * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
        a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
        a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2007-08-14  Olivier Hainque  
2007-08-14  Olivier Hainque  
        * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
        * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
        stack size and initial stack pointer value for a given task.
        stack size and initial stack pointer value for a given task.
        (Enter_Task): Get the stack attributes of the task we are entering and
        (Enter_Task): Get the stack attributes of the task we are entering and
        let the stack checking engine know about them.
        let the stack checking engine know about them.
        * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
        * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
        Let the stack-checking engine know about the initial sp value and stack
        Let the stack-checking engine know about the initial sp value and stack
        size associated with the current task.
        size associated with the current task.
        (Set_Stack_Info): If a stack base has been notified for the current
        (Set_Stack_Info): If a stack base has been notified for the current
        task, honor it. Fallback to the previous less accurate method otherwise.
        task, honor it. Fallback to the previous less accurate method otherwise.
        * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
        * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
        * sem_ch10.adb: Create a limited view of an incomplete type, to make
        * sem_ch10.adb: Create a limited view of an incomplete type, to make
        treatment of limited views uniform for all visible declarations in a
        treatment of limited views uniform for all visible declarations in a
        limited_withed package.
        limited_withed package.
        Set flag indicating that a subprogram body for a child unit has a
        Set flag indicating that a subprogram body for a child unit has a
        generated spec.
        generated spec.
        (Analyze_Compilation_Unit): If unit is a subprogram body that has no
        (Analyze_Compilation_Unit): If unit is a subprogram body that has no
        separate declaration, remove the unit name from visibility after
        separate declaration, remove the unit name from visibility after
        compilation, so that environment is clean for subsequent compilations.
        compilation, so that environment is clean for subsequent compilations.
        (Install_Limited_Context_Clauses): Do not install a
        (Install_Limited_Context_Clauses): Do not install a
        limited_private_with_clause unless the current unit is a body or a
        limited_private_with_clause unless the current unit is a body or a
        private child unit.
        private child unit.
        (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
        (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
        in the same fashion.
        in the same fashion.
        (Install_Limited_Withed_Unit): Do not install a limited with clause if
        (Install_Limited_Withed_Unit): Do not install a limited with clause if
        it applies to the declaration of the current package body.
        it applies to the declaration of the current package body.
        (Remove_Private_With_Clauses): If there is a regular with_clause for
        (Remove_Private_With_Clauses): If there is a regular with_clause for
        the unit, delete Private_With_Clause from context, to prevent improper
        the unit, delete Private_With_Clause from context, to prevent improper
        hiding when processing subsequent nested packages and instantiations.
        hiding when processing subsequent nested packages and instantiations.
2007-08-14  Jose Ruiz  
2007-08-14  Jose Ruiz  
        * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
        * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
        dir/file, device:/dir/file, and device:drive_letter:/dir/file as
        dir/file, device:/dir/file, and device:drive_letter:/dir/file as
        representing absolute path names.
        representing absolute path names.
        __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
        __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
        * cstreams.c (__gnat_full_name for VxWorks): Use
        * cstreams.c (__gnat_full_name for VxWorks): Use
        __gnat_is_absolute_path to detect whether we need to add the current
        __gnat_is_absolute_path to detect whether we need to add the current
        directory to normalize the path.
        directory to normalize the path.
2007-08-14  Javier Miranda  
2007-08-14  Javier Miranda  
        * a-tags.ads,
        * a-tags.ads,
        a-tags.adb (Displace): Associate a message with the raised CE
        a-tags.adb (Displace): Associate a message with the raised CE
        exception.
        exception.
        (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
        (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
        To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
        To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
        To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
        To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
        spec.
        spec.
        (Default_Prim_Op_Count): Removed.
        (Default_Prim_Op_Count): Removed.
        (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
        (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
        Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
        Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
        Remove pragma Inline_Always.
        Remove pragma Inline_Always.
        * rtsfind.ads (Default_Prim_Op_Count): Removed
        * rtsfind.ads (Default_Prim_Op_Count): Removed
        (Max_Predef_Prims): New entity
        (Max_Predef_Prims): New entity
        (RE_Expanded_Name): Removed
        (RE_Expanded_Name): Removed
        (RE_HT_Link): Removed
        (RE_HT_Link): Removed
        (RE_Iface_Tag): Remmoved
        (RE_Iface_Tag): Remmoved
        (RE_Ifaces_Table): Removed
        (RE_Ifaces_Table): Removed
        (RE_Interfaces_Array): Removed
        (RE_Interfaces_Array): Removed
        (RE_Interface_Data_Element): Removed
        (RE_Interface_Data_Element): Removed
        (RE_Nb_Ifaces): Removed
        (RE_Nb_Ifaces): Removed
        (RE_RC_Offset): Removed
        (RE_RC_Offset): Removed
        (RE_Static_Offset_To_Top): Removed
        (RE_Static_Offset_To_Top): Removed
        * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
        * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
        formal.
        formal.
        (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
        (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
        Prim_Op_Count by Max_Predef_Prims.
        Prim_Op_Count by Max_Predef_Prims.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
            Vincent Celier  
            Vincent Celier  
        * binde.adb (Elab_All_Links): Remove unnecessary call to
        * binde.adb (Elab_All_Links): Remove unnecessary call to
        Generic_Separately_Compiled (if a unit satisfies this predicate, there
        Generic_Separately_Compiled (if a unit satisfies this predicate, there
        won't be an associated Afile).
        won't be an associated Afile).
        (Elab_All_Links): Fail if a referenced unit cannot be found
        (Elab_All_Links): Fail if a referenced unit cannot be found
        * bindgen.adb:
        * bindgen.adb:
        Fix comments in bindgen regarding consistency checks done in Bcheck:
        Fix comments in bindgen regarding consistency checks done in Bcheck:
        the checks are made across units within a partition, not across several
        the checks are made across units within a partition, not across several
        partitions.
        partitions.
        Fix generation of C binder file for VxWorks.
        Fix generation of C binder file for VxWorks.
        * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
        * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
        Generic_May_Lack_ALI, more descriptive of the current use of the
        Generic_May_Lack_ALI, more descriptive of the current use of the
        predicate, and update documentation.
        predicate, and update documentation.
        * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
        * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
        reorganization and documentation update for the case of predefined
        reorganization and documentation update for the case of predefined
        library generics (for which we do not reference an Afile).
        library generics (for which we do not reference an Afile).
2007-08-14  Robert Dewar  
2007-08-14  Robert Dewar  
        * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
        * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
        s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
        s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
        s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
        s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
        s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
        s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
        s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
        s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
        s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
        s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
        s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
        s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
        s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
        s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
        exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
        exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
        s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
        s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
        s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
        s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
        a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
        a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
        s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
        s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
        g-altcon.adb: Minor reformatting
        g-altcon.adb: Minor reformatting
        ada-tree.h: Delete empty line.
        ada-tree.h: Delete empty line.
        ali.ads: Minor reformatting
        ali.ads: Minor reformatting
        Clarification of comments.
        Clarification of comments.
        Minor spelling correction
        Minor spelling correction
        * exp_dbug.adb: Add Warnings Off to suppress new warning
        * exp_dbug.adb: Add Warnings Off to suppress new warning
        * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
        * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
        formal
        formal
        * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
        * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
        value
        value
        * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
        * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
        * a-textio.ads: Reorder the standard input/output/error declarations
        * a-textio.ads: Reorder the standard input/output/error declarations
        for consistency.
        for consistency.
        * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
        * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
        * par-ch2.adb: Recognize RM specially in errout
        * par-ch2.adb: Recognize RM specially in errout
        Change 'R'M to RM in all error messages
        Change 'R'M to RM in all error messages
        * scng.adb: Recognize RM specially in errout
        * scng.adb: Recognize RM specially in errout
        * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
        * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
        N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
        N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
        * s-direio.adb: Add missing routine header box.
        * s-direio.adb: Add missing routine header box.
        * sem_attr.ads: Add ??? comments
        * sem_attr.ads: Add ??? comments
        * sem_eval.adb: Recognize RM specially in errout
        * sem_eval.adb: Recognize RM specially in errout
        Change 'R'M to RM in all error messages
        Change 'R'M to RM in all error messages
        * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
        * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
        * s-tasinf.ads: Fix minor comment typo.
        * s-tasinf.ads: Fix minor comment typo.
        * a-cihama.adb: Minor comment addition
        * a-cihama.adb: Minor comment addition
        * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
        * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
        formal
        formal
        * s-tasinf-tru64.ads: Fix minor comment typo.
        * s-tasinf-tru64.ads: Fix minor comment typo.
        * itypes.ads: Comment update.
        * itypes.ads: Comment update.
        * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
        * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
        anymore.
        anymore.
        * argv.c: Added protection against null gnat_argv and gnat_envp.
        * argv.c: Added protection against null gnat_argv and gnat_envp.
        * bcheck.adb (Check_Consistency): Use correct markup character ({) in
        * bcheck.adb (Check_Consistency): Use correct markup character ({) in
        warning message when Tolerate_Consistency_Errors is True.
        warning message when Tolerate_Consistency_Errors is True.
        * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
        * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
        Any_Id, as this subprogram is only applicable to *type* entities (it
        Any_Id, as this subprogram is only applicable to *type* entities (it
        sets RM_Size). Instead initialize just Esize and Alignment.
        sets RM_Size). Instead initialize just Esize and Alignment.
2007-08-14  Bob Duff  
2007-08-14  Bob Duff  
        * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
        * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
        a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
        a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
        a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
        a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
        a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
        a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
        a-coorse.ads (Next): Applied pragma Inline.
        a-coorse.ads (Next): Applied pragma Inline.
        Make all Containers packages Remote_Types (unless they are already
        Make all Containers packages Remote_Types (unless they are already
        Pure).
        Pure).
        (Previous): applied pragma Inline
        (Previous): applied pragma Inline
        (Elements_Type): is now a record instead of an array
        (Elements_Type): is now a record instead of an array
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
        * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
        * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
        of Set_Item.
        of Set_Item.
        (Set_Item): When the new item is an element of the currently allocated
        (Set_Item): When the new item is an element of the currently allocated
        table passed by reference, save a copy on the stack if we're going
        table passed by reference, save a copy on the stack if we're going
        to reallocate. Also, in Table.Set_Item, make sure we test the proper
        to reallocate. Also, in Table.Set_Item, make sure we test the proper
        variable to determine whether to call Set_Last.
        variable to determine whether to call Set_Last.
        * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
        * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
        symbols-vms.adb, symbols-processing-vms-alpha.adb,
        symbols-vms.adb, symbols-processing-vms-alpha.adb,
        symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
        symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
        some occurrences of the pattern
        some occurrences of the pattern
           T.Increment_Last;
           T.Increment_Last;
           T.Table (T.Last) := Value;
           T.Table (T.Last) := Value;
        with a cleaner call to
        with a cleaner call to
           T.Append (Value);
           T.Append (Value);
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
            Thomas Quinot  
            Thomas Quinot  
        * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
        * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
        derived type with interface progenitors use the analyzed formal as the
        derived type with interface progenitors use the analyzed formal as the
        parent of the actual, to create renamings for all the inherited
        parent of the actual, to create renamings for all the inherited
        operations in Derive_Subprograms.
        operations in Derive_Subprograms.
        (Collect_Previous_Instances): new procedure within of
        (Collect_Previous_Instances): new procedure within of
        Load_Parent_Of_Generic, to instantiate all bodies in the compilation
        Load_Parent_Of_Generic, to instantiate all bodies in the compilation
        unit being loaded, to ensure that the generation of global symbols is
        unit being loaded, to ensure that the generation of global symbols is
        consistent in different compilation modes.
        consistent in different compilation modes.
        (Is_Tagged_Ancestor): New function testing the ancestor relation that
        (Is_Tagged_Ancestor): New function testing the ancestor relation that
        takes progenitor types into account.
        takes progenitor types into account.
        (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
        (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
        traversing over the primitives of the formal and actual types to locate
        traversing over the primitives of the formal and actual types to locate
        any abstract subprograms of the actual type that correspond to a
        any abstract subprograms of the actual type that correspond to a
        nonabstract subprogram of the formal type's ancestor type(s), and issue
        nonabstract subprogram of the formal type's ancestor type(s), and issue
        an error if such is found.
        an error if such is found.
        (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
        (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
        Instantiate_Package_Body, Instantiate_Subprogram_Body):
        Instantiate_Package_Body, Instantiate_Subprogram_Body):
        Remove bogus guard around calls to Inherit_Context.
        Remove bogus guard around calls to Inherit_Context.
        (Reset_Entity): If the entity is the selector of a selected component
        (Reset_Entity): If the entity is the selector of a selected component
        that denotes a named number, propagate constant-folding to the generic
        that denotes a named number, propagate constant-folding to the generic
        template only if the named number is global to the generic unit.
        template only if the named number is global to the generic unit.
        (Set_Instance_Env): Only reset the compilation switches when compiling
        (Set_Instance_Env): Only reset the compilation switches when compiling
        a predefined or internal unit.
        a predefined or internal unit.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
        * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
        * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
        parameter to determine whether operation applies to the prefix.
        parameter to determine whether operation applies to the prefix.
        (Complete_Object_Operation): If actual has an access type and
        (Complete_Object_Operation): If actual has an access type and
        controlling formal is not an in_parameter, reject the actual if it is
        controlling formal is not an in_parameter, reject the actual if it is
        an access_to_constant type.
        an access_to_constant type.
        (Try_Primitive_Operation): If the type of the prefix is a formal tagged
        (Try_Primitive_Operation): If the type of the prefix is a formal tagged
        type, the candidate operations are found in the scope of declaration of
        type, the candidate operations are found in the scope of declaration of
        the type, because the type has no primitive subprograms.
        the type, because the type has no primitive subprograms.
        (Analyze_Selected_Component): If prefix is class-wide, and root type is
        (Analyze_Selected_Component): If prefix is class-wide, and root type is
        a private extension, only examine visible components before trying to
        a private extension, only examine visible components before trying to
        analyze as a prefixed call.
        analyze as a prefixed call.
        Change Entity_List to Type_To_Use, for better readability.
        Change Entity_List to Type_To_Use, for better readability.
        (Has_Fixed_Op): Use base type when checking whether the type of an
        (Has_Fixed_Op): Use base type when checking whether the type of an
        operator has a user-defined multiplication/division
        operator has a user-defined multiplication/division
        (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
        (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
        user-defined operators are available for fixed-point types.
        user-defined operators are available for fixed-point types.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
            Ed Schonberg  
            Ed Schonberg  
        * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
        * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
        formal At_Any_Place indicating, when True, that we want to test for
        formal At_Any_Place indicating, when True, that we want to test for
        availability of the stream attribute at any place (as opposed to the
        availability of the stream attribute at any place (as opposed to the
        current visibility context only).
        current visibility context only).
        (Missing_Read_Write_Attributes): A stream attribute is missing for the
        (Missing_Read_Write_Attributes): A stream attribute is missing for the
        purpose of enforcing E.2.2(8) only if it is not available at any place.
        purpose of enforcing E.2.2(8) only if it is not available at any place.
        Take into account the Ada2005 pragma Has_Preelaborable_Initialization
        Take into account the Ada2005 pragma Has_Preelaborable_Initialization
        when checking the legality of an extension aggregate in a preelaborable
        when checking the legality of an extension aggregate in a preelaborable
        package. Treat the literal null as a valid default expression in a
        package. Treat the literal null as a valid default expression in a
        component declaration for a type with preelaborable initialization.
        component declaration for a type with preelaborable initialization.
        A limited interface is a legal progenitor for the designated type of a
        A limited interface is a legal progenitor for the designated type of a
        remote access to class-wide type.
        remote access to class-wide type.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
        * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
        reference): Use correct entity as denoted entity for the selector of
        reference): Use correct entity as denoted entity for the selector of
        the rewritten node.
        the rewritten node.
        (Find_Direct_Name): Add comment about Generate_Reference incorrectly
        (Find_Direct_Name): Add comment about Generate_Reference incorrectly
        setting the Referenced_As_LHS flag for entities that are implicitly
        setting the Referenced_As_LHS flag for entities that are implicitly
        dereferenced.
        dereferenced.
        (Find_Type): If the type is an internally generated incomplete type,
        (Find_Type): If the type is an internally generated incomplete type,
        mark the full view as referenced, to prevent spurious warnings.
        mark the full view as referenced, to prevent spurious warnings.
        (Find_Selected_Component, Has_Components): Handle properly non-limited
        (Find_Selected_Component, Has_Components): Handle properly non-limited
        views that are themselves incomplete types.
        views that are themselves incomplete types.
        Handle interfaces visible through limited-with clauses.
        Handle interfaces visible through limited-with clauses.
        (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
        (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
        subprogram generic actual for which we have generated a renaming.
        subprogram generic actual for which we have generated a renaming.
        Warn when the renaming introduces a homonym of
        Warn when the renaming introduces a homonym of
        the renamed entity, and the renamed entity is directly visible.
        the renamed entity, and the renamed entity is directly visible.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
            Hristian Kirtchev  
            Hristian Kirtchev  
        * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
        * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
        appear in the subtree to the current allocator if it is not a static
        appear in the subtree to the current allocator if it is not a static
        coextension.
        coextension.
        (Resolve_Allocator): Perform cleanup if resolution has determined that
        (Resolve_Allocator): Perform cleanup if resolution has determined that
        the allocator is not a coextension.
        the allocator is not a coextension.
        (Resolve): Skip an interpretation hidden by an abstract operator only
        (Resolve): Skip an interpretation hidden by an abstract operator only
        when the type of the interpretation matches that of the context.
        when the type of the interpretation matches that of the context.
        (Resolve): When looping through all possible interpretations of a node,
        (Resolve): When looping through all possible interpretations of a node,
        do not consider those that are hidden by abstract operators.
        do not consider those that are hidden by abstract operators.
        (Resolve_Actuals): When verifying that an access to class-wide object
        (Resolve_Actuals): When verifying that an access to class-wide object
        is an actual  for a controlling formal, ignore anonymous access to
        is an actual  for a controlling formal, ignore anonymous access to
        subprograms whose return type is an access to class_wide type.
        subprograms whose return type is an access to class_wide type.
        (Resolve_Slice): If the prefix of the slice is a selected component
        (Resolve_Slice): If the prefix of the slice is a selected component
        whose type depends on discriminants, build its actual subtype before
        whose type depends on discriminants, build its actual subtype before
        applying range checks on the bounds of the slice.
        applying range checks on the bounds of the slice.
        (Valid_Conversion): In an instance or inlined body, compare root types,
        (Valid_Conversion): In an instance or inlined body, compare root types,
        to prevent anomalies between private and public views.
        to prevent anomalies between private and public views.
        (Resolve): Improve error message for ambiguous fixed multiplication
        (Resolve): Improve error message for ambiguous fixed multiplication
        expressions that involve universal_fixed multiplying operations.
        expressions that involve universal_fixed multiplying operations.
2007-08-14  Javier Miranda  
2007-08-14  Javier Miranda  
            Hristian Kirtchev  
            Hristian Kirtchev  
        * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
        * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
        location to allow the correct generation of errors in case of
        location to allow the correct generation of errors in case of
        restrictions applied to the expanded code.
        restrictions applied to the expanded code.
        (Expand_Entry_Barrier): Remove all generated renamings for a barrier
        (Expand_Entry_Barrier): Remove all generated renamings for a barrier
        function if the condition does not reference them.
        function if the condition does not reference them.
        (Expand_Entry_Body_Declarations): Mark the index constant as having a
        (Expand_Entry_Body_Declarations): Mark the index constant as having a
        valid value.
        valid value.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
            Pablo Oliveira  
            Pablo Oliveira  
        * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
        * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
        typecode parameters for a union (in a variant record), remove
        typecode parameters for a union (in a variant record), remove
        extraneous layer of Any wrapping for member label.
        extraneous layer of Any wrapping for member label.
        (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
        (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
        elabration statements, register the package with the name server
        elabration statements, register the package with the name server
        at the beginning, not at the end, of the elaboration statements so
        at the beginning, not at the end, of the elaboration statements so
        that they can create remote access to subprogram values that designate
        that they can create remote access to subprogram values that designate
        remote subprograms from the package.
        remote subprograms from the package.
2007-08-14  Hristian Kirtchev  
2007-08-14  Hristian Kirtchev  
        * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
        * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
        values to compute the number of seconds since the Unix Epoc in order to
        values to compute the number of seconds since the Unix Epoc in order to
        account for Daylight Savings Time. Perform special processing for dates
        account for Daylight Savings Time. Perform special processing for dates
        that are earlier than the Unix Epoc to obtain a negative number.
        that are earlier than the Unix Epoc to obtain a negative number.
2007-08-14  Emmanuel Briot  
2007-08-14  Emmanuel Briot  
        * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
        * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
        switches.
        switches.
2007-08-14  Eric Botcazou  
2007-08-14  Eric Botcazou  
        * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
        * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
        binder-generated file is not in Ada.
        binder-generated file is not in Ada.
        Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
        Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
        recorded in the ALI file.
        recorded in the ALI file.
        Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
        Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2007-08-14  Vincent Celier  
2007-08-14  Vincent Celier  
        * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
        * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
        (Output_Source): Do nothing if parameter is No_Sdep_Id
        (Output_Source): Do nothing if parameter is No_Sdep_Id
        * make.adb (Gnatmake): Do not rebuild an archive simply because a
        * make.adb (Gnatmake): Do not rebuild an archive simply because a
        shared library it imports has a later time stamp.
        shared library it imports has a later time stamp.
        (Check): Resolve the symbolic links in the path name of the object
        (Check): Resolve the symbolic links in the path name of the object
        directory.
        directory.
        Check that the ALI file is in the correct object directory
        Check that the ALI file is in the correct object directory
        Check if a file name does not correspond to the mapping of units
        Check if a file name does not correspond to the mapping of units
        to file names.
        to file names.
        (Display_Version): New procedure
        (Display_Version): New procedure
        (Initialize): Process switches --version and --help
        (Initialize): Process switches --version and --help
        Use type Path_Name_Type for path name
        Use type Path_Name_Type for path name
2007-08-14  Paul Hilfinger  
2007-08-14  Paul Hilfinger  
        * impunit.adb: Re-organize System.Random_Numbers and
        * impunit.adb: Re-organize System.Random_Numbers and
        GNAT.Random_Numbers and add to builds.
        GNAT.Random_Numbers and add to builds.
        * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
        * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
        * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
        * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
        * a-assert.ads, a-assert.adb: New files.
        * a-assert.ads, a-assert.adb: New files.
2007-08-14  Gary Dismukes  
2007-08-14  Gary Dismukes  
        * layout.adb (Layout_Type): In the case of access-to-subprogram types,
        * layout.adb (Layout_Type): In the case of access-to-subprogram types,
        if AAMP_On_Target is True, then the size of the type encompasses two
        if AAMP_On_Target is True, then the size of the type encompasses two
        addresses (a static link and a subprogram address), except in the case
        addresses (a static link and a subprogram address), except in the case
        of library-level access types.
        of library-level access types.
2007-08-14  Vincent Celier  
2007-08-14  Vincent Celier  
        * output.ads, output.adb (Write_Eol): Remove trailing spaces before
        * output.ads, output.adb (Write_Eol): Remove trailing spaces before
        writing the line.
        writing the line.
        (Write_Eol_Keep_Blanks): New procedure to write a line, including
        (Write_Eol_Keep_Blanks): New procedure to write a line, including
        possible trailing spaces.
        possible trailing spaces.
        (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
        (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2007-08-14  Javier Miranda  
2007-08-14  Javier Miranda  
        * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
        * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
        null-excluding access types.
        null-excluding access types.
2007-08-14  Javier Miranda  
2007-08-14  Javier Miranda  
        * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
        * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
        that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
        that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
        of private types add missing check on matching interfaces in the
        of private types add missing check on matching interfaces in the
        partial and full declarations.
        partial and full declarations.
        (Analyze_Protected_Type): Code cleanup.
        (Analyze_Protected_Type): Code cleanup.
        (Analyze_Task_Type): Code cleanup.
        (Analyze_Task_Type): Code cleanup.
2007-08-14  Javier Miranda  
2007-08-14  Javier Miranda  
        * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
        * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
        generated interface thunk.
        generated interface thunk.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
        * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
        * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
        obsolescent warning on application of 'Class to an incomplete type.
        obsolescent warning on application of 'Class to an incomplete type.
        * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
        * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
        prevent obsolescent warning on application of 'Class to an incomplete
        prevent obsolescent warning on application of 'Class to an incomplete
        type.
        type.
2007-08-14  Pascal Obry  
2007-08-14  Pascal Obry  
        * s-fileio.adb (Is_Open): Add check for usability of the underlying
        * s-fileio.adb (Is_Open): Add check for usability of the underlying
        file stream.
        file stream.
2007-08-14  Cyrille Comar  
2007-08-14  Cyrille Comar  
        * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
        * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
        since it is potentially used in cases implying double finalization of
        since it is potentially used in cases implying double finalization of
        the same object.
        the same object.
2007-08-14  Jose Ruiz  
2007-08-14  Jose Ruiz  
        * s-tasini.adb (Get_Stack_Info): Move this function to
        * s-tasini.adb (Get_Stack_Info): Move this function to
        System.Soft_Links.Tasking because it is common to the full and the
        System.Soft_Links.Tasking because it is common to the full and the
        restricted run times.
        restricted run times.
        (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
        (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
        in SSL.Tasking.Init_Tasking_Soft_Links.
        in SSL.Tasking.Init_Tasking_Soft_Links.
        * s-solita.adb (Get_Stack_Info): Function moved from
        * s-solita.adb (Get_Stack_Info): Function moved from
        System.Tasking.Initialization because it is common to the full and the
        System.Tasking.Initialization because it is common to the full and the
        restricted run times.
        restricted run times.
        (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
        (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2007-08-14  Arnaud Charlet  
2007-08-14  Arnaud Charlet  
        * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
        * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
        s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
        s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
        (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
        (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
        parameter.
        parameter.
        * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
        * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
        guard to 12K.
        guard to 12K.
2007-08-14  Gary Dismukes  
2007-08-14  Gary Dismukes  
        * s-veboop.adb (SU): New named number initialized to
        * s-veboop.adb (SU): New named number initialized to
        System.Storage_Unit.
        System.Storage_Unit.
        (True_Val): The initialization expression is revised to use SU (=
        (True_Val): The initialization expression is revised to use SU (=
        Storage_Unit) rather than assuming 8 for the component size of an
        Storage_Unit) rather than assuming 8 for the component size of an
        unpacked Boolean array.
        unpacked Boolean array.
2007-08-14  Tristan Gingold  
2007-08-14  Tristan Gingold  
        * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
        * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
        * tb-ivms.c: New file.
        * tb-ivms.c: New file.
        * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
        * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2007-08-14  Geert Bosch  
2007-08-14  Geert Bosch  
        * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
        * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
        s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
        s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
        Add required linker pragmas for automatically linking with the gnalasup
        Add required linker pragmas for automatically linking with the gnalasup
        linear algebra support library, and the systems math library.
        linear algebra support library, and the systems math library.
        Rename cdot to cdotu and zdot to zdotu.
        Rename cdot to cdotu and zdot to zdotu.
        Update header comment to describe purpose of package.
        Update header comment to describe purpose of package.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
        * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
        * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
        an explicitly specified Associated_Final_Chain, use that list.
        an explicitly specified Associated_Final_Chain, use that list.
        (Expand_N_Package_Body): Build dispatch tables of library level tagged
        (Expand_N_Package_Body): Build dispatch tables of library level tagged
        types.
        types.
        (Expand_N_Package_Declaration): Build dispatch tables of library level
        (Expand_N_Package_Declaration): Build dispatch tables of library level
        tagged types. Minor code cleanup.
        tagged types. Minor code cleanup.
2007-08-14  Vincent Celier  
2007-08-14  Vincent Celier  
        * gnatchop.adb (Terminate_Program): Remove exception and use
        * gnatchop.adb (Terminate_Program): Remove exception and use
        Types.Terminate_Program instead.
        Types.Terminate_Program instead.
        * osint.ads, osint.adb (Current_Exit_Status): New global variable
        * osint.ads, osint.adb (Current_Exit_Status): New global variable
        (Find_Program_Name): Added protection against empty name.
        (Find_Program_Name): Added protection against empty name.
        (OS_Exit_Through_Exception): New procedure
        (OS_Exit_Through_Exception): New procedure
        * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
        * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
        (OS_Exit_Default): New procedure that contains the previous
        (OS_Exit_Default): New procedure that contains the previous
        implementation of procedure OS_Exit.
        implementation of procedure OS_Exit.
        (Final_Value): Remove obsolete Interix stuff.
        (Final_Value): Remove obsolete Interix stuff.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
        * g-socket.ads: Reorganize example code so that it also works on
        * g-socket.ads: Reorganize example code so that it also works on
        Windows XP.
        Windows XP.
2007-08-14  Tristan Gingold  
2007-08-14  Tristan Gingold  
        * g-trasym.ads: AIX now supports symbolic backtraces.
        * g-trasym.ads: AIX now supports symbolic backtraces.
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
        * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
        * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
        units being loaded to detect circularities. A circularity may be
        units being loaded to detect circularities. A circularity may be
        present even if the current chain of pending units to load starts from
        present even if the current chain of pending units to load starts from
        a limited_with_clause.
        a limited_with_clause.
        * lib-load.ads: Change profile of Load_Unit to use a with_clause
        * lib-load.ads: Change profile of Load_Unit to use a with_clause
        rather than a boolean flag, in order to detect circularities in
        rather than a boolean flag, in order to detect circularities in
        with_clauses.
        with_clauses.
        * par-load.adb: Use current with_clause in calls to Load_Unit, rather
        * par-load.adb: Use current with_clause in calls to Load_Unit, rather
        than propagating the From_Limited_With flag, in order to handle
        than propagating the From_Limited_With flag, in order to handle
        properly circularities involving with_clauses.
        properly circularities involving with_clauses.
2007-08-14  Nicolas Setton  
2007-08-14  Nicolas Setton  
        * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
        * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
        warnings.
        warnings.
2007-08-14  Arnaud Charlet  
2007-08-14  Arnaud Charlet  
        * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
        * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
        to build for libgnala.
        to build for libgnala.
        libgnat: Add rules to build libgnala.a
        libgnat: Add rules to build libgnala.a
        (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
        (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
        target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
        target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
        Add s-osinte-vxworks-kernel.adb to the target pairs of the
        Add s-osinte-vxworks-kernel.adb to the target pairs of the
        kernel run-time lib for VxWorks 6, which would provide a different
        kernel run-time lib for VxWorks 6, which would provide a different
        implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
        implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
        x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
        x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
        running ZCX by default.
        running ZCX by default.
        Add g-sttsne-locking to LynxOS version.
        Add g-sttsne-locking to LynxOS version.
        Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
        Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
        On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
        On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
        * system-darwin-x86.ads: New file.
        * system-darwin-x86.ads: New file.
        * Make-lang.in: Delete files before copying onto them, so if they are
        * Make-lang.in: Delete files before copying onto them, so if they are
        read-only, the copy won't fail.
        read-only, the copy won't fail.
        Update dependencies
        Update dependencies
2007-08-14  Pascal Obry  
2007-08-14  Pascal Obry  
        * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
        * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
        naming scheme.
        naming scheme.
2007-08-14  Vincent Celier  
2007-08-14  Vincent Celier  
        * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
        * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
        (Gcc): Initialize Gcc_Name at the first call
        (Gcc): Initialize Gcc_Name at the first call
2007-08-14  Ed Schonberg  
2007-08-14  Ed Schonberg  
        * sem_ch7.adb (Analyze_Package_Specification): Do not install private
        * sem_ch7.adb (Analyze_Package_Specification): Do not install private
        with_clauses of the enclosing unit when analyzing the package
        with_clauses of the enclosing unit when analyzing the package
        specification of a nested instance.
        specification of a nested instance.
2007-08-14  Hristian Kirtchev  
2007-08-14  Hristian Kirtchev  
        * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
        * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
        (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
        (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
        Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
        Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
        layout of N_Allocator.
        layout of N_Allocator.
2007-08-14  Thomas Quinot  
2007-08-14  Thomas Quinot  
        * rtsfind.adb (Check_RPC): Add PCS version check.
        * rtsfind.adb (Check_RPC): Add PCS version check.
        * gnatvsn.ads, gnatvsn.adb: Add PCS version.
        * gnatvsn.ads, gnatvsn.adb: Add PCS version.
        (Gnat_Free_Software): New function.
        (Gnat_Free_Software): New function.
        * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
        * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
        the PCS_Version value from s-parint, used to check that it is consistent
        the PCS_Version value from s-parint, used to check that it is consistent
        with what exp_dist expects.
        with what exp_dist expects.
        * s-parint.ads (PCS_Version): New entity for checking consistency
        * s-parint.ads (PCS_Version): New entity for checking consistency
        between exp_dist and PCS.
        between exp_dist and PCS.
        * gen-soccon.c: (SO_REUSEPORT): New constant.
        * gen-soccon.c: (SO_REUSEPORT): New constant.
2007-08-14  Hristian Kirtchev  
2007-08-14  Hristian Kirtchev  
        * a-calfor.adb (Image (Duration; Boolean)): Change type of local
        * a-calfor.adb (Image (Duration; Boolean)): Change type of local
        variable Sub_Second to Duration in order to accomodate a larger range
        variable Sub_Second to Duration in order to accomodate a larger range
        of arithmetic operations.
        of arithmetic operations.
2007-08-14  Bob Duff  
2007-08-14  Bob Duff  
        * g-sttsne-locking.ads: Move comments from spec to body.
        * g-sttsne-locking.ads: Move comments from spec to body.
        * g-sttsne-locking.adb: Move comments from spec to body.
        * g-sttsne-locking.adb: Move comments from spec to body.
        * g-sttsne-vxworks.ads: Removed.
        * g-sttsne-vxworks.ads: Removed.
        * g-sttsne-vxworks.adb: Removed.
        * g-sttsne-vxworks.adb: Removed.
2007-08-11  Ian Lance Taylor  
2007-08-11  Ian Lance Taylor  
        * misc.c (gnat_get_alias_set): Change return type to
        * misc.c (gnat_get_alias_set): Change return type to
        alias_set_type.
        alias_set_type.
2007-08-11  Kaveh R. Ghazi  
2007-08-11  Kaveh R. Ghazi  
        * decl.c, utils2.c: Fix whitespace in last change.
        * decl.c, utils2.c: Fix whitespace in last change.
2007-08-11  Kaveh R. Ghazi  
2007-08-11  Kaveh R. Ghazi  
        * decl.c (compare_field_bitpos): Constify.
        * decl.c (compare_field_bitpos): Constify.
        * utils2.c (compare_elmt_bitpos): Likewise.
        * utils2.c (compare_elmt_bitpos): Likewise.
2007-07-27  Aurelien Jarno  
2007-07-27  Aurelien Jarno  
        * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
        * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
        anonymous access type.
        anonymous access type.
        (pthread_sigmask): Now take an access sigset_t.
        (pthread_sigmask): Now take an access sigset_t.
2007-07-05  Joel Sherrill  
2007-07-05  Joel Sherrill  
        * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
        * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
2007-06-21  Eric Botcazou  
2007-06-21  Eric Botcazou  
        PR tree-optimization/25737
        PR tree-optimization/25737
        * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
        * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
2007-06-15  Andrew Pinski  
2007-06-15  Andrew Pinski  
        * trans.c (Attribute_to_gnu): When subtracting an
        * trans.c (Attribute_to_gnu): When subtracting an
        offset from a pointer, use POINTER_PLUS_EXPR with
        offset from a pointer, use POINTER_PLUS_EXPR with
        NEGATE_EXPR instead of MINUS_EXPR.
        NEGATE_EXPR instead of MINUS_EXPR.
        (gnat_to_gnu): Likewise.
        (gnat_to_gnu): Likewise.
        * utils.c (convert): When converting between
        * utils.c (convert): When converting between
        thin pointers, use POINTER_PLUS_EXPR and sizetype
        thin pointers, use POINTER_PLUS_EXPR and sizetype
        for the offset.
        for the offset.
        * utils2.c (known_alignment): POINTER_PLUS_EXPR
        * utils2.c (known_alignment): POINTER_PLUS_EXPR
        have the same semantics as PLUS_EXPR for alignment.
        have the same semantics as PLUS_EXPR for alignment.
        (build_binary_op): Add support for the semantics of
        (build_binary_op): Add support for the semantics of
        POINTER_PLUS_EXPR's operands.
        POINTER_PLUS_EXPR's operands.
        When adding an offset to a pointer, use POINTER_PLUS_EXPR.
        When adding an offset to a pointer, use POINTER_PLUS_EXPR.
2007-06-11  Rafael Ávila de Espíndola  
2007-06-11  Rafael Ávila de Espíndola  
        * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
        * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
        of get_signed_or_unsigned_type.
        of get_signed_or_unsigned_type.
        * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
        * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
2007-06-11  Bob Duff  
2007-06-11  Bob Duff  
            Thomas Quinot  
            Thomas Quinot  
        * g-stsifd-sockets.adb (Create): Work around strange behavior of
        * g-stsifd-sockets.adb (Create): Work around strange behavior of
        'bind' on windows that causes 'connect' to fail intermittently, by
        'bind' on windows that causes 'connect' to fail intermittently, by
        retrying the 'bind'.
        retrying the 'bind'.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
2007-06-10  Duncan Sands  
2007-06-10  Duncan Sands  
        * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
        * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
        than to void, for the fields when making a new fat pointer type.
        than to void, for the fields when making a new fat pointer type.
        (gnat_substitute_in_type): Now substitute_in_type.
        (gnat_substitute_in_type): Now substitute_in_type.
        * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
        * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
        * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
        * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
        * utils.c (update_pointer_to): Update fat pointers by updating the
        * utils.c (update_pointer_to): Update fat pointers by updating the
        dummy node pointers used for the fields.
        dummy node pointers used for the fields.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
            Bob Duff  
            Bob Duff  
        * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
        * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
        g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
        g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
        g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
        g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
        constant Thread_Blocking_IO, always True by default, set False
        constant Thread_Blocking_IO, always True by default, set False
        on a per-runtime basis.
        on a per-runtime basis.
        (Need_Netdb_Buffer): New constant.
        (Need_Netdb_Buffer): New constant.
        * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
        * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
        g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
        g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
        files.
        files.
        * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
        * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
        g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
        g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
        Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
        Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
        child package Task_Safe_NetDB
        child package Task_Safe_NetDB
        (Host_Error_Messages): Add stub body.
        (Host_Error_Messages): Add stub body.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
        * g-soccon-mingw.ads: Add Windows-specific constants.
        * g-soccon-mingw.ads: Add Windows-specific constants.
        (Need_Netdb_Buffer): New constant.
        (Need_Netdb_Buffer): New constant.
        (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
        (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
        wrapper and import inet_addr(3) from the standard sockets library
        wrapper and import inet_addr(3) from the standard sockets library
        directly instead.
        directly instead.
        (In_Addr): Add alignment clause.
        (In_Addr): Add alignment clause.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
        * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
        s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
        s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
        s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
        s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
        s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
        s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
        s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
        s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
        s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
        s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
        a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
        a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
        a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
        a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
        a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
        a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
        g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
        g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
        g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
        g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
        i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
        i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
        s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
        s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
        s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
        s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
        s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
        s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
        s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
        s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
        s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
        s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
        s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
        s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
        s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
        s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
        s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
        s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
        s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
        s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
        s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
        s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
        s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
        s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
        s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
        s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
        s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
        s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
        s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
        s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
        s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
        s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
        s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
        s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
        s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
        s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
        s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
        s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
        s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
        s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
        a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
        a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
        Unchecked_* by Ada.Unchecked_*
        Unchecked_* by Ada.Unchecked_*
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
        * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
        s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
        s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
        g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
        g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
        output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
        output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
        g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
        g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
        a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
        a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
        * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
        * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
        s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
        s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
        s-tasloc.adb, s-tasloc.ads: New files.
        s-tasloc.adb, s-tasloc.ads: New files.
2007-06-06  Bob Duff  
2007-06-06  Bob Duff  
        * g-expect-vms.adb:
        * g-expect-vms.adb:
        (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
        (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
        * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
        * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
        (Send_Signal, Close): Raise Invalid_Process if the process id is
        (Send_Signal, Close): Raise Invalid_Process if the process id is
        invalid.
        invalid.
        (Pattern_Matcher_Access): Is now a general access type to be able to
        (Pattern_Matcher_Access): Is now a general access type to be able to
        use aliased string.
        use aliased string.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
            Arnaud Charlet  
            Arnaud Charlet  
        * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
        * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
        (SIGEMT is now used instead of SIGTERM on AIX).
        (SIGEMT is now used instead of SIGTERM on AIX).
        * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
        * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
        (Time_Slice_Supported): Set to True.
        (Time_Slice_Supported): Set to True.
        Use SIGEMT instead of SIGTERM as SIGADAABORT.
        Use SIGEMT instead of SIGTERM as SIGADAABORT.
2007-06-06  Hristian Kirtchev  
2007-06-06  Hristian Kirtchev  
        * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
        * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
        (Time, Time)): Use To_Relative_Time rather than manual calculation to
        (Time, Time)): Use To_Relative_Time rather than manual calculation to
        express the bounds of Duration as Time. Raise Time_Error when the
        express the bounds of Duration as Time. Raise Time_Error when the
        result is greater or equal to the higher bound of Duration (on the
        result is greater or equal to the higher bound of Duration (on the
        margin case).
        margin case).
        ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
        ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
        Ada_High_And_Leaps.
        Ada_High_And_Leaps.
        ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
        ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
        Ada_High_And_Leaps.
        Ada_High_And_Leaps.
        ("-" (Time, Time)): Reorder code.
        ("-" (Time, Time)): Reorder code.
        (All_Leap_Seconds): Removed.
        (All_Leap_Seconds): Removed.
        (Arithmetic_Operations.Add): Remove sign related kludge.
        (Arithmetic_Operations.Add): Remove sign related kludge.
        (Arithmetic_Operations.Difference): Control the leaps seconds processing
        (Arithmetic_Operations.Difference): Control the leaps seconds processing
        with flag Leap_Support.
        with flag Leap_Support.
        (Arithmetic_Operations.Subtract): Remove sign related kludge.
        (Arithmetic_Operations.Subtract): Remove sign related kludge.
        (Check_Within_Time_Bounds): New procedure.
        (Check_Within_Time_Bounds): New procedure.
        (Clock): Control the leap seconds processing with flag Leap_Support.
        (Clock): Control the leap seconds processing with flag Leap_Support.
        (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
        (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
        (Formatting_Operations.Split): Control the leap seconds processing with
        (Formatting_Operations.Split): Control the leap seconds processing with
        flag Leap_Support.
        flag Leap_Support.
        (Formatting_Operations.Time_Of): Control the leaps seconds processing
        (Formatting_Operations.Time_Of): Control the leaps seconds processing
        with flag Leap_Support. Adjust the year, month and day (if applicable)
        with flag Leap_Support. Adjust the year, month and day (if applicable)
        when the value of day seconds designates a new day.
        when the value of day seconds designates a new day.
        (Split): Use parameter associations for better readability. Integrate
        (Split): Use parameter associations for better readability. Integrate
        flag Is_Ada_05.
        flag Is_Ada_05.
        (Time_Of): Use parameter associations for better readability. Integrate
        (Time_Of): Use parameter associations for better readability. Integrate
        flag Is_Ada_05.
        flag Is_Ada_05.
        * a-calfor.adb (Split): Use parameter associations for better
        * a-calfor.adb (Split): Use parameter associations for better
        readability. Integrate flag Is_Ada_05.
        readability. Integrate flag Is_Ada_05.
        (Time_Of): Remove flag Leap_Checks. Use parameter associations for
        (Time_Of): Remove flag Leap_Checks. Use parameter associations for
        better readability. Integrate flag Is_Ada_05.
        better readability. Integrate flag Is_Ada_05.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
        * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
        s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
        s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
        s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
        s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
        s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
        s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
        s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
        s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
        s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
        s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
        s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
        s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
        s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
        s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
        s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
        s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
        s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
        s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
        s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
        s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
        time when entering this routine to detect a backward clock setting
        time when entering this routine to detect a backward clock setting
        (manual setting or DST adjustment), to avoid waiting for a longer delay
        (manual setting or DST adjustment), to avoid waiting for a longer delay
        than needed.
        than needed.
        (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
        (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
        Remove handling of deferred priority change, and replace by setting the
        Remove handling of deferred priority change, and replace by setting the
        task priority directly, as required by AI-188.
        task priority directly, as required by AI-188.
        Update comments.
        Update comments.
        (Max_Task_Image_Length): New constant.
        (Max_Task_Image_Length): New constant.
        Replace Warnings (Off) by Unreferenced pragma, cleaner.
        Replace Warnings (Off) by Unreferenced pragma, cleaner.
        (Dynamic_Priority_Support): Removed, no longer needed.
        (Dynamic_Priority_Support): Removed, no longer needed.
        (Poll_Base_Priority_Change): Ditto.
        (Poll_Base_Priority_Change): Ditto.
        (Set_Ceiling): Add this procedure to change the ceiling priority
        (Set_Ceiling): Add this procedure to change the ceiling priority
        associated to a lock. This is a dummy implementation because dynamic
        associated to a lock. This is a dummy implementation because dynamic
        priority ceilings are not supported by the underlying system.
        priority ceilings are not supported by the underlying system.
        * a-dynpri.adb (Set_Priority): Take into account case where Target is
        * a-dynpri.adb (Set_Priority): Take into account case where Target is
        accepting a RV with its priority boosted.
        accepting a RV with its priority boosted.
        Remove handling of deferred priority change, and replace by setting the
        Remove handling of deferred priority change, and replace by setting the
        task priority directly, as required by AI-188.
        task priority directly, as required by AI-188.
        * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
        * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
        Succeeded = True.
        Succeeded = True.
        Remove handling of deferred priority change, and replace by setting the
        Remove handling of deferred priority change, and replace by setting the
        task priority directly, as required by AI-188.
        task priority directly, as required by AI-188.
        (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
        (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
        of Self_Id earlier.
        of Self_Id earlier.
        * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
        * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
        (Poll_Base_Priority_Change): Removed.
        (Poll_Base_Priority_Change): Removed.
        Code clean up: use SSL.Current_Target_Exception.
        Code clean up: use SSL.Current_Target_Exception.
        * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
        * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
        to run as this is a potentially dispatching point.
        to run as this is a potentially dispatching point.
        (Call_Synchronous): Use Local_Defer_Abort.
        (Call_Synchronous): Use Local_Defer_Abort.
        (Callable): Relax assertion.
        (Callable): Relax assertion.
        (Selective_Wait): Relax assertion in case abort is not allowed.
        (Selective_Wait): Relax assertion in case abort is not allowed.
        Remove handling of deferred priority change, and replace by setting the
        Remove handling of deferred priority change, and replace by setting the
        task priority directly, as required by AI-188.
        task priority directly, as required by AI-188.
        * s-tasuti.adb (Make_Passive): Adjust assertions.
        * s-tasuti.adb (Make_Passive): Adjust assertions.
        Remove handling of deferred priority change, and replace by setting the
        Remove handling of deferred priority change, and replace by setting the
        task priority directly, as required by AI-188.
        task priority directly, as required by AI-188.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
        system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
        system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
        system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
        system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
        system-vxworks-mips.ads, system-vxworks-alpha.ads,
        system-vxworks-mips.ads, system-vxworks-alpha.ads,
        system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
        system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
        system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
        system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
        system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
        system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
        system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
        system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
        system-solaris-sparcv9.ads, system-vms.ads, system.ads,
        system-solaris-sparcv9.ads, system-vms.ads, system.ads,
        system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
        system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
        system-linux-ia64.ads: Document mapping between Ada and OS priorities.
        system-linux-ia64.ads: Document mapping between Ada and OS priorities.
        This patch changes the largest non-binary modulus from 2**31-1 to
        This patch changes the largest non-binary modulus from 2**31-1 to
        2**32-1.
        2**32-1.
        (Compiler_System_Version): Removed, no longer used.
        (Compiler_System_Version): Removed, no longer used.
        Clean up system files by removing flags only used on a single target.
        Clean up system files by removing flags only used on a single target.
        Also remove obsolete flags, only used during bootstrap from system.ads
        Also remove obsolete flags, only used during bootstrap from system.ads
        (Address): Add a pragma Preelaborable_Initialization.
        (Address): Add a pragma Preelaborable_Initialization.
        * system-aix.ads:  Ditto.
        * system-aix.ads:  Ditto.
        (GCC_ZCX_Support): Set to true.
        (GCC_ZCX_Support): Set to true.
        Update priority range on AIX and map Ada priorities to target
        Update priority range on AIX and map Ada priorities to target
        priorities appropriately for different scheduling policies.
        priorities appropriately for different scheduling policies.
        * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
        * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
        * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
        mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
        mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
        * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
        * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
        mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
        mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
        mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
        mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
        mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
        mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
        mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
        mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
        MLib.Tgt, containing the default versions of the exported subprograms.
        MLib.Tgt, containing the default versions of the exported subprograms.
        For each platform, create a specific version of the body of new child
        For each platform, create a specific version of the body of new child
        package MLib.Tgt.Specific that contains only the body of subprograms
        package MLib.Tgt.Specific that contains only the body of subprograms
        that are different from the default.
        that are different from the default.
        (Archive_Builder_Append_Options): New function.
        (Archive_Builder_Append_Options): New function.
2007-06-06  Matthew Gingell  
2007-06-06  Matthew Gingell  
        * s-osinte-aix.adb: Map Ada priorities to target priorities
        * s-osinte-aix.adb: Map Ada priorities to target priorities
        appropriately for different scheduling policies.
        appropriately for different scheduling policies.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
        * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
        its C counterpart.
        its C counterpart.
        Remove references to Unchecked_Conversion, and use Ada.xxx instead.
        Remove references to Unchecked_Conversion, and use Ada.xxx instead.
        Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
        Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
2007-06-06  Vasiliy Fofanov  
2007-06-06  Vasiliy Fofanov  
        * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
        * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
        Noop on VMS, added for interface commonality.
        Noop on VMS, added for interface commonality.
2007-06-06  Eric Botcazou  
2007-06-06  Eric Botcazou  
            Richard Kenner  
            Richard Kenner  
            Olivier Hainque  
            Olivier Hainque  
        * decl.c (gnat_to_gnu_entity) : Manually mark the top of the
        * decl.c (gnat_to_gnu_entity) : Manually mark the top of the
        renamed expression of a full renaming at toplevel.
        renamed expression of a full renaming at toplevel.
        (gnat_to_gnu_entity, case object): If not defining, do not look inside
        (gnat_to_gnu_entity, case object): If not defining, do not look inside
        the values the constant is initialized to if it is an N_Allocator.
        the values the constant is initialized to if it is an N_Allocator.
        (gnat_to_gnu_entity) : Manually mark the top of the
        (gnat_to_gnu_entity) : Manually mark the top of the
        TYPE_SIZE_UNIT of inner types after the stride is elaborated.
        TYPE_SIZE_UNIT of inner types after the stride is elaborated.
        (make_aligning_type): Accept an extra ROOM argument for storage to be
        (make_aligning_type): Accept an extra ROOM argument for storage to be
        made available before the aligned field, and an extra BASE_ALIGN
        made available before the aligned field, and an extra BASE_ALIGN
        argument for callers to pass the alignment guaranteed to be honored for
        argument for callers to pass the alignment guaranteed to be honored for
        the whole aligning object. Avoid call to finish_record_type, which only
        the whole aligning object. Avoid call to finish_record_type, which only
        interferes with the sizes we want to set.
        interferes with the sizes we want to set.
        (gnat_to_gnu_entity) : Pass the required extra arguments to
        (gnat_to_gnu_entity) : Pass the required extra arguments to
        make_aligning_type for super-aligned objects on stack.
        make_aligning_type for super-aligned objects on stack.
        (components_to_record): Pass the adjusted size of the type when creating
        (components_to_record): Pass the adjusted size of the type when creating
        fields in the qualified union for the variant part.
        fields in the qualified union for the variant part.
        (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
        (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
        (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
        (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
        packed array type.
        packed array type.
        (maybe_pad_type): Set TYPE_USER_ALIGN.
        (maybe_pad_type): Set TYPE_USER_ALIGN.
        (make_aligning_type): Likewise.
        (make_aligning_type): Likewise.
        ALIGN argument is unsigned int.
        ALIGN argument is unsigned int.
        (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
        (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
        (gnat_to_gnu_param): Likewise, for parameters.
        (gnat_to_gnu_param): Likewise, for parameters.
        (gnat_to_gnu_entity) : Always instantiate the renaming object
        (gnat_to_gnu_entity) : Always instantiate the renaming object
        if it is constant and stems from a function call.
        if it is constant and stems from a function call.
        (gnat_to_gnu_entity) : Set packed to -2 if the alignment
        (gnat_to_gnu_entity) : Set packed to -2 if the alignment
        of the record is specified.  Adjust accordingly.
        of the record is specified.  Adjust accordingly.
        (adjust_packed): New static function.
        (adjust_packed): New static function.
        (gnat_to_gnu_field): Use it to adjust the packedness setting.
        (gnat_to_gnu_field): Use it to adjust the packedness setting.
        (components_to_record): Likewise.
        (components_to_record): Likewise.
        (gnat_to_gnu_entity) : Do not test the renamed expression for
        (gnat_to_gnu_entity) : Do not test the renamed expression for
        side-effects if the object is deemed constant.
        side-effects if the object is deemed constant.
        (gnat_to_gnu_entity) : Create a name for the fat pointer
        (gnat_to_gnu_entity) : Create a name for the fat pointer
        type instead of merely finalizing it.  Tidy.
        type instead of merely finalizing it.  Tidy.
        : Retrieve the type from the TYPE_DECL.
        : Retrieve the type from the TYPE_DECL.
        : Likewise.
        : Likewise.
        (defer_debug_incomplete_list): Rename to defer_finalize_list.
        (defer_debug_incomplete_list): Rename to defer_finalize_list.
        (defer_debug_level): Delete.
        (defer_debug_level): Delete.
        (gnat_to_gnu_entity) : Likewise
        (gnat_to_gnu_entity) : Likewise
        : Call rest_of_record_type_compilation on the fat pointer
        : Call rest_of_record_type_compilation on the fat pointer
        type.
        type.
        : Do not explicitly defer finalizing the type.
        : Do not explicitly defer finalizing the type.
        Adjust for write_record_type_debug_info renaming.
        Adjust for write_record_type_debug_info renaming.
        : Likewise.
        : Likewise.
        Finalize deferred types right after deferred incomplete types are
        Finalize deferred types right after deferred incomplete types are
        expanded.
        expanded.
        (rest_of_type_decl_compilation): New global function.
        (rest_of_type_decl_compilation): New global function.
        (components_to_record): Rename defer_debug parameter to do_not_finalize.
        (components_to_record): Rename defer_debug parameter to do_not_finalize.
        (components_to_record): Propagate the packedness to the fields of the
        (components_to_record): Propagate the packedness to the fields of the
        qualified union type if there is a variant part.
        qualified union type if there is a variant part.
        (gnat_to_gnu_entity) : Use new function
        (gnat_to_gnu_entity) : Use new function
        instead of inline code to adjust the XUT field offsets.
        instead of inline code to adjust the XUT field offsets.
        (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
        (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
        : Do not let finish_record_type compute the sizes
        : Do not let finish_record_type compute the sizes
        and write the debug info if the type derives from a discriminated one.
        and write the debug info if the type derives from a discriminated one.
        (gnat_to_gnu_entity) : Adjust call to create_index_type.
        (gnat_to_gnu_entity) : Adjust call to create_index_type.
        : Likewise.
        : Likewise.
        : Likewise.
        : Likewise.
        (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
        (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
        an alignment clause.
        an alignment clause.
        (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
        (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
        before giving warning.
        before giving warning.
        (prepend_one_attribute_to): New function, helper to prepend an attribute
        (prepend_one_attribute_to): New function, helper to prepend an attribute
        to an attribute list.
        to an attribute list.
        (gnat_to_gnu_entity) : Use it.
        (gnat_to_gnu_entity) : Use it.
        (prepend_attributes): Likewise.
        (prepend_attributes): Likewise.
        (gnat_to_gnu_entity) : Use constants of the proper type.
        (gnat_to_gnu_entity) : Use constants of the proper type.
        : Declare the padding type for the element type, if any.
        : Declare the padding type for the element type, if any.
        : Likewise.
        : Likewise.
        (defer_limited_with): New variable.
        (defer_limited_with): New variable.
        (Gigi_Equivalent_Type): New function.
        (Gigi_Equivalent_Type): New function.
        (gnat_to_gnu_entity): Use it at start and use result throughout.
        (gnat_to_gnu_entity): Use it at start and use result throughout.
        (gnat_to_gnu_entity, case E_Access_Type): Rework to use
        (gnat_to_gnu_entity, case E_Access_Type): Rework to use
        Gigi_Equivalent_Type, support Limited_With, allow two levels of
        Gigi_Equivalent_Type, support Limited_With, allow two levels of
        indirection, precompute if unconstrained array to simplify logic, and
        indirection, precompute if unconstrained array to simplify logic, and
        use defer_limited_with to defer elaboration of some types from limited
        use defer_limited_with to defer elaboration of some types from limited
        with.
        with.
        (finalize_from_with_types): New function.
        (finalize_from_with_types): New function.
2007-06-06  Gary Dismukes  
2007-06-06  Gary Dismukes  
            Eric Botcazou  
            Eric Botcazou  
            Tristan Gingold  
            Tristan Gingold  
            Olivier Hainque  
            Olivier Hainque  
        * trans.c (Identifier_to_gnu): Change test for deferred constant by
        * trans.c (Identifier_to_gnu): Change test for deferred constant by
        adding guard that the entity is an E_Constant before testing presence
        adding guard that the entity is an E_Constant before testing presence
        of Full_view (and remove unnecessary test that entity is not a type).
        of Full_view (and remove unnecessary test that entity is not a type).
        For a CONST_DECL used by reference, manually retrieve
        For a CONST_DECL used by reference, manually retrieve
        the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
        the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
        (struct language_function): Move from utils.c to here.
        (struct language_function): Move from utils.c to here.
        (struct parm_attr): New structure.
        (struct parm_attr): New structure.
        (parm_attr, parm_attr vector, parm_attr GC vector): New types.
        (parm_attr, parm_attr vector, parm_attr GC vector): New types.
        (f_parm_attr_cache): New macro.
        (f_parm_attr_cache): New macro.
        (Attribute_to_gnu) : When not optimizing, cache the
        (Attribute_to_gnu) : When not optimizing, cache the
        expressions for the 'First, 'Last and 'Length attributes of the
        expressions for the 'First, 'Last and 'Length attributes of the
        unconstrained array IN parameters.
        unconstrained array IN parameters.
        (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
        (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
        Allocate the information structure for the function earlier, as well
        Allocate the information structure for the function earlier, as well
        as the language-specific part.
        as the language-specific part.
        If the parameter attributes cache has been populated, evaluate the
        If the parameter attributes cache has been populated, evaluate the
        cached expressions on entry.
        cached expressions on entry.
        (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
        (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
        N_Procedure_Call_Statement and N_Indexed_Component.
        N_Procedure_Call_Statement and N_Indexed_Component.
        (Pragma_to_gnu): Translate inspection_point to an asm statement
        (Pragma_to_gnu): Translate inspection_point to an asm statement
        containaing a comment and a reference to the object (either its address
        containaing a comment and a reference to the object (either its address
        for BLKmode or its value).
        for BLKmode or its value).
        (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
        (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
        to go to DECL_INITIAL. Together with the size constraint relaxation
        to go to DECL_INITIAL. Together with the size constraint relaxation
        in create_var_decl, enlarges the set of situations in which an
        in create_var_decl, enlarges the set of situations in which an
        identifier may be used as an initializer without implying elaboration
        identifier may be used as an initializer without implying elaboration
        code.
        code.
        (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
        (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
        DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
        DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
        node.
        node.
        (maybe_stabilize_reference): Remove lvalues_only parameter.
        (maybe_stabilize_reference): Remove lvalues_only parameter.
        (gnat_stabilize_reference): Adjust for above change.
        (gnat_stabilize_reference): Adjust for above change.
        (gnat_to_gnu): Do not set location information on the result
        (gnat_to_gnu): Do not set location information on the result
        if it is a reference.
        if it is a reference.
        (add_cleanup): Add gnat_node parameter and set the location of the
        (add_cleanup): Add gnat_node parameter and set the location of the
        cleanup to it.
        cleanup to it.
        (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
        (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
        (Exception_Handler_to_gnu_zcx): Likewise.
        (Exception_Handler_to_gnu_zcx): Likewise.
        (gigi): Remove the cgraph node if the elaboration procedure is empty.
        (gigi): Remove the cgraph node if the elaboration procedure is empty.
        (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
        (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
        the former right after the latter.
        the former right after the latter.
        (start_stmt_group): Make global.
        (start_stmt_group): Make global.
        (end_stmt_group): Likewise.
        (end_stmt_group): Likewise.
        (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
        (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
        vars.
        vars.
        (gnu_program_error_label_stack): Likewise.
        (gnu_program_error_label_stack): Likewise.
        (gigi): Initialize them.
        (gigi): Initialize them.
        (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
        (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
        (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
        (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
        New cases.
        New cases.
        (push_exception_label_stack): New function.
        (push_exception_label_stack): New function.
        (takes_address): New function.
        (takes_address): New function.
        * utils.c (struct language_function): Move to trans.c from here.
        * utils.c (struct language_function): Move to trans.c from here.
        (unchecked_convert): Do not wrap up integer constants in
        (unchecked_convert): Do not wrap up integer constants in
        VIEW_CONVERT_EXPRs.
        VIEW_CONVERT_EXPRs.
        (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
        (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
        the latter for aggregate types, unexpected by later passes, and relax an
        the latter for aggregate types, unexpected by later passes, and relax an
        arbitrary size constraint on the former.
        arbitrary size constraint on the former.
        (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
        (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
        to compare the sizes.
        to compare the sizes.
        (convert_vms_descriptor): When converting to a fat pointer type, be
        (convert_vms_descriptor): When converting to a fat pointer type, be
        prepared for a S descriptor at runtime in spite of a SB specification.
        prepared for a S descriptor at runtime in spite of a SB specification.
        (shift_unc_components_for_thin_pointers): New function.
        (shift_unc_components_for_thin_pointers): New function.
        (write_record_type_debug_info): For variable-sized fields, cap the
        (write_record_type_debug_info): For variable-sized fields, cap the
        alignment of the pointer to the computed alignment.
        alignment of the pointer to the computed alignment.
        (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
        (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
        If REP_LEVEL is 2, do not compute the sizes.
        If REP_LEVEL is 2, do not compute the sizes.
        (build_vms_descriptor): Adjust for new prototype of finish_record_type.
        (build_vms_descriptor): Adjust for new prototype of finish_record_type.
        (build_unc_object_type): Likewise.
        (build_unc_object_type): Likewise.
        (declare_debug_type): New function.
        (declare_debug_type): New function.
        * ada-tree.def: USE_STMT: removed (not emitted anymore).
        * ada-tree.def: USE_STMT: removed (not emitted anymore).
        * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
        * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
        no statement is expandable anymore.
        no statement is expandable anymore.
        (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
        (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
        (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
        (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
        when the user requested it explicitely.
        when the user requested it explicitely.
        (gnat_post_options): By default, set flag_eliminate_unused_debug_types
        (gnat_post_options): By default, set flag_eliminate_unused_debug_types
        to 0 for Ada.
        to 0 for Ada.
        (get_alias_set): Return alias set 0 for a type if
        (get_alias_set): Return alias set 0 for a type if
        TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
        TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
        * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
        * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
        (DECL_FUNCTION_STUB): New accessor macro.
        (DECL_FUNCTION_STUB): New accessor macro.
        (SET_DECL_FUNCTION_STUB): New setter macro.
        (SET_DECL_FUNCTION_STUB): New setter macro.
        * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
        * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
        * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
        * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
        declarations.
        declarations.
2007-06-06  Jose Ruiz  
2007-06-06  Jose Ruiz  
        * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
        * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
        Rename to Abort_Task_Interrupt to be able to keep the same interface
        Rename to Abort_Task_Interrupt to be able to keep the same interface
        as the rest of the targets.
        as the rest of the targets.
        * s-osinte-vxworks.ads s-osinte-vxworks.adb
        * s-osinte-vxworks.ads s-osinte-vxworks.adb
        (To_VxWorks_Priority): Remove explicit "in" mode indicator
        (To_VxWorks_Priority): Remove explicit "in" mode indicator
        * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
        * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
        New files.
        New files.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * a-chahan.ads: Remove obsolescent pragmas
        * a-chahan.ads: Remove obsolescent pragmas
        * a-chlat1.ads: Minor reformatting
        * a-chlat1.ads: Minor reformatting
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
        * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
        for Errout
        for Errout
        * errout.adb: New Finalize/Compilation_Errors/Output_Messages
        * errout.adb: New Finalize/Compilation_Errors/Output_Messages
        implementation
        implementation
        * errout.ads (Finalize): Changed interface
        * errout.ads (Finalize): Changed interface
        (Output_Messages): New procedure
        (Output_Messages): New procedure
        (Compilation_Errors): New Interface
        (Compilation_Errors): New Interface
        * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
        * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
        Finalize/Output_Messages interface for Errout
        Finalize/Output_Messages interface for Errout
        (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
        (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
        Errout.
        Errout.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
            Olivier Hainque  
            Olivier Hainque  
            Robert Dewar  
            Robert Dewar  
        * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
        * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
        check.
        check.
        (Raise_Current_Excep): Call Debug_Raise_Exception just before
        (Raise_Current_Excep): Call Debug_Raise_Exception just before
        propagation starts, to let debuggers know about the event in a reliable
        propagation starts, to let debuggers know about the event in a reliable
        fashion.
        fashion.
        (Local_Raise): Moved to System.Exceptions
        (Local_Raise): Moved to System.Exceptions
        More convenient to have this as a separate unit
        More convenient to have this as a separate unit
        * s-except.adb, s-except.ads: New files.
        * s-except.adb, s-except.ads: New files.
        * a-exextr.adb (Unhandled_Exception): Delete - replaced by
        * a-exextr.adb (Unhandled_Exception): Delete - replaced by
        Debug_Unhandled_Exception in System.Exceptions where it belongs
        Debug_Unhandled_Exception in System.Exceptions where it belongs
        together with a couple of other debug helpers.
        together with a couple of other debug helpers.
        (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
        (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
        the former Unhandled_Exception.
        the former Unhandled_Exception.
        * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
        * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
        (Warn_No_Exception_Propagation): New procedure
        (Warn_No_Exception_Propagation): New procedure
        (Warn_If_No_Propagation): Rewritten for new warning generation
        (Warn_If_No_Propagation): Rewritten for new warning generation
        (Expand_Exception_Handlers): New warning generation
        (Expand_Exception_Handlers): New warning generation
        (Expand_N_Raise_xxx_Error): Rewritten for new warnings
        (Expand_N_Raise_xxx_Error): Rewritten for new warnings
        (Add_Exception_Label): Use Special_Exception_Package_Used for test
        (Add_Exception_Label): Use Special_Exception_Package_Used for test
        instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
        instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
        (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
        (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
        even if restriction is set (makes life easier in Check_Returns)
        even if restriction is set (makes life easier in Check_Returns)
        (Expand_Local_Exception_Handlers): Follow renamed entity chain when
        (Expand_Local_Exception_Handlers): Follow renamed entity chain when
        checking exception identities.
        checking exception identities.
        (Expand_Local_Exception_Handlers): Do not optimize when all others case
        (Expand_Local_Exception_Handlers): Do not optimize when all others case
        (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
        (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
        block for handler (used by Check_Returns)
        block for handler (used by Check_Returns)
        (Expand_Local_Exception_Handlers): Local_Raise now takes an address
        (Expand_Local_Exception_Handlers): Local_Raise now takes an address
        (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
        (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
        remove all exception handlers when optimizing local raise statements.
        remove all exception handlers when optimizing local raise statements.
        (Find_Local_Handler): Use Get_Renamed_Entity
        (Find_Local_Handler): Use Get_Renamed_Entity
        (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
        (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
        marked analyzed after expanding exception handlers, do not generate
        marked analyzed after expanding exception handlers, do not generate
        redundant cleanup actions, because they have been constructed already.
        redundant cleanup actions, because they have been constructed already.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
        * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
        presence of this categorization pragma is mandated by the language.
        presence of this categorization pragma is mandated by the language.
        (Limited_Controlled): Add missing pragma Preelaborable_Initialization
        (Limited_Controlled): Add missing pragma Preelaborable_Initialization
        for this type.
        for this type.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
            Robert Dewar  
            Robert Dewar  
        * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
        * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
        butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
        butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
        err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
        err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
        fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
        fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
        lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
        lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
        makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
        makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
        par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
        par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
        prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
        prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
        prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
        prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
        sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
        sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
        uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
        uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
        ali.ads, ali.adb:
        ali.ads, ali.adb:
        Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
        Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
        package Namet. Make File_Name_Type and Unit_Name_Type types derived from
        package Namet. Make File_Name_Type and Unit_Name_Type types derived from
        Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
        Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
        Use variables of types File_Name_Type and Unit_Name_Type in error
        Use variables of types File_Name_Type and Unit_Name_Type in error
        messages.
        messages.
        (Get_Name): Add parameter Ignore_Special, and set it reading file name
        (Get_Name): Add parameter Ignore_Special, and set it reading file name
        (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
        (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
        here.
        here.
        Define flags Flag217-Flag230 with associated subprograms
        Define flags Flag217-Flag230 with associated subprograms
        (Flag_Word5): New record type.
        (Flag_Word5): New record type.
        (Flag_Word5_Ptr): New access type.
        (Flag_Word5_Ptr): New access type.
        (To_Flag_Word5): New unchecked conversion.
        (To_Flag_Word5): New unchecked conversion.
        (To_Flag_Word5_Ptr): Likewise.
        (To_Flag_Word5_Ptr): Likewise.
        (Flag216): New function.
        (Flag216): New function.
        (Set_Flag216): New procedure.
        (Set_Flag216): New procedure.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
        * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
        instead of 'Size.
        instead of 'Size.
        * a-stwifi.ads, a-stzfix.ads: Minor reformatting
        * a-stwifi.ads, a-stzfix.ads: Minor reformatting
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
        * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
        * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
        the package.
        the package.
        (Object_Specific_Data_Array): This is now internal to the package.
        (Object_Specific_Data_Array): This is now internal to the package.
        (Object_Specific_Data): This is now internal to the package.
        (Object_Specific_Data): This is now internal to the package.
        (Select_Specific_Data_Element): This is now internal to the package.
        (Select_Specific_Data_Element): This is now internal to the package.
        (Select_Specific_Data_Array): This is now internal to the package.
        (Select_Specific_Data_Array): This is now internal to the package.
        (Select_Specific_Data): This is now internal to the package.
        (Select_Specific_Data): This is now internal to the package.
        (Offset_To_Top_Function_Ptr): This is now public.
        (Offset_To_Top_Function_Ptr): This is now public.
        (To_Offset_To_Top_Function_Ptr): Removed.
        (To_Offset_To_Top_Function_Ptr): Removed.
        (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
        (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
         local to subprogram Offset_To_Top.
         local to subprogram Offset_To_Top.
        (Predefined_DT): Removed.
        (Predefined_DT): Removed.
        (Typeinfo_Ptr): Removed.
        (Typeinfo_Ptr): Removed.
        (OSD): This function is now internal to this package.
        (OSD): This function is now internal to this package.
        (SSD): This function is now internal to this package.
        (SSD): This function is now internal to this package.
        (DT): New function that displaces the pointer to the table of primitives
        (DT): New function that displaces the pointer to the table of primitives
         to get access to the enclosing wrapper record.
         to get access to the enclosing wrapper record.
        (IW_Membership): Code cleanup.
        (IW_Membership): Code cleanup.
        (Offset_To_Top): Code cleanup.
        (Offset_To_Top): Code cleanup.
        (Predefined_DT): Removed.
        (Predefined_DT): Removed.
        (Register_Interface_Tag): Removed.
        (Register_Interface_Tag): Removed.
        (Set_Interface_Table): Removed.
        (Set_Interface_Table): Removed.
        (Set_Offset_Index): Removed.
        (Set_Offset_Index): Removed.
        (Set_Offset_To_Top): Code cleanup.
        (Set_Offset_To_Top): Code cleanup.
        (Set_OSD): Removed.
        (Set_OSD): Removed.
        (Set_Signature): Removed.
        (Set_Signature): Removed.
        (Set_SSD): Removed.
        (Set_SSD): Removed.
        (Set_Tagged_Kind): Removed.
        (Set_Tagged_Kind): Removed.
        (Typeinfo_Ptr): Removed.
        (Typeinfo_Ptr): Removed.
        (TSD): Removed.
        (TSD): Removed.
        (Displace): Add missing check on null actual.
        (Displace): Add missing check on null actual.
        * exp_disp.ads, exp_disp.adb
        * exp_disp.ads, exp_disp.adb
        (Select_Expansion_Utilities): Removed.
        (Select_Expansion_Utilities): Removed.
        (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
        (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
        (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
        (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
        the interface requires a new parameter.
        the interface requires a new parameter.
        (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
        (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
        Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
        Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
        calls to subprograms Build_T, Build_S, etc. by the corresponding code.
        calls to subprograms Build_T, Build_S, etc. by the corresponding code.
        Done to remove package Select_Expansion_Utilities.
        Done to remove package Select_Expansion_Utilities.
        (Make_DT): New implementation for statically allocated dispatch tables.
        (Make_DT): New implementation for statically allocated dispatch tables.
        (Make_Secondary_DT): Moved to the scope of Make_DT.
        (Make_Secondary_DT): Moved to the scope of Make_DT.
        (Register_Primitive): Code cleanup plus incoporate the use of the new
        (Register_Primitive): Code cleanup plus incoporate the use of the new
        function DT_Address_Attribute.
        function DT_Address_Attribute.
        (Expand_Interface_Thunk): The profile of this subprogram has been
        (Expand_Interface_Thunk): The profile of this subprogram has been
        changed to return the Thunk_Id and the corresponding code.
        changed to return the Thunk_Id and the corresponding code.
        (Fill_DT_Entry): Removed. Its functionality is now provided by
        (Fill_DT_Entry): Removed. Its functionality is now provided by
        subprogram Register_Primitive.
        subprogram Register_Primitive.
        (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
        (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
        subprogram Register_Primitive.
        subprogram Register_Primitive.
        (Register_Primitive): New subprogram that incorporates the previous
        (Register_Primitive): New subprogram that incorporates the previous
        functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
        functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
        (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
        (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
        was only required to call Make_DT_Access_Action, which is now removed.
        was only required to call Make_DT_Access_Action, which is now removed.
        (Ada_Actions): Removed
        (Ada_Actions): Removed
        (Action_Is_Proc): Removed
        (Action_Is_Proc): Removed
        (Action_Nb_Arg): Removed
        (Action_Nb_Arg): Removed
        Replace all the calls to Make_DT_Access_Action by direct calls to
        Replace all the calls to Make_DT_Access_Action by direct calls to
        Make_Procedure_Call_Statement or Make_Function_Call.
        Make_Procedure_Call_Statement or Make_Function_Call.
        (Set_DTC_Entity_Value): New subprogram.
        (Set_DTC_Entity_Value): New subprogram.
        (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
        (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
        (Expand_Interface_Thunk): Add missing support for primitives that are
        (Expand_Interface_Thunk): Add missing support for primitives that are
        functions with a controlling result (case in which there is no need
        functions with a controlling result (case in which there is no need
        to generate the thunk).
        to generate the thunk).
        * exp_atag.ads, exp_atag.adb
        * exp_atag.ads, exp_atag.adb
        (Build_DT): New subprogram that displaces the pointer to reference the
        (Build_DT): New subprogram that displaces the pointer to reference the
        base of the wrapper record.
        base of the wrapper record.
        (Build_Typeinfo_Offset): Removed.
        (Build_Typeinfo_Offset): Removed.
        (RTE_Tag_Node): Removed.
        (RTE_Tag_Node): Removed.
        (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
        (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
        (Build_Get_RC_Offset): Removed.
        (Build_Get_RC_Offset): Removed.
        (Build_Inherit_Predefined_Prims): Removed.
        (Build_Inherit_Predefined_Prims): Removed.
        (Build_Inherit_TSD: Removed.
        (Build_Inherit_TSD: Removed.
        (Build_New_TSD): Removed.
        (Build_New_TSD): Removed.
        (Build_Set_External_Tag): Removed.
        (Build_Set_External_Tag): Removed.
        (Build_Set_Predefined_Prim_Op_Address): Add documentation.
        (Build_Set_Predefined_Prim_Op_Address): Add documentation.
        (Build_Set_Prim_Op_Address): Add documentation.
        (Build_Set_Prim_Op_Address): Add documentation.
        (Build_Set_TSD): Removed.
        (Build_Set_TSD): Removed.
        * rtsfind.ads, rtsfind.adb
        * rtsfind.ads, rtsfind.adb
        (Load_Fail): If load fails and we are not in configurable run-time
        (Load_Fail): If load fails and we are not in configurable run-time
        mode, then raise Unrecoverable_Error.
        mode, then raise Unrecoverable_Error.
        (Text_IO_Kludge): Generate an error message if a run-time library is
        (Text_IO_Kludge): Generate an error message if a run-time library is
        not available in a given run-time (ie. zfp run-time).
        not available in a given run-time (ie. zfp run-time).
        (RTE_Record_Component): Add code to check that the component we search
        (RTE_Record_Component): Add code to check that the component we search
        for is not found in two records in the given run-time package.
        for is not found in two records in the given run-time package.
        (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
        (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
        (RE_DT_Predef_Prims_Offset): New entity
        (RE_DT_Predef_Prims_Offset): New entity
        (RE_Static_Offset_To_Top): New entity
        (RE_Static_Offset_To_Top): New entity
        (RE_HT_Link): New entity.
        (RE_HT_Link): New entity.
        (System_Address_Image): Addition of this run-time package.
        (System_Address_Image): Addition of this run-time package.
        (RE_Address_Image): New entity.
        (RE_Address_Image): New entity.
        (RE_Abstract_Interface): Removed.
        (RE_Abstract_Interface): Removed.
        (RE_Default_Prim_Op_Count): Removed.
        (RE_Default_Prim_Op_Count): Removed.
        (RE_DT_Entry_Size): Removed.
        (RE_DT_Entry_Size): Removed.
        (RE_DT_Min_Prologue_Size): Removed.
        (RE_DT_Min_Prologue_Size): Removed.
        (RE_DT_Prologue_Size): Removed.
        (RE_DT_Prologue_Size): Removed.
        (RE_Ifaces_Table_Ptr): Removed.
        (RE_Ifaces_Table_Ptr): Removed.
        (RE_Interface_Data_Ptr): Removed.
        (RE_Interface_Data_Ptr): Removed.
        (RE_Type_Specific_Data): Removed.
        (RE_Type_Specific_Data): Removed.
        (RE_Primary_DT): Removed.
        (RE_Primary_DT): Removed.
        (RE_Register_Interface_Tag): Removed.
        (RE_Register_Interface_Tag): Removed.
        (RE_Set_Offset_Index): Removed.
        (RE_Set_Offset_Index): Removed.
        (RE_Set_OSD): Removed.
        (RE_Set_OSD): Removed.
        (RE_Set_SSD): Removed.
        (RE_Set_SSD): Removed.
        (RE_Set_Signature): Removed.
        (RE_Set_Signature): Removed.
        (RE_Set_Tagged_Kind): Removed.
        (RE_Set_Tagged_Kind): Removed.
        (RE_Address_Array): New entity.
        (RE_Address_Array): New entity.
        (RE_DT): New entity.
        (RE_DT): New entity.
        (RE_Iface_Tag): New entity.
        (RE_Iface_Tag): New entity.
        (RE_Interfaces_Table): New entity.
        (RE_Interfaces_Table): New entity.
        (RE_No_Dispatch_Table): New entity.
        (RE_No_Dispatch_Table): New entity.
        (RE_NDT_Prims_Ptr): New entity.
        (RE_NDT_Prims_Ptr): New entity.
        (RE_NDT_TSD): New entity.
        (RE_NDT_TSD): New entity.
        (RE_Num_Prims): New entity.
        (RE_Num_Prims): New entity.
        (RE_Offset_To_Top_Function_Ptr): New entity.
        (RE_Offset_To_Top_Function_Ptr): New entity.
        (RE_OSD_Table): New entity.
        (RE_OSD_Table): New entity.
        (RE_OSD_Num_Prims): New entity.
        (RE_OSD_Num_Prims): New entity.
        (RE_Predef_Prims): New entity
        (RE_Predef_Prims): New entity
        (RE_Predef_Prims_Table_Ptr): New entity.
        (RE_Predef_Prims_Table_Ptr): New entity.
        (RE_Primary_DT): New entity.
        (RE_Primary_DT): New entity.
        (RE_Signature): New entity.
        (RE_Signature): New entity.
        (RE_SSD): New entity.
        (RE_SSD): New entity.
        (RE_TSD): New entity.
        (RE_TSD): New entity.
        (RE_Type_Specific_Data): New entity.
        (RE_Type_Specific_Data): New entity.
        (RE_Tag_Kind): New entity.
        (RE_Tag_Kind): New entity.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
        * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
        C imported variable.
        C imported variable.
        (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
        (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
        on entry.
        on entry.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
        * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
        character
        character
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * a-tifiio.adb (Put, internal): For negative numbers, check that there
        * a-tifiio.adb (Put, internal): For negative numbers, check that there
        is room for at least one digit and the minus sign.
        is room for at least one digit and the minus sign.
        (Put.Put_Character): Never put a character outside of the range of
        (Put.Put_Character): Never put a character outside of the range of
        string To.
        string To.
2007-06-06  Olivier Hainque  
2007-06-06  Olivier Hainque  
            Eric Botcazou  
            Eric Botcazou  
        * utils2.c (build_allocator): Provide the extra arguments to
        * utils2.c (build_allocator): Provide the extra arguments to
        make_aligning_type for super-aligned objects allocated from the default
        make_aligning_type for super-aligned objects allocated from the default
        pool. Leave enough room for a pointer before the aligning field, and
        pool. Leave enough room for a pointer before the aligning field, and
        store the system's allocator return value there.
        store the system's allocator return value there.
        (build_call_alloc_dealloc): When releasing a super-aligned object,
        (build_call_alloc_dealloc): When releasing a super-aligned object,
        retrieve the system's allocator return value from where build_allocator
        retrieve the system's allocator return value from where build_allocator
        has stored it, just ahead of the adjusted address we are passed.
        has stored it, just ahead of the adjusted address we are passed.
        (build_call_raise): Handle properly the generation of line numbers when
        (build_call_raise): Handle properly the generation of line numbers when
        the node is marked No_Location.
        the node is marked No_Location.
        (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
        (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
        by using DECL_UID on ties.
        by using DECL_UID on ties.
        (build_binary_op) : Accept fat pointer types with the same
        (build_binary_op) : Accept fat pointer types with the same
        main variant.
        main variant.
        (build_call_raise): Handle converting exception into goto; support new
        (build_call_raise): Handle converting exception into goto; support new
        argument KIND.
        argument KIND.
        (build_component_ref): Add new arg to build_call_raise.
        (build_component_ref): Add new arg to build_call_raise.
2007-06-06  Hristian Kirtchev  
2007-06-06  Hristian Kirtchev  
        * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
        * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
        "." in the case of nnn.xxx when nnn terminates with an underscore.
        "." in the case of nnn.xxx when nnn terminates with an underscore.
        Parse the remaining "#" or ":" in the case of nnn#.xxx#
        Parse the remaining "#" or ":" in the case of nnn#.xxx#
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
        * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
            Vincent Celier  
            Vincent Celier  
            Robert Dewar  
            Robert Dewar  
        * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
        * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
        needed.
        needed.
        (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
        (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
        ((destructor)) for adafinal, even when switch -a is used.
        ((destructor)) for adafinal, even when switch -a is used.
        Do not issue pragma Linker_Destructor for adafinal when switch -a is
        Do not issue pragma Linker_Destructor for adafinal when switch -a is
        used.
        used.
        (Gen_Object_Files_Options): Add formatting of Linker Options, when
        (Gen_Object_Files_Options): Add formatting of Linker Options, when
        Output_Linker_Option_List is set. Suppress this formatting when
        Output_Linker_Option_List is set. Suppress this formatting when
        Zero_Formatting is set.
        Zero_Formatting is set.
        Add case for CLI_Target.
        Add case for CLI_Target.
        (System_Restrictions_Used): New flag, used to avoid generating with of
        (System_Restrictions_Used): New flag, used to avoid generating with of
        System_Restrictions and initialization of the data unless there is
        System_Restrictions and initialization of the data unless there is
        some use of System.Restrictions in the partition.
        some use of System.Restrictions in the partition.
        (Check_System_Restrictions_Used): New procedure
        (Check_System_Restrictions_Used): New procedure
        * s-stalib.adb: Remove with of System.Restrictions. No longer needed
        * s-stalib.adb: Remove with of System.Restrictions. No longer needed
        since we only with this unit in the binder file if it is used elsewhere
        since we only with this unit in the binder file if it is used elsewhere
        in the partition.
        in the partition.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * bindusg.adb: Add line for @
        * bindusg.adb: Add line for @
        Add lines for new switches -R and -Z
        Add lines for new switches -R and -Z
        * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
        * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
        hierarchy in the list of files of the closure when -R is used
        hierarchy in the list of files of the closure when -R is used
        (Gnatbind): Accept arguments starting with '@' to indicate response
        (Gnatbind): Accept arguments starting with '@' to indicate response
        files and take the arguments from the response files.
        files and take the arguments from the response files.
        If List_Closure is set, display the referenced files
        If List_Closure is set, display the referenced files
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Robert Dewar  
            Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
        * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
        which the address-clause is applied to in-mode actuals (allowed by
        which the address-clause is applied to in-mode actuals (allowed by
        13.1(22)).
        13.1(22)).
        (Apply_Discriminant_Check): Do not generate a check if the type is
        (Apply_Discriminant_Check): Do not generate a check if the type is
        constrained by a current instance.
        constrained by a current instance.
        (Activate_Division_Check): New procedure
        (Activate_Division_Check): New procedure
        (Activate_Overflow_Check): New procedure
        (Activate_Overflow_Check): New procedure
        (Activate_Range_Check): New procedure
        (Activate_Range_Check): New procedure
        Call these new Activate procedures instead of setting flags directly
        Call these new Activate procedures instead of setting flags directly
        (Apply_Array_Size_Check): Removed, no longer needed.
        (Apply_Array_Size_Check): Removed, no longer needed.
        Code clean up: remove obsolete code related to GCC 2.
        Code clean up: remove obsolete code related to GCC 2.
        (Get_E_Length): Protect against bomb in case scope is standard
        (Get_E_Length): Protect against bomb in case scope is standard
        (Selected_Range_Checks): If the node to be checked is a conversion to
        (Selected_Range_Checks): If the node to be checked is a conversion to
        an unconstrained array type, and the expression is a slice, use the
        an unconstrained array type, and the expression is a slice, use the
        bounds of the slice to construct the required constraint checks.
        bounds of the slice to construct the required constraint checks.
        Improve NOT NULL error messages
        Improve NOT NULL error messages
        (Apply_Constraint_Check): If the context is a null-excluding access
        (Apply_Constraint_Check): If the context is a null-excluding access
        type, diagnose properly the literal null.
        type, diagnose properly the literal null.
2007-06-06  Pascal Obry  
2007-06-06  Pascal Obry  
        * clean.adb (Clean_Archive): Use untouched casing for the archive name
        * clean.adb (Clean_Archive): Use untouched casing for the archive name
        and the corresponding .deps file.
        and the corresponding .deps file.
        (Clean_Interface_Copy_Directory): Use untouched casing for the library
        (Clean_Interface_Copy_Directory): Use untouched casing for the library
        src directory. Minor code-clean-up. Use untouched casing for files
        src directory. Minor code-clean-up. Use untouched casing for files
        read into the library src dir.
        read into the library src dir.
        (Clean_Library_Directory): Idem.
        (Clean_Library_Directory): Idem.
        (Parse_Cmd_Line): Accept new switch -aP
        (Parse_Cmd_Line): Accept new switch -aP
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Ed Schonberg  
            Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
            Eric Botcazou  
            Eric Botcazou  
            Arnaud Charlet  
            Arnaud Charlet  
        * einfo.ads, einfo.adb (Available_View): New synthesized attribute
        * einfo.ads, einfo.adb (Available_View): New synthesized attribute
        applicable to types that have the With_Type flag set. Returns the
        applicable to types that have the With_Type flag set. Returns the
        non-limited view of the type, if available, otherwise the type itself.
        non-limited view of the type, if available, otherwise the type itself.
        For class-wide types, there is no direct link in the tree, so we have
        For class-wide types, there is no direct link in the tree, so we have
        to retrieve the class-wide type of the non-limited view of the Etype.
        to retrieve the class-wide type of the non-limited view of the Etype.
        New attributes Static_Initialization and Static_Elaboration_Desired.
        New attributes Static_Initialization and Static_Elaboration_Desired.
        Remove the pragma Thread_Body, and the associated flag
        Remove the pragma Thread_Body, and the associated flag
        Is_Thread_Body in entities, and all related code.
        Is_Thread_Body in entities, and all related code.
        (Suppress_Value_Tracking_On_Call): New flag
        (Suppress_Value_Tracking_On_Call): New flag
        E_Exception has Esize and Alignment fields
        E_Exception has Esize and Alignment fields
        (Universal_Aliasing): New function.
        (Universal_Aliasing): New function.
        (Set_Universal_Aliasing): New procedure.
        (Set_Universal_Aliasing): New procedure.
        (Write_Entity_Flags): Deal with Universal_Aliasing flag.
        (Write_Entity_Flags): Deal with Universal_Aliasing flag.
        (Check_Nested_Access): New procedure.
        (Check_Nested_Access): New procedure.
        (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
        (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
        (Related_Interface): New attribute. Present in dispatch table pointer
        (Related_Interface): New attribute. Present in dispatch table pointer
        components of records. Set to point to the entity of the corresponding
        components of records. Set to point to the entity of the corresponding
        interface type.
        interface type.
        (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
        (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
        (Original_Access_Type): Remove, not needed.
        (Original_Access_Type): Remove, not needed.
        (Root_Type): Handle properly subtypes of class-wide-types.
        (Root_Type): Handle properly subtypes of class-wide-types.
        Update comments.
        Update comments.
        * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
        * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
        class-wide types visible through limited-with clauses.
        class-wide types visible through limited-with clauses.
        (Try_Primitive_Operation): When examining all primitive operations of a
        (Try_Primitive_Operation): When examining all primitive operations of a
        tagged type, do not consider subprograms labeled as hidden unless they
        tagged type, do not consider subprograms labeled as hidden unless they
        belong to a private generic type with a tagged parent.
        belong to a private generic type with a tagged parent.
        (Try_Object_Operation): Extensive rewriting, to handle properly various
        (Try_Object_Operation): Extensive rewriting, to handle properly various
        overloading cases, when several ancestors may have class-wide operations
        overloading cases, when several ancestors may have class-wide operations
        that are possible candidates, and when the overloaded functions return
        that are possible candidates, and when the overloaded functions return
        array types and have defaulted parameters so that the call may be
        array types and have defaulted parameters so that the call may be
        interpreted as an indexing.
        interpreted as an indexing.
        (Analyze_Allocator): Remove Mark_Allocator and its invocation.
        (Analyze_Allocator): Remove Mark_Allocator and its invocation.
        (Process_Function_Call): use Next, rather than Next_Actual, to analyze
        (Process_Function_Call): use Next, rather than Next_Actual, to analyze
        successive actuals before analyzing the call itself.
        successive actuals before analyzing the call itself.
        (Try_Primitive_Operation): A primitive operation is compatible with the
        (Try_Primitive_Operation): A primitive operation is compatible with the
        prefix if the prefix has a synchronized type and the type of the formal
        prefix if the prefix has a synchronized type and the type of the formal
        is its corresponding record, as can be the case when the primitive
        is its corresponding record, as can be the case when the primitive
        operation is declared outside of the body of the type.
        operation is declared outside of the body of the type.
        (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
        (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
        perform homonym traversal, looking for class-wide operation matches
        perform homonym traversal, looking for class-wide operation matches
        (formerly done in statements of Try_Class_Wide_Operation). Matches on
        (formerly done in statements of Try_Class_Wide_Operation). Matches on
        access parameters are now restricted to anonymous access types.
        access parameters are now restricted to anonymous access types.
        (Mark_Allocator): An allocator with a discriminant association parent is
        (Mark_Allocator): An allocator with a discriminant association parent is
        a coextension.
        a coextension.
        (Try_One_Prefix_Interpretation): If the type of the object is
        (Try_One_Prefix_Interpretation): If the type of the object is
        incomplete, as can be happen when it is a limited view obtained through
        incomplete, as can be happen when it is a limited view obtained through
        a limited_with_clause, the selected component is not part of a prefixed
        a limited_with_clause, the selected component is not part of a prefixed
        call.
        call.
        (Complete_Object_Operation): Diagnose properly an object that is not
        (Complete_Object_Operation): Diagnose properly an object that is not
        aliased when the corresponding controlling formal is an access
        aliased when the corresponding controlling formal is an access
        parameter.
        parameter.
        (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
        (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
        ambiguous calls in prefixed notation, where two primitives differ only
        ambiguous calls in prefixed notation, where two primitives differ only
        in that the controlling argument of one is an access parameter.
        in that the controlling argument of one is an access parameter.
        * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
        * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
        whether a function that returns an unconstrained type can be inlined.
        whether a function that returns an unconstrained type can be inlined.
        (Process_Formals): Diagnose properly the illegal use of an incomplete
        (Process_Formals): Diagnose properly the illegal use of an incomplete
        type in the profile of an access_to_subprogram declaration.
        type in the profile of an access_to_subprogram declaration.
        (Check_Synchronized_Overriding): Nothing check for concurrent types, the
        (Check_Synchronized_Overriding): Nothing check for concurrent types, the
        operations are attached to the corresponding record.
        operations are attached to the corresponding record.
        (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
        (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
        When processing a primitive of a concurrent type which implements an
        When processing a primitive of a concurrent type which implements an
        interface change the type of all controlling formals to that of the
        interface change the type of all controlling formals to that of the
        corresponding record type.
        corresponding record type.
        (Check_Synchronized_Overriding): Relax the conditional logic when trying
        (Check_Synchronized_Overriding): Relax the conditional logic when trying
        to determine the tagged type to which a primitive belongs.
        to determine the tagged type to which a primitive belongs.
        (Check_Conventions): Capture condition to ignore a primitive operation
        (Check_Conventions): Capture condition to ignore a primitive operation
        (which is shared between the loop in Check_Conventions and the one in
        (which is shared between the loop in Check_Conventions and the one in
        Check_Convention) in a new local function Skip_Check.
        Check_Convention) in a new local function Skip_Check.
        (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
        (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
        confusion with Check_Conventions' own Prim_Op local variable.
        confusion with Check_Conventions' own Prim_Op local variable.
        (Create_Extra_Formals): Test for a tagged result type rather than a
        (Create_Extra_Formals): Test for a tagged result type rather than a
        controlling result when determining whether to add a BIP_Alloc_Form
        controlling result when determining whether to add a BIP_Alloc_Form
        formal and a BIP_Final_List formal to the function.
        formal and a BIP_Final_List formal to the function.
        (Check_Conformance); For parameters that are anonymous access types,
        (Check_Conformance); For parameters that are anonymous access types,
        subtype conformance requires that the not null and the constant
        subtype conformance requires that the not null and the constant
        indicators must match
        indicators must match
        (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
        (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
        to retrieve the appropriate type when processing a concurrent type
        to retrieve the appropriate type when processing a concurrent type
        declared within a generic. Minor comment reformatting. Change invocation
        declared within a generic. Minor comment reformatting. Change invocation
        of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
        of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
        mitive.
        mitive.
        (Analyze_Subprogram_Body): If the return type of a function is an
        (Analyze_Subprogram_Body): If the return type of a function is an
        anonymous access to the limited view of a class-wide type, and the
        anonymous access to the limited view of a class-wide type, and the
        non-limited view of the type is available, update the type of the
        non-limited view of the type is available, update the type of the
        function so that code can be generated.
        function so that code can be generated.
        (Process_Formals): In case of access-subtype itype whose designated
        (Process_Formals): In case of access-subtype itype whose designated
        type is also an itype (situation that happens now with access to
        type is also an itype (situation that happens now with access to
        subprograms) we mark the access-type itype with the Has_Delayed_Freeze
        subprograms) we mark the access-type itype with the Has_Delayed_Freeze
        attribute to avoid backend problems.
        attribute to avoid backend problems.
        (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
        (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
        init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
        init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
        anonymous types' designated types are same before testing
        anonymous types' designated types are same before testing
        Subtypes_Statically_Match.
        Subtypes_Statically_Match.
        (Create_Extra_Formals): Test for a named access parameter that is a
        (Create_Extra_Formals): Test for a named access parameter that is a
        controlling formal as an additional condition for adding an
        controlling formal as an additional condition for adding an
        accessibility level formal. This can occur in the subp type created for
        accessibility level formal. This can occur in the subp type created for
        dispatching calls in Expand_Dispatching_Call, and allows calling
        dispatching calls in Expand_Dispatching_Call, and allows calling
        Create_Extra_Formals from that procedure rather than special-casing the
        Create_Extra_Formals from that procedure rather than special-casing the
        extra formals there.
        extra formals there.
        (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
        (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
        when the function has a controlling result.
        when the function has a controlling result.
        (Check_Returns): Add much more knowledge of the optimization of local
        (Check_Returns): Add much more knowledge of the optimization of local
        raise statements to gotos, to retain proper warnings in this case.
        raise statements to gotos, to retain proper warnings in this case.
        (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
        (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
        nodes when looking for last statement.
        nodes when looking for last statement.
        * sem_type.ads, sem_type.adb (Specific_Type): Add support for
        * sem_type.ads, sem_type.adb (Specific_Type): Add support for
        class-wide types visible through limited with clauses.
        class-wide types visible through limited with clauses.
        (Add_One_Interp): If the operands are anonymous access types, the
        (Add_One_Interp): If the operands are anonymous access types, the
        predefined operator on universal_access is immediately visibles
        predefined operator on universal_access is immediately visibles
        (Find_Unique_Type): Handle anonymous access to subprogram types just as
        (Find_Unique_Type): Handle anonymous access to subprogram types just as
        other anonymous access types.
        other anonymous access types.
        (Disambiguate): Take into account CIL convention.
        (Disambiguate): Take into account CIL convention.
        (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
        (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
        * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
        sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
        sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
        elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
        elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
        Fix lower bound of tables.
        Fix lower bound of tables.
        Add rep clauses.
        Add rep clauses.
        * nlists.adb: Ditto.
        * nlists.adb: Ditto.
        (Prev_Node, Next_Node): Change index type to Int so that it properly
        (Prev_Node, Next_Node): Change index type to Int so that it properly
        covers the range First_Node_Id - 1 up.
        covers the range First_Node_Id - 1 up.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Ed Schonberg  
            Ed Schonberg  
            Bob Duff  
            Bob Duff  
            Hristian Kirtchev  
            Hristian Kirtchev  
        * exp_aggr.ads, exp_aggr.adb:
        * exp_aggr.ads, exp_aggr.adb:
        (Build_Record_Aggr_Code): Add missing initialization of secondary tags
        (Build_Record_Aggr_Code): Add missing initialization of secondary tags
        in extension aggregates.
        in extension aggregates.
        (Flatten): Other conditions being met, an aggregate is static if the
        (Flatten): Other conditions being met, an aggregate is static if the
        low bound given by component associations is different from the low
        low bound given by component associations is different from the low
        bound of the base index type.
        bound of the base index type.
        (Packed_Array_Aggregate_Handled): If the component type is itself a
        (Packed_Array_Aggregate_Handled): If the component type is itself a
        packed array or record, the front-end must expand into assignments.
        packed array or record, the front-end must expand into assignments.
        (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
        (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
        Init_Pr, instead of Ancestor_Is_Expression.
        Init_Pr, instead of Ancestor_Is_Expression.
        (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
        (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
        coextension chain root, either generate a list controller or use the
        coextension chain root, either generate a list controller or use the
        already existing one.
        already existing one.
        (Static_Array_Aggregate): New procedure to construct a positional
        (Static_Array_Aggregate): New procedure to construct a positional
        aggregate that can be handled by the backend, when all bounds and
        aggregate that can be handled by the backend, when all bounds and
        components are compile-time known constants.
        components are compile-time known constants.
        (Expand_Record_Aggregate): Force conversion of aggregates of tagged
        (Expand_Record_Aggregate): Force conversion of aggregates of tagged
        types covering interface types into assignments.
        types covering interface types into assignments.
        (Replace_Type): move to Build_Record_Aggr_Code.
        (Replace_Type): move to Build_Record_Aggr_Code.
        (Expand_Record_Aggr_Code): if the target of the aggregate is an
        (Expand_Record_Aggr_Code): if the target of the aggregate is an
        interface type, convert to the definite type of the aggregate itself,
        interface type, convert to the definite type of the aggregate itself,
        so that needed components are visible.
        so that needed components are visible.
        (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
        (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
        components and the context is an extended return statement do not
        components and the context is an extended return statement do not
        create a transient block for it, to prevent premature finalization
        create a transient block for it, to prevent premature finalization
        before the return is executed.
        before the return is executed.
        (Gen_Assign): Do not generate a call to deep adjust routine if the
        (Gen_Assign): Do not generate a call to deep adjust routine if the
        component type is itself an array of controlled (sub)-components
        component type is itself an array of controlled (sub)-components
        initialized with an inner aggregate.
        initialized with an inner aggregate.
        (Component_Check): New name for Static_Check. This name is now more
        (Component_Check): New name for Static_Check. This name is now more
        appropriate, and documentation is added which was missing.
        appropriate, and documentation is added which was missing.
        (Component_Check): Add test for bit aligned component value
        (Component_Check): Add test for bit aligned component value
        (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
        (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
        Tagged_Comps, name is more appropriate given added function below.
        Tagged_Comps, name is more appropriate given added function below.
        (Component_Not_OK_For_Backend): Check for bit aligned component ref.
        (Component_Not_OK_For_Backend): Check for bit aligned component ref.
2007-06-06  Hristian Kirtchev  
2007-06-06  Hristian Kirtchev  
            Javier Miranda  
            Javier Miranda  
            Robert Dewar  
            Robert Dewar  
        * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
        * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
        Terminated: Add unchecked type conversion from System.Address to
        Terminated: Add unchecked type conversion from System.Address to
        System.Tasking.Task_Id when calling the predefined primitive
        System.Tasking.Task_Id when calling the predefined primitive
        _disp_get_task_id.
        _disp_get_task_id.
        Disable new Ada 05 accessibility check for JVM.NET targets, which
        Disable new Ada 05 accessibility check for JVM.NET targets, which
        cannot be implemented in a practical way.
        cannot be implemented in a practical way.
        (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
        (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
        the sources always references the tag of the actual object. Therefore,
        the sources always references the tag of the actual object. Therefore,
        if 'Tag is applied in the sources to class-wide interface objects we
        if 'Tag is applied in the sources to class-wide interface objects we
        generate code that displaces "this" to reference the base of the object.
        generate code that displaces "this" to reference the base of the object.
        (Expand_N_Attribute_Reference, case Size): Return specified size if
        (Expand_N_Attribute_Reference, case Size): Return specified size if
        known to front end.
        known to front end.
        (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
        (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
        has code that displaces the pointer of the object to manage interface
        has code that displaces the pointer of the object to manage interface
        types. However this code must not be executed when the prefix is a
        types. However this code must not be executed when the prefix is a
        subprogram. This bug caused the wrong expansion of the internally
        subprogram. This bug caused the wrong expansion of the internally
        generated assignment that fills the dispatch table when the primitive
        generated assignment that fills the dispatch table when the primitive
        is a function returning a class-wide interface type.
        is a function returning a class-wide interface type.
        (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
        (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
        Set_Attribute_Name for Name_Unaligned_Valid.
        Set_Attribute_Name for Name_Unaligned_Valid.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
        * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
        If the initialization is the equivalent aggregate of the initialization
        If the initialization is the equivalent aggregate of the initialization
        procedure of the type, do not remove it.
        procedure of the type, do not remove it.
        (Expand_N_Attribute_Definition_Clause): Exclude access variables
        (Expand_N_Attribute_Definition_Clause): Exclude access variables
        initialized to null from having their expression reset to empty and
        initialized to null from having their expression reset to empty and
        note this exception in the comment.
        note this exception in the comment.
2007-06-06  Hristian Kirtchev  
2007-06-06  Hristian Kirtchev  
            Robert Dewar  
            Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
        * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
        Add "with" and "use" clauses for Sem_Attr.
        Add "with" and "use" clauses for Sem_Attr.
        (Expand_Current_Value): Do not replace occurences of attribute
        (Expand_Current_Value): Do not replace occurences of attribute
        references where the prefix must be a simple name.
        references where the prefix must be a simple name.
        * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
        * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
        Namet. Add new arrays Attribute_Name_Modifies_Prefix and
        Namet. Add new arrays Attribute_Name_Modifies_Prefix and
        Attribute_Requires_Simple_Name_Prefix.
        Attribute_Requires_Simple_Name_Prefix.
        (Name_Modifies_Prefix): Body of new function.
        (Name_Modifies_Prefix): Body of new function.
        (Requires_Simple_Name_Prefix): Body of new function.
        (Requires_Simple_Name_Prefix): Body of new function.
        (Resolve_Attribute, case Access): Improve error message for case of
        (Resolve_Attribute, case Access): Improve error message for case of
        mismatched conventions.
        mismatched conventions.
        (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
        (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
        incomplete type.
        incomplete type.
        (Analyze_Attribute, case 'Access): If the type of the prefix is a
        (Analyze_Attribute, case 'Access): If the type of the prefix is a
        constrained subtype for a nominal unconstrained type, use its base type
        constrained subtype for a nominal unconstrained type, use its base type
        to check for conformance with the context.
        to check for conformance with the context.
        (Resolve_Attribute): Remove test of the access type being associated
        (Resolve_Attribute): Remove test of the access type being associated
        with a return statement from condition for performing accessibility
        with a return statement from condition for performing accessibility
        checks on access attributes, since this case is now captured by
        checks on access attributes, since this case is now captured by
        Is_Local_Anonymous_Access.
        Is_Local_Anonymous_Access.
        (Analyze_Access_Attribute): Set Address_Taken on entity
        (Analyze_Access_Attribute): Set Address_Taken on entity
        (Analyze_Attribute, case Address): Set Address_Taken on entity
        (Analyze_Attribute, case Address): Set Address_Taken on entity
        (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
        (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
        validating an access attribute whose prefix is a current instance.
        validating an access attribute whose prefix is a current instance.
        (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
        (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
        applied to dispatching operations, if freezing is required then we set
        applied to dispatching operations, if freezing is required then we set
        the attribute Has_Delayed_Freeze in the prefix's entity.
        the attribute Has_Delayed_Freeze in the prefix's entity.
        (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
        (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
        current scope if access of local subprogram taken
        current scope if access of local subprogram taken
        (Analyze_Access_Attribute): Check legality of self-reference even if the
        (Analyze_Access_Attribute): Check legality of self-reference even if the
        expression comes from source, as when a single component association in
        expression comes from source, as when a single component association in
        an aggregate has a box association.
        an aggregate has a box association.
        (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
        (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
        the prefix if it is a protected operation and the attribute is
        the prefix if it is a protected operation and the attribute is
        Unrestricted_Access.
        Unrestricted_Access.
        (Resolve_Attribute, case 'Access): Set the Etype of the attribute
        (Resolve_Attribute, case 'Access): Set the Etype of the attribute
        reference to the base type of the context, to force a constraint check
        reference to the base type of the context, to force a constraint check
        when the context is an access subtype with an explicit constraint.
        when the context is an access subtype with an explicit constraint.
        (Analyze_Attribute, case 'Class): If the prefix is an interface and the
        (Analyze_Attribute, case 'Class): If the prefix is an interface and the
        node is rewritten as an interface conversion. leave unanalyzed after
        node is rewritten as an interface conversion. leave unanalyzed after
        resolution, to ensure that type checking against the context will take
        resolution, to ensure that type checking against the context will take
        place.
        place.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
            Robert Dewar  
            Robert Dewar  
        * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
        * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
        wrapper when the full view of the controlling type of an inherited
        wrapper when the full view of the controlling type of an inherited
        function that dispatches on result implements interfaces.
        function that dispatches on result implements interfaces.
        (Expand_N_Object_Declaration): In cases where the type of the
        (Expand_N_Object_Declaration): In cases where the type of the
        declaration is anonymous access, create finalization list for it.
        declaration is anonymous access, create finalization list for it.
        (Expand_N_Object_Declaration): Generate a persistent_bss directive only
        (Expand_N_Object_Declaration): Generate a persistent_bss directive only
        if the object has no explicit initialization, to match description of
        if the object has no explicit initialization, to match description of
        functionality of pragam Persistent_BSS.
        functionality of pragam Persistent_BSS.
        (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
        (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
        new function to build static aggregates, to replace initialization call
        new function to build static aggregates, to replace initialization call
        when static initialization is desired.
        when static initialization is desired.
        (Freeze_Type): Generate a list controller for an access type whenever
        (Freeze_Type): Generate a list controller for an access type whenever
        its designated type has controlled anonymous access discriminants.
        its designated type has controlled anonymous access discriminants.
        (Build_Equivalent_Aggregate): New procedure to compute a static
        (Build_Equivalent_Aggregate): New procedure to compute a static
        aggregate to be used as default initialization for composite types,
        aggregate to be used as default initialization for composite types,
        instead of a generating a call to the initialization procedure for the
        instead of a generating a call to the initialization procedure for the
        type.
        type.
        (Build_Initialization_Call): When available, replace a call to the
        (Build_Initialization_Call): When available, replace a call to the
        initialization procedure with a copy of the equivalent static aggregate
        initialization procedure with a copy of the equivalent static aggregate
        for the type.
        for the type.
        (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
        (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
        declarations for objects of a class-wide interface type, rather than
        declarations for objects of a class-wide interface type, rather than
        just identifiers, to prevent visibility problems.
        just identifiers, to prevent visibility problems.
        (Expand_N_Object_Declaration): When expanding the declaration for an
        (Expand_N_Object_Declaration): When expanding the declaration for an
        object of a class-wide interface type, preserve the homonym chain of
        object of a class-wide interface type, preserve the homonym chain of
        the original entity before exchanging it with that of the generated
        the original entity before exchanging it with that of the generated
        renaming declaration.
        renaming declaration.
        (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
        (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
        active, because there is no way to handle the exception.
        active, because there is no way to handle the exception.
        (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
        (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
        to do a minimum decoration of the Access_Disp_Table list.
        to do a minimum decoration of the Access_Disp_Table list.
        (Expand_Record_Controller): Avoid the addition of the controller between
        (Expand_Record_Controller): Avoid the addition of the controller between
        the component containing the tag of a secondary dispatch table and its
        the component containing the tag of a secondary dispatch table and its
        adjacent component that stores the offset to the base of the object.
        adjacent component that stores the offset to the base of the object.
        This latter component is only generated when the parent type has
        This latter component is only generated when the parent type has
        discriminants ---documented in Add_Interface_Tag_Components).
        discriminants ---documented in Add_Interface_Tag_Components).
        (Apply_Array_Size_Check): Removed, no longer needed.
        (Apply_Array_Size_Check): Removed, no longer needed.
        (Expand_N_Full_Type_Declaration): If the type has anonymous access
        (Expand_N_Full_Type_Declaration): If the type has anonymous access
        components, create a Master_Entity for it only if it contains tasks.
        components, create a Master_Entity for it only if it contains tasks.
        (Build_Init_Procedure): Suppress the tag assignment compiling under
        (Build_Init_Procedure): Suppress the tag assignment compiling under
        no run-time mode.
        no run-time mode.
        (Freeze_Record_Type): Remove code associated with creation of dispatch
        (Freeze_Record_Type): Remove code associated with creation of dispatch
        table.
        table.
        (Init_Secondary_Tags): Update type of actuals when generating calls to
        (Init_Secondary_Tags): Update type of actuals when generating calls to
        Ada.Tags.Set_Offset_To_Top
        Ada.Tags.Set_Offset_To_Top
        (Stream_Operation_OK): Disable use of streams compiling under no
        (Stream_Operation_OK): Disable use of streams compiling under no
        run-time mode
        run-time mode
        (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
        (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
        if Has_Init_Expression set.
        if Has_Init_Expression set.
        (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
        (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
        Register_Primitive, which provides the same functionality.
        Register_Primitive, which provides the same functionality.
        (Requires_Init_Proc): Return false in case of interface types.
        (Requires_Init_Proc): Return false in case of interface types.
        (Add_Secondary_Tables): Use the new attribute Related_Interface to
        (Add_Secondary_Tables): Use the new attribute Related_Interface to
        cleanup the code.
        cleanup the code.
        (Predefined_Primitive_Freeze): Do not assume that an internal entity
        (Predefined_Primitive_Freeze): Do not assume that an internal entity
        is always associated with a predefined primitive because the internal
        is always associated with a predefined primitive because the internal
        entities associated with interface types are not predefined primitives.
        entities associated with interface types are not predefined primitives.
        Therefore, the call to Is_Internal is replaced by a call to the
        Therefore, the call to Is_Internal is replaced by a call to the
        function Is_Predefined_Dispatching_Operation.
        function Is_Predefined_Dispatching_Operation.
        (Make_Eq_If): When generating the list of comparisons for the
        (Make_Eq_If): When generating the list of comparisons for the
        components of a given variant, omit the controller component that is
        components of a given variant, omit the controller component that is
        present if the variant has controlled components.
        present if the variant has controlled components.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Hristian Kirtchev  
            Hristian Kirtchev  
            Bob Duff  
            Bob Duff  
        * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
        * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
        handle the creation of finalization lists and calls for nested
        handle the creation of finalization lists and calls for nested
        coextensions when the root of the chains is part of a return statement.
        coextensions when the root of the chains is part of a return statement.
        (Inside_A_Return_Statement): New function inside Complete_Coextension_
        (Inside_A_Return_Statement): New function inside Complete_Coextension_
        Finalization.
        Finalization.
        (Expand_Record_Equality): Skip components that are interface types.
        (Expand_Record_Equality): Skip components that are interface types.
        (Displace_Allocator_Pointer): Add missing support for interface subtypes
        (Displace_Allocator_Pointer): Add missing support for interface subtypes
        (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
        (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
        with Rewrite_Coextension. Change the condition for detecting coextension
        with Rewrite_Coextension. Change the condition for detecting coextension
        root nodes.
        root nodes.
        (Is_Local_Access_Discriminant): Removed.
        (Is_Local_Access_Discriminant): Removed.
        (Rewrite_Coextension): New routine which rewrites a static coextension
        (Rewrite_Coextension): New routine which rewrites a static coextension
        as a temporary and uses its unrestricted access in the construction of
        as a temporary and uses its unrestricted access in the construction of
        the outer object.
        the outer object.
        (Complete_Coextension_Finalization): New routine. Generate finalization
        (Complete_Coextension_Finalization): New routine. Generate finalization
        attachment calls to all delayed coextensions.
        attachment calls to all delayed coextensions.
        (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
        (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
        the allocator is not a coextension itself and has delayed coextensions.
        the allocator is not a coextension itself and has delayed coextensions.
        If the current allocator is controlled, but also a coextension, delay
        If the current allocator is controlled, but also a coextension, delay
        the generation of the finalization attachment call.
        the generation of the finalization attachment call.
        Rename local variable "Node" to "Nod" in order to avoid confusion with
        Rename local variable "Node" to "Nod" in order to avoid confusion with
        "Elists.Node".
        "Elists.Node".
        (Expand_Allocator_Expression): Call Adjust for initialized allocators of
        (Expand_Allocator_Expression): Call Adjust for initialized allocators of
        limited types that are not inherently limited. Such an allocator is
        limited types that are not inherently limited. Such an allocator is
        illegal, but is generated by the expander for a return statement, to
        illegal, but is generated by the expander for a return statement, to
        copy the result onto the secondary stack. This is the only case where a
        copy the result onto the secondary stack. This is the only case where a
        limited object can be copied. Generate code to displace the pointer
        limited object can be copied. Generate code to displace the pointer
        to the object if the qualified expression is a class-wide interface
        to the object if the qualified expression is a class-wide interface
        object. Such displacement was missing and hence the copy of the object
        object. Such displacement was missing and hence the copy of the object
        was wrong.
        was wrong.
        (Apply_Accessibility_Check): Handle allocated objects initialized in
        (Apply_Accessibility_Check): Handle allocated objects initialized in
        place.
        place.
        (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
        (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
        and Expand_Allocator_Expression. Allocating class-wide interface objects
        and Expand_Allocator_Expression. Allocating class-wide interface objects
        this routine displaces the pointer to the allocated object to reference
        this routine displaces the pointer to the allocated object to reference
        the component referencing the corresponding secondary dispatch table.
        the component referencing the corresponding secondary dispatch table.
        Expand_Allocator_Expression): Add missing support to allocate class-wide
        Expand_Allocator_Expression): Add missing support to allocate class-wide
        interface objects initialized with a qualified expression.
        interface objects initialized with a qualified expression.
        (Get_Allocator_Final_List): Test for an anonymous access type that is a
        (Get_Allocator_Final_List): Test for an anonymous access type that is a
        function result type, and use the finalization list associated with the
        function result type, and use the finalization list associated with the
        function scope in that case (such an anonymous type should not be
        function scope in that case (such an anonymous type should not be
        treated like an access parameter's type).
        treated like an access parameter's type).
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
            Javier Miranda  
            Javier Miranda  
        * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
        * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
        controlled type, use Make_Handler_For_Ctrl_Operation to construct the
        controlled type, use Make_Handler_For_Ctrl_Operation to construct the
        required exception handler.
        required exception handler.
        (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
        (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
        properly the case of a function whose return type is a limited
        properly the case of a function whose return type is a limited
        class-wide interface type. Modify the code of the accessibility
        class-wide interface type. Modify the code of the accessibility
        check to handle class-wide interface objects. In this case we need to
        check to handle class-wide interface objects. In this case we need to
        displace "this" to reference the primary dispatch table to get access
        displace "this" to reference the primary dispatch table to get access
        to the TSD of the object (to evaluate its accessibility level).
        to the TSD of the object (to evaluate its accessibility level).
        (Expand_N_Extended_Return_Statement): Test for a tagged result type
        (Expand_N_Extended_Return_Statement): Test for a tagged result type
        rather than a controlling result as one of the conditions for
        rather than a controlling result as one of the conditions for
        generating tests of the implicit BIP_Alloc_Form formal. The
        generating tests of the implicit BIP_Alloc_Form formal. The
        initialization assignment is also handled according to whether the
        initialization assignment is also handled according to whether the
        result is tagged instead of controlling.
        result is tagged instead of controlling.
        In the case where the init assignment is inserted in the "then" part of
        In the case where the init assignment is inserted in the "then" part of
        the allocation conditional, rewrite the target to be a dereference of
        the allocation conditional, rewrite the target to be a dereference of
        the implicit BIP_Object_Access formal.
        the implicit BIP_Object_Access formal.
        If the returned value is unconstrained and created on the secondary
        If the returned value is unconstrained and created on the secondary
        stack, mark the enclosing block and function so that the secondary
        stack, mark the enclosing block and function so that the secondary
        stack is not reclaimed on return.
        stack is not reclaimed on return.
        Treat returns from functions with controlling results similarly to
        Treat returns from functions with controlling results similarly to
        returns from functions with unconstrained result subtypes.
        returns from functions with unconstrained result subtypes.
        If the object returned is unconstrained, and an allocator must be
        If the object returned is unconstrained, and an allocator must be
        created for it, analyze the allocator once the block for the extended
        created for it, analyze the allocator once the block for the extended
        return is installed, to ensure that finalizable components
        return is installed, to ensure that finalizable components
        of the expression use the proper finalization list. Guard the call to
        of the expression use the proper finalization list. Guard the call to
        Move_Final_List with a check that there is something to finalize.
        Move_Final_List with a check that there is something to finalize.
        (Make_Tag_Ctrl_Assignment): Use "old" handling
        (Make_Tag_Ctrl_Assignment): Use "old" handling
        of controlled type assignment for virtual machines, since new code uses
        of controlled type assignment for virtual machines, since new code uses
        unsupported features (such as direct access to bytes in memory).
        unsupported features (such as direct access to bytes in memory).
2007-06-06  Gary Dismukes  
2007-06-06  Gary Dismukes  
            Ed Schonberg  
            Ed Schonberg  
        * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
        * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
        accessibility actual, check for the case of an aliased object that has
        accessibility actual, check for the case of an aliased object that has
        been rewritten as an Access attribute, and assign Prev to Prev_Orig so
        been rewritten as an Access attribute, and assign Prev to Prev_Orig so
        we fall into processing for the attribute rather than the name of the
        we fall into processing for the attribute rather than the name of the
        object.
        object.
        (Expand_Inline_Call): If an actual is a literal, and the corresponding
        (Expand_Inline_Call): If an actual is a literal, and the corresponding
        formal has its address taken in the body, create a temporary to capture
        formal has its address taken in the body, create a temporary to capture
        value.  If the return type is a limited interface, do not treat the
        value.  If the return type is a limited interface, do not treat the
        return value as Controlled.
        return value as Controlled.
        (Is_In_Place_Function):  If the return type is a limited interface,
        (Is_In_Place_Function):  If the return type is a limited interface,
        treat as returning in place. The actual returned object may not always
        treat as returning in place. The actual returned object may not always
        be limited, but the caller has to assume that it is returned in place.
        be limited, but the caller has to assume that it is returned in place.
        (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
        (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
        context of an allocator, use the correct finalization chain (that is,
        context of an allocator, use the correct finalization chain (that is,
        the chain belonging to the access type, rather than the chain belonging
        the chain belonging to the access type, rather than the chain belonging
        to the current scope).
        to the current scope).
        (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
        (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
        result type rather than a controlling result as a precondition for
        result type rather than a controlling result as a precondition for
        adding an allocation form actual to a build-in-place call.
        adding an allocation form actual to a build-in-place call.
        (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
        (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
        (Freeze_Subprogram): Code cleanup. Remove all the code that register the
        (Freeze_Subprogram): Code cleanup. Remove all the code that register the
        primitive in the dispatch tables. This work is now done by Make_DT when
        primitive in the dispatch tables. This work is now done by Make_DT when
        the type is frozen.
        the type is frozen.
        (Register_Predefined_DT_Entry): Removed.
        (Register_Predefined_DT_Entry): Removed.
        (Add_Return): If end label is not present, use sloc of last statement
        (Add_Return): If end label is not present, use sloc of last statement
        for generated return statement in procedure, for better gdb behavior
        for generated return statement in procedure, for better gdb behavior
        on expanded code.
        on expanded code.
        (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
        (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
        object address nodes to ensure proper processing by routines like
        object address nodes to ensure proper processing by routines like
        Insert_After*.
        Insert_After*.
        (Expand_Call): Fix generation of validity check for parameter
        (Expand_Call): Fix generation of validity check for parameter
        (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
        (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
        the allocation form parameter if the result subtype is constrained,
        the allocation form parameter if the result subtype is constrained,
        except when the function has a controlling result.
        except when the function has a controlling result.
        (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
        (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
        rather than Is_Controlled and Has_Controlled_Component, since we want to
        rather than Is_Controlled and Has_Controlled_Component, since we want to
        include class-wide result types in this treatment. Also test for a
        include class-wide result types in this treatment. Also test for a
        controlling result, since that also requires passing a finalization
        controlling result, since that also requires passing a finalization
        list.
        list.
        (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
        (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
        even when the result subtype is constrained, to handle calls involving
        even when the result subtype is constrained, to handle calls involving
        controlling results.
        controlling results.
        (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
        (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
        is now called even when the result subtype is constrained, to handle
        is now called even when the result subtype is constrained, to handle
        calls involving controlling results.
        calls involving controlling results.
        (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
        (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
        on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
        on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
        now performs the test).
        now performs the test).
        (Make_Build_In_Place_Call_In_Object_Declaration):
        (Make_Build_In_Place_Call_In_Object_Declaration):
        Add_Alloc_Form_Actual_* is now called even when the result subtype is
        Add_Alloc_Form_Actual_* is now called even when the result subtype is
        constrained, to handle calls involving controlling results.
        constrained, to handle calls involving controlling results.
        (Add_Return): Accomodate rewritten pattern from local raise to goto
        (Add_Return): Accomodate rewritten pattern from local raise to goto
        transformation, so that we still recognize an transfer statement
        transformation, so that we still recognize an transfer statement
        and do the right thing here in that case.
        and do the right thing here in that case.
        (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
        (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
        and end of subprogram code.
        and end of subprogram code.
        (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
        (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
        support for primitives that are functions (without formals) with a
        support for primitives that are functions (without formals) with a
        controlling result.
        controlling result.
        (Inherited_From_Formal): If the actual subtype has not generic parent
        (Inherited_From_Formal): If the actual subtype has not generic parent
        type, it is not an actual for a formal derived type, and there is no
        type, it is not an actual for a formal derived type, and there is no
        operation to inherit from the formal.
        operation to inherit from the formal.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Thomas Quinot  
            Thomas Quinot  
        * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
        * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
        inserted cleanup code appropriately for GDB use.
        inserted cleanup code appropriately for GDB use.
        (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
        (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
        exception handler for Deep_Adjust or Deep_Finalize.
        exception handler for Deep_Adjust or Deep_Finalize.
        (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
        (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
        Raise_From_Controlled_Operation is available, use a call to that
        Raise_From_Controlled_Operation is available, use a call to that
        subprogram instead of a plain "raise Program_Error" node to raise
        subprogram instead of a plain "raise Program_Error" node to raise
        Program_Error if an exception is propagated from an Adjust or Finalize
        Program_Error if an exception is propagated from an Adjust or Finalize
        operation.
        operation.
        (Insert_Actions_In_Scope_Around): If the statement to be wrapped
        (Insert_Actions_In_Scope_Around): If the statement to be wrapped
        appears in the optional statement list of a triggering alternative, the
        appears in the optional statement list of a triggering alternative, the
        scope actions can be inserted directly there, and not in the list that
        scope actions can be inserted directly there, and not in the list that
        includes the asynchronous select itself.
        includes the asynchronous select itself.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
            Hristian Kirtchev  
            Hristian Kirtchev  
        * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
        * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
        generated exception handler appropriately when debugging generated code.
        generated exception handler appropriately when debugging generated code.
        Deal properly with No_Exception_Propagation restriction mode.
        Deal properly with No_Exception_Propagation restriction mode.
        (Expand_N_Abort_Statement): Add an unchecked type conversion from
        (Expand_N_Abort_Statement): Add an unchecked type conversion from
        System.Address to System.Tasking.Task_Id when processing the result of
        System.Address to System.Tasking.Task_Id when processing the result of
        the predefined primitive _disp_get_task_id.
        the predefined primitive _disp_get_task_id.
        (Expand_N_Asynchronous_Select): Clarify comment.
        (Expand_N_Asynchronous_Select): Clarify comment.
        (Expand_N_Protected_Type_Declaration): Minor code cleanup.
        (Expand_N_Protected_Type_Declaration): Minor code cleanup.
        (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
        (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
        (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
        (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
        (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
        (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
        privals and for generated call to Complete_Entry_Body, for better gdb
        privals and for generated call to Complete_Entry_Body, for better gdb
        behavior.
        behavior.
        (Copy_Result_Type): Utility to construct a parameter and result profile
        (Copy_Result_Type): Utility to construct a parameter and result profile
        for protected functions whose return type is an anonymous access to
        for protected functions whose return type is an anonymous access to
        subprogram.
        subprogram.
        (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
        (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
        call the above.
        call the above.
        (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
        (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
        point when the local-raise-to-goto transformation has taken place.
        point when the local-raise-to-goto transformation has taken place.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Nicolas Setton  
            Nicolas Setton  
        * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
        * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
        functionality when the backend is generating code.
        functionality when the backend is generating code.
        Otherwise any serious error
        Otherwise any serious error
        reported by the backend calling the frontend routine Error_Msg
        reported by the backend calling the frontend routine Error_Msg
        changes the Compilation_Mode to Check_Semantics, disables the
        changes the Compilation_Mode to Check_Semantics, disables the
        functionality of this routine and causes the generation of
        functionality of this routine and causes the generation of
        spureous additional errors.
        spureous additional errors.
        * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
        * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
        debugging information now generated by the compiler for fat-pointer
        debugging information now generated by the compiler for fat-pointer
        types.
        types.
        Document the contents of DW_AT_producer in the GNAT Vendor extensions to
        Document the contents of DW_AT_producer in the GNAT Vendor extensions to
        DWARF2/3.
        DWARF2/3.
        Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
        Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
        * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
        PolyORB_Support.Build_Subprogram_Receiving_Stubs):
        PolyORB_Support.Build_Subprogram_Receiving_Stubs):
        For a remote call to a function with a classwide return type, apply an
        For a remote call to a function with a classwide return type, apply an
        E.4(18) check to the returned value.
        E.4(18) check to the returned value.
        (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
        (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
        stream attributes of the designated type of an RACW, as they are not
        stream attributes of the designated type of an RACW, as they are not
        dispatching primitive operations.
        dispatching primitive operations.
2007-06-06  Geert Bosch  
2007-06-06  Geert Bosch  
        * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
        * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
        negative literal
        negative literal
        (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
        (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
        positive
        positive
        (Do_Divide_Fixed_Universal): Handle case of negative Frac.
        (Do_Divide_Fixed_Universal): Handle case of negative Frac.
        (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
        (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
        positive
        positive
        (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
        (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
        * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
        * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
        attribute compiling package Ada.Tags under No_Run_Time_Mode.
        attribute compiling package Ada.Tags under No_Run_Time_Mode.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
        * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
        * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
        deallocation of class-wide interface objects.
        deallocation of class-wide interface objects.
        (Expand_Dispatching_Constructor_Call): Take into account that if the
        (Expand_Dispatching_Constructor_Call): Take into account that if the
        result of the dispatching constructor is an interface type, the
        result of the dispatching constructor is an interface type, the
        function returns a class-wide interface type; otherwise the returned
        function returns a class-wide interface type; otherwise the returned
        object would be actual. The frontend previously accepted returning
        object would be actual. The frontend previously accepted returning
        interface types because Expand_Interface_Actuals silently performed
        interface types because Expand_Interface_Actuals silently performed
        the management of the returned type "as if" it were a class-wide
        the management of the returned type "as if" it were a class-wide
        interface type.
        interface type.
        (Expand_Dispatching_Constructor_Call): Replace call to
        (Expand_Dispatching_Constructor_Call): Replace call to
        Make_DT_Access_Action by direct call to Make_Function_Call.
        Make_DT_Access_Action by direct call to Make_Function_Call.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
        * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
        compute masking constant, since we now set Esize properly to the
        compute masking constant, since we now set Esize properly to the
        underlying size.
        underlying size.
        (Create_Packed_Array_Type): Set proper Esize value adjusted as required
        (Create_Packed_Array_Type): Set proper Esize value adjusted as required
        to match the alignment.
        to match the alignment.
        (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
        (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
        packed arrays of 8 bits or less.
        packed arrays of 8 bits or less.
        * freeze.adb (Freeze_Entity): When freezing the formals of a
        * freeze.adb (Freeze_Entity): When freezing the formals of a
        subprogram, freeze the designated type of a parameter of an access type
        subprogram, freeze the designated type of a parameter of an access type
        only if it is an access parameter.
        only if it is an access parameter.
        Increase size of C convention enumeration object
        Increase size of C convention enumeration object
        (Freeze_Entity, array type case): Make sure Esize value is properly
        (Freeze_Entity, array type case): Make sure Esize value is properly
        adjusted for the alignment if it is known.
        adjusted for the alignment if it is known.
        (Freeze_Entity, array type case): When checking bit packed arrays for
        (Freeze_Entity, array type case): When checking bit packed arrays for
        the size being incorrect, check RM_Size, not Esize.
        the size being incorrect, check RM_Size, not Esize.
        (Freeze_Record_Type): Check for bad discriminated record convention
        (Freeze_Record_Type): Check for bad discriminated record convention
        (In_Exp_Body): Return true if the body is generated for a subprogram
        (In_Exp_Body): Return true if the body is generated for a subprogram
        renaming, either an attribute renaming or a renaming as body.
        renaming, either an attribute renaming or a renaming as body.
        (Check_Itype): If the designated type of an anonymous access component
        (Check_Itype): If the designated type of an anonymous access component
        is a non-protected subprogram type, indicate that it is frozen, to
        is a non-protected subprogram type, indicate that it is frozen, to
        prevent out-of-scope freeze node at some subsequent call.
        prevent out-of-scope freeze node at some subsequent call.
        (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
        (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
        only if the subprogram is neither imported nor exported, as well as the
        only if the subprogram is neither imported nor exported, as well as the
        NCA descriptor class if the subprogram is exported.
        NCA descriptor class if the subprogram is exported.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Arnaud Charlet  
            Arnaud Charlet  
            Robert Dewar  
            Robert Dewar  
            Gary Dismukes  
            Gary Dismukes  
        * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
        * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
        default initialization on an imported object, when there is no
        default initialization on an imported object, when there is no
        initialization call generated for it.
        initialization call generated for it.
        (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
        (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
        restriction
        restriction
        * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
        * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
        Static_Elaboration_Desired.
        Static_Elaboration_Desired.
        Remove pragma Thread_Body.
        Remove pragma Thread_Body.
        Implement a new pragma No_Body
        Implement a new pragma No_Body
        Removes the Explicit_Overriding pragma
        Removes the Explicit_Overriding pragma
        Remove Optional_Overriding pragma
        Remove Optional_Overriding pragma
        (Prag): Deal with Universal_Aliasing.
        (Prag): Deal with Universal_Aliasing.
        (Name_CIL, Name_CIL_Constructor, Convention_CIL,
        (Name_CIL, Name_CIL_Constructor, Convention_CIL,
        Pragma_CIL_Constructor): New names.
        Pragma_CIL_Constructor): New names.
        * sem_cat.adb (Validate_Object_Declaration): An initialization that
        * sem_cat.adb (Validate_Object_Declaration): An initialization that
        uses the equivalent aggregate of a type must be treated as an implicit
        uses the equivalent aggregate of a type must be treated as an implicit
        initialization.
        initialization.
        (Get_Categorization): Check a unit for pragma Preelaborate only if it
        (Get_Categorization): Check a unit for pragma Preelaborate only if it
        has none of the other categories.
        has none of the other categories.
        (Process_Import_Or_Interface_Pragma): Report an error for an attempt
        (Process_Import_Or_Interface_Pragma): Report an error for an attempt
        to apply Import to an object renaming declaration.
        to apply Import to an object renaming declaration.
        * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
        * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
        from a C++ class should be declared as limited and that it will be
        from a C++ class should be declared as limited and that it will be
        considererd limited.
        considererd limited.
        (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
        (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
        should be declared as limited and that it will be considererd limited.
        should be declared as limited and that it will be considererd limited.
        (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
        (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
        (Analyze_Pragma, case Export): Diagnose export of enumeration literal
        (Analyze_Pragma, case Export): Diagnose export of enumeration literal
        (Analyze_Pragma): Deal with Universal_Aliasing.
        (Analyze_Pragma): Deal with Universal_Aliasing.
        (Sig_Flags): Likewise.
        (Sig_Flags): Likewise.
        (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
        (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
        (Overflow_Checks_Unsuppressed): New flag.
        (Overflow_Checks_Unsuppressed): New flag.
        (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
        (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
        (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
        (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
        case of JVM or .NET targets, and compiling user code.
        case of JVM or .NET targets, and compiling user code.
        Add debugging convenience routine rv
        Add debugging convenience routine rv
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
        * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
        are interface type.
        are interface type.
        (Build_Elementary_Input_Call): For floating-point use right type in the
        (Build_Elementary_Input_Call): For floating-point use right type in the
        absence of strange size or stream size clauses.
        absence of strange size or stream size clauses.
        (Build_Elementary_Write_Call): Same fix
        (Build_Elementary_Write_Call): Same fix
        (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
        (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
        set to value that does not match base type size.
        set to value that does not match base type size.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
        * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
        * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
        object of a limited type can be initialized with a call to a function
        object of a limited type can be initialized with a call to a function
        that returns in place. If the limited type has unknown discriminants,
        that returns in place. If the limited type has unknown discriminants,
        and the underlying type is a constrained composite type, build an actual
        and the underlying type is a constrained composite type, build an actual
        subtype from the function call, as is done for private types.
        subtype from the function call, as is done for private types.
        (Side_Effect_Free): An expression that is the renaming of an object or
        (Side_Effect_Free): An expression that is the renaming of an object or
        whose prefix is the renaming of a object, is not side-effect free
        whose prefix is the renaming of a object, is not side-effect free
        because it may be assigned through the renaming and its value must be
        because it may be assigned through the renaming and its value must be
        captured in a temporary.
        captured in a temporary.
        (Has_Controlled_Coextensions): New routine.
        (Has_Controlled_Coextensions): New routine.
        (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
        (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
        as is done for other limited types.
        as is done for other limited types.
        (Non_Limited_Designated_Type): new predicate.
        (Non_Limited_Designated_Type): new predicate.
        (Make_CW_Equivalent_Type): Modified to handle class-wide interface
        (Make_CW_Equivalent_Type): Modified to handle class-wide interface
        objects.
        objects.
        Remove all handling of with_type clauses.
        Remove all handling of with_type clauses.
        * par-ch10.adb: Remove all handling of with_type clauses.
        * par-ch10.adb: Remove all handling of with_type clauses.
        * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
        * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
        checksum if the main source could not be parsed.
        checksum if the main source could not be parsed.
        (Loat_Unit): When processing a child unit, determine properly whether
        (Loat_Unit): When processing a child unit, determine properly whether
        the parent unit is a renaming when the parent is itself a child unit.
        the parent unit is a renaming when the parent is itself a child unit.
        Remove handling of with_type clauses.
        Remove handling of with_type clauses.
        * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
        * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
        (Set_Is_Static_Coextension): New procedure.
        (Set_Is_Static_Coextension): New procedure.
        (Has_Local_Raise): New function
        (Has_Local_Raise): New function
        (Set_Has_Local_Raise): New procedure
        (Set_Has_Local_Raise): New procedure
        (Renaming_Exception): New field
        (Renaming_Exception): New field
        (Has_Init_Expression): New flag
        (Has_Init_Expression): New flag
        (Delay_Finalize_Attach): Remove because flag is obsolete.
        (Delay_Finalize_Attach): Remove because flag is obsolete.
        (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
        (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
        Remove all handling of with_type clauses.
        Remove all handling of with_type clauses.
        (Exception_Junk): Can now be set in N_Block_Statement
        (Exception_Junk): Can now be set in N_Block_Statement
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
            Robert Dewar  
            Robert Dewar  
        * frontend.adb (Frontend): Return immediately if the main source could
        * frontend.adb (Frontend): Return immediately if the main source could
        not be parsed, because of preprocessing errors.
        not be parsed, because of preprocessing errors.
        * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
        * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
        (Gnat1drv): Exit with errors if the main source could not be parsed,
        (Gnat1drv): Exit with errors if the main source could not be parsed,
        because of preprocessing errors.
        because of preprocessing errors.
        (Check_Rep_Info): New procedure
        (Check_Rep_Info): New procedure
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * g-hesorg.ads, g-heasor.ads,
        * g-hesorg.ads, g-heasor.ads,
        g-busorg.ads, g-bubsor.ads: Update documentation
        g-busorg.ads, g-bubsor.ads: Update documentation
        GNAT.Heap/Bubble_Sort_G is now pure
        GNAT.Heap/Bubble_Sort_G is now pure
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
        * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * g-comlin.ads, g-comlin.adb:
        * g-comlin.ads, g-comlin.adb:
        Add new warning for renaming of function return objects
        Add new warning for renaming of function return objects
        * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
        * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
        (Tree_Read): Use size of object instead of type'object_size, since the
        (Tree_Read): Use size of object instead of type'object_size, since the
        latter is incorrect for packed array types.
        latter is incorrect for packed array types.
        (Tree_Write): Same fix
        (Tree_Write): Same fix
        * opt.ads: Add new warning for renaming of function return objects
        * opt.ads: Add new warning for renaming of function return objects
        (Generating_Code): New boolean variable used to indicate that the
        (Generating_Code): New boolean variable used to indicate that the
        frontend as finished its work and has called the backend to process
        frontend as finished its work and has called the backend to process
        the tree and generate the object file.
        the tree and generate the object file.
        (GCC_Version): Is now private
        (GCC_Version): Is now private
        (Static_Dispatch_Tables): New constant declaration.
        (Static_Dispatch_Tables): New constant declaration.
        (Overflow_Checks_Unsuppressed): New flag.
        (Overflow_Checks_Unsuppressed): New flag.
        (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
        (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
        (List_Closure): New flag for gnatbind (-R)
        (List_Closure): New flag for gnatbind (-R)
        Zero_Formatting: New flag for gnatbind (-Z)
        Zero_Formatting: New flag for gnatbind (-Z)
        (Special_Exception_Package_Used): New flag.
        (Special_Exception_Package_Used): New flag.
        (Warn_On_Unrepped_Components): New flag.
        (Warn_On_Unrepped_Components): New flag.
        * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
        * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
        unit is a compilation unit, rather than relying on its scope, so that
        unit is a compilation unit, rather than relying on its scope, so that
        Standard can be renamed.
        Standard can be renamed.
        (Analyze_Object_Renaming): Add new warning for renaming of function
        (Analyze_Object_Renaming): Add new warning for renaming of function
        return objects.
        return objects.
        Also reject attempt to rename function return object in Ada 83 mode.
        Also reject attempt to rename function return object in Ada 83 mode.
        (Attribute_Renaming): In case of tagged types, add the body of the
        (Attribute_Renaming): In case of tagged types, add the body of the
        generated function to the freezing actions of the type.
        generated function to the freezing actions of the type.
        (Find_Type): A protected type is visible right after the reserved word
        (Find_Type): A protected type is visible right after the reserved word
        "is" is encountered in its type declaration. Set the entity and type
        "is" is encountered in its type declaration. Set the entity and type
        rather than emitting an error message.
        rather than emitting an error message.
        (New_Scope): Properly propagate Discard_Names to inner scopes
        (New_Scope): Properly propagate Discard_Names to inner scopes
        (Check_Nested_Access): New procedure.
        (Check_Nested_Access): New procedure.
        (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
        (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
        * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
        * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
        Add new warning for renaming of function return objects
        Add new warning for renaming of function return objects
        (Check_References): Suppress warnings for objects whose type or
        (Check_References): Suppress warnings for objects whose type or
        base type has Warnings suppressed.
        base type has Warnings suppressed.
        (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
        (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
        (Set_Warning_Switch): Include new -gnatwc in -gnatwa
        (Set_Warning_Switch): Include new -gnatwc in -gnatwa
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
            Emmanuel Briot  
            Emmanuel Briot  
            Olivier Hainque  
            Olivier Hainque  
        * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
        * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
        absolute value of Header.Block_Size when displaying the freed physical
        absolute value of Header.Block_Size when displaying the freed physical
        memory in traces.
        memory in traces.
        (Allocate): Compute Storage_Address using Integer_Address, not
        (Allocate): Compute Storage_Address using Integer_Address, not
        Storage_Offset, because the range of Storage_Offset may not be large
        Storage_Offset, because the range of Storage_Offset may not be large
        enough.
        enough.
        (Configure): New parameter Low_Level_Traces
        (Configure): New parameter Low_Level_Traces
        (Allocate, Deallocation, Free_Physically): Added low-level traces
        (Allocate, Deallocation, Free_Physically): Added low-level traces
        (Configure): new parameter Errors_To_Stdout.
        (Configure): new parameter Errors_To_Stdout.
        (Output_File): new subprogram
        (Output_File): new subprogram
        (Deallocate, Dereference): Send error messages to the proper stream
        (Deallocate, Dereference): Send error messages to the proper stream
        (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
        (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
        documented. Previous code would send it to the current output file
        documented. Previous code would send it to the current output file
        defined in GNAT.IO, which might not be stdout
        defined in GNAT.IO, which might not be stdout
        (Is_Valid): Adjust comment to mention that a positive reply means that
        (Is_Valid): Adjust comment to mention that a positive reply means that
        Header_Of may be used to retrieve the allocation header associated with
        Header_Of may be used to retrieve the allocation header associated with
        the subprogram Storage address argument. Return False early if this
        the subprogram Storage address argument. Return False early if this
        address argument is misaligned.
        address argument is misaligned.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
        * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
        switch -P
        switch -P
        (ASIS_Main): New global variable
        (ASIS_Main): New global variable
        (Get_Closure): New procedure
        (Get_Closure): New procedure
        (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
        (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
        check, metric or pretty. Call Get_Closure in this case.
        check, metric or pretty. Call Get_Closure in this case.
        (Check_Files): For GNAT LIST, check all sources of all projects when
        (Check_Files): For GNAT LIST, check all sources of all projects when
        All_Projects is True.
        All_Projects is True.
        (GNATCmd): Accept -U for GNAT LIST
        (GNATCmd): Accept -U for GNAT LIST
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
        * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
        has been specified
        has been specified
        Correct error message when invocation of the linker fails
        Correct error message when invocation of the linker fails
        Add explicit size clause for the C imported variables
        Add explicit size clause for the C imported variables
        Object_List_File_Supported and Using_GNU_Linker to emphasize that
        Object_List_File_Supported and Using_GNU_Linker to emphasize that
        we expect char size.
        we expect char size.
        Read target parameters earlier, since this is needed to set
        Read target parameters earlier, since this is needed to set
        Target_VM properly. Also do not use -static/shared-libgcc for non GCC
        Target_VM properly. Also do not use -static/shared-libgcc for non GCC
        targets.
        targets.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * gnatls.adb:
        * gnatls.adb:
        Add 3 spaces before the default project directory when displaying
        Add 3 spaces before the default project directory when displaying
        the project search path.
        the project search path.
        Add new command line switch '-l' to display license information.
        Add new command line switch '-l' to display license information.
2007-06-06  Vasiliy Fofanov  
2007-06-06  Vasiliy Fofanov  
        * gmem.c: Add support for timestamps on memory operations.
        * gmem.c: Add support for timestamps on memory operations.
        * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
        * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
        operations (not used currently, just foundation for future
        operations (not used currently, just foundation for future
        enhancements). Add possibility to perform full dump of gmem.out file.
        enhancements). Add possibility to perform full dump of gmem.out file.
        (Print_Back_Traces): Declare accesses to root arrays constants since
        (Print_Back_Traces): Declare accesses to root arrays constants since
        they aren't modified.
        they aren't modified.
        (Print_Back_Traces): allocate root arrays on the heap rather than stack.
        (Print_Back_Traces): allocate root arrays on the heap rather than stack.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * gnatsym.adb: Update Copyright notice
        * gnatsym.adb: Update Copyright notice
        (Parse_Cmd_Line): Accept new switch -D
        (Parse_Cmd_Line): Accept new switch -D
        (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
        (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
         file.
         file.
        * prj.ads (Policy): New policy Direct
        * prj.ads (Policy): New policy Direct
        (Yes_No_Unknown): New enumeration type
        (Yes_No_Unknown): New enumeration type
        (Project_Data): New component Libgnarl_Needed
        (Project_Data): New component Libgnarl_Needed
        * prj-nmsc.adb (Check_For_Source): When recording a source file make
        * prj-nmsc.adb (Check_For_Source): When recording a source file make
        use the untouched pathname casing.
        use the untouched pathname casing.
        (Get_Directories): Ensure that the Display_Exec_Directory is using the
        (Get_Directories): Ensure that the Display_Exec_Directory is using the
        proper casing on non case-sensitive platforms like Windows.
        proper casing on non case-sensitive platforms like Windows.
        (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
        (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
        on all platforms, as it is not possible to know which one is allowed
        on all platforms, as it is not possible to know which one is allowed
        before processing the project files.
        before processing the project files.
        (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
        (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
        specified when symbol policy is Direct. Check that when there is a
        specified when symbol policy is Direct. Check that when there is a
        symbol file defined (either by default or with attribute
        symbol file defined (either by default or with attribute
        Library_Symbol_File) it is not the same as the reference symbol file.
        Library_Symbol_File) it is not the same as the reference symbol file.
        (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
        (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
        (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
        (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
        extending projects.
        extending projects.
        (Record_Ada_Source): Record a source that has been locally removed in an
        (Record_Ada_Source): Record a source that has been locally removed in an
        imported project.
        imported project.
        * symbols.ads (Policy): New policy Direct
        * symbols.ads (Policy): New policy Direct
        * symbols-vms.adb (Initialize): Take new policy Direct in case
        * symbols-vms.adb (Initialize): Take new policy Direct in case
        statement
        statement
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
        * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
        Correct obvious bug (return Dir; instead of return Directory;).
        Correct obvious bug (return Dir; instead of return Directory;).
        (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
        (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * g-pehage.adb (Produce): Open output files in Binary mode, so that
        * g-pehage.adb (Produce): Open output files in Binary mode, so that
        they have UNIX line endings (LF only) even on Windows, and thus pass
        they have UNIX line endings (LF only) even on Windows, and thus pass
        all GNAT style checks.
        all GNAT style checks.
2007-06-06  Emmanuel Briot  
2007-06-06  Emmanuel Briot  
        * g-regpat.adb (Quote): Fix improper quoting of '.'
        * g-regpat.adb (Quote): Fix improper quoting of '.'
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
        * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
        default, set False on a per-runtime basis.
        default, set False on a per-runtime basis.
        (Need_Netdb_Buffer): New constant.
        (Need_Netdb_Buffer): New constant.
        * g-socket.ads, g-socket.adb: Import new package
        * g-socket.ads, g-socket.adb: Import new package
        GNAT.Sockets.Thin.Task_Safe_NetDB.
        GNAT.Sockets.Thin.Task_Safe_NetDB.
        (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
        (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
        binding to obtain proper message.
        binding to obtain proper message.
        (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
        (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
        Replace various occurrences of Arry (Arry'First)'Address with the
        Replace various occurrences of Arry (Arry'First)'Address with the
        equivalent Arry'Address (GNAT always follows implementation advice from
        equivalent Arry'Address (GNAT always follows implementation advice from
        13.3(14)).
        13.3(14)).
        (Get_Host_By_Address, Get_Host_By_Name,
        (Get_Host_By_Address, Get_Host_By_Name,
        Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
        Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
        instead, rely on platform-specific task safe netdb operations provided
        instead, rely on platform-specific task safe netdb operations provided
        by g-socthi.
        by g-socthi.
        * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
        * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
        parameter Process_Blocking_IO.
        parameter Process_Blocking_IO.
        (Host_Error_Messages): Add stub body.
        (Host_Error_Messages): Add stub body.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
        (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
        (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
        (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
        Safe_Getservbyport): Move functions into new child package
        Safe_Getservbyport): Move functions into new child package
        Task_Safe_NetDB.
        Task_Safe_NetDB.
        (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
        (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
        Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
        Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
        (In_Addr): Add alignment clause.
        (In_Addr): Add alignment clause.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * g-trasym.ads, g-traceb.ads: Update list of supported targets
        * g-trasym.ads, g-traceb.ads: Update list of supported targets
        Add note about symbolic traceback
        Add note about symbolic traceback
2007-06-06  Pascal Obry  
2007-06-06  Pascal Obry  
        * hostparm.ads (Normalized_CWD): Use the host directory separator
        * hostparm.ads (Normalized_CWD): Use the host directory separator
        instead of the hardcoded forward slash which is not the proper
        instead of the hardcoded forward slash which is not the proper
        character on Windows for example.
        character on Windows for example.
        (Java_VM): Removed.
        (Java_VM): Removed.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
            Arnaud Charlet  
            Arnaud Charlet  
        * a-clrefi.adb, a-clrefi.ads: New files
        * a-clrefi.adb, a-clrefi.ads: New files
        * impunit.adb: Add s-os_lib in the list of user visible units.
        * impunit.adb: Add s-os_lib in the list of user visible units.
        (Non_Imp_File_Names_95): Add a-clrefi to this list
        (Non_Imp_File_Names_95): Add a-clrefi to this list
        Remove obsolete run-time entries.
        Remove obsolete run-time entries.
        (Non_Imp_File_Names_05): Add Ada 2005 entries for:
        (Non_Imp_File_Names_05): Add Ada 2005 entries for:
         "a-exetim" -- Ada.Execution_Time
         "a-exetim" -- Ada.Execution_Time
         "a-extiti" -- Ada.Execution_Time.Timers
         "a-extiti" -- Ada.Execution_Time.Timers
        * mlib-prj.ads, mlib-prj.adb
        * mlib-prj.ads, mlib-prj.adb
        (Build_Library): Use untouched object dir and library dir. At the
        (Build_Library): Use untouched object dir and library dir. At the
        same time makes sure that the checks are done using the canonical
        same time makes sure that the checks are done using the canonical
        form. Removes hard-coded directory separator and use the proper host
        form. Removes hard-coded directory separator and use the proper host
        one instead.
        one instead.
        (Process_Project): Do not look in object directory to check if libgnarl
        (Process_Project): Do not look in object directory to check if libgnarl
        is needed for a library, if there is no object directory.
        is needed for a library, if there is no object directory.
        (Build_Library): Scan the ALI files to decide if libgnarl is needed for
        (Build_Library): Scan the ALI files to decide if libgnarl is needed for
        linking.
        linking.
        (Build_Library): When invoking gnatbind, use a response file if the
        (Build_Library): When invoking gnatbind, use a response file if the
        total size of the arguments is too large.
        total size of the arguments is too large.
        * Makefile.rtl: (g-sttsne): New object file.
        * Makefile.rtl: (g-sttsne): New object file.
        Add entry for a-clrefi, s-utf_32, System.Exceptions
        Add entry for a-clrefi, s-utf_32, System.Exceptions
        * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
        * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
        (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
        (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
        (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
        (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
        Change g-string to s-string, g-os_lib to s-os_lib
        Change g-string to s-string, g-os_lib to s-os_lib
        Change all g-utf_32 references to s-utf_32
        Change all g-utf_32 references to s-utf_32
2007-06-06  Tristan Gingold  
2007-06-06  Tristan Gingold  
            Olivier Hainque  
            Olivier Hainque  
        * init.c: Do not adjust IP of an imported VMS exception of ia64.
        * init.c: Do not adjust IP of an imported VMS exception of ia64.
        LIB$STOP is called to raise an exception and the IP of the exception
        LIB$STOP is called to raise an exception and the IP of the exception
        is the instruction right after the call.
        is the instruction right after the call.
        (__gnat_adjust_context_for_raise, AIX): Implement.
        (__gnat_adjust_context_for_raise, AIX): Implement.
        (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
        (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
         adjust_context_for_raise before Raise_From_Signal_Hanler.
         adjust_context_for_raise before Raise_From_Signal_Hanler.
        (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
        (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
        siginfo is passed to the handler, necessary to let the zcx propagation
        siginfo is passed to the handler, necessary to let the zcx propagation
        engine unwind past it.
        engine unwind past it.
2007-06-06  Olivier Hainque  
2007-06-06  Olivier Hainque  
        * initialize.c (__gnat_initialize for vxworks):  Update documentation
        * initialize.c (__gnat_initialize for vxworks):  Update documentation
        on the ZCX support, using different sets of crtstuff objects than with
        on the ZCX support, using different sets of crtstuff objects than with
        GCC 3.4.
        GCC 3.4.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
        * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
        spec from body
        spec from body
        (Layout_Type): Fix recomputation of size from alignment.
        (Layout_Type): Fix recomputation of size from alignment.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
        * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
        association in an instance.
        association in an instance.
        (Copy_Generic_Node): If the node is a string literal, no need to copy
        (Copy_Generic_Node): If the node is a string literal, no need to copy
        its descendants.
        its descendants.
        (Is_Generic_Formal): For a formal subprogram, the declaration is the
        (Is_Generic_Formal): For a formal subprogram, the declaration is the
        grandparent of the entity.
        grandparent of the entity.
        (Analyze_Formal_Interface_Type): Transform into a full type declaration,
        (Analyze_Formal_Interface_Type): Transform into a full type declaration,
        to simplify handling of formal interfaces that derive from other formal
        to simplify handling of formal interfaces that derive from other formal
        interfaces.
        interfaces.
        (Instantiate_Subprogram_Body): The defining unit name of the body of
        (Instantiate_Subprogram_Body): The defining unit name of the body of
        the instance should be a defining identifier.
        the instance should be a defining identifier.
        (Install_Formal_Packages): make global to the package, for use in
        (Install_Formal_Packages): make global to the package, for use in
        instantiations of child units.
        instantiations of child units.
        (Analyze_Package_Instantiation): Do not attempt to set information on an
        (Analyze_Package_Instantiation): Do not attempt to set information on an
        enclosing master of an entry when expansion is disabled.
        enclosing master of an entry when expansion is disabled.
        (Instantiate_Type): If the actual is a tagged synchronized type and the
        (Instantiate_Type): If the actual is a tagged synchronized type and the
        generic ancestor is an interface, create a generic actual for the
        generic ancestor is an interface, create a generic actual for the
        corresponding record.
        corresponding record.
        (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
        (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
        declaration, to ensure that the interface list is processed correctly.
        declaration, to ensure that the interface list is processed correctly.
        (Inline_Instance_Body): If enclosing scope is an instance body, remove
        (Inline_Instance_Body): If enclosing scope is an instance body, remove
        its entities from visibiility as well.
        its entities from visibiility as well.
        (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
        (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
        given with a named association, analyze the expression only, not the
        given with a named association, analyze the expression only, not the
        discriminant association itself.
        discriminant association itself.
        (Reset_Entity): If the analysis of a selected component is transformed
        (Reset_Entity): If the analysis of a selected component is transformed
        into an expanded name in the prefix of a call with parameters, do not
        into an expanded name in the prefix of a call with parameters, do not
        transform the original node into an expanded name, to prevent visibility
        transform the original node into an expanded name, to prevent visibility
        errors in the case of nested generics.
        errors in the case of nested generics.
        (Check_Private_View): For an array type, check whether the index types
        (Check_Private_View): For an array type, check whether the index types
        may need exchanging.
        may need exchanging.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
            Vincent Celier  
            Vincent Celier  
        * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
        * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
        since both are separated.
        since both are separated.
        Add support for imported CIL packages.
        Add support for imported CIL packages.
        Add further special handling of "value_type" for CIL.
        Add further special handling of "value_type" for CIL.
        Add special handling of pragma Import for CIL.
        Add special handling of pragma Import for CIL.
        * make.ads, make.adb: When switch -eS is used, direct all outputs to
        * make.ads, make.adb: When switch -eS is used, direct all outputs to
        standard output instead of standard error, except errors.
        standard output instead of standard error, except errors.
        (Absolute_Path): Use untouched casing for the parent directory.
        (Absolute_Path): Use untouched casing for the parent directory.
        (Add_Library_Search_Dir): Use the untouched directory name.
        (Add_Library_Search_Dir): Use the untouched directory name.
        (Add_Source_Search_Dir): Idem.
        (Add_Source_Search_Dir): Idem.
        (Change_To_Object_Directory): Update output to use proper casing.
        (Change_To_Object_Directory): Update output to use proper casing.
        (Create_Binder_Mapping_File): Use the untouched filename to set
        (Create_Binder_Mapping_File): Use the untouched filename to set
        ALI_Name.
        ALI_Name.
        (Gnatmake): Use untouched library and executable directory names.
        (Gnatmake): Use untouched library and executable directory names.
        (Insert_Project_Sources): Use untouched filename for spec and body.
        (Insert_Project_Sources): Use untouched filename for spec and body.
        (Is_In_Object_Directory): Use untouched object directory.
        (Is_In_Object_Directory): Use untouched object directory.
        (Mark_Directory): Idem.
        (Mark_Directory): Idem.
        (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
        (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
        contains the non-canonical filename in all cases.
        contains the non-canonical filename in all cases.
        (Change_To_Object_Directory): In verbose mode, display the name of the
        (Change_To_Object_Directory): In verbose mode, display the name of the
        object directory we're changing to.
        object directory we're changing to.
        (Compile_Sources): Make sure, when a project file is used, to compile
        (Compile_Sources): Make sure, when a project file is used, to compile
        the body of the unit, when there is one, even when only the spec is
        the body of the unit, when there is one, even when only the spec is
        recorded in an ALI file.
        recorded in an ALI file.
        (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
        (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
        spec to the body.
        spec to the body.
        (Report_Compilation_Failed): New procedure
        (Report_Compilation_Failed): New procedure
        (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
        (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
        procedures moved from the spec to the body.
        procedures moved from the spec to the body.
        (Extract_Failure): Removed, not used
        (Extract_Failure): Removed, not used
        Replace explicit raises of exception Bind_Failed and Link_Failed with
        Replace explicit raises of exception Bind_Failed and Link_Failed with
        calls to Make_Failed with the proper message.
        calls to Make_Failed with the proper message.
        Replace explicit raises of exception Compilation_Failed with calls to
        Replace explicit raises of exception Compilation_Failed with calls to
        procedure Report_Compilation_Failed.
        procedure Report_Compilation_Failed.
        (Initialize): Create mapping files unconditionally when using project
        (Initialize): Create mapping files unconditionally when using project
        files.
        files.
        * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
        * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
        Pragma_CIL_Constructor): New names.
        Pragma_CIL_Constructor): New names.
        * targparm.ads, targparm.adb
        * targparm.ads, targparm.adb
        (Compiler_System_Version): Removed, no longer used.
        (Compiler_System_Version): Removed, no longer used.
        (Get_Target_Parameters): Relax checks on system.ads validity. Add
        (Get_Target_Parameters): Relax checks on system.ads validity. Add
        handling of two new system flags: JVM and CLI.
        handling of two new system flags: JVM and CLI.
2007-06-06  Jose Ruiz  
2007-06-06  Jose Ruiz  
            Arnaud Charlet  
            Arnaud Charlet  
        * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
        * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
        time, use the default s-interr body that provides interrupt support
        time, use the default s-interr body that provides interrupt support
        based on signals.
        based on signals.
        (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
        (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
        a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
        a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
        g-soccon.ads, and s-taprop.adb for the marte run time.
        g-soccon.ads, and s-taprop.adb for the marte run time.
        (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
        (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
        timers are supported on marte.
        timers are supported on marte.
        (EH_MECHANISM for marte): Do not use ZCX.
        (EH_MECHANISM for marte): Do not use ZCX.
        (THREADSLIB for marte): Use -lmarte.
        (THREADSLIB for marte): Use -lmarte.
        Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
        Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
        Add mlib-tgt-specific.o to gnatmake objects
        Add mlib-tgt-specific.o to gnatmake objects
        mlib-tgt-.adb is now the body of MLib.Tgt.Specific, no
        mlib-tgt-.adb is now the body of MLib.Tgt.Specific, no
        longer of MLib.Tgt.
        longer of MLib.Tgt.
        (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
        (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
        6, either kernel or rtp, use a specialized version of s-osinte.ads.
        6, either kernel or rtp, use a specialized version of s-osinte.ads.
2007-06-06  Pascal Obry  
2007-06-06  Pascal Obry  
        * mkdir.c (__gnat_mkdir): Add support for UTF-8.
        * mkdir.c (__gnat_mkdir): Add support for UTF-8.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
        * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
        separator, use instead the proper host directory separator.
        separator, use instead the proper host directory separator.
        (Copy_ALI_Files): Make sure that an already existing ALI file in the
        (Copy_ALI_Files): Make sure that an already existing ALI file in the
        ALI copy dir is writable, before doing the copy.
        ALI copy dir is writable, before doing the copy.
        * mlib-utl.ads, mlib-utl.adb:
        * mlib-utl.ads, mlib-utl.adb:
        (Gcc): If length of command line is too long, put the list of object
        (Gcc): If length of command line is too long, put the list of object
        files in a response file, if this is supported by the platform.
        files in a response file, if this is supported by the platform.
        (Ar): If invocation of the archive builder is allowed to be done in
        (Ar): If invocation of the archive builder is allowed to be done in
        chunks and building it in one shot would go above an OS dependent
        chunks and building it in one shot would go above an OS dependent
        limit on the number of characters on the command line, build the archive
        limit on the number of characters on the command line, build the archive
        in chunks.
        in chunks.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
        * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
        of specified object file is not equal to base name of source.
        of specified object file is not equal to base name of source.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Hristian Kirtchev  
            Hristian Kirtchev  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
        * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
        the full type declaration.
        the full type declaration.
        (Analyze_Component_Declaration): Add local variable E to capture the
        (Analyze_Component_Declaration): Add local variable E to capture the
        initialization expression of the declaration. Replace the occurences of
        initialization expression of the declaration. Replace the occurences of
        Expression (N) with E.
        Expression (N) with E.
        (OK_For_Limited_Init_In_05): Allow initialization of class-wide
        (OK_For_Limited_Init_In_05): Allow initialization of class-wide
        limited interface object with a function call.
        limited interface object with a function call.
        (Array_Type_Declaration): If the declaration lacks subtype marks for
        (Array_Type_Declaration): If the declaration lacks subtype marks for
        indices, create a simple index list to prevent cascaded errors.
        indices, create a simple index list to prevent cascaded errors.
        (Is_Null_Extension): Ignore internal components created for secondary
        (Is_Null_Extension): Ignore internal components created for secondary
        tags when checking whether a record extension is a null extension.
        tags when checking whether a record extension is a null extension.
        (Check_Abstract_Interfaces): Add missing support for interface subtypes
        (Check_Abstract_Interfaces): Add missing support for interface subtypes
        and generic formals.
        and generic formals.
        (Derived_Type_Declaration): Add missing support for interface subtypes
        (Derived_Type_Declaration): Add missing support for interface subtypes
        and generic formals.
        and generic formals.
        (Analyze_Object_Declaration): If an initialization expression is
        (Analyze_Object_Declaration): If an initialization expression is
        present, traverse its subtree and mark all allocators as static
        present, traverse its subtree and mark all allocators as static
        coextensions.
        coextensions.
        (Add_Interface_Tag_Component): When looking for components that may be
        (Add_Interface_Tag_Component): When looking for components that may be
        secondary tags, ignore pragmas that can appear within a record
        secondary tags, ignore pragmas that can appear within a record
        declaration.
        declaration.
        (Check_Abstract_Overriding): an inherited function that dispatches on
        (Check_Abstract_Overriding): an inherited function that dispatches on
        result does not need to be overriden if the controlling type is a null
        result does not need to be overriden if the controlling type is a null
        extension.
        extension.
        (Mentions_T): Handle properly a 'class attribute in an anonymous access
        (Mentions_T): Handle properly a 'class attribute in an anonymous access
        component declaration, when the prefix is an expanded name.
        component declaration, when the prefix is an expanded name.
        (Inherit_Component): If the derivation is for a private extension,
        (Inherit_Component): If the derivation is for a private extension,
        inherited components remain visible and their ekind should not be set
        inherited components remain visible and their ekind should not be set
        to Void.
        to Void.
        (Find_Type_Of_Object): In the case of an access definition, always set
        (Find_Type_Of_Object): In the case of an access definition, always set
        Is_Local_Anonymous_Access. We were previously not marking the anonymous
        Is_Local_Anonymous_Access. We were previously not marking the anonymous
        access type of a return object as a local anonymous type.
        access type of a return object as a local anonymous type.
        (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
        (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
        range with character literal bounds.
        range with character literal bounds.
        (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
        (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
        (Access_Subprogram_Declaration): Indicate that the type declaration
        (Access_Subprogram_Declaration): Indicate that the type declaration
        depends on an incomplete type only if the incomplete type is declared
        depends on an incomplete type only if the incomplete type is declared
        in an open scope.
        in an open scope.
        (Analyze_Subtype_Declaration): Handle properly subtypes of
        (Analyze_Subtype_Declaration): Handle properly subtypes of
        synchronized types that are tagged, and that may appear as generic
        synchronized types that are tagged, and that may appear as generic
        actuals.
        actuals.
        (Access_Subprogram_Declaration): An anonymous access to subprogram can
        (Access_Subprogram_Declaration): An anonymous access to subprogram can
        appear as an access discriminant in a private type declaration.
        appear as an access discriminant in a private type declaration.
        (Add_Interface_Tag_Components): Complete decoration of the component
        (Add_Interface_Tag_Components): Complete decoration of the component
        containing the tag of a secondary dispatch table and the component
        containing the tag of a secondary dispatch table and the component
        containing the offset to the base of the object (this latter component
        containing the offset to the base of the object (this latter component
        is only generated when the parent type has discriminants --as documented
        is only generated when the parent type has discriminants --as documented
        in this routine).
        in this routine).
        (Inherit_Components): Use the new decoration of the tag components to
        (Inherit_Components): Use the new decoration of the tag components to
        improve the condition that avoids inheriting the components associated
        improve the condition that avoids inheriting the components associated
        with secondary tags of the parent.
        with secondary tags of the parent.
        (Build_Discriminanted_Subtype): Indicate to the backend that the
        (Build_Discriminanted_Subtype): Indicate to the backend that the
        size of record types associated with dispatch tables is known at
        size of record types associated with dispatch tables is known at
        compile time.
        compile time.
        (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
        (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
        (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
        (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
        to include task, protected, and synchronized interfaces as limited
        to include task, protected, and synchronized interfaces as limited
        interfaces.
        interfaces.
        (Process_Discriminants): Remove the setting of
        (Process_Discriminants): Remove the setting of
        Is_Local_Anonymous_Access on the type of (anonymous) access
        Is_Local_Anonymous_Access on the type of (anonymous) access
        discriminants of nonlimited types.
        discriminants of nonlimited types.
        (Analyze_Interface_Type_Declaration): Complete the decoration of the
        (Analyze_Interface_Type_Declaration): Complete the decoration of the
        class-wide entity it is is already present. This situation occurs if
        class-wide entity it is is already present. This situation occurs if
        the limited-view has been previously built.
        the limited-view has been previously built.
        (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
        (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
        field.
        field.
        (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
        (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
        Related_Interface.
        Related_Interface.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
        * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
        * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
        of the type that specify the position of interface tags when the type
        of the type that specify the position of interface tags when the type
        inherits discriminated array components from the parent type.
        inherits discriminated array components from the parent type.
        If a component is initialized with a box, check for the presence of a
        If a component is initialized with a box, check for the presence of a
        default expression in its declaration before using its default
        default expression in its declaration before using its default
        initialization procedure.
        initialization procedure.
        (Resolve_Record_Aggregate): If a component is box-initialized, and the
        (Resolve_Record_Aggregate): If a component is box-initialized, and the
        component type has a discriminants, create a partial aggregate for it
        component type has a discriminants, create a partial aggregate for it
        by copying the discriminants of the component subtype.
        by copying the discriminants of the component subtype.
        Reject attempt to initialize a discriminant with a box.
        Reject attempt to initialize a discriminant with a box.
        (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
        (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
        associated with dispatch tables is known at compile time.
        associated with dispatch tables is known at compile time.
        (Get_Value): If an association in a record aggregate has a box
        (Get_Value): If an association in a record aggregate has a box
        association, and the corresponding record component has a default
        association, and the corresponding record component has a default
        expression, always copy the default expression, even when the
        expression, always copy the default expression, even when the
        association has a single choice, in order to create a proper
        association has a single choice, in order to create a proper
        association for the expanded aggregate.
        association for the expanded aggregate.
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * par-ch12.adb (P_Generic_Associations): The source position of an
        * par-ch12.adb (P_Generic_Associations): The source position of an
        Others association is that of the others keyword, not that of the token
        Others association is that of the others keyword, not that of the token
        that follows the box.
        that follows the box.
        (P_Formal_Type_Definition): Handle formal access types that carry a
        (P_Formal_Type_Definition): Handle formal access types that carry a
        not null indicator.
        not null indicator.
        * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
        * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
        multiple identifier are present, save Scan_State before scanning the
        multiple identifier are present, save Scan_State before scanning the
        colon, to ensure that separate trees are constructed for each
        colon, to ensure that separate trees are constructed for each
        declaration.
        declaration.
        (P_Identifier_Declarations): For object declaration, set new flag
        (P_Identifier_Declarations): For object declaration, set new flag
        Has_Init_Expression if initialization expression present.
        Has_Init_Expression if initialization expression present.
        (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
        (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
        Improve NOT NULL error messages
        Improve NOT NULL error messages
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * par-ch4.adb: (P_Name): Recover from literal used as name
        * par-ch4.adb: (P_Name): Recover from literal used as name
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
        * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
        defaulted to False.
        defaulted to False.
        In the "not" case, recursive call with Complemented set to True.
        In the "not" case, recursive call with Complemented set to True.
        Do not allow "or" or "and" operators when Complemented is True.
        Do not allow "or" or "and" operators when Complemented is True.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * prj.adb (Project_Empty): Gives default value for new component
        * prj.adb (Project_Empty): Gives default value for new component
        Libgnarl_Needed
        Libgnarl_Needed
        * prj-attr.ads: Minor reformatting
        * prj-attr.ads: Minor reformatting
        * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
        * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
        directory using the untouched casing.
        directory using the untouched casing.
        (For_All_Source_Dirs): Idem.
        (For_All_Source_Dirs): Idem.
        * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
        * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
        directories specified with switches -aP.
        directories specified with switches -aP.
        (Add_Search_Project_Directory): New procedure
        (Add_Search_Project_Directory): New procedure
        (Initialize_Project_Path): Put the directories in table
        (Initialize_Project_Path): Put the directories in table
        Search_Directories in the project search path.
        Search_Directories in the project search path.
        (Initialize_Project_Path): For VMS, transform into canonical form the
        (Initialize_Project_Path): For VMS, transform into canonical form the
        project path.
        project path.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
        * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
        true if configurable run-time or No_Run_Time is set.
        true if configurable run-time or No_Run_Time is set.
        (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
        (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
        processing an unit which is not the one being compiled.
        processing an unit which is not the one being compiled.
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
        * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
        Replace UC by Ada.UC
        Replace UC by Ada.UC
        * s-bitops.adb: Get rid of System.Pure_Exceptions.
        * s-bitops.adb: Get rid of System.Pure_Exceptions.
        Replace UC by Ada.UC
        Replace UC by Ada.UC
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * scng.adb: (Check_End_Of_Line): Deal with very long lines
        * scng.adb: (Check_End_Of_Line): Deal with very long lines
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
        * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
        Remove no longer used nodes.
        Remove no longer used nodes.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Ed Schonberg  
            Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
        * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
        on obsolescent withed unit in case of limited-withed units.
        on obsolescent withed unit in case of limited-withed units.
        (Analyze_Compilation_Unit): Add guard to code that removed an
        (Analyze_Compilation_Unit): Add guard to code that removed an
        instantiation from visibility, to prevent compiler aborts when
        instantiation from visibility, to prevent compiler aborts when
        instantiation is abandoned early on.
        instantiation is abandoned early on.
        (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
        (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
        current unit being analyzed, and Distinguish local incomplete types
        current unit being analyzed, and Distinguish local incomplete types
        from limited views of types declared elsewhere.
        from limited views of types declared elsewhere.
        (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
        (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
        to state that the class-wide entity is shared by the limited-view
        to state that the class-wide entity is shared by the limited-view
        and the full-view.
        and the full-view.
        (Analyze_With_Clause): Improve placement of flag for case of
        (Analyze_With_Clause): Improve placement of flag for case of
        unimplemented unit.
        unimplemented unit.
        (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
        (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
        manner similar to GNAT.Current_Exception. This is a violation of
        manner similar to GNAT.Current_Exception. This is a violation of
        restriction (No_Exception_Propagation), and also inhibits the
        restriction (No_Exception_Propagation), and also inhibits the
        optimization of local raise to goto.
        optimization of local raise to goto.
        (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
        (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
        and if so set Most_Recent_Exception_Used flag in Opt, and also check
        and if so set Most_Recent_Exception_Used flag in Opt, and also check
        for violation of restriction No_Exception_Propagation.
        for violation of restriction No_Exception_Propagation.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
            Hristian Kirtchev  
            Hristian Kirtchev  
            Gary Dismukes  
            Gary Dismukes  
        * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
        * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
        use of entity Exception_Occurrence if it is not available in the
        use of entity Exception_Occurrence if it is not available in the
        target run-time.
        target run-time.
        * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
        * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
        concurrent types are declared within an Ada 2005 generic, build their
        concurrent types are declared within an Ada 2005 generic, build their
        corresponding record types since they are needed for overriding-related
        corresponding record types since they are needed for overriding-related
        semantic checks.
        semantic checks.
        (Analyze_Protected_Type): Rearrange and simplify code for testing that a
        (Analyze_Protected_Type): Rearrange and simplify code for testing that a
        protected type does not implement a task interface or a nonlimited
        protected type does not implement a task interface or a nonlimited
        interface.
        interface.
        (Analyze_Task_Type): Rearrange and simplify code for testing that a task
        (Analyze_Task_Type): Rearrange and simplify code for testing that a task
        type does not implement a protected interface or a nonlimited interface.
        type does not implement a protected interface or a nonlimited interface.
        (Single_Task_Declaration, Single_Protected_Declaration): use original
        (Single_Task_Declaration, Single_Protected_Declaration): use original
        entity for variable declaration, to ensure that debugging information
        entity for variable declaration, to ensure that debugging information
        is correcty generated.
        is correcty generated.
        (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
        (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
        routines if the expander is not active.
        routines if the expander is not active.
        (Analyze_Task_Body): Mark all handlers to stop optimization of local
        (Analyze_Task_Body): Mark all handlers to stop optimization of local
        raise, since special things happen for task exception handlers.
        raise, since special things happen for task exception handlers.
        * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
        * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
        concurrent types declared within a generic.
        concurrent types declared within a generic.
        (Check_Dispatching_Operation): Do not emit warning about late interface
        (Check_Dispatching_Operation): Do not emit warning about late interface
        operations in the context of an instance.
        operations in the context of an instance.
        (Check_Dispatching_Call): Remove restriction against calling a
        (Check_Dispatching_Call): Remove restriction against calling a
        dispatching operation with a limited controlling result.
        dispatching operation with a limited controlling result.
        (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
        (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
        Register_Interface_DT_Entry by calls to Register_Primitive.
        Register_Interface_DT_Entry by calls to Register_Primitive.
        (Check_Dispatching_Formals): Handle properly a function with a
        (Check_Dispatching_Formals): Handle properly a function with a
        controlling access result.
        controlling access result.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
            Arnaud Charlet  
            Arnaud Charlet  
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
        * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
        Check for restriction No_Implementation_Attributes if in Ada 95 mode.
        Check for restriction No_Implementation_Attributes if in Ada 95 mode.
        (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
        (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
        (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
        (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
        message when using a VM, since this attribute is not supported.
        message when using a VM, since this attribute is not supported.
        (Analyze_Record_Representation_Clause): Give unrepped component warnings
        (Analyze_Record_Representation_Clause): Give unrepped component warnings
        * usage.adb: Add new warning for renaming of function return objects
        * usage.adb: Add new warning for renaming of function return objects
        Indicate that -gnatwp and -gnatwP concern front-end inlining
        Indicate that -gnatwp and -gnatwP concern front-end inlining
        Add line for -gnatyg
        Add line for -gnatyg
        Add usage information for -gnatw.c/C
        Add usage information for -gnatw.c/C
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * sem_ch5.adb
        * sem_ch5.adb
        (Find_Var): Do not consider function call in test for infinite loop
        (Find_Var): Do not consider function call in test for infinite loop
        warning if warnings set off for function entity.
        warning if warnings set off for function entity.
        (One_Bound): Do not create a temporary for a loop bound if it is a
        (One_Bound): Do not create a temporary for a loop bound if it is a
        character literal.
        character literal.
        (Analyze_Assignment): Traverse the right hand side of an assignment and
        (Analyze_Assignment): Traverse the right hand side of an assignment and
        mark all allocators as static coextensions.
        mark all allocators as static coextensions.
        (Analyze_Assignment): Exempt assignments involving a dispatching call
        (Analyze_Assignment): Exempt assignments involving a dispatching call
        to a function with a controlling access result from the check requiring
        to a function with a controlling access result from the check requiring
        the target to be class-wide.
        the target to be class-wide.
2007-06-06  Hristian Kirtchev  
2007-06-06  Hristian Kirtchev  
            Ed Schonberg  
            Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
            Javier Miranda  
            Javier Miranda  
        * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
        * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
        chain of coextensions when an allocator serves as the root of such a
        chain of coextensions when an allocator serves as the root of such a
        chain.
        chain.
        (Propagate_Coextensions): Remove the test for the root being an
        (Propagate_Coextensions): Remove the test for the root being an
        allocator.
        allocator.
        (Resolve_Allocator): Add condition to ensure that all future decoration
        (Resolve_Allocator): Add condition to ensure that all future decoration
        occurs on an allocator node. Add processing and cleanup for static
        occurs on an allocator node. Add processing and cleanup for static
        coextensions.
        coextensions.
        (Valid_Conversion): If the operand type is the limited view of a
        (Valid_Conversion): If the operand type is the limited view of a
        class-wide type, use the non-limited view is available to determine
        class-wide type, use the non-limited view is available to determine
        legality of operation.
        legality of operation.
        (Ambiguous_Character): move to spec, for use elsewhere.
        (Ambiguous_Character): move to spec, for use elsewhere.
        (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
        (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
        (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
        (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
        character literals.
        character literals.
        (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
        (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
        Do_Division_Check flag explicitly.
        Do_Division_Check flag explicitly.
        (Resolve_Actuals): If the actual is of a synchronized type, and the
        (Resolve_Actuals): If the actual is of a synchronized type, and the
        formal is of the corresponding record type, this is a call to a
        formal is of the corresponding record type, this is a call to a
        primitive operation of the type, that is declared outside of the type;
        primitive operation of the type, that is declared outside of the type;
        the actual must be unchecked-converted to the type of the actual
        the actual must be unchecked-converted to the type of the actual
        (Resolve_Call): Kill all current values for any subprogram call if
        (Resolve_Call): Kill all current values for any subprogram call if
        flag Suppress_Value_Tracking_On_Call is set.
        flag Suppress_Value_Tracking_On_Call is set.
        (Resolve_Type_Conversion): Generate error message the the operand
        (Resolve_Type_Conversion): Generate error message the the operand
        or target of interface conversions come from a limited view.
        or target of interface conversions come from a limited view.
        (Check_Infinite_Recursion): Ignore generated calls
        (Check_Infinite_Recursion): Ignore generated calls
        (Check_Allocator_Discrim_Accessibility): New procedure for checking
        (Check_Allocator_Discrim_Accessibility): New procedure for checking
        that an expression that constrains an access discriminant in an
        that an expression that constrains an access discriminant in an
        allocator does not denote an object with a deeper level than the
        allocator does not denote an object with a deeper level than the
        allocator's access type.
        allocator's access type.
        (Resolve_Allocator): In the case of an allocator initialized by an
        (Resolve_Allocator): In the case of an allocator initialized by an
        aggregate of a discriminated type, check that associations for any
        aggregate of a discriminated type, check that associations for any
        access discriminants satisfy accessibility requirements by calling
        access discriminants satisfy accessibility requirements by calling
        Check_Allocator_Discrim_Accessibility.
        Check_Allocator_Discrim_Accessibility.
        (Resolve_Equality_Op): Handle comparisons of anonymous access to
        (Resolve_Equality_Op): Handle comparisons of anonymous access to
        subprogram types in the same fashion as other anonymous access types.
        subprogram types in the same fashion as other anonymous access types.
        (Resolve_Concatenation_Arg): Remove initial character '\' in an error
        (Resolve_Concatenation_Arg): Remove initial character '\' in an error
        message that is not a continuation message.
        message that is not a continuation message.
        (Resolve_Type_Conversion): Add missing support for conversion to
        (Resolve_Type_Conversion): Add missing support for conversion to
        interface type.
        interface type.
        (Resolve_Actuals): Introduce a transient scope around the call if an
        (Resolve_Actuals): Introduce a transient scope around the call if an
        actual is a call to a function returning a limited type, because the
        actual is a call to a function returning a limited type, because the
        resulting value must be finalized after the call.
        resulting value must be finalized after the call.
        (Resolve_Actuals): If the call was given in prefix notations, check
        (Resolve_Actuals): If the call was given in prefix notations, check
        whether an implicit 'Access reference or implicit dereference must be
        whether an implicit 'Access reference or implicit dereference must be
        added to make the actual conform to the controlling formal.
        added to make the actual conform to the controlling formal.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
            Javier Miranda  
            Javier Miranda  
        * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
        * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
        (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
        (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
        overriding of an inherited private subprogram now there is no need to
        overriding of an inherited private subprogram now there is no need to
        inherit its dispatching slot and reduce the size of the dispatch table.
        inherit its dispatching slot and reduce the size of the dispatch table.
        Set_All_DT_Position now ensures that the same slot is now assigned to
        Set_All_DT_Position now ensures that the same slot is now assigned to
        both entities. This is required to statically build the dispatch table.
        both entities. This is required to statically build the dispatch table.
        (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
        (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
        of calling Set_All_DT_Position to re-evaluate the position of the
        of calling Set_All_DT_Position to re-evaluate the position of the
        entries in the dispatch table. Such reevaluation is not desired if
        entries in the dispatch table. Such reevaluation is not desired if
        the tagged type is already frozen.
        the tagged type is already frozen.
2007-06-06  Hristian Kirtchev  
2007-06-06  Hristian Kirtchev  
            Gary Dismukes  
            Gary Dismukes  
            Robert Dewar  
            Robert Dewar  
            Javier Miranda  
            Javier Miranda  
        * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
        * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
        reference acts as an lvalue when the attribute name modifies the prefix
        reference acts as an lvalue when the attribute name modifies the prefix
        (Is_Coextension_Root): New routine.
        (Is_Coextension_Root): New routine.
        (Mark_Static_Coextensions): New routine.
        (Mark_Static_Coextensions): New routine.
        (Type_Access_Level): Revise code for checking the level of the
        (Type_Access_Level): Revise code for checking the level of the
        anonymous access type of a return object.
        anonymous access type of a return object.
        (Safe_To_Capture_Value): Not safe to capture if Address_Taken
        (Safe_To_Capture_Value): Not safe to capture if Address_Taken
        (Matches_Prefixed_View_Profile): Remove the no longer necessary
        (Matches_Prefixed_View_Profile): Remove the no longer necessary
        retrieval of the corresponding controlling record type.
        retrieval of the corresponding controlling record type.
        (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
        (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
        concurrent types declared within a generic as well as class wide types.
        concurrent types declared within a generic as well as class wide types.
        Emit a mode incompatibility error whenever a protected entry or routine
        Emit a mode incompatibility error whenever a protected entry or routine
        override an interface routine whose first parameter is not of mode
        override an interface routine whose first parameter is not of mode
        "out", "in out" or access to variable.
        "out", "in out" or access to variable.
        (Overrides_Synchronized_Primitive): Rename to
        (Overrides_Synchronized_Primitive): Rename to
        Find_Overridden_Synchronized_Primitive.
        Find_Overridden_Synchronized_Primitive.
        (Collect_Interface_Components): New subprogram that collects all the
        (Collect_Interface_Components): New subprogram that collects all the
        components of a tagged record containing tags of secondary dispatch
        components of a tagged record containing tags of secondary dispatch
        tables.
        tables.
        (Add_Global_Declaration): New procedure
        (Add_Global_Declaration): New procedure
        (Abstract_Interface_List): Handle properly the case of a subtype of a
        (Abstract_Interface_List): Handle properly the case of a subtype of a
        private extension.
        private extension.
        (Type_Access_Level): In the case of a type whose parent scope is a
        (Type_Access_Level): In the case of a type whose parent scope is a
        return statement, call Type_Access_Level recursively on the enclosing
        return statement, call Type_Access_Level recursively on the enclosing
        function's result type to determine the level of the return object's
        function's result type to determine the level of the return object's
        type.
        type.
        (Build_Elaboration_Entity): Build name of elaboration entity from the
        (Build_Elaboration_Entity): Build name of elaboration entity from the
        scope chain of the entity, rather than the unit name of the file name.
        scope chain of the entity, rather than the unit name of the file name.
        (Check_Nested_Access): New procedure.
        (Check_Nested_Access): New procedure.
        (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
        (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
        (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
        (Get_Renamed_Entity): Utility routine for performing common operation
        (Get_Renamed_Entity): Utility routine for performing common operation
        of chasing the Renamed_Entity field of an entity.
        of chasing the Renamed_Entity field of an entity.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
        * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
        elaboration model
        elaboration model
        (Check_A_Call): Add check for entry call which was causing blowup
        (Check_A_Call): Add check for entry call which was causing blowup
2007-06-06  Olivier Hainque  
2007-06-06  Olivier Hainque  
        * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
        * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
        special code on ia64-vms to handle major incompatibilities between the
        special code on ia64-vms to handle major incompatibilities between the
        GCC unwinding ABI and the VMS Condition Handling Facility, both calling
        GCC unwinding ABI and the VMS Condition Handling Facility, both calling
        this routine with a very different set of arguments and expectations on
        this routine with a very different set of arguments and expectations on
        the return value.
        the return value.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * socket.c (__gnat_close_signalling_fd): New function.
        * socket.c (__gnat_close_signalling_fd): New function.
        (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
        (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
        __gnat_safe_getservbyname, __gnat_safe_getservbyport):
        __gnat_safe_getservbyname, __gnat_safe_getservbyport):
        New supporting functions for task safe Netdb operations.
        New supporting functions for task safe Netdb operations.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
            Olivier Hainque  
            Olivier Hainque  
        * a-except-2005.ads, a-except-2005.adb
        * a-except-2005.ads, a-except-2005.adb
        (Raise_From_Controlled_Operation): New procedure in
        (Raise_From_Controlled_Operation): New procedure in
        (private part of) Ada.Exceptions (standard runtime version). Used to
        (private part of) Ada.Exceptions (standard runtime version). Used to
        provide informational exception message when Program_Error is raised as
        provide informational exception message when Program_Error is raised as
        a result of an Adjust or Finalize operation propagating an exception.
        a result of an Adjust or Finalize operation propagating an exception.
        (Rmsg_28): Fix description for E.4(18) check.
        (Rmsg_28): Fix description for E.4(18) check.
        (Raise_Current_Excep): Call Debug_Raise_Exception just before
        (Raise_Current_Excep): Call Debug_Raise_Exception just before
        propagation starts, to let debuggers know about the event in a reliable
        propagation starts, to let debuggers know about the event in a reliable
        fashion.
        fashion.
        Take the address of E and dereference to make sure it is homed on stack
        Take the address of E and dereference to make sure it is homed on stack
        and prevent the stores from being deleted, necessary for proper
        and prevent the stores from being deleted, necessary for proper
        debugger behavior on "break exception" hits.
        debugger behavior on "break exception" hits.
        (Local_Raise): Moved to System.Exceptions
        (Local_Raise): Moved to System.Exceptions
        * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
        * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
        exception message from the current occurrence and raise Program_Error
        exception message from the current occurrence and raise Program_Error
        has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
        has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
2007-06-06  Jose Ruiz  
2007-06-06  Jose Ruiz  
            Arnaud Charlet  
            Arnaud Charlet  
        * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
        * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
        lock, if needed.
        lock, if needed.
        * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
        * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
        priority associated to a lock.
        priority associated to a lock.
        * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
        * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
        assertion to take into account case of no abort restriction.
        assertion to take into account case of no abort restriction.
        (Initialize_Protection_Entries): Add initialization for the field
        (Initialize_Protection_Entries): Add initialization for the field
        New_Ceiling associated to the protected object.
        New_Ceiling associated to the protected object.
        (Unlock_Entries): Change the ceiling priority of the underlying lock, if
        (Unlock_Entries): Change the ceiling priority of the underlying lock, if
        needed.
        needed.
        * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
        * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
        since this function needs to be set consistently with Update_Exception.
        since this function needs to be set consistently with Update_Exception.
        * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
        * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
        since this function needs to be set consistently with Update_Exception.
        since this function needs to be set consistently with Update_Exception.
        * s-taskin.ads: Update comments on
        * s-taskin.ads: Update comments on
        Interrupt_Server_Blocked_On_Event_Flag.
        Interrupt_Server_Blocked_On_Event_Flag.
        (Unbind_Handler): Fix handling of server_task wakeup
        (Unbind_Handler): Fix handling of server_task wakeup
        (Server_Task): Set self's state so that Unbind_Handler can take
        (Server_Task): Set self's state so that Unbind_Handler can take
        appropriate actions.
        appropriate actions.
        (Common_ATCB): Now use a constant from System.Parameters to determine
        (Common_ATCB): Now use a constant from System.Parameters to determine
        the max size of the Task_Image field.
        the max size of the Task_Image field.
        * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
        * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
        Initialize_Analyzer function.
        Initialize_Analyzer function.
        ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
        ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
        take into account case of no abort restriction.
        take into account case of no abort restriction.
        ([Vulnerable_]Complete_Master): Modify assertion.
        ([Vulnerable_]Complete_Master): Modify assertion.
        * s-tataat.adb (Finalize): Use the nestable versions of
        * s-tataat.adb (Finalize): Use the nestable versions of
        Defer/Undefer_Abort.
        Defer/Undefer_Abort.
        * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
        * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
        * s-tpobop.ads: Update comments.
        * s-tpobop.ads: Update comments.
        * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
        * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
        of locking the object manually, to avoid inconsistencies between
        of locking the object manually, to avoid inconsistencies between
        Lock/Unlock_Entry assertions.
        Lock/Unlock_Entry assertions.
        * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
        * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
        terminating
        terminating
        application and System.Parameters.No_Abort is True.
        application and System.Parameters.No_Abort is True.
        Update comments on Interrupt_Server_Blocked_On_Event_Flag.
        Update comments on Interrupt_Server_Blocked_On_Event_Flag.
        (Unbind_Handler): Fix handling of server_task wakeup
        (Unbind_Handler): Fix handling of server_task wakeup
        (Server_Task): Set self's state so that Unbind_Handler can take
        (Server_Task): Set self's state so that Unbind_Handler can take
        appropriate actions.
        appropriate actions.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
        * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
        declarations instead of an explicit null body, for conciseness.
        declarations instead of an explicit null body, for conciseness.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
        * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
        illegal aggregate and the type is still Any_Composite.
        illegal aggregate and the type is still Any_Composite.
        (Subtypes_Statically_Match): Fix problem of empty discriminant list
        (Subtypes_Statically_Match): Fix problem of empty discriminant list
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
        * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
        * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
        to prevent subsequent expansion.
        to prevent subsequent expansion.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
        * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
2007-06-06  Ed Schonberg  
2007-06-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
        * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
        exceptions.
        exceptions.
        (Write_Itype): Handle case of string literal subtype, which
        (Write_Itype): Handle case of string literal subtype, which
        comes up in this context.
        comes up in this context.
        (Update_Itype): when debugging expanded code, update sloc of itypes
        (Update_Itype): when debugging expanded code, update sloc of itypes
        associated with defining_identifiers and ranges, for gdb use.
        associated with defining_identifiers and ranges, for gdb use.
        (Sprint_Node_Actual): Add static keyword to object or exception
        (Sprint_Node_Actual): Add static keyword to object or exception
        declaration output if Is_Statically_Allocated is True.
        declaration output if Is_Statically_Allocated is True.
        (Sprint_End_Label): Set entity of end marker for a subprogram, package,
        (Sprint_End_Label): Set entity of end marker for a subprogram, package,
        or task body, so that the tree carries the proper Sloc information for
        or task body, so that the tree carries the proper Sloc information for
        debugging use.
        debugging use.
        (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
        (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
2007-06-06  Arnaud Charlet  
2007-06-06  Arnaud Charlet  
        * s-secsta.adb (Chunk): Ensure this object has a static size known at
        * s-secsta.adb (Chunk): Ensure this object has a static size known at
        compile time, to avoid dynamic memory allocation
        compile time, to avoid dynamic memory allocation
        (Elaboration code): Only use dynamic memory allocation when needed.
        (Elaboration code): Only use dynamic memory allocation when needed.
2007-06-06  Quentin Ochem  
2007-06-06  Quentin Ochem  
        * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
        * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
        "Overflow_Guard".
        "Overflow_Guard".
        (Stack_Analyzer): Added field "Overflow_Guard"
        (Stack_Analyzer): Added field "Overflow_Guard"
        (Task_Result): Added field "Overflow_Guard".
        (Task_Result): Added field "Overflow_Guard".
        (Index_Str): New constant.
        (Index_Str): New constant.
        (Task_Name_Str): New constant.
        (Task_Name_Str): New constant.
        (Actual_Size_Str): New constant.
        (Actual_Size_Str): New constant.
        (Pattern_Array_Element_Size): New constant.
        (Pattern_Array_Element_Size): New constant.
        (Get_Usage_Range): New subprogram.
        (Get_Usage_Range): New subprogram.
        (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
        (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
        Now align the output.
        Now align the output.
        Added comments.
        Added comments.
        (Initialize): Added value for Overflow_Guard.
        (Initialize): Added value for Overflow_Guard.
        (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
        (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
        Update the value of the overflow guard according to the actual
        Update the value of the overflow guard according to the actual
        beginning of the pattern array.
        beginning of the pattern array.
        (Initialize_Analyzer): Added parameter Overflow_Guard.
        (Initialize_Analyzer): Added parameter Overflow_Guard.
        Take this parameter into accound when computing the max size.
        Take this parameter into accound when computing the max size.
        (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
        (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
        (Report_Result): Removed extra useless procedure.
        (Report_Result): Removed extra useless procedure.
        Updated call to Output_Result.
        Updated call to Output_Result.
        Moved full computation of the Task_Result here.
        Moved full computation of the Task_Result here.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * g-soccon-darwin.ads, gen-soccon.c: Add new constant
        * g-soccon-darwin.ads, gen-soccon.c: Add new constant
        Thread_Blocking_IO, always True by default, set False on a per-runtime
        Thread_Blocking_IO, always True by default, set False on a per-runtime
        basis.
        basis.
        Add Windows-specific constants
        Add Windows-specific constants
        Add new constant Need_Netdb_Buffer.
        Add new constant Need_Netdb_Buffer.
        Add new macros to indicate whether getXXXbyYYY is thread safe and, if
        Add new macros to indicate whether getXXXbyYYY is thread safe and, if
        not, whether to use getXXXbyYYY_r.
        not, whether to use getXXXbyYYY_r.
        * gsocket.h: Add new constant Need_Netdb_Buffer.
        * gsocket.h: Add new constant Need_Netdb_Buffer.
        Add new macros to indicate whether getXXXbyYYY is thread safe and, if
        Add new macros to indicate whether getXXXbyYYY is thread safe and, if
        not, whether to use getXXXbyYYY_r.
        not, whether to use getXXXbyYYY_r.
2007-06-06  Eric Botcazou  
2007-06-06  Eric Botcazou  
        * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
        * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
        than their first call.
        than their first call.
        Add type Dummy_Communication_Block used in the generation of the pre-
        Add type Dummy_Communication_Block used in the generation of the pre-
        defined dispatching primitive _disp_asynchronous_select.
        defined dispatching primitive _disp_asynchronous_select.
        (Storage_Element): Put Pragma Universal_Aliasing on it.
        (Storage_Element): Put Pragma Universal_Aliasing on it.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
        * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
        function.
        function.
        * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
        * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
        letter if it is not followed by a '/' or a '\'.
        letter if it is not followed by a '/' or a '\'.
        (Windows): New Boolean function
        (Windows): New Boolean function
        * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
        * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
        Ada 2005.
        Ada 2005.
        (Containing_Directory): On Windows, keep at least one '/' or '\' after a
        (Containing_Directory): On Windows, keep at least one '/' or '\' after a
        drive letter.
        drive letter.
        (Containing_Directory): Raise Use_Error when the directory is a root
        (Containing_Directory): Raise Use_Error when the directory is a root
        directory.
        directory.
        (Extension): When returning the result, use a conversion to Result_Type,
        (Extension): When returning the result, use a conversion to Result_Type,
        not a qualification.
        not a qualification.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
        * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
        (Set_Style_Check_Options): Recognize new -gnatyg style switch
        (Set_Style_Check_Options): Recognize new -gnatyg style switch
        * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
        * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
        Warn_On_Non_Local_Exception to False, to turn off warnings for
        Warn_On_Non_Local_Exception to False, to turn off warnings for
        No_Exception_Propagation in ZFP runtime.
        No_Exception_Propagation in ZFP runtime.
        (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
        (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
        back-ends.
        back-ends.
        (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
        (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * switch-b.adb (Scan_Binder_Switches): Add processing for new
        * switch-b.adb (Scan_Binder_Switches): Add processing for new
        switches -R and -Z
        switches -R and -Z
        * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
        * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
        (Scan_Make_Switches): Recognize new switch -aP
        (Scan_Make_Switches): Recognize new switch -aP
2007-06-06  Matthew Gingell  
2007-06-06  Matthew Gingell  
            Jose Ruiz  
            Jose Ruiz  
        * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
        * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
        VxWorks task descriptor in the Ada run time, call a C subprogram
        VxWorks task descriptor in the Ada run time, call a C subprogram
        (__gnat_get_stack_info) that extracts the required information.
        (__gnat_get_stack_info) that extracts the required information.
        * sysdep.c: Back out temporary lynxos workaround.
        * sysdep.c: Back out temporary lynxos workaround.
        (__gnat_get_stack_info): Add this procedure that passes to the Ada run
        (__gnat_get_stack_info): Add this procedure that passes to the Ada run
        time the stack information associated to the currently executing task.
        time the stack information associated to the currently executing task.
        Only VxWorks systems require this function.
        Only VxWorks systems require this function.
2007-06-06  Eric Botcazou  
2007-06-06  Eric Botcazou  
        * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
        * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
        add the stack bias if the offset is computed from a frame address.
        add the stack bias if the offset is computed from a frame address.
        (__gnat_backtrace): Adjust for above change.
        (__gnat_backtrace): Adjust for above change.
2007-06-06  Thomas Quinot  
2007-06-06  Thomas Quinot  
        * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
        * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
        PE_Non_Transportable_Actual.
        PE_Non_Transportable_Actual.
        (By_Descriptor_Last): New constant.
        (By_Descriptor_Last): New constant.
        (By_Copy_Return): Likewise.
        (By_Copy_Return): Likewise.
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
        * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
        * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
        is.
        is.
        * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
        * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
        /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
        /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
        /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
        /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
        Add missing comment for /OPTIMIZE=SPACE
        Add missing comment for /OPTIMIZE=SPACE
        Add entry for OPTIMIZE=SPACE
        Add entry for OPTIMIZE=SPACE
        Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
        Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
        Add documentation for new qualifiers corresponding to -gnatw.c/.C
        Add documentation for new qualifiers corresponding to -gnatw.c/.C
2007-06-06  Vincent Celier  
2007-06-06  Vincent Celier  
            Robert Dewar  
            Robert Dewar  
        * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
        * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
        -gnatw.C)
        -gnatw.C)
        * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
        * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
        Document gnatbind switch -a
        Document gnatbind switch -a
        (case Constructions): Document that variables declarations are allowed
        (case Constructions): Document that variables declarations are allowed
        for previously declared variables.
        for previously declared variables.
        Fix external lib project example
        Fix external lib project example
        -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
        -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
        Indicate that "#if not X or Y then" is not allowed in input files to
        Indicate that "#if not X or Y then" is not allowed in input files to
        gnatprep.
        gnatprep.
        Document gnatw.x and gnatw.X warning flags
        Document gnatw.x and gnatw.X warning flags
        Mention -Winline switch to activate warnings when back-end inlining is
        Mention -Winline switch to activate warnings when back-end inlining is
        ineffective.
        ineffective.
        Add gnatcheck rule descriptions
        Add gnatcheck rule descriptions
        Describe how to use the GNAT driver to call a tool on a closure.
        Describe how to use the GNAT driver to call a tool on a closure.
        Describe how to run project-wide checks or metrics.
        Describe how to run project-wide checks or metrics.
        Document gnatbind's -R option
        Document gnatbind's -R option
        Updated to account for Ada 2005 support
        Updated to account for Ada 2005 support
        * gnat_rm.texi (Case Construction): Allow variable declarations for
        * gnat_rm.texi (Case Construction): Allow variable declarations for
        previously declared variables.
        previously declared variables.
        (Representation Clauses and Pragmas): Lift restriction on alignment
        (Representation Clauses and Pragmas): Lift restriction on alignment
        clauses for record types.
        clauses for record types.
        (Ada.Characters.*): Fix typo in reference to A.3.3(27).
        (Ada.Characters.*): Fix typo in reference to A.3.3(27).
        Document No_Exception_Propagation restriction
        Document No_Exception_Propagation restriction
        Document No_Body pragma
        Document No_Body pragma
        Updated to account for Ada 2005 support; corrected some typos
        Updated to account for Ada 2005 support; corrected some typos
        (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
        (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
        * gnat-style.texi: Make it clear that we never use mode IN for
        * gnat-style.texi: Make it clear that we never use mode IN for
        procedures or functions
        procedures or functions
        * ug_words: Add entries for -gnatw.x and -gnatw.X
        * ug_words: Add entries for -gnatw.x and -gnatw.X
        Add entries for -gnatw.c/.C
        Add entries for -gnatw.c/.C
2007-06-06  Pascal Obry  
2007-06-06  Pascal Obry  
            Vincent Celier  
            Vincent Celier  
        * makegpr.adb (Add_Archive_Path): Use untouched object and library
        * makegpr.adb (Add_Archive_Path): Use untouched object and library
        dirs and library name.
        dirs and library name.
        (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
        (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
        comments.
        comments.
        (Build_Library): Idem.
        (Build_Library): Idem.
        (Compile_Individual_Sources): Idem.
        (Compile_Individual_Sources): Idem.
        (Compile_Link_With_Gnatmake): Idem.
        (Compile_Link_With_Gnatmake): Idem.
        (Compile_Sources): Idem.
        (Compile_Sources): Idem.
        (Get_Imported_Directories): Idem.
        (Get_Imported_Directories): Idem.
        (Link_Executables): Idem. Same change for the executable dir.
        (Link_Executables): Idem. Same change for the executable dir.
        (Check_Compilation_Needed): C_Source_Path new variable containing
        (Check_Compilation_Needed): C_Source_Path new variable containing
        the canonical form of Source_Path to check against the source names
        the canonical form of Source_Path to check against the source names
        in the dependency file.
        in the dependency file.
        (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
        (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
        verbose mode, display the name of the object directory we're changing
        verbose mode, display the name of the object directory we're changing
        to.
        to.
        (Saved_Switches): New name of table X_Switches
        (Saved_Switches): New name of table X_Switches
        (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
        (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
        (Usage): New line for switch -aP
        (Usage): New line for switch -aP
        (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
        (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
        testing if a directory should be added to the search path.
        testing if a directory should be added to the search path.
2007-06-06  Javier Miranda  
2007-06-06  Javier Miranda  
        * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
        * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
        a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
        a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
        declaration after freezing point of all its associated tagged types;
        declaration after freezing point of all its associated tagged types;
        otherwise such types are frozen too early.
        otherwise such types are frozen too early.
2007-06-06  Robert Dewar  
2007-06-06  Robert Dewar  
        * a-reatim.adb: Documentation addition
        * a-reatim.adb: Documentation addition
        * g-cgideb.adb: Minor code reorganization
        * g-cgideb.adb: Minor code reorganization
        * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
        * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
        mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
        mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
        s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
        s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
        * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
        * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
        function.  Change name New_Scope to Push_Scope
        function.  Change name New_Scope to Push_Scope
        (Get_Debug_Flag_K): Remove unused obsolete function.
        (Get_Debug_Flag_K): Remove unused obsolete function.
        * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
        * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
        Push_Scope.
        Push_Scope.
        * makeusg.adb: Update Copyright notice
        * makeusg.adb: Update Copyright notice
        Add line for switch -aP
        Add line for switch -aP
        * makeusg.adb: Fix wording of some usage messages
        * makeusg.adb: Fix wording of some usage messages
        * s-assert.adb (Raise_Assert_Failure): Add call to
        * s-assert.adb (Raise_Assert_Failure): Add call to
        Debug_Raise_Assert_Failure.
        Debug_Raise_Assert_Failure.
        * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
        * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
        (2, Standard'Alignment) for compatibility with AAMP (where alignment
        (2, Standard'Alignment) for compatibility with AAMP (where alignment
        is restricted to 1).
        is restricted to 1).
        * s-wchjis.adb: Remove use of System.Pure_Exceptions
        * s-wchjis.adb: Remove use of System.Pure_Exceptions
        * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
        * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
        node location to No_Location when we're not debugging the expanded
        node location to No_Location when we're not debugging the expanded
        code.
        code.
2007-05-22  Alexandre Oliva  
2007-05-22  Alexandre Oliva  
        * misc.c (enumerate_modes): Consider log2_b to always be one.
        * misc.c (enumerate_modes): Consider log2_b to always be one.
2007-05-14  Rafael Ávila de Espíndola  
2007-05-14  Rafael Ávila de Espíndola  
        * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
        * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2007-05-02  Pascal Obry  
2007-05-02  Pascal Obry  
        * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
        * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
        to use Stream_IO.File_Type. This is needed to make use of the UTF-8
        to use Stream_IO.File_Type. This is needed to make use of the UTF-8
        encoding support of Stream_IO.
        encoding support of Stream_IO.
        (Write_Unit): Idem.
        (Write_Unit): Idem.
        * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
        * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
        filename and corresponding encoding to match the OS requirement.
        filename and corresponding encoding to match the OS requirement.
        (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
        (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
        routine will fail on specific devices like CON: AUX: ...
        routine will fail on specific devices like CON: AUX: ...
        PR ada/29856: Add missing braces
        PR ada/29856: Add missing braces
2007-04-22  Andrew Pinski  
2007-04-22  Andrew Pinski  
        PR ada/31660
        PR ada/31660
        * ada-tree.h (lang_tree_node): Fix typo in chain_next.
        * ada-tree.h (lang_tree_node): Fix typo in chain_next.
2007-04-21  Jan Hubicka  
2007-04-21  Jan Hubicka  
        * misc.c (gnat_expand_body): Don't call target for destructors,
        * misc.c (gnat_expand_body): Don't call target for destructors,
        avoid redundant check on syntax errors.
        avoid redundant check on syntax errors.
2007-04-21  Andrew Pinski  
2007-04-21  Andrew Pinski  
        * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
        * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-17  Andreas Krebbel  
2007-04-17  Andreas Krebbel  
        PR ada/31576
        PR ada/31576
        * system-linux-alpha.ads: Disable constant condition warning for the
        * system-linux-alpha.ads: Disable constant condition warning for the
        Default_Bit_Order variable.
        Default_Bit_Order variable.
        * system-linux-s390.ads: Likewise.
        * system-linux-s390.ads: Likewise.
        * system-linux-s390x.ads: Likewise.
        * system-linux-s390x.ads: Likewise.
        * system-linux-sparc.ads: Likewise.
        * system-linux-sparc.ads: Likewise.
2007-04-06  Javier Miranda  
2007-04-06  Javier Miranda  
            Matt Heaney  
            Matt Heaney  
            Robert Dewar  
            Robert Dewar  
        a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
        a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
        a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
        a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
        a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
        a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
        a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
        a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
        a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
        a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
        a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
        a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
        a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
        a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
        a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
        a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
        a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
        a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
        a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
        a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
        a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
        a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
        a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
        a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
        a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
        a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
        a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
        a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
        a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
        a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
        a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
        a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
        a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
        a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
        i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
        i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
        unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
        unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
        a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
        a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
        a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
        a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
        a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
        a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
        expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
        expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
        s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
        s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
        s-taprop-tru64.adb, s-taprop-irix.adb,
        s-taprop-tru64.adb, s-taprop-irix.adb,
        s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
        s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
        s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
        s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
        s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
        s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
        s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
        s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
        s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
        s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
        a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
        a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
        a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
        a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
        g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
        g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
        s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
        s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
        s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
        s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
        s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
        s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
        s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
        s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
        s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
        s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
        s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
        s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
        a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
        a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
        a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
        a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
        a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
        a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
        a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
        a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
        a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
        a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
        a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
        a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
        access types.
        access types.
        Update documentation.
        Update documentation.
        Minor rewording.
        Minor rewording.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
        * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
        * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
        system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
        system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
        system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.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-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
        system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
        system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
        system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
        system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
        system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
        system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
        system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
        system-hpux-ia64.ads, targparm.adb,
        system-hpux-ia64.ads, targparm.adb,
        targparm.ads (Functions_Return_By_DSP_On_Target): Removed
        targparm.ads (Functions_Return_By_DSP_On_Target): Removed
        * system.ads: Move Functions_Return_By_DSP to obsolete section,
        * system.ads: Move Functions_Return_By_DSP to obsolete section,
        kept for bootstrap purposes only.
        kept for bootstrap purposes only.
2007-04-06  Arnaud Charlet  
2007-04-06  Arnaud Charlet  
        * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
        * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
        s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
        s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
        s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
        s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
        (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
        (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
        * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
        * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
        (Local_Raise): New dummy procedure called when a raise is converted
        (Local_Raise): New dummy procedure called when a raise is converted
        to a local goto. Used for debugger to detect that the exception
        to a local goto. Used for debugger to detect that the exception
        is raised.
        is raised.
        * debug.adb: Document new d.g flag (expand local raise statements to
        * debug.adb: Document new d.g flag (expand local raise statements to
        gotos even if pragma Restriction (No_Exception_Propagation) is not set)
        gotos even if pragma Restriction (No_Exception_Propagation) is not set)
        * exp_sel.adb: Use Make_Implicit_Exception_Handler
        * exp_sel.adb: Use Make_Implicit_Exception_Handler
        * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
        * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
        suppress warnings for unused handlers.
        suppress warnings for unused handlers.
        (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
        (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
        warnings for raise statements not handled locally.
        warnings for raise statements not handled locally.
        (Get_RT_Exception_Entity): New function
        (Get_RT_Exception_Entity): New function
        (Get_Local_Call_Entity): New function
        (Get_Local_Call_Entity): New function
        (Find_Local_Handler): New function
        (Find_Local_Handler): New function
        (Warn_If_No_Propagation): New procedure
        (Warn_If_No_Propagation): New procedure
        (Expand_At_End_Handler): Call Make_Implicit_Handler
        (Expand_At_End_Handler): Call Make_Implicit_Handler
        (Expand_Exception_Handlers): Major additions to deal with local handlers
        (Expand_Exception_Handlers): Major additions to deal with local handlers
        (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
        (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
        Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
        Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
        for local raise
        for local raise
        * exp_ch11.ads (Get_RT_Exception_Entity): New function
        * exp_ch11.ads (Get_RT_Exception_Entity): New function
        (Get_Local_Call_Entity): New function
        (Get_Local_Call_Entity): New function
        * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
        * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
        of restrictions that the binder will never suggest adding.
        of restrictions that the binder will never suggest adding.
        * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
        * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
        to No_Elist.
        to No_Elist.
        * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
        * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
        be with'ed in the presence of pragma Restriction
        be with'ed in the presence of pragma Restriction
        (No_Exception_Propagation).
        (No_Exception_Propagation).
        * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
        * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
        * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
        * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
        parameter, then the handler is not a suitable target for a local raise,
        parameter, then the handler is not a suitable target for a local raise,
        and this is a violation of restriction No_Exception_Propagation.
        and this is a violation of restriction No_Exception_Propagation.
        (Analyze_Handled_Statements): Analyze choice parameters in exception
        (Analyze_Handled_Statements): Analyze choice parameters in exception
        handlers before analyzing statement sequence (needed for proper
        handlers before analyzing statement sequence (needed for proper
        detection of local raise statements).
        detection of local raise statements).
        (Analyze_Raise_Statement): Reraise statement is a violation of the
        (Analyze_Raise_Statement): Reraise statement is a violation of the
        No_Exception_Propagation restriction.
        No_Exception_Propagation restriction.
        * s-rident.ads: Add new restriction No_Exception_Propagation
        * s-rident.ads: Add new restriction No_Exception_Propagation
        * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
        * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
        function, like Make_Exception_Handler but sets Local_Raise_Statements
        function, like Make_Exception_Handler but sets Local_Raise_Statements
        to No_List.
        to No_List.
        (Add_Unique_Serial_Number): Deal with case where this is called during
        (Add_Unique_Serial_Number): Deal with case where this is called during
        processing of configuration pragmas.
        processing of configuration pragmas.
2007-04-06  Thomas Quinot  
2007-04-06  Thomas Quinot  
            Pat Rogers  
            Pat Rogers  
            Pascal Obry  
            Pascal Obry  
        * g-stsifd-sockets.adb: New file.
        * g-stsifd-sockets.adb: New file.
        * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
        * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
        g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
        g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
        g-socthi-vms.adb: Move signalling
        g-socthi-vms.adb: Move signalling
        fd management to a nested package, so that they can conveniently be
        fd management to a nested package, so that they can conveniently be
        moved to a subunit that is shared across Windows, VMS, and VxWorks
        moved to a subunit that is shared across Windows, VMS, and VxWorks
        (Ada implementation) or completed with imported bodies from socket.c
        (Ada implementation) or completed with imported bodies from socket.c
        (UNIX case).
        (UNIX case).
        (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
        (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
        subprograms.
        subprograms.
        (Check_Selector): Use Read_Signalling_Fd to read and discard data from
        (Check_Selector): Use Read_Signalling_Fd to read and discard data from
        the signalling file descriptor.
        the signalling file descriptor.
        (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
        (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
        signalling file descriptor.
        signalling file descriptor.
        (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
        (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
        instead of creating a pair of sockets for signalling here.
        instead of creating a pair of sockets for signalling here.
        * g-socthi.adb: Ditto.
        * g-socthi.adb: Ditto.
        Set the runtime process to ignore SIGPIPEs on platforms that support
        Set the runtime process to ignore SIGPIPEs on platforms that support
        neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
        neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
        * g-socthi-mingw.adb: Ditto.
        * g-socthi-mingw.adb: Ditto.
        (WS_Version): Use Windows 2.2.
        (WS_Version): Use Windows 2.2.
        Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
        Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
        * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
        * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
        Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
        Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
        * Makefile.in: New libgnat pair g-stsifd.adb
        * Makefile.in: New libgnat pair g-stsifd.adb
        added GNAT byte swapping facility
        added GNAT byte swapping facility
        Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
        Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
        * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
        * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
        * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
        * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
        New subprograms.
        New subprograms.
        (__gnat_create_signalling_fds): New subprogram.
        (__gnat_create_signalling_fds): New subprogram.
        Set the runtime process to ignore SIGPIPEs on platforms that support
        Set the runtime process to ignore SIGPIPEs on platforms that support
        neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
        neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
2007-04-06  Hristian Kirtchev  
2007-04-06  Hristian Kirtchev  
            Vincent Celier  
            Vincent Celier  
        * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
        * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
        New version of Ada.Calendar which supports the new upper bound of Ada
        New version of Ada.Calendar which supports the new upper bound of Ada
        time (2399-12-31 86_399.999999999).
        time (2399-12-31 86_399.999999999).
        The following modifications have been made to the package:
        The following modifications have been made to the package:
         - New representation of time as count of nanoseconds since the start of
         - New representation of time as count of nanoseconds since the start of
           Ada time (1901-1-1 0.0).
           Ada time (1901-1-1 0.0).
         - Target independent Split and Time_Of routines which service both
         - Target independent Split and Time_Of routines which service both
           Ada 95 and Ada 2005 code.
           Ada 95 and Ada 2005 code.
         - Target independent interface to the Ada 2005 children of Calendar.
         - Target independent interface to the Ada 2005 children of Calendar.
         - Integrated leap seconds into Ada 95 and Ada 2005 mode.
         - Integrated leap seconds into Ada 95 and Ada 2005 mode.
         - Handling of non-leap centenial years.
         - Handling of non-leap centenial years.
         - Updated clock function.
         - Updated clock function.
         - Updated arithmetic and comparison operators.
         - Updated arithmetic and comparison operators.
        * a-caldel.adb (To_Duration): Add call to target independent routine in
        * a-caldel.adb (To_Duration): Add call to target independent routine in
        Ada.Calendar to handle the conversion of time to duration.
        Ada.Calendar to handle the conversion of time to duration.
        * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
        * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
        (UTC Offset).
        (UTC Offset).
        If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
        If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
        set off to 0.
        set off to 0.
        (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
        (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
        targets do not have a natural time zone, GMT is used as a default.
        targets do not have a natural time zone, GMT is used as a default.
        (__gnat_get_task_options): New.
        (__gnat_get_task_options): New.
        * a-direct.adb (Modification_Time): Add with and use clauses for
        * a-direct.adb (Modification_Time): Add with and use clauses for
        Ada.Calendar and Ada.
        Ada.Calendar and Ada.
        Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
        Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
        since it is no longer needed.
        since it is no longer needed.
        (Duration_To_Time): Removed.
        (Duration_To_Time): Removed.
        (OS_Time_To_Long_Integer): Removed.
        (OS_Time_To_Long_Integer): Removed.
        (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
        (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
        Formatting Time_Of routines which automatically handle time zones,
        Formatting Time_Of routines which automatically handle time zones,
        buffer periods and leap seconds.
        buffer periods and leap seconds.
        * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
        * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
        target independent routines in Ada.Calendar.
        target independent routines in Ada.Calendar.
        * a-calfor.ads, a-calfor.adb:
        * a-calfor.ads, a-calfor.adb:
        Code cleanup and addition of validity checks in various routines.
        Code cleanup and addition of validity checks in various routines.
        (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
        (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
        Ada.Calendar.
        Ada.Calendar.
        * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
        * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
        independent routine in Ada.Calendar.
        independent routine in Ada.Calendar.
2007-04-06  Olivier Hainque  
2007-04-06  Olivier Hainque  
        * adaint.c:
        * adaint.c:
        (convert_addresses): Adjust prototype and dummy definition to expect an
        (convert_addresses): Adjust prototype and dummy definition to expect an
         extra file_name argument.
         extra file_name argument.
        * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
        * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
        filling the now expected file_name argument with the appropriate
        filling the now expected file_name argument with the appropriate
        argv[0] expansion.
        argv[0] expansion.
        (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
        (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
        (tracebk): Array of void * instead of char *, corresponding to what
        (tracebk): Array of void * instead of char *, corresponding to what
         convert_addresses expects.
         convert_addresses expects.
        (exename): New static global, to hold the executable file name to be
        (exename): New static global, to hold the executable file name to be
        used in all convert_addresses invocations.
        used in all convert_addresses invocations.
        (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
        (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
        change.
        change.
        (__gnat_gmem_a2l_initialize): Resolve exename.
        (__gnat_gmem_a2l_initialize): Resolve exename.
        (__gnat_convert_addresses): Use exename as the convert_addresses
        (__gnat_convert_addresses): Use exename as the convert_addresses
        file_name argument.
        file_name argument.
        * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
        * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
        "convert_addresses", now expecting a filename argument. Import the
        "convert_addresses", now expecting a filename argument. Import the
        necessary entities to compute the filename to use and pass it to
        necessary entities to compute the filename to use and pass it to
        convert_addresses.
        convert_addresses.
2007-04-06  Matt Gingell  
2007-04-06  Matt Gingell  
        * system-aix.ads: Back out previous change.
        * system-aix.ads: Back out previous change.
        (Functions_Return_By_DSP): Removed
        (Functions_Return_By_DSP): Removed
2007-04-06  Pascal Obry  
2007-04-06  Pascal Obry  
        * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
        * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
        or the monotonic used by Ada.Real_Time) to compute the sleep duration
        or the monotonic used by Ada.Real_Time) to compute the sleep duration
        on Windows.
        on Windows.
2007-04-06  Jose Ruiz  
2007-04-06  Jose Ruiz  
        * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
        * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
        function. Its value changes in different VxWorks versions, and it is
        function. Its value changes in different VxWorks versions, and it is
        now handled by the function __gnat_get_task_options.
        now handled by the function __gnat_get_task_options.
        * s-taprop-vxworks.adb (Create_Task): Call the function
        * s-taprop-vxworks.adb (Create_Task): Call the function
        __gnat_get_task_options to get the required options for creating a task.
        __gnat_get_task_options to get the required options for creating a task.
2007-04-06  Pascal Obry  
2007-04-06  Pascal Obry  
            Thomas Quinot  
            Thomas Quinot  
        * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
        * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
        dealing with filename.
        dealing with filename.
        (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
        (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
        filename from a standard string to a wide-string depending on the
        filename from a standard string to a wide-string depending on the
        encoding value.
        encoding value.
        (__gnat_freopen): Idem.
        (__gnat_freopen): Idem.
        (__gnat_current_time): New function (wrapper for time(3) standard C
        (__gnat_current_time): New function (wrapper for time(3) standard C
        function).
        function).
        * g-os_lib.ads (Current_Time): New function. Returns the current
        * g-os_lib.ads (Current_Time): New function. Returns the current
        system time as an OS_Time value.
        system time as an OS_Time value.
        * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
        * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
        (Monotonic_Clock): Same.
        (Monotonic_Clock): Same.
2007-04-06  Quentin Ochem  
2007-04-06  Quentin Ochem  
        * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
        * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
        not on a natural.
        not on a natural.
        (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
        (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
2007-04-06  Jose Ruiz  
2007-04-06  Jose Ruiz  
        * a-retide.adb: Add elaboration code to ensure that the tasking run
        * a-retide.adb: Add elaboration code to ensure that the tasking run
        time is initialized when using delay operations even when no task is
        time is initialized when using delay operations even when no task is
        created.
        created.
2007-04-06  Javier Miranda  
2007-04-06  Javier Miranda  
        * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
        * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
        component Num_Prim_Ops.
        component Num_Prim_Ops.
        (Set_Num_Prim_Ops): Removed.
        (Set_Num_Prim_Ops): Removed.
        Remove all the assertions because all the routines of this
        Remove all the assertions because all the routines of this
        package are inline always.
        package are inline always.
        (Get_Offset_Index): Add support to primary dispatch tables.
        (Get_Offset_Index): Add support to primary dispatch tables.
        Move the documentation about the dispatch table to a-tags.ads
        Move the documentation about the dispatch table to a-tags.ads
        (Set_External_Tag): Removed
        (Set_External_Tag): Removed
        (Inherit_TSD): Removed.
        (Inherit_TSD): Removed.
        (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
        (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
        moved to a-tags.ads
        moved to a-tags.ads
        (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
        (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
        Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
        Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
        of the TSD field "Table" because this field has been renamed to
        of the TSD field "Table" because this field has been renamed to
        "Ifaces_Table".
        "Ifaces_Table".
        (Inherit_CPP_DT): Removed.
        (Inherit_CPP_DT): Removed.
        (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
        (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
        Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
        Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
        declarations have been moved to a-tags.ads
        declarations have been moved to a-tags.ads
        (Check_Size): Removed.
        (Check_Size): Removed.
        (Expanded_Name): Updated to get access to the new field of TSD
        (Expanded_Name): Updated to get access to the new field of TSD
        containing the address of the expanded name.
        containing the address of the expanded name.
        (Get_Access_Level/Set_Access_Level): Removed.
        (Get_Access_Level/Set_Access_Level): Removed.
        (Get_Predefined_Prim_Op_Address): Removed.
        (Get_Predefined_Prim_Op_Address): Removed.
        (Set_Predefined_Prim_Op_Address): Removed.
        (Set_Predefined_Prim_Op_Address): Removed.
        (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
        (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
        (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
        (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
        (Set_Expanded_Name): Removed.
        (Set_Expanded_Name): Removed.
        (Inherit_DT): Removed.
        (Inherit_DT): Removed.
        (Inherit_CPP_DT): Removed.
        (Inherit_CPP_DT): Removed.
        (Set_RC_Offset): Removed.
        (Set_RC_Offset): Removed.
        (Set_TSD): Removed.
        (Set_TSD): Removed.
        (Base_Address): New function that displaces "this" to point to the base
        (Base_Address): New function that displaces "this" to point to the base
        of the object (that is, to point to the primary tag of the object).
        of the object (that is, to point to the primary tag of the object).
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
        * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
        anonymous access component, do not create a master_id if type already
        anonymous access component, do not create a master_id if type already
        has one, as may happen if the type is a subcomponent of a packed array
        has one, as may happen if the type is a subcomponent of a packed array
        type.
        type.
        (Build_Init_Procedure, Component_Needs_Simple_Initialization,
        (Build_Init_Procedure, Component_Needs_Simple_Initialization,
        Initialize_Tag): Remove code associated with the old CPP pragmas.
        Initialize_Tag): Remove code associated with the old CPP pragmas.
        CPP_Virtual and CPP_Vtable are no longer supported.
        CPP_Virtual and CPP_Vtable are no longer supported.
        (Build_Offset_To_Top_Internal): Add support for concurrent record types
        (Build_Offset_To_Top_Internal): Add support for concurrent record types
        (Build_Offset_To_Top_Functions): Add support for concurrent record types
        (Build_Offset_To_Top_Functions): Add support for concurrent record types
        (Freeze_Record_Type): Remove call to
        (Freeze_Record_Type): Remove call to
        Init_Predefined_Interface_Primitives.
        Init_Predefined_Interface_Primitives.
        (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
        (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
        code required to initialize the tags of the secondary dispatch tables.
        code required to initialize the tags of the secondary dispatch tables.
        This leaves the algoritm more clear.
        This leaves the algoritm more clear.
        (Init_Secondary_Tags): Add support for concurrent record types
        (Init_Secondary_Tags): Add support for concurrent record types
        (Make_Predefined_Primitive_Specs): Code cleanup.
        (Make_Predefined_Primitive_Specs): Code cleanup.
        (Predefined_Primitive_Bodies): Code cleanup.
        (Predefined_Primitive_Bodies): Code cleanup.
        (Build_Master_Renaming): New local subprogram.
        (Build_Master_Renaming): New local subprogram.
        (Expand_N_Full_Type_Declaration): Build the master_id associated with
        (Expand_N_Full_Type_Declaration): Build the master_id associated with
        anonymous access to task type components.
        anonymous access to task type components.
        (Expand_N_Subtype_Indication): The bounds of a range constraint in a
        (Expand_N_Subtype_Indication): The bounds of a range constraint in a
        subtype indication are resolved during analysis, and must not be done
        subtype indication are resolved during analysis, and must not be done
        here.
        here.
        (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
        (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
2007-04-06  Geert Bosch  
2007-04-06  Geert Bosch  
            Ed Schonberg  
            Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
            Bob Duff  
            Bob Duff  
        * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
        * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
        for conversion of a Float_Type'Truncation to integer.
        for conversion of a Float_Type'Truncation to integer.
        * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
        * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
        check if a node is an attribute that can be handled directly by the
        check if a node is an attribute that can be handled directly by the
        back end.
        back end.
        (Expand_N_Attribute_Reference): Suppress expansion of floating-point
        (Expand_N_Attribute_Reference): Suppress expansion of floating-point
        attributes that can be handled directly by the back end.
        attributes that can be handled directly by the back end.
        (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
        (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
        use new predicate Is_Access_Protected_Subprogram_Type.
        use new predicate Is_Access_Protected_Subprogram_Type.
        (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
        (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
        and Unchecked_Union if it is generated as part of the default  Output
        and Unchecked_Union if it is generated as part of the default  Output
        procedure for a type with default discriminants.
        procedure for a type with default discriminants.
        (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
        (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
        if we are compiling under restriction No_Dispatching_Calls.
        if we are compiling under restriction No_Dispatching_Calls.
        (Constrained): Use Underlying_Type, in case the type is private without
        (Constrained): Use Underlying_Type, in case the type is private without
        discriminants, but the full type has discriminants.
        discriminants, but the full type has discriminants.
        (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
        (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
        call to Build_Get_Access_Level.
        call to Build_Get_Access_Level.
        (Expand_N_Attribute_Reference): The use of 'Address with class-wide
        (Expand_N_Attribute_Reference): The use of 'Address with class-wide
        interface objects requires a call to the run-time subprogram that
        interface objects requires a call to the run-time subprogram that
        returns the base address of the object.
        returns the base address of the object.
        (Valid_Conversion): Improve error message on illegal attempt to store
        (Valid_Conversion): Improve error message on illegal attempt to store
        an anonymous access to subprogram value into a record component.
        an anonymous access to subprogram value into a record component.
        * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
        * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
        null".
        null".
        (Simplify_Type_Conversion): New procedure that performs simplification
        (Simplify_Type_Conversion): New procedure that performs simplification
        of Int_Type (Float_Type'Truncation (X)).
        of Int_Type (Float_Type'Truncation (X)).
        (Resolve_Type_Conversion): Call above procedure after resolving operand
        (Resolve_Type_Conversion): Call above procedure after resolving operand
        and before performing checks. This replaces the existing ineffective
        and before performing checks. This replaces the existing ineffective
        code in Exp_Ch4.
        code in Exp_Ch4.
        (Set_String_Literal_Subtype): When creating the internal static lower
        (Set_String_Literal_Subtype): When creating the internal static lower
        bound subtype for a string literal, use a newly created copy of the
        bound subtype for a string literal, use a newly created copy of the
        subtree representing the lower bound.
        subtree representing the lower bound.
        (Resolve_Call): Exclude build-in-place function calls from transient
        (Resolve_Call): Exclude build-in-place function calls from transient
        scope treatment. Update comments to describe this exception.
        scope treatment. Update comments to describe this exception.
        (Resolve_Equality_Op): In case of dispatching call check violation of
        (Resolve_Equality_Op): In case of dispatching call check violation of
        restriction No_Dispatching_Calls.
        restriction No_Dispatching_Calls.
        (Resolve_Call): If the call returns an array, the context imposes the
        (Resolve_Call): If the call returns an array, the context imposes the
        component type of the array, and the function has one non-defaulted
        component type of the array, and the function has one non-defaulted
        parameter, rewrite the call as the indexing of a call with a single
        parameter, rewrite the call as the indexing of a call with a single
        parameter, to handle an Ada 2005 syntactic ambiguity for calls written
        parameter, to handle an Ada 2005 syntactic ambiguity for calls written
        in prefix form.
        in prefix form.
        (Resolve_Actuals): If an actual is an allocator for an access parameter,
        (Resolve_Actuals): If an actual is an allocator for an access parameter,
        the master of the created object is the innermost enclosing statement.
        the master of the created object is the innermost enclosing statement.
        (Remove_Conversions): For a binary operator, check if type of second
        (Remove_Conversions): For a binary operator, check if type of second
        formal is numeric, to check if an abstract interpretation is present
        formal is numeric, to check if an abstract interpretation is present
        in the case of exponentiation as well.
        in the case of exponentiation as well.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Bob Duff  
            Bob Duff  
        * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
        * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
        copying a parameter list in a call, set properly the First_Named_Formal
        copying a parameter list in a call, set properly the First_Named_Formal
        and Next_Named_Formal fields in the new list and in the enclosing call.
        and Next_Named_Formal fields in the new list and in the enclosing call.
        (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
        (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
        names, to ease typing in the debugger. Improve comments.
        names, to ease typing in the debugger. Improve comments.
        (Watch_Node): New variable, intended to be set in the debugger.
        (Watch_Node): New variable, intended to be set in the debugger.
        (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
        (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
        called when the watched node is created.
        called when the watched node is created.
        (New_Node_Debugging_Output): Combined version of local procedures
        (New_Node_Debugging_Output): Combined version of local procedures
        New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
        New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
        with a parameter so that conditional breakpoints like "if Node = 12345"
        with a parameter so that conditional breakpoints like "if Node = 12345"
        work.
        work.
        (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
        (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
        Add Elist1 function
        Add Elist1 function
2007-04-06  Thomas Quinot  
2007-04-06  Thomas Quinot  
            Ed Schonberg  
            Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * checks.ads, checks.adb (Selected_Range_Checks): No range check is
        * checks.ads, checks.adb (Selected_Range_Checks): No range check is
        required for a conversion between two access-to-unconstrained-array
        required for a conversion between two access-to-unconstrained-array
        types.
        types.
        (Expr_Known_Valid): Validity checks do not apply to discriminants, but
        (Expr_Known_Valid): Validity checks do not apply to discriminants, but
        to discriminant constraints on discriminant objects. This rule must
        to discriminant constraints on discriminant objects. This rule must
        apply as well to discriminants of protected types in private components.
        apply as well to discriminants of protected types in private components.
        (Null_Exclusion_Static_Checks): If No_Initialization is set on an
        (Null_Exclusion_Static_Checks): If No_Initialization is set on an
        object of a null-excluding access type then don't require the
        object of a null-excluding access type then don't require the
        the object declaration to have an expression and don't emit a
        the object declaration to have an expression and don't emit a
        run-time check.
        run-time check.
2007-04-06  Arnaud Charlet  
2007-04-06  Arnaud Charlet  
            Eric Botcazou  
            Eric Botcazou  
        * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
        * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
        and made constant.
        and made constant.
        * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
        * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
        Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
        Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
        carry any.
        carry any.
        * fe.h (Compiler_Abort): Add third parameter.
        * fe.h (Compiler_Abort): Add third parameter.
        * misc.c (internal_error_function): Build third argument from current
        * misc.c (internal_error_function): Build third argument from current
        input location and pass it to Compiler_Abort.
        input location and pass it to Compiler_Abort.
2007-04-06  Gary Dismukes  
2007-04-06  Gary Dismukes  
        * cstand.adb (Create_Standard): When the target's storage unit size is
        * cstand.adb (Create_Standard): When the target's storage unit size is
        greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
        greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
        Standard_String.
        Standard_String.
2007-04-06  Nicolas Roche  
2007-04-06  Nicolas Roche  
        * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
        * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
        absolute path can have the following form: device:/a/b. In this case
        absolute path can have the following form: device:/a/b. In this case
        '/' should be inserted between the path and the filename.
        '/' should be inserted between the path and the filename.
2007-04-06  Olivier Hainque  
2007-04-06  Olivier Hainque  
            Eric Botcazou  
            Eric Botcazou  
        * decl.c (gnat_to_gnu_entity) : Associate an external
        * decl.c (gnat_to_gnu_entity) : Associate an external
        VAR_DECL to a CONST_DECL we make for a public constant when we know the
        VAR_DECL to a CONST_DECL we make for a public constant when we know the
        corresponding definition has created the so made visible variable.
        corresponding definition has created the so made visible variable.
        Handle anonymous access to protected subprogram.
        Handle anonymous access to protected subprogram.
        (gnat_to_gnu_entity) : Do not make the underlying type of an
        (gnat_to_gnu_entity) : Do not make the underlying type of an
        object with an address clause volatile.  Re-enable original fix.
        object with an address clause volatile.  Re-enable original fix.
        : Set TYPE_REF_CAN_ALIAS_ALL on the reference type
        : Set TYPE_REF_CAN_ALIAS_ALL on the reference type
        too.
        too.
        (gnat_to_gnu_entity) : Retrieve the TYPE_DECL
        (gnat_to_gnu_entity) : Retrieve the TYPE_DECL
        associated with either the Equivalent or Root type, instead of the
        associated with either the Equivalent or Root type, instead of the
        naked type node.
        naked type node.
        (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
        (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
        subtree for every field of a global record type.
        subtree for every field of a global record type.
        (gnat_to_gnu_entity) : If the subtype has
        (gnat_to_gnu_entity) : If the subtype has
        discriminants, invoke again variable_size on its newly computed sizes.
        discriminants, invoke again variable_size on its newly computed sizes.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
            Thomas Quinot  
            Thomas Quinot  
            Ed Schonberg  
            Ed Schonberg  
            Bob Duff  
            Bob Duff  
        * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
        * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
        (Next_Component_Or_Discriminant): New function and procedure
        (Next_Component_Or_Discriminant): New function and procedure
        (First_Index, First_Literal, Master_Id,
        (First_Index, First_Literal, Master_Id,
        Set_First_Index, Set_First_Literal, Set_Master_Id):
        Set_First_Index, Set_First_Literal, Set_Master_Id):
        Add missing Ekind assertions.
        Add missing Ekind assertions.
        (Is_Access_Protected_Subprogram_Type): New predicate.
        (Is_Access_Protected_Subprogram_Type): New predicate.
        (Has_RACW): New entity flag, set on package entities to indicate that
        (Has_RACW): New entity flag, set on package entities to indicate that
        the package contains the declaration of a remote accecss-to-classwide
        the package contains the declaration of a remote accecss-to-classwide
        type.
        type.
        (E_Return_Statement): This node type has the Finalization_Chain_Entity
        (E_Return_Statement): This node type has the Finalization_Chain_Entity
        attribute, in case the result type has controlled parts.
        attribute, in case the result type has controlled parts.
        (Requires_Overriding): Add this new flag, because "requires
        (Requires_Overriding): Add this new flag, because "requires
        overriding" is subtly different from "is abstract" (see AI-228).
        overriding" is subtly different from "is abstract" (see AI-228).
        (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
        (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
        Is_Abstract_Type. Make sure these are called only when appropriate.
        Is_Abstract_Type. Make sure these are called only when appropriate.
        (Has_Pragma_Unreferenced_Objects): New flag
        (Has_Pragma_Unreferenced_Objects): New flag
        * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
        * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
        class-wide, the tag of the right-hand side must be an exact match, not
        class-wide, the tag of the right-hand side must be an exact match, not
        an ancestor of that of the object on left-hand side.
        an ancestor of that of the object on left-hand side.
        (Move_Activation_Chain): New procedure to create the call to
        (Move_Activation_Chain): New procedure to create the call to
        System.Tasking.Stages.Move_Activation_Chain.
        System.Tasking.Stages.Move_Activation_Chain.
        (Expand_N_Extended_Return_Statement): Generate code to call
        (Expand_N_Extended_Return_Statement): Generate code to call
        System.Finalization_Implementation.Move_Final_List at the end of a
        System.Finalization_Implementation.Move_Final_List at the end of a
        return statement if the function's result type has controlled parts.
        return statement if the function's result type has controlled parts.
        Move asserts to Build_In_Place_Formal.
        Move asserts to Build_In_Place_Formal.
        (Move_Final_List): New function to create the call statement.
        (Move_Final_List): New function to create the call statement.
        (Expand_N_Assignment_Statement): In case of assignment to a class-wide
        (Expand_N_Assignment_Statement): In case of assignment to a class-wide
        tagged type, replace generation of call to the run-time subprogram
        tagged type, replace generation of call to the run-time subprogram
        CW_Membership by call to Build_CW_Membership.
        CW_Membership by call to Build_CW_Membership.
        (Expand_N_Return_Statement): Replace generation of call to the run-time
        (Expand_N_Return_Statement): Replace generation of call to the run-time
        subprogram Get_Access_Level by call to Build_Get_Access_Level.
        subprogram Get_Access_Level by call to Build_Get_Access_Level.
        (Expand_N_Simple_Function_Return): Replace generation of call to the
        (Expand_N_Simple_Function_Return): Replace generation of call to the
        run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
        run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
        * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
        * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
        Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
        Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
        access to protected operations.
        access to protected operations.
        (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
        (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
        master and chain actual parameters to a build-in-place function call
        master and chain actual parameters to a build-in-place function call
        involving tasks.
        involving tasks.
        (BIP_Formal_Suffix): Add new enumeration literals to complete the case
        (BIP_Formal_Suffix): Add new enumeration literals to complete the case
        statement.
        statement.
        (Make_Build_In_Place_Call_In_Allocator,
        (Make_Build_In_Place_Call_In_Allocator,
        Make_Build_In_Place_Call_In_Anonymous_Context,
        Make_Build_In_Place_Call_In_Anonymous_Context,
        Make_Build_In_Place_Call_In_Assignment,
        Make_Build_In_Place_Call_In_Assignment,
        Make_Build_In_Place_Call_In_Object_Declaration): Call
        Make_Build_In_Place_Call_In_Object_Declaration): Call
        Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
        Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
        (Expand_Inlined_Call): If the subprogram is a null procedure, or a
        (Expand_Inlined_Call): If the subprogram is a null procedure, or a
        stubbed procedure with a null body, replace the call with a null
        stubbed procedure with a null body, replace the call with a null
        statement without using the full inlining machinery, for efficiency
        statement without using the full inlining machinery, for efficiency
        and to avoid invalid values in source file table entries.
        and to avoid invalid values in source file table entries.
        * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
        * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
        renamings of calls to build-in-place functions.
        renamings of calls to build-in-place functions.
        * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
        * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
        provides the functionality of RTE_Available to record components.
        provides the functionality of RTE_Available to record components.
        (RTU_Entity): The function Entity has been renamed to RTU_Entity
        (RTU_Entity): The function Entity has been renamed to RTU_Entity
        to avoid undesired overloading.
        to avoid undesired overloading.
        (Entity): New subprogram that returns the entity for the referened
        (Entity): New subprogram that returns the entity for the referened
        unit. If this unit has not been loaded, it returns Empty.
        unit. If this unit has not been loaded, it returns Empty.
        (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
        (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
        Remove no longer used entities.
        Remove no longer used entities.
        (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
        (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
        (RE_Type_Specific_Data): New entity.
        (RE_Type_Specific_Data): New entity.
        (RE_Move_Any_Value): New entity.
        (RE_Move_Any_Value): New entity.
        (RE_TA_A, RE_Get_Any_Type): New entities.
        (RE_TA_A, RE_Get_Any_Type): New entities.
        (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
        (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
         RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
         RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
         RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
         RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
        (Entity): New subprogram that returns the entity for the referened
        (Entity): New subprogram that returns the entity for the referened
        unit. If this unit has not been loaded, it returns Empty.
        unit. If this unit has not been loaded, it returns Empty.
        (RTE): Addition of a new formal that extends the search to the scopes
        (RTE): Addition of a new formal that extends the search to the scopes
        of the record types found in the chain of the package.
        of the record types found in the chain of the package.
        * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
        * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
        "abstract subprograms must be visible" message, whether or not the type
        "abstract subprograms must be visible" message, whether or not the type
        is an interface; that is, remove the special case for interface types.
        is an interface; that is, remove the special case for interface types.
        (Analyze_Function_Return): Remove error message "return of task objects
        (Analyze_Function_Return): Remove error message "return of task objects
        is not yet implemented" because this is now implemented.
        is not yet implemented" because this is now implemented.
        (Create_Extra_Formals): Add the extra master and activation chain
        (Create_Extra_Formals): Add the extra master and activation chain
        formals in case the result type has tasks.
        formals in case the result type has tasks.
        Remove error message "return of limited controlled objects is not yet
        Remove error message "return of limited controlled objects is not yet
        implemented".
        implemented".
        (Create_Extra_Formals): Add the extra caller's finalization list formal
        (Create_Extra_Formals): Add the extra caller's finalization list formal
        in case the result type has controlled parts.
        in case the result type has controlled parts.
        (Process_Formals): In case of access formal types there is no need
        (Process_Formals): In case of access formal types there is no need
        to continue with the analysis of the formals if we already notified
        to continue with the analysis of the formals if we already notified
        errors.
        errors.
        (Check_Overriding_Indicator): Add code to check overriding of predefined
        (Check_Overriding_Indicator): Add code to check overriding of predefined
        operators.
        operators.
        (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
        (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
        flags for formals that do not require them,.
        flags for formals that do not require them,.
        (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
        (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
        hidden entity is use visible or directly visible.
        hidden entity is use visible or directly visible.
        (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
        (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
        Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
        Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
        Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
        Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
        New_Overloaded_Entity): Split Is_Abstract flag into
        New_Overloaded_Entity): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract_Subprogram and Is_Abstract_Type.
        * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
        * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
        a return statement's finalization list to the caller's list, used for
        a return statement's finalization list to the caller's list, used for
        build-in-place functions with result type with controlled parts.
        build-in-place functions with result type with controlled parts.
        Remove no longer used entities.
        Remove no longer used entities.
        * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
        * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
        longer needed, because the full type is now limited, and therefore a
        longer needed, because the full type is now limited, and therefore a
        pass-by-reference type.
        pass-by-reference type.
        (Foreign_Task_Level): New constant.
        (Foreign_Task_Level): New constant.
        * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
        * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
        move tasks from the activation chain belonging to a return statement to
        move tasks from the activation chain belonging to a return statement to
        the one passed in by the caller, and update the master to the one
        the one passed in by the caller, and update the master to the one
        passed in by the caller.
        passed in by the caller.
        (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
        (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
        of unactivated tasks, so we don't kill the ones that are being returned
        of unactivated tasks, so we don't kill the ones that are being returned
        by a build-in-place function.
        by a build-in-place function.
        (Create_Task): Ignore AI-280 for foreign threads.
        (Create_Task): Ignore AI-280 for foreign threads.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
            Bob Duff  
            Bob Duff  
            Gary Dismukes  
            Gary Dismukes  
        * errout.adb (Unwind_Internal_Type): Use predicate
        * errout.adb (Unwind_Internal_Type): Use predicate
        Is_Access__Protected_Subprogram_Type.
        Is_Access__Protected_Subprogram_Type.
        * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
        * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
        (Freeze_Entity, packed array case): Do not override explicitly set
        (Freeze_Entity, packed array case): Do not override explicitly set
        alignment and size clauses.
        alignment and size clauses.
        (Freeze_Entity):  An entity declared in an outer scope can be frozen if
        (Freeze_Entity):  An entity declared in an outer scope can be frozen if
        the enclosing subprogram is a child unit body that acts as a spec.
        the enclosing subprogram is a child unit body that acts as a spec.
        (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
        (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
        (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
        (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
        Remove all code for DSP option
        Remove all code for DSP option
        * layout.adb (Layout_Record_Type): Use First/
        * layout.adb (Layout_Record_Type): Use First/
        Next_Component_Or_Discriminant
        Next_Component_Or_Discriminant
        (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
        (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
        to handle properly the anonymous access case.
        to handle properly the anonymous access case.
        * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
        * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
        for all access attributes, because overload resolution should work the
        for all access attributes, because overload resolution should work the
        same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
        same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
        causes the error message for the ambiguous "X'Access = Y'Access" and
        causes the error message for the ambiguous "X'Access = Y'Access" and
        "X'Unrestricted_Access = Y'Access" and so forth to match.
        "X'Unrestricted_Access = Y'Access" and so forth to match.
        (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
        (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
        now that anonymous access to protected operations have their own kind.
        now that anonymous access to protected operations have their own kind.
        (Resolve_Attribute): In case of dispatching call check the violation of
        (Resolve_Attribute): In case of dispatching call check the violation of
        restriction No_Dispatching_Calls.
        restriction No_Dispatching_Calls.
        (Check_Array_Type): Check new -gnatyA array index style option
        (Check_Array_Type): Check new -gnatyA array index style option
        * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
        * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
        attempt to derive from a synchronized tagged type.
        attempt to derive from a synchronized tagged type.
        (Analyze_Type_Declaration): If there is a incomplete tagged view of the
        (Analyze_Type_Declaration): If there is a incomplete tagged view of the
        type, inherit the class-wide type already created, because it may
        type, inherit the class-wide type already created, because it may
        already have been used in a self-referential anonymous access component.
        already have been used in a self-referential anonymous access component.
        (Mentions_T): Recognize self-referential anonymous access components
        (Mentions_T): Recognize self-referential anonymous access components
        that use (a subtype of) the class-wide type of the enclosing type.
        that use (a subtype of) the class-wide type of the enclosing type.
        (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
        (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
        Derived_Type for Prev formal on call to
        Derived_Type for Prev formal on call to
        Check_Anonymous_Access_Components rather than Empty.
        Check_Anonymous_Access_Components rather than Empty.
        (Make_Incomplete_Type_Declaration): Add test for case where the type has
        (Make_Incomplete_Type_Declaration): Add test for case where the type has
        a record extension in deciding whether to create a class-wide type,
        a record extension in deciding whether to create a class-wide type,
        rather than just checking Tagged_Present.
        rather than just checking Tagged_Present.
        (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
        (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
        to stand-alone object declarations as well as component declarations.
        to stand-alone object declarations as well as component declarations.
        (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
        (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
        prevent accidental overwriting when enclosing package appears in
        prevent accidental overwriting when enclosing package appears in
        a limited_with_clause.
        a limited_with_clause.
        (Array_Type_Declaration): If the component type is an anonymous access,
        (Array_Type_Declaration): If the component type is an anonymous access,
        the associated_node for the itype is the type declaration itself.
        the associated_node for the itype is the type declaration itself.
        (Add_Interface_Tag_Components): Modified to support concurrent
        (Add_Interface_Tag_Components): Modified to support concurrent
        types with abstract interfaces.
        types with abstract interfaces.
        (Check_Abstract_Interfaces): New subprogram that verifies the ARM
        (Check_Abstract_Interfaces): New subprogram that verifies the ARM
        rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
        rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
        (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
        (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
        to complete the decoration of synchronized interface types. Add also
        to complete the decoration of synchronized interface types. Add also
        a call to Check_Abstract_Interfaces to verify the ARM rules.
        a call to Check_Abstract_Interfaces to verify the ARM rules.
        (Derive_Interface_Subprograms): Modified to support concurrent types
        (Derive_Interface_Subprograms): Modified to support concurrent types
        with abstract interfaces.
        with abstract interfaces.
        (Analyze_Subtype_Indication): Resolve the range with the given subtype
        (Analyze_Subtype_Indication): Resolve the range with the given subtype
        mark, rather than delaying the full resolution depending on context.
        mark, rather than delaying the full resolution depending on context.
        (Analyze_Component_Declaration,Analyze_Interface_Declaration,
        (Analyze_Component_Declaration,Analyze_Interface_Declaration,
        Analyze_Object_Declaration,Analyze_Subtype_Declaration,
        Analyze_Object_Declaration,Analyze_Subtype_Declaration,
        Array_Type_Declaration,Build_Derived_Record_Type,
        Array_Type_Declaration,Build_Derived_Record_Type,
        Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
        Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
        Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
        Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
        Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
        Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
        Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
        called only when appropriate.
        called only when appropriate.
        (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
        (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
        to private type.
        to private type.
        (Analyze_Subtype_Declaration): For an access subtype declaration, create
        (Analyze_Subtype_Declaration): For an access subtype declaration, create
        an itype reference for the anonymous designated subtype, to prevent
        an itype reference for the anonymous designated subtype, to prevent
        scope anonmalies in gigi.
        scope anonmalies in gigi.
        (Build_Itype_Reference): New utility, to simplify construction of such
        (Build_Itype_Reference): New utility, to simplify construction of such
        references.
        references.
2007-04-06  Vincent Celier  
2007-04-06  Vincent Celier  
        * errutil.adb (Initialize): Initialize warnings table, if all warnings
        * errutil.adb (Initialize): Initialize warnings table, if all warnings
        are suppressed, supply an initial dummy entry covering all possible
        are suppressed, supply an initial dummy entry covering all possible
        source locations.
        source locations.
        * make.adb (Scan_Make_Arg): Reject options that should start with "--"
        * make.adb (Scan_Make_Arg): Reject options that should start with "--"
        and start with only one, such as "-RTS=none".
        and start with only one, such as "-RTS=none".
        (Collect_Arguments): Do not check for sources outside of projects.
        (Collect_Arguments): Do not check for sources outside of projects.
        Do not collect arguments if project is externally built.
        Do not collect arguments if project is externally built.
        (Compile_Sources): Do nothing, not even check if the source is up to
        (Compile_Sources): Do nothing, not even check if the source is up to
        date, if its project is externally built.
        date, if its project is externally built.
        (Compile): When compiling a predefined source, add -gnatpg
        (Compile): When compiling a predefined source, add -gnatpg
        as the second switch, after -c.
        as the second switch, after -c.
        (Compile_Sources): Allow compilation of Annex J renames without -a
        (Compile_Sources): Allow compilation of Annex J renames without -a
        (Is_In_Object_Directory): Check if the ALI file is in the object
        (Is_In_Object_Directory): Check if the ALI file is in the object
        even if there is no project extension.
        even if there is no project extension.
        (Create_Binder_Mapping_File): Only put a unit in the mapping file for
        (Create_Binder_Mapping_File): Only put a unit in the mapping file for
        gnatbind if the ALI file effectively exists.
        gnatbind if the ALI file effectively exists.
        (Initialize): Add the directory where gnatmake is invoked in front of
        (Initialize): Add the directory where gnatmake is invoked in front of
        the path if it is invoked from a bin directory, even without directory
        the path if it is invoked from a bin directory, even without directory
        information, so that the correct GNAT tools will be used when spawned
        information, so that the correct GNAT tools will be used when spawned
        without directory information.
        without directory information.
        * makeusg.adb: Change switch -S to -eS
        * makeusg.adb: Change switch -S to -eS
        Add lines for new switches -we, -wn and -ws
        Add lines for new switches -we, -wn and -ws
        Add line for new switch -p
        Add line for new switch -p
        * prj-proc.adb (Process): Set Success to False when Warning_Mode is
        * prj-proc.adb (Process): Set Success to False when Warning_Mode is
        Treat_As_Error and there are warnings.
        Treat_As_Error and there are warnings.
        * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
        * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
        -gnatww Change gnatmake switch -S to -eS
        -gnatww Change gnatmake switch -S to -eS
        (Scan_Make_Switches): Code reorganisation. Process separately multi
        (Scan_Make_Switches): Code reorganisation. Process separately multi
        character switches and single character switches.
        character switches and single character switches.
        (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
        (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
        False when switch is not recognized by gnatmake.
        False when switch is not recognized by gnatmake.
        (Scan_Make_Switches): Set Setup_Projects True when -p or
        (Scan_Make_Switches): Set Setup_Projects True when -p or
        --create-missing-dirs is specified.
        --create-missing-dirs is specified.
        * fname.adb (Is_Predefined_File_Name): Return True for annex J
        * fname.adb (Is_Predefined_File_Name): Return True for annex J
        renamings Calendar, Machine_Code, Unchecked_Conversion and
        renamings Calendar, Machine_Code, Unchecked_Conversion and
        Unchecked_Deallocation only when Renamings_Included is True.
        Unchecked_Deallocation only when Renamings_Included is True.
        * par.adb: Allow library units Calendar, Machine_Code,
        * par.adb: Allow library units Calendar, Machine_Code,
        Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
        Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
        when -gnatg is not specified.
        when -gnatg is not specified.
        (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
        (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
        there is no need to generate always a record_definition_node in case
        there is no need to generate always a record_definition_node in case
        of synchronized interface types.
        of synchronized interface types.
        (SIS_Entry_Active): Initialize global variable to False
        (SIS_Entry_Active): Initialize global variable to False
        (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
        (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
        indicate cases where AI-447 says "not null" is legal.
        indicate cases where AI-447 says "not null" is legal.
        * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
        * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
        * makegpr.adb (Check_Compilation_Needed): Take into account dependency
        * makegpr.adb (Check_Compilation_Needed): Take into account dependency
        files with with several lines starting with the object fileb name.
        files with with several lines starting with the object fileb name.
        (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
        (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
        is specified.
        is specified.
        (Initialize): Add the directory where gprmake is invoked in front of the
        (Initialize): Add the directory where gprmake is invoked in front of the
        path, if it is invoked from a bin directory or with directory
        path, if it is invoked from a bin directory or with directory
        information, so that the correct GNAT tools will be used when invoked
        information, so that the correct GNAT tools will be used when invoked
        directly.
        directly.
        (Check_Compilation_Needed): Process correctly backslashes on Windows.
        (Check_Compilation_Needed): Process correctly backslashes on Windows.
        * vms_data.ads: Update switches/qualifiers
        * vms_data.ads: Update switches/qualifiers
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Thomas Quinot  
            Thomas Quinot  
        * exp_aggr.adb:
        * exp_aggr.adb:
        If the array component is a discriminated record, the array aggregate
        If the array component is a discriminated record, the array aggregate
        is non-static even if the component is given by an aggregate with
        is non-static even if the component is given by an aggregate with
        static components.
        static components.
        (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
        (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
        (Convert_Aggr_In_Allocator): If the allocator is for an access
        (Convert_Aggr_In_Allocator): If the allocator is for an access
        discriminant and the type is controlled. do not place on a finalization
        discriminant and the type is controlled. do not place on a finalization
        list at this point. The proper list will be determined from the
        list at this point. The proper list will be determined from the
        enclosing object.
        enclosing object.
        (Build_Record_Aggr_Code): If aggregate has box-initialized components,
        (Build_Record_Aggr_Code): If aggregate has box-initialized components,
        initialize record controller if needed, before the components, to ensure
        initialize record controller if needed, before the components, to ensure
        that they are properly finalized.
        that they are properly finalized.
        (Build_Record_Aggr_Code): For the case of an array component that has a
        (Build_Record_Aggr_Code): For the case of an array component that has a
        corresponding array aggregate in the record aggregate, perform sliding
        corresponding array aggregate in the record aggregate, perform sliding
        if required.
        if required.
2007-04-06  Javier Miranda  
2007-04-06  Javier Miranda  
            Gary Dismukes  
            Gary Dismukes  
            Ed Schonberg  
            Ed Schonberg  
        * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
        * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
        run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
        run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
        * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
        * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
        accessibility on class-wide allocators if the allocator occurs at the
        accessibility on class-wide allocators if the allocator occurs at the
        same scope level as the allocator's type. The check is guaranteed to
        same scope level as the allocator's type. The check is guaranteed to
        succeed in that case, even when the expression originates from a
        succeed in that case, even when the expression originates from a
        parameter of the containing subprogram.
        parameter of the containing subprogram.
        (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
        (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
        under No_Dispatching_Calls restriction. During the semantic analysis
        under No_Dispatching_Calls restriction. During the semantic analysis
        we already notified such violation.
        we already notified such violation.
        (Tagged_Membership): Constant folding. There is no need to check
        (Tagged_Membership): Constant folding. There is no need to check
        the tag at run-time if the type of the right operand is non
        the tag at run-time if the type of the right operand is non
        class-wide abstract.
        class-wide abstract.
        Replace call to Is_Ancestor by call to Is_Parent
        Replace call to Is_Ancestor by call to Is_Parent
        to support concurrent types with interface types.
        to support concurrent types with interface types.
        (Expand_N_Allocator): Add an assertion associated with the generation
        (Expand_N_Allocator): Add an assertion associated with the generation
        of the master_id.
        of the master_id.
        (Expand_N_Slice): Do not enable range check to nodes associated
        (Expand_N_Slice): Do not enable range check to nodes associated
        with the frontend expansion of the dispatch table.
        with the frontend expansion of the dispatch table.
        (Is_Local_Access_Discriminant): Subsidiary function to
        (Is_Local_Access_Discriminant): Subsidiary function to
        Expand_N_Allocator.
        Expand_N_Allocator.
        (Tagged_Membership): Replace generation of call to the run-time
        (Tagged_Membership): Replace generation of call to the run-time
        subprogram CW_Membership by call to Build_CW_Membership.
        subprogram CW_Membership by call to Build_CW_Membership.
        (Expand_Allocator_Expression): Replace generation of call to the
        (Expand_Allocator_Expression): Replace generation of call to the
        run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
        run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
        * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
        * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
        initialize most the TSD components by means of an aggregate.
        initialize most the TSD components by means of an aggregate.
        Modify the declaration of the object containing the TSD
        Modify the declaration of the object containing the TSD
        because we now expand code that has a higher level of abstraction.
        because we now expand code that has a higher level of abstraction.
        The TSD has a discriminant containing the Inheritance Depth Level,
        The TSD has a discriminant containing the Inheritance Depth Level,
        value that is used in the membership test but also to fix the size
        value that is used in the membership test but also to fix the size
        of the table of ancestors.
        of the table of ancestors.
        (Expand_Interface_Conversion): Insert function body at the closest place
        (Expand_Interface_Conversion): Insert function body at the closest place
        to the conversion expression, to prevent access-before-elaboration
        to the conversion expression, to prevent access-before-elaboration
        errors in the backend.
        errors in the backend.
        Code improved to reduce the size of the dispatch table if
        Code improved to reduce the size of the dispatch table if
        compiling under restriction No_Dispatching_Calls plus code cleanup.
        compiling under restriction No_Dispatching_Calls plus code cleanup.
        Code reorganization plus removal of calls to Set_Num_Prim_Ops
        Code reorganization plus removal of calls to Set_Num_Prim_Ops
        (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
        (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
        (Expand_Dispatching_Call): Minor code reorganization plus addition of
        (Expand_Dispatching_Call): Minor code reorganization plus addition of
        code to return immediately if compiling under No_Dispatching_Calls
        code to return immediately if compiling under No_Dispatching_Calls
        restriction.
        restriction.
        (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
        (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
        CPP_Virtual and CPP_Vtable are no longer supported.
        CPP_Virtual and CPP_Vtable are no longer supported.
        (Expand_Interface_Conversion): Add missing support for interface type
        (Expand_Interface_Conversion): Add missing support for interface type
        derivations.
        derivations.
        (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
        (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
        Is_Parent to support concurrent types with interfaces.
        Is_Parent to support concurrent types with interfaces.
        (Init_Predefined_Interface_Primitives): Removed.
        (Init_Predefined_Interface_Primitives): Removed.
        (Make_Secondary_DT): Modified to support concurrent record types.
        (Make_Secondary_DT): Modified to support concurrent record types.
        (Set_All_DT_Position): Modified to support concurrent record types.
        (Set_All_DT_Position): Modified to support concurrent record types.
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
        with Get_External_Tag, Inherit_TSD, Set_External_Tag.
        with Get_External_Tag, Inherit_TSD, Set_External_Tag.
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
        with CW_Membership.
        with CW_Membership.
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
        (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
        with Get_Access_Level, Get_Predefined_Prim_Op_Address,
        with Get_Access_Level, Get_Predefined_Prim_Op_Address,
        Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
        Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
        Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
        Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
        Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
        Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
        (Expand_Dispatching_Call): Replace generation of call to the run-time
        (Expand_Dispatching_Call): Replace generation of call to the run-time
        subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
        subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
        calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
        calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
        Address.
        Address.
        (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
        (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
        the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
        the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
        Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
        Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
        Build_Set_Prim_Op_Address.
        Build_Set_Prim_Op_Address.
        (Get_Remotely_Callable): Subprogram removed.
        (Get_Remotely_Callable): Subprogram removed.
        (Init_Predefined_Interface_Primitives): Replace generation of call to
        (Init_Predefined_Interface_Primitives): Replace generation of call to
        the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
        the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
        Prims.
        Prims.
        * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
        * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
        First (Parameter_Associations ()) with the call to First_Actual that
        First (Parameter_Associations ()) with the call to First_Actual that
        returns an actual parameter expression for both named and positional
        returns an actual parameter expression for both named and positional
        associations.
        associations.
        * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
        * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
        check violation of restriction No_Dispatching_Calls.
        check violation of restriction No_Dispatching_Calls.
        (Check_Controlling_Type): A formal of a tagged incomplete type is a
        (Check_Controlling_Type): A formal of a tagged incomplete type is a
        controlling argument.
        controlling argument.
        * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
        * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
        First/Next_Component_Or_Discriminant
        First/Next_Component_Or_Discriminant
        (Insert_Actions): Add entries for new N_Push and N_Pop nodes
        (Insert_Actions): Add entries for new N_Push and N_Pop nodes
        (Find_Implemented_Interface): Removed. All the calls to this subprogram
        (Find_Implemented_Interface): Removed. All the calls to this subprogram
        specify Any_Limited_Interface, and this functionality is already
        specify Any_Limited_Interface, and this functionality is already
        provided by the function Has_Abstract_Interfaces.
        provided by the function Has_Abstract_Interfaces.
        (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
        (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
        support concurrent types implementing interfaces.
        support concurrent types implementing interfaces.
        (Find_Implemented_Interface): Removed. All the calls to this subprogram
        (Find_Implemented_Interface): Removed. All the calls to this subprogram
        specify kind Any_Limited_Interface, and this functionality is already
        specify kind Any_Limited_Interface, and this functionality is already
        provided by the function Has_Abstract_Interfaces.
        provided by the function Has_Abstract_Interfaces.
        (Remove_Side_Effects): replace Controlled_Type by
        (Remove_Side_Effects): replace Controlled_Type by
        CW_Or_Controlled_Type whenever the issue is related to
        CW_Or_Controlled_Type whenever the issue is related to
        using or not the secondary stack.
        using or not the secondary stack.
        * par-ch12.adb (P_Formal_Type_Definition): Update calls to
        * par-ch12.adb (P_Formal_Type_Definition): Update calls to
        P_Interface_Type_Definition to fulfill the new interface (the formal
        P_Interface_Type_Definition to fulfill the new interface (the formal
        Is_Synchronized is no longer required).
        Is_Synchronized is no longer required).
        * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
        * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
        Update dependencies.
        Update dependencies.
        * exp_atag.ads, exp_atag.adb: New file
        * exp_atag.ads, exp_atag.adb: New file
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Bob Duff  
            Bob Duff  
            Cyrille Comar  
            Cyrille Comar  
        * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
        * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
        anonymous, use finalization list of enclosing dynamic scope.
        anonymous, use finalization list of enclosing dynamic scope.
        (Expand_N_Package_Declaration): For a library package declaration
        (Expand_N_Package_Declaration): For a library package declaration
        without a corresponding body, generate RACW subprogram bodies in the
        without a corresponding body, generate RACW subprogram bodies in the
        spec (just as we do for the task activation call).
        spec (just as we do for the task activation call).
        (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
        (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
        Is_Abstract_Type. Make sure these are called only when appropriate.
        Is_Abstract_Type. Make sure these are called only when appropriate.
        Remove all code for DSP option
        Remove all code for DSP option
        (CW_Or_Controlled_Type): new subprogram.
        (CW_Or_Controlled_Type): new subprogram.
2007-04-06  Eric Botcazou  
2007-04-06  Eric Botcazou  
            Ed Schonberg  
            Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
        * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
        parameter. If it is set to true, return a result capped according to
        parameter. If it is set to true, return a result capped according to
        the global upper bound for the index of an entry family.
        the global upper bound for the index of an entry family.
        (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
        (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
        (Build_Find_Body_Index): Adjust for above change.
        (Build_Find_Body_Index): Adjust for above change.
        (Entry_Index_Expression): Likewise.
        (Entry_Index_Expression): Likewise.
        (Is_Potentially_Large_Family): New function extracted from...
        (Is_Potentially_Large_Family): New function extracted from...
        (Collect_Entry_Families): ...here. Call it to detect whether the family
        (Collect_Entry_Families): ...here. Call it to detect whether the family
        is potentially large.
        is potentially large.
        (Build_Entry_Count_Expression): If the family is potentially large, call
        (Build_Entry_Count_Expression): If the family is potentially large, call
        Family_Size with 'Cap' set to true.
        Family_Size with 'Cap' set to true.
        (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
        (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
        a protected version of an operation declared in the private part of
        a protected version of an operation declared in the private part of
        a protected object, because they may be invoked through a callback.
        a protected object, because they may be invoked through a callback.
        (Set_Privals): If the type of a private component is an anonymous access
        (Set_Privals): If the type of a private component is an anonymous access
        type, do not create a new itype for each protected body.
        type, do not create a new itype for each protected body.
        If the body of a protected operation creates
        If the body of a protected operation creates
        controlled types (including allocators for class-widetypes), the
        controlled types (including allocators for class-widetypes), the
        body of the corresponding protected subprogram must include a
        body of the corresponding protected subprogram must include a
        finalization list.
        finalization list.
        (Build_Activation_Chain_Entity): Build the chain entity for extended
        (Build_Activation_Chain_Entity): Build the chain entity for extended
        return statements.
        return statements.
        (Type_Conformant_Parameters): Use common predicate Conforming_Types
        (Type_Conformant_Parameters): Use common predicate Conforming_Types
        to determine whether operation overrides an inherited primitive.
        to determine whether operation overrides an inherited primitive.
        (Build_Wrapper_Spec): Add code to examine the parents while looking
        (Build_Wrapper_Spec): Add code to examine the parents while looking
        for a possible overriding candidate.
        for a possible overriding candidate.
        (Build_Simple_Entry_Call): Set No_Initialization on the object used to
        (Build_Simple_Entry_Call): Set No_Initialization on the object used to
        hold an actual parameter value since its initialization is separated
        hold an actual parameter value since its initialization is separated
        from the the declaration. Prevents errors on null-excluding access
        from the the declaration. Prevents errors on null-excluding access
        formals.
        formals.
2007-04-06  Thomas Quinot  
2007-04-06  Thomas Quinot  
            Pablo Oliveira  
            Pablo Oliveira  
        * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
        * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
        Do an Unchecked_Conversion to handle the passage from the Underlying
        Do an Unchecked_Conversion to handle the passage from the Underlying
        Type to the Base Type when calling Build_To_Any_Call and
        Type to the Base Type when calling Build_To_Any_Call and
        Build_From_Any_Call.
        Build_From_Any_Call.
        (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
        (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
        E_Constant, depending upon Variable formal.
        E_Constant, depending upon Variable formal.
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
        PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
        PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
        parameter that requires an extra constrained parameter, declare
        parameter that requires an extra constrained parameter, declare
        temporary for actual as a variable, not a constant.
        temporary for actual as a variable, not a constant.
        (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
        (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
        the unit being compiled is the one that contains the stub type.
        the unit being compiled is the one that contains the stub type.
        Change primitive operation name for the RACW associated with a RAS
        Change primitive operation name for the RACW associated with a RAS
        from Call to _Call so it cannot clash with any legal identifier.
        from Call to _Call so it cannot clash with any legal identifier.
        (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
        (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
        Is_RAS.
        Is_RAS.
        (Append_RACW_Bodies): New subprogram.
        (Append_RACW_Bodies): New subprogram.
        (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
        (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
        Add_Receiving_Stubs_To_Declarations functions.
        Add_Receiving_Stubs_To_Declarations functions.
        When expanding a package body, this list correspond to the
        When expanding a package body, this list correspond to the
        statements in the HSS at the end of the pacakge.
        statements in the HSS at the end of the pacakge.
        When expanding a package spec, this list correspond to the
        When expanding a package spec, this list correspond to the
        spec declarations.
        spec declarations.
        (Add_Receiving_Stubs_To_Declarations): Append the function
        (Add_Receiving_Stubs_To_Declarations): Append the function
        registering the receiving stubs at the end of the 'Stmts' list.
        registering the receiving stubs at the end of the 'Stmts' list.
        (RCI_Package_Locator): Pass the new Version generic formal when
        (RCI_Package_Locator): Pass the new Version generic formal when
        instantiating a RCI_Locator package.
        instantiating a RCI_Locator package.
        (Build_From_Any_Function): To compute the High bound for an
        (Build_From_Any_Function): To compute the High bound for an
        unconstrained array actual, we add the Low bound with the length.
        unconstrained array actual, we add the Low bound with the length.
        Thus we must convert the low bound and the length to an appropriate
        Thus we must convert the low bound and the length to an appropriate
        type before doing the sum.
        type before doing the sum.
        (Build_Subprogram_Receiving_Stubs, PolyORB):
        (Build_Subprogram_Receiving_Stubs, PolyORB):
         * Retrieve the extra formals parameters at the
         * Retrieve the extra formals parameters at the
           end of the parameter stream.
           end of the parameter stream.
         * Use Move_Any_Value to write back out parameters
         * Use Move_Any_Value to write back out parameters
           after executing the request as it is more efficient
           after executing the request as it is more efficient
           than Copy_Any_Value.
           than Copy_Any_Value.
         * Build the any containing Extra Formals with the
         * Build the any containing Extra Formals with the
           appropriate typecode.
           appropriate typecode.
        (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
        (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
        empty Component_List.
        empty Component_List.
        (Build_Actual_Object_Declaration): New subprogram. Build and insert into
        (Build_Actual_Object_Declaration): New subprogram. Build and insert into
        the tree the declaration for an object that serves as actual parameter
        the tree the declaration for an object that serves as actual parameter
        in server-side stubs.
        in server-side stubs.
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
        (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
        PolyORB_Support.Build_Subprogram_Receiving_Stubs):
        PolyORB_Support.Build_Subprogram_Receiving_Stubs):
        Use Build_Actual_Object_Declaration to prepare the actuals.
        Use Build_Actual_Object_Declaration to prepare the actuals.
        (Add_Parameter_To_NVList): Set the parameter mode to In for
        (Add_Parameter_To_NVList): Set the parameter mode to In for
        Extra Constrained Parameters.
        Extra Constrained Parameters.
        (Build_General_Calling_Stubs): Set the parameter type to boolean for
        (Build_General_Calling_Stubs): Set the parameter type to boolean for
        Extra Constrained parameters.
        Extra Constrained parameters.
        (Build_To_Any_Function, Build_From_Any_Function,
        (Build_To_Any_Function, Build_From_Any_Function,
        Built_TypeCode_Function): When Typ is implicit, call the correct
        Built_TypeCode_Function): When Typ is implicit, call the correct
        function with the first not implicit parent type.
        function with the first not implicit parent type.
        (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
        (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
        (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
        (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
        typecode from the Etype. Therefore we retrieve the correct typecode
        typecode from the Etype. Therefore we retrieve the correct typecode
        with a call to Get_Any_Type.
        with a call to Get_Any_Type.
        (Copy_Specification): Do controlling formal type substitution based on
        (Copy_Specification): Do controlling formal type substitution based on
        Is_Controlling_Formal flag, instead of caller-provided object type.
        Is_Controlling_Formal flag, instead of caller-provided object type.
        (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
        (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
        a RACW primitive operation, we might get a subprogram declaration for an
        a RACW primitive operation, we might get a subprogram declaration for an
        ancestor of the RACW designated type (not for the designated type
        ancestor of the RACW designated type (not for the designated type
        itself), in the case where this operation is inherited. In this case we
        itself), in the case where this operation is inherited. In this case we
        have no easy means of determining the original tagged type for which
        have no easy means of determining the original tagged type for which
        the primitive was declared, so instead we now rely on
        the primitive was declared, so instead we now rely on
        Copy_Specification to use the Is_Controlling_Formal flag to determine
        Copy_Specification to use the Is_Controlling_Formal flag to determine
        which formals require type substitution.
        which formals require type substitution.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
            Ed Schonberg  
            Ed Schonberg  
        * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
        * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
        GNAT.Current_Exception are not allowed if pragma Restrictions
        GNAT.Current_Exception are not allowed if pragma Restrictions
        (No_Exception_Propagation) is set and in any case make the associated
        (No_Exception_Propagation) is set and in any case make the associated
        handler unsuitable as a target for a local raise statement.
        handler unsuitable as a target for a local raise statement.
        (Expand_Dispatching_Constructor_Call): Replace generation of call to the
        (Expand_Dispatching_Constructor_Call): Replace generation of call to the
        run-time subprogram CW_Membership by call to Build_CW_Membership.
        run-time subprogram CW_Membership by call to Build_CW_Membership.
        (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
        (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
        by a function call, a temporary must be created before expanding the
        by a function call, a temporary must be created before expanding the
        Constructor_Call itself, to prevent out-of-order elaboration in the
        Constructor_Call itself, to prevent out-of-order elaboration in the
        back-end when stack checking is enabled..
        back-end when stack checking is enabled..
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
        * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
        * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
        result are the bounds of the left operand, not the right.
        result are the bounds of the left operand, not the right.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
        * exp_strm.adb
        * exp_strm.adb
        (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
        (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
         discriminant defaults.
         discriminant defaults.
        (Build_Record_Or_Elementary_Output_Procedure): Ditto.
        (Build_Record_Or_Elementary_Output_Procedure): Ditto.
        (Make_Component_List_Attributes): Ditto.
        (Make_Component_List_Attributes): Ditto.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Bob Duff  
            Bob Duff  
        * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
        * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
        an association with a box as providing a value even though the
        an association with a box as providing a value even though the
        initialization procedure for the type is not available.
        initialization procedure for the type is not available.
        (Resolve_Record_Aggregate): Check that a choice of an association with a
        (Resolve_Record_Aggregate): Check that a choice of an association with a
        box corresponds to a component of the type.
        box corresponds to a component of the type.
        (Resolve_Record_Aggregate): Split Is_Abstract flag into
        (Resolve_Record_Aggregate): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract_Subprogram and Is_Abstract_Type.
        * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
        * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
        assert.
        assert.
        * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
        * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
        Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
        called only when appropriate.
        called only when appropriate.
2007-04-06  Olivier Hainque  
2007-04-06  Olivier Hainque  
        * g-alleve.ads (Low Level Vector type definitions): Map each to the
        * g-alleve.ads (Low Level Vector type definitions): Map each to the
        associated vector view instead of all to the unsigned char view.
        associated vector view instead of all to the unsigned char view.
        * g-altcon.adb (Generic_Conversions): New internal generic package,
        * g-altcon.adb (Generic_Conversions): New internal generic package,
        offering facilities for all the Vector/View conversion routines
        offering facilities for all the Vector/View conversion routines
        implemented by this unit.
        implemented by this unit.
        (To_View/To_Vector - all versions): Reimplemented in a systematic
        (To_View/To_Vector - all versions): Reimplemented in a systematic
        manner, using the internal Generic_Conversions facilities.
        manner, using the internal Generic_Conversions facilities.
2007-04-06  Pascal Obry  
2007-04-06  Pascal Obry  
        * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
        * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
        string.
        string.
        (Create): Free the source string before storing the new one.
        (Create): Free the source string before storing the new one.
2007-04-06  Vincent Celier  
2007-04-06  Vincent Celier  
        * g-debpoo.adb (Validity): New package with a complete new
        * g-debpoo.adb (Validity): New package with a complete new
        implementation of subprograms Is_Valid and Set_Valid.
        implementation of subprograms Is_Valid and Set_Valid.
        (Is_Valid): Move to local package Validity
        (Is_Valid): Move to local package Validity
        (Set_Valid): Move to local package Validity
        (Set_Valid): Move to local package Validity
2007-04-06  Arnaud Charlet  
2007-04-06  Arnaud Charlet  
            Pablo Oliveira  
            Pablo Oliveira  
        * g-expect.adb (Get_Command_Output): When expanding the output buffer
        * g-expect.adb (Get_Command_Output): When expanding the output buffer
        we must ensure that there is enough place for the new data we are going
        we must ensure that there is enough place for the new data we are going
        to copy in.
        to copy in.
2007-04-06  Thomas Quinot  
2007-04-06  Thomas Quinot  
        * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
        * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
        computation.
        computation.
2007-04-06  Jose Ruiz  
2007-04-06  Jose Ruiz  
            Vincent Celier  
            Vincent Celier  
        * gnatcmd.adb (B_Start): Add prefix of binder generated file.
        * gnatcmd.adb (B_Start): Add prefix of binder generated file.
        (Stack_String): Add this String that contains the name of the Stack
        (Stack_String): Add this String that contains the name of the Stack
        package in the project file.
        package in the project file.
        (Packages_To_Check_By_Stack): Add this list that contains the packages
        (Packages_To_Check_By_Stack): Add this list that contains the packages
        to be checked by gnatstack, which are the naming and the stack packages.
        to be checked by gnatstack, which are the naming and the stack packages.
        (Check_Files): If no .ci files were specified for gnatstack we add all
        (Check_Files): If no .ci files were specified for gnatstack we add all
        the .ci files belonging to the projects, including binder generated
        the .ci files belonging to the projects, including binder generated
        files.
        files.
        (Non_VMS_Usage): Document that gnatstack accept project file switches.
        (Non_VMS_Usage): Document that gnatstack accept project file switches.
        (GNATCmd): Update the B_Start variable if we are in a VMS environment.
        (GNATCmd): Update the B_Start variable if we are in a VMS environment.
        Add gnatstack to the list of commands that use project file related
        Add gnatstack to the list of commands that use project file related
        switches, and get the single attribute Switches from the stack package
        switches, and get the single attribute Switches from the stack package
        in a project file when calling gnatstack. Parse the -U flag for
        in a project file when calling gnatstack. Parse the -U flag for
        processing files belonging to all projects in the project tree.
        processing files belonging to all projects in the project tree.
        Remove all processing for command Setup
        Remove all processing for command Setup
        * prj-attr.adb: Add new package Stack with single attribute Switches
        * prj-attr.adb: Add new package Stack with single attribute Switches
        * vms_conv.ads (Command_Type): Add command Stack.
        * vms_conv.ads (Command_Type): Add command Stack.
        Move to body declarations that are only used in the body: types Item_Id,
        Move to body declarations that are only used in the body: types Item_Id,
        Translation_Type, Item_Ptr, Item and its subtypes.
        Translation_Type, Item_Ptr, Item and its subtypes.
        * vms_conv.adb: (Initialize): Add data for new command Stack.
        * vms_conv.adb: (Initialize): Add data for new command Stack.
        Add declarations moved from the spec: types Item_Id, Translation_Type,
        Add declarations moved from the spec: types Item_Id, Translation_Type,
        Item_Ptr, Item and its subtypes.
        Item_Ptr, Item and its subtypes.
        (Cargs_Buffer): New table
        (Cargs_Buffer): New table
        (Cargs): New Boolean global variable
        (Cargs): New Boolean global variable
        (Process_Buffer): New procedure to create arguments
        (Process_Buffer): New procedure to create arguments
        (Place): Put character in table Buffer or Cargs_Buffer depending on the
        (Place): Put character in table Buffer or Cargs_Buffer depending on the
         value of Cargs.
         value of Cargs.
        (Process_Argument): Set Cargs when processing qualifiers for GNAT
        (Process_Argument): Set Cargs when processing qualifiers for GNAT
        COMPILE
        COMPILE
        (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
        (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
        empty, for table Cargs_Buffer.
        empty, for table Cargs_Buffer.
        (Initialize): Remove component Setup in Command_List
        (Initialize): Remove component Setup in Command_List
2007-04-06  Vincent Celier  
2007-04-06  Vincent Celier  
        * gprep.adb (Process_Files.Process_One_File): Use full file name when
        * gprep.adb (Process_Files.Process_One_File): Use full file name when
        issuing pragma Source_Reference.
        issuing pragma Source_Reference.
2007-04-06  Emmanuel Briot  
2007-04-06  Emmanuel Briot  
        * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
        * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
        [[:xdigit:]] character class.
        [[:xdigit:]] character class.
        Also raise an exception when an invalid character class is used.
        Also raise an exception when an invalid character class is used.
2007-04-06  Pascal Obry  
2007-04-06  Pascal Obry  
        * i-cstrea.ads: (fopen): Add encoding parameter.
        * i-cstrea.ads: (fopen): Add encoding parameter.
        (freopen): Idem.
        (freopen): Idem.
        Change reference from a-sysdep.c to sysdep.c in comment.
        Change reference from a-sysdep.c to sysdep.c in comment.
        Update copyright notice.
        Update copyright notice.
        This set of patch add support for the encoding form parameter.
        This set of patch add support for the encoding form parameter.
        * mingw32.h (S2WSU): New macro to convert from a string to a
        * mingw32.h (S2WSU): New macro to convert from a string to a
        wide-string using the UTF-8 encoding. The S2WS macro supports now only
        wide-string using the UTF-8 encoding. The S2WS macro supports now only
        standard 8bits encoding.
        standard 8bits encoding.
        (WS2SU): As above but converting from wide-sring to string.
        (WS2SU): As above but converting from wide-sring to string.
        This is needed as it is necessary to have access to both versions in the
        This is needed as it is necessary to have access to both versions in the
        runtime for the form parameter encoding support.
        runtime for the form parameter encoding support.
        This set of patch add support for the encoding form parameter.
        This set of patch add support for the encoding form parameter.
        (S2WS): Improve implementation to handle cases where the filename is not
        (S2WS): Improve implementation to handle cases where the filename is not
        UTF-8 encoded. In this case we default to using the current code page
        UTF-8 encoded. In this case we default to using the current code page
        for the conversion.
        for the conversion.
        * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
        * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
        type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
        type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
        the constants defined in adaint.h.
        the constants defined in adaint.h.
        (fopen): Add encoding parameter.
        (fopen): Add encoding parameter.
        (freopen): Idem.
        (freopen): Idem.
        * s-ficobl.ads (AFCB): Add Encoding field to record the filename
        * s-ficobl.ads (AFCB): Add Encoding field to record the filename
        encoding. This is needed for the Reset routine (freopen low level-call).
        encoding. This is needed for the Reset routine (freopen low level-call).
        * s-fileio.adb (Open): Decode encoding form parameter and set the
        * s-fileio.adb (Open): Decode encoding form parameter and set the
        corresponding encoding value into AFCB structure.
        corresponding encoding value into AFCB structure.
        (Reset): Pass the encoding value to freopen.
        (Reset): Pass the encoding value to freopen.
        (Close): Move the call to Lock_Task to the beginning of the procedure.
        (Close): Move the call to Lock_Task to the beginning of the procedure.
2007-04-06  Geert Bosch  
2007-04-06  Geert Bosch  
            Robert Dewar  
            Robert Dewar  
        * i-fortra.ads: Add Double_Complex type.
        * i-fortra.ads: Add Double_Complex type.
        * impunit.adb: (Is_Known_Unit): New function
        * impunit.adb: (Is_Known_Unit): New function
        Add Gnat.Byte_Swapping
        Add Gnat.Byte_Swapping
        Add GNAT.SHA1
        Add GNAT.SHA1
        Add new Ada 2005 units
        Add new Ada 2005 units
        Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
        Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
        Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
        Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
        Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
        Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
        Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
        Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
        * impunit.ads (Is_Known_Unit): New function
        * impunit.ads (Is_Known_Unit): New function
        * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
        * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
        a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
        a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
        a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
        a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
        g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
        g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
        s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
        s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
        s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
        s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
        New files.
        New files.
        * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
        * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
        * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
        * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
2007-04-06  Eric Botcazou  
2007-04-06  Eric Botcazou  
            Arnaud Charlet  
            Arnaud Charlet  
        * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
        * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
        __gnat_adjust_context_for_raise.
        __gnat_adjust_context_for_raise.
        (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
        (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
        implementation of floating point operations as native x86 targets.
        implementation of floating point operations as native x86 targets.
        So the FPU should be initialized in the same way using finit. Fix
        So the FPU should be initialized in the same way using finit. Fix
        floating point operations accuracy issues.
        floating point operations accuracy issues.
        (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
        (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
        member in struct sigaction, so as to avoid warning for incompatible
        member in struct sigaction, so as to avoid warning for incompatible
        pointer types.
        pointer types.
2007-04-06 Serguei Rybin  
2007-04-06 Serguei Rybin  
        * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
        * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
        switches from previously loaded tree
        switches from previously loaded tree
2007-04-06  Thomas Quinot  
2007-04-06  Thomas Quinot  
        * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
        * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
        cases where a given dependency has a body or not.
        cases where a given dependency has a body or not.
        (Write_With_File_Names): New subprogram, common code for the two cases
        (Write_With_File_Names): New subprogram, common code for the two cases
        above.
        above.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * lib-xref.ads, lib-xref.adb:
        * lib-xref.ads, lib-xref.adb:
        Modify the loop that collects type references, to include interface
        Modify the loop that collects type references, to include interface
        types that the type implements. List each of these interfaces when
        types that the type implements. List each of these interfaces when
        building the entry for the type.
        building the entry for the type.
        (Generate_Definition): Initialize component Def and Typ of new entry
        (Generate_Definition): Initialize component Def and Typ of new entry
        in table Xrefs, to avoid to have these components unitialized.
        in table Xrefs, to avoid to have these components unitialized.
        (Output_References): Split Is_Abstract flag into
        (Output_References): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract_Subprogram and Is_Abstract_Type.
        (Generate_Reference): Add barrier to do not generate the warning
        (Generate_Reference): Add barrier to do not generate the warning
        associated with Ada 2005 entities with entities generated by the
        associated with Ada 2005 entities with entities generated by the
        expander.
        expander.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
            Arnaud Charlet  
            Arnaud Charlet  
            Vincent Celier  
            Vincent Celier  
        * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
        * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
        Update 'Exception Handling Control' chapter which was outdated.
        Update 'Exception Handling Control' chapter which was outdated.
        Minor fix to documentation of -gnatwq
        Minor fix to documentation of -gnatwq
        Remove section "Adapting the Run Time to a New C++ Compiler" because
        Remove section "Adapting the Run Time to a New C++ Compiler" because
        it is now obsolete.
        it is now obsolete.
        Add passage on need of -nostart-files in some non-ada-main cases.
        Add passage on need of -nostart-files in some non-ada-main cases.
        Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
        Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
        Update documentation about Interfacing with C++
        Update documentation about Interfacing with C++
        Add documentation for new gnatmake switch -p
        Add documentation for new gnatmake switch -p
        Add missing protocol part in URLs.
        Add missing protocol part in URLs.
        Document -gnatyA
        Document -gnatyA
        Document pragma Compile_Time_Error
        Document pragma Compile_Time_Error
        Add documentation for Object_Size indicating that stand alone
        Add documentation for Object_Size indicating that stand alone
        objects can have a larger size in some cases.
        objects can have a larger size in some cases.
        Add node for GNAT.Byte_Swapping, GNAT.SHA1
        Add node for GNAT.Byte_Swapping, GNAT.SHA1
        Update reference to the Ravenscar profile.
        Update reference to the Ravenscar profile.
        Document pragma Unreferenced_Objects
        Document pragma Unreferenced_Objects
        * gnat-style.texi: Fix typo
        * gnat-style.texi: Fix typo
2007-04-06  Vincent Celier  
2007-04-06  Vincent Celier  
        * mlib.adb (Building_Library): Only output "building a library..." in
        * mlib.adb (Building_Library): Only output "building a library..." in
        verbose mode
        verbose mode
        * mlib-prj.adb (Build_Library): Only output lists of object and ALI
        * mlib-prj.adb (Build_Library): Only output lists of object and ALI
        files in verbose mode.
        files in verbose mode.
        * mlib-utl.adb (Ar): Only output the first object files when not in
        * mlib-utl.adb (Ar): Only output the first object files when not in
        verbose mode.
        verbose mode.
        (Gcc): Do not display all the object files if not in verbose mode, only
        (Gcc): Do not display all the object files if not in verbose mode, only
        the first one.
        the first one.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
        * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
        * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
        it no longer destroys the contents of Name_Buffer or Name_Len and
        it no longer destroys the contents of Name_Buffer or Name_Len and
        non-standard and invalid names are handled better.
        non-standard and invalid names are handled better.
        (Get_Decoded_Name_String): Improve performance by using
        (Get_Decoded_Name_String): Improve performance by using
        Name_Has_No_Encodings flag in the name table.
        Name_Has_No_Encodings flag in the name table.
        (Is_Valid_Name): New function to determine whether a Name_Id is valid.
        (Is_Valid_Name): New function to determine whether a Name_Id is valid.
        Used for debugging printouts.
        Used for debugging printouts.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
            Javier Miranda  
            Javier Miranda  
            Bob Duff  
            Bob Duff  
        * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
        * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
        (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
        (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
        there is no need to generate always a record_definition_node in case
        there is no need to generate always a record_definition_node in case
        of synchronized interface types.
        of synchronized interface types.
        (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
        (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
        (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
        (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
        illegal in Ada 95, in cases where it is legal. Change the warnings to
        illegal in Ada 95, in cases where it is legal. Change the warnings to
        errors in other cases. Don't give the error unless the "not null"
        errors in other cases. Don't give the error unless the "not null"
        parses properly. Correct the source position at which the error occurs.
        parses properly. Correct the source position at which the error occurs.
        (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
        (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
        P_Null_Exclusion, to suppress "not null" warnings.
        P_Null_Exclusion, to suppress "not null" warnings.
        (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
        (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
        associated goto statements.
        associated goto statements.
        * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
        * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
        of END RECORD
        of END RECORD
        * scans.ads (Type_Token_Location): New flag
        * scans.ads (Type_Token_Location): New flag
        * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
        * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
        (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
        (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
        P_Null_Exclusion, to suppress "not null" warnings.
        P_Null_Exclusion, to suppress "not null" warnings.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
            Javier Miranda  
            Javier Miranda  
            Bob Duff  
            Bob Duff  
            Vincent Celier  
            Vincent Celier  
        * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
        * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
        (Extensions_Allowed): No longer sets Ada_Version
        (Extensions_Allowed): No longer sets Ada_Version
        Entry for pragma Unreferenced_Objects
        Entry for pragma Unreferenced_Objects
        * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
        * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
        system.tasking if pragma priority used in a procedure
        system.tasking if pragma priority used in a procedure
        (Analyze_Pragma, case Warning): Handle dot warning switches
        (Analyze_Pragma, case Warning): Handle dot warning switches
        (Process_Compile_Time_Warning_Or_Error): New procedure
        (Process_Compile_Time_Warning_Or_Error): New procedure
        (Analyze_Pragma): Add processing for Compile_Time_Error
        (Analyze_Pragma): Add processing for Compile_Time_Error
        Add support for extra arguments External_Name and Link_Name.
        Add support for extra arguments External_Name and Link_Name.
        Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
        Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
        (Process_Import_Or_Interface): Add support for the use of pragma Import
        (Process_Import_Or_Interface): Add support for the use of pragma Import
        with tagged types.
        with tagged types.
        (Extensions_Allowed): No longer affects Ada_Version
        (Extensions_Allowed): No longer affects Ada_Version
        (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
        (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
        Is_Abstract_Type. Make sure these are called only when appropriate.
        Is_Abstract_Type. Make sure these are called only when appropriate.
        Add processing for pragma Unreferenced_Objects
        Add processing for pragma Unreferenced_Objects
        * snames.h, snames.ads, snames.adb: Add entry for pragma
        * snames.h, snames.ads, snames.adb: Add entry for pragma
        Compile_Time_Error
        Compile_Time_Error
        Add new standard name Minimum_Binder_Options for new gprmake
        Add new standard name Minimum_Binder_Options for new gprmake
        Add new standard names for gprmake: Archive_Suffix,
        Add new standard names for gprmake: Archive_Suffix,
        Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
        Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
        Library_Support, Library_Version_Options,
        Library_Support, Library_Version_Options,
        Shared_Library_Minimum_Options,
        Shared_Library_Minimum_Options,
        Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
        Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
        Change Name_Call to Name_uCall so that it cannot clash with a legal
        Change Name_Call to Name_uCall so that it cannot clash with a legal
        subprogram name.
        subprogram name.
        Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
        Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
        Append C_Plus_Plus to convention identifiers as synonym for CPP
        Append C_Plus_Plus to convention identifiers as synonym for CPP
        Add new standard names Stack and Builder_Switches
        Add new standard names Stack and Builder_Switches
        Add new standard names: Compiler_Minimum_Options, Global_Config_File,
        Add new standard names: Compiler_Minimum_Options, Global_Config_File,
        Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
        Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
        Run_Path_Option, Toolchain_Version.
        Run_Path_Option, Toolchain_Version.
        Entry for pragma Unreferenced_Objects
        Entry for pragma Unreferenced_Objects
        * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
        * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
        switches, without repetition of "eD". Make sure that last character of
        switches, without repetition of "eD". Make sure that last character of
        -gnatep= switch is not taken as -gnat switch character.
        -gnatep= switch is not taken as -gnat switch character.
        Complete rewrite of circuit for handling saving compilation options
        Complete rewrite of circuit for handling saving compilation options
        Occasioned by need to support dot switchs for -gnatw, but cleans up
        Occasioned by need to support dot switchs for -gnatw, but cleans up
        things in general.
        things in general.
        -gnatX does not affect Ada_Version
        -gnatX does not affect Ada_Version
        Include -gnatyA in -gnatg style switches
        Include -gnatyA in -gnatg style switches
        * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
        * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
        warnings on return objects.
        warnings on return objects.
        (Warn_On_Useless_Assignment): Exclude warnings on return objects
        (Warn_On_Useless_Assignment): Exclude warnings on return objects
        (Set_Dot_Warning_Switch): New procedure
        (Set_Dot_Warning_Switch): New procedure
        (Check_References): Add missing case of test for
        (Check_References): Add missing case of test for
        Has_Pragma_Unreferenced_Objects
        Has_Pragma_Unreferenced_Objects
        (Output_Unreferenced_Messages): Implement effect of new pragma
        (Output_Unreferenced_Messages): Implement effect of new pragma
        Unreferenced_Objects, remove special casing of limited controlled
        Unreferenced_Objects, remove special casing of limited controlled
        variables.
        variables.
2007-04-06  Vincent Celier  
2007-04-06  Vincent Celier  
        * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
        * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
        the default project path, initially done during elaboration of the
        the default project path, initially done during elaboration of the
        package.
        package.
        If the prefix returned by Sdefault is null, get the prefix from a call
        If the prefix returned by Sdefault is null, get the prefix from a call
        to Executable_Prefix_Path.
        to Executable_Prefix_Path.
        (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
        (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
        null.
        null.
        * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
        * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
        canonical directory name to open the directory from which files are
        canonical directory name to open the directory from which files are
        retrieved.
        retrieved.
        (Record_Other_Sources): Idem.
        (Record_Other_Sources): Idem.
        (Locate_Directory): Add the possibility to create automatically missing
        (Locate_Directory): Add the possibility to create automatically missing
        directories when Setup_Projects is True.
        directories when Setup_Projects is True.
        Call Locate_Directory so that the directory will be created when
        Call Locate_Directory so that the directory will be created when
        Setup_Projects is True, for object dir, library dir, library ALI dir,
        Setup_Projects is True, for object dir, library dir, library ALI dir,
        library source copy dir and exec dir.
        library source copy dir and exec dir.
        * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
        * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
        versions of GNAT.
        versions of GNAT.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
        * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
        * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
        Use First/Next_Component_Or_Discriminant
        Use First/Next_Component_Or_Discriminant
        (Analyze_Record_Representation_Clause):
        (Analyze_Record_Representation_Clause):
        Use First/Next_Component_Or_Discriminant
        Use First/Next_Component_Or_Discriminant
        (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
        (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
        (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
        (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
        definition if type is unconstrained.
        definition if type is unconstrained.
        (Adjust_Record_For_Reverse_Bit_Order): New procedure
        (Adjust_Record_For_Reverse_Bit_Order): New procedure
        (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
        (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract_Subprogram and Is_Abstract_Type.
        (Adjust_Record_For_Reverse_Bit_Order): New procedure
        (Adjust_Record_For_Reverse_Bit_Order): New procedure
        * repinfo.adb (List_Record_Info): Use First/
        * repinfo.adb (List_Record_Info): Use First/
        Next_Component_Or_Discriminant.
        Next_Component_Or_Discriminant.
        * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
        * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
        New procedure.
        New procedure.
        * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
        * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
        Include -gnatyA in default switches
        Include -gnatyA in default switches
        * opt.ads: (Warn_On_Non_Local_Exception): New flag
        * opt.ads: (Warn_On_Non_Local_Exception): New flag
        (Warn_On_Reverse_Bit_Order): New flag
        (Warn_On_Reverse_Bit_Order): New flag
        (Extensions_Allowed): Update the documentation.
        (Extensions_Allowed): Update the documentation.
        (Warn_On_Questionable_Missing_Parens): Now on by default
        (Warn_On_Questionable_Missing_Parens): Now on by default
        * usage.adb: Add documentation of -gnatw.x/X switches
        * usage.adb: Add documentation of -gnatw.x/X switches
        Document new -gnatyA style switch
        Document new -gnatyA style switch
        -gnatq warnings are on by default
        -gnatq warnings are on by default
2007-04-06  Ed Falis  
2007-04-06  Ed Falis  
        * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
        * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
        full word is no longer compared twice.
        full word is no longer compared twice.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
        * sem_ch10.adb (Install_Limited_Context_Clauses.
        * sem_ch10.adb (Install_Limited_Context_Clauses.
        Expand_Limited_With_Clause): Use a new copy of selector name in the
        Expand_Limited_With_Clause): Use a new copy of selector name in the
        call to Make_With_Clause. This fixes the tree structure for ASIS
        call to Make_With_Clause. This fixes the tree structure for ASIS
        purposes. Nothing is changed in the compiler behaviour.
        purposes. Nothing is changed in the compiler behaviour.
        (Process_Body_Clauses): Handle properly use clauses whose prefix is
        (Process_Body_Clauses): Handle properly use clauses whose prefix is
        a package renaming.
        a package renaming.
        (Install_Limited_With_Clauses): Do not install non-limited view when it
        (Install_Limited_With_Clauses): Do not install non-limited view when it
        is still incomplete.
        is still incomplete.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Gary Dismukes  
            Gary Dismukes  
        * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
        * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
        when capturing size information, instead of base type, which for a
        when capturing size information, instead of base type, which for a
        formal array type will be the unconstrained type.
        formal array type will be the unconstrained type.
        (Analyze_Formal_Object_Declaration): Add check for illegal default
        (Analyze_Formal_Object_Declaration): Add check for illegal default
        expressions for a formal in object of a limited type.
        expressions for a formal in object of a limited type.
        (Instantiate_Object): Ditto.
        (Instantiate_Object): Ditto.
        (Check_Formal_Package_Instance): Skip entities that are formal objects,
        (Check_Formal_Package_Instance): Skip entities that are formal objects,
        because they were defaulted in the formal package and no check applies
        because they were defaulted in the formal package and no check applies
        to them.
        to them.
        (Check_Formal_Package_Instance): Extend conformance check to other
        (Check_Formal_Package_Instance): Extend conformance check to other
        discrete types beyond Integer.
        discrete types beyond Integer.
        (Process_Default): Copy directly the unmatched formal. A generic copy
        (Process_Default): Copy directly the unmatched formal. A generic copy
        has already been performed in Analyze_Formal_Package.
        has already been performed in Analyze_Formal_Package.
        (Analyze_Associations): If a formal subprogram has no match, check for
        (Analyze_Associations): If a formal subprogram has no match, check for
        partial parametrization before looking for a default, to prevent
        partial parametrization before looking for a default, to prevent
        spurious errors.
        spurious errors.
        (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
        (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
        not set the instantiation environment before analyzing the actuals.
        not set the instantiation environment before analyzing the actuals.
        Fixes regression on 8515-003 with implementation of AI-133.
        Fixes regression on 8515-003 with implementation of AI-133.
        Set_Instance_Env checks whether the generic unit is a predefined
        Set_Instance_Env checks whether the generic unit is a predefined
        unit, in which case the instance must be analyzed with the latest Ada
        unit, in which case the instance must be analyzed with the latest Ada
        mode. This setting must take place after analysis of the actuals,
        mode. This setting must take place after analysis of the actuals,
        because the actuals must be analyzed and frozen in the Ada mode extant
        because the actuals must be analyzed and frozen in the Ada mode extant
        outside of the current instantiation.
        outside of the current instantiation.
        (Save_Env, Restore_Env): Preserve and restore the configuration
        (Save_Env, Restore_Env): Preserve and restore the configuration
        parameters so that predefined units can be compiled in the proper Ada
        parameters so that predefined units can be compiled in the proper Ada
        mode.
        mode.
        (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
        (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
        Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
        Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
        and Is_Abstract_Type.
        and Is_Abstract_Type.
        (Analyze_Formal_Package): For better error recovery, Add exception
        (Analyze_Formal_Package): For better error recovery, Add exception
        handler to catch Instantion_Error, which can be raised in
        handler to catch Instantion_Error, which can be raised in
        Analyze_Associations
        Analyze_Associations
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Bob Duff  
            Bob Duff  
            Gary Dismukes  
            Gary Dismukes  
        * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
        * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
        prefix type is a discriminated subtype of the type of the formal.
        prefix type is a discriminated subtype of the type of the formal.
        (Analyze_Allocator): Collect all coextensions regardless of the context.
        (Analyze_Allocator): Collect all coextensions regardless of the context.
        Whether they can be allocated statically is determined in exp_ch4.
        Whether they can be allocated statically is determined in exp_ch4.
        (Analyze_Selected_Component): If the prefix is a limited view and the
        (Analyze_Selected_Component): If the prefix is a limited view and the
        non-limited view is available, use the non-limited one.
        non-limited view is available, use the non-limited one.
        (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
        (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
        therefore illegal), suggest a qualified expression rather than a type
        therefore illegal), suggest a qualified expression rather than a type
        conversion, because a type conversion would be illegal in this context.
        conversion, because a type conversion would be illegal in this context.
        (Anayze_Allocator): Trace recursively all nested allocators so that all
        (Anayze_Allocator): Trace recursively all nested allocators so that all
        coextensions are on the corresponding list for the root. Do no mark
        coextensions are on the corresponding list for the root. Do no mark
        coextensions if the root allocator is within a declaration for a stack-
        coextensions if the root allocator is within a declaration for a stack-
        allocated object, because the access discriminants will be allocated on
        allocated object, because the access discriminants will be allocated on
        the stack as well.
        the stack as well.
        (Analyze_Call): Remove restriction on calls to limited functions for the
        (Analyze_Call): Remove restriction on calls to limited functions for the
        cases of generic actuals for formal objects, defaults for formal objects
        cases of generic actuals for formal objects, defaults for formal objects
        and defaults for record components.
        and defaults for record components.
        (Analyze_Allocator): Before analysis, chain coextensions on the proper
        (Analyze_Allocator): Before analysis, chain coextensions on the proper
        element list. Their expansion is delayed until the enclosing allocator
        element list. Their expansion is delayed until the enclosing allocator
        is processed and its finalization list constructed.
        is processed and its finalization list constructed.
        (Try_Primitive_Operation): If the prefix is a concurrent type, looks
        (Try_Primitive_Operation): If the prefix is a concurrent type, looks
        for an operation with the given name among the primitive operations of
        for an operation with the given name among the primitive operations of
        the corresponding record type.
        the corresponding record type.
        (Analyze_Selected_Component): If the prefix is a task type that
        (Analyze_Selected_Component): If the prefix is a task type that
        implements an interface, and there is no entry with the given name,
        implements an interface, and there is no entry with the given name,
        check whether there is another primitive operation (e.g. a function)
        check whether there is another primitive operation (e.g. a function)
        with that name.
        with that name.
        (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
        (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
        properly the indexing of a function call written in prefix form, where
        properly the indexing of a function call written in prefix form, where
        the function returns an array type, and all parameters of the function
        the function returns an array type, and all parameters of the function
        except the first have defaults.
        except the first have defaults.
        (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
        (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
        the original operands, rather than relocating them, for efficiency and
        the original operands, rather than relocating them, for efficiency and
        to work properly when an operand is overloaded.
        to work properly when an operand is overloaded.
        (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
        (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
        Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
        (Analyze_Selected_Component): If the prefix is a private extension, only
        (Analyze_Selected_Component): If the prefix is a private extension, only
        scan the visible components, not those of the full view.
        scan the visible components, not those of the full view.
        (Try_Primitive_Operation): If the operation is a procedure, collect all
        (Try_Primitive_Operation): If the operation is a procedure, collect all
        possible interpretations, as for a function, because in the presence of
        possible interpretations, as for a function, because in the presence of
        classwide parameters several primitive operations of the type can match
        classwide parameters several primitive operations of the type can match
        the given arguments.
        the given arguments.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
        * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
        tag-indeterminate call to an abstract function, when the left-hand side
        tag-indeterminate call to an abstract function, when the left-hand side
        is not classwide.
        is not classwide.
        (Analyze_Loop_Statement): Improve detection of infinite loops
        (Analyze_Loop_Statement): Improve detection of infinite loops
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Thomas Quinot  
            Thomas Quinot  
        * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
        * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
        out of Analyze_Package_Declaration, because processing must be applied
        out of Analyze_Package_Declaration, because processing must be applied
        to package bodies as well, for deferred constants completed by pragmas.
        to package bodies as well, for deferred constants completed by pragmas.
        (Analyze_Package_Declaration): When the package declaration being
        (Analyze_Package_Declaration): When the package declaration being
        analyzed does not require an explicit body, call Check_Completion.
        analyzed does not require an explicit body, call Check_Completion.
        (May_Need_Implicit_Body): An implicit body is required when a package
        (May_Need_Implicit_Body): An implicit body is required when a package
        spec contains the declaration of a remote access-to-classwide type.
        spec contains the declaration of a remote access-to-classwide type.
        (Analyze_Package_Body): If the package contains RACWs, append the
        (Analyze_Package_Body): If the package contains RACWs, append the
        pending subprogram bodies generated by exp_dist at the end of the body.
        pending subprogram bodies generated by exp_dist at the end of the body.
        (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
        (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract_Subprogram and Is_Abstract_Type.
        (Preserve_Full_Attributes): The full entity list is not an attribute
        (Preserve_Full_Attributes): The full entity list is not an attribute
        that must be preserved from full to partial view.
        that must be preserved from full to partial view.
        * sem_dist.adb (Add_RAS_Dereference_TSS):
        * sem_dist.adb (Add_RAS_Dereference_TSS):
        Change primitive name to _Call so it cannot clash with any legal
        Change primitive name to _Call so it cannot clash with any legal
        identifier, and be special-cased in Check_Completion.
        identifier, and be special-cased in Check_Completion.
        Mark the full view of the designated type for the RACW associated with
        Mark the full view of the designated type for the RACW associated with
        a RAS as Comes_From_Source to get proper view switching when installing
        a RAS as Comes_From_Source to get proper view switching when installing
        private declarations.
        private declarations.
        Provite a placeholder nested package body along with the nested spec
        Provite a placeholder nested package body along with the nested spec
        to have a place for Append_RACW_Bodies to generate the calling stubs
        to have a place for Append_RACW_Bodies to generate the calling stubs
        and stream attributes.
        and stream attributes.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * sem_ch8.adb (Has_Components): If the argument is an incomplete type
        * sem_ch8.adb (Has_Components): If the argument is an incomplete type
        that is a limited view, check the non-limited view if available.
        that is a limited view, check the non-limited view if available.
        (Undefined): Refine error message for missing with of Text_IO
        (Undefined): Refine error message for missing with of Text_IO
        (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
        (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
        to distinguish real missing with cases.
        to distinguish real missing with cases.
        Fix format of all missing with messages
        Fix format of all missing with messages
        (Analyze_Subprogram_Renaming): Emit proper error message on illegal
        (Analyze_Subprogram_Renaming): Emit proper error message on illegal
        renaming as body when renamed entity is abstract.
        renaming as body when renamed entity is abstract.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
        * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
        predicate recursive, to handle complex expressions on literals whose
        predicate recursive, to handle complex expressions on literals whose
        spurious ambiguity comes from the abstract interpretation of some
        spurious ambiguity comes from the abstract interpretation of some
        subexpression.
        subexpression.
        (Interface_Present_In_Ancestor): Add support to concurrent record
        (Interface_Present_In_Ancestor): Add support to concurrent record
        types.
        types.
        (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
        (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
        Is_Abstract_Subprogram and Is_Abstract_Type.
        Is_Abstract_Subprogram and Is_Abstract_Type.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Javier Miranda  
            Javier Miranda  
        * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
        * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
        dereference of a local object R created as a reference to another
        dereference of a local object R created as a reference to another
        object O, use the access level of O.
        object O, use the access level of O.
        (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
        (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
        rather than local Same_Formal_Type, to check whether protected operation
        rather than local Same_Formal_Type, to check whether protected operation
        overrides an inherited one.
        overrides an inherited one.
        (Same_Formal_Type): New predicate, used when matching signatures of
        (Same_Formal_Type): New predicate, used when matching signatures of
        overriding synchronized operations, to handle the case when a formal
        overriding synchronized operations, to handle the case when a formal
        has a type that is a generic actual.
        has a type that is a generic actual.
        (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
        (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
        predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
        predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
        (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
        (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
        syntactic ambiguities involving indexing of function calls that return
        syntactic ambiguities involving indexing of function calls that return
        arrays.
        arrays.
        (Abstract_Interface_List): New subprogram that returns the list of
        (Abstract_Interface_List): New subprogram that returns the list of
        abstract interfaces associated with a concurrent type or a
        abstract interfaces associated with a concurrent type or a
        concurrent record type.
        concurrent record type.
        (Interface_Present_In_Parent): New subprogram used to check if a
        (Interface_Present_In_Parent): New subprogram used to check if a
        given type or some of its parents implement a given interface.
        given type or some of its parents implement a given interface.
        (Collect_Abstract_Interfaces): Add support for concurrent types
        (Collect_Abstract_Interfaces): Add support for concurrent types
        with interface types.
        with interface types.
        (Has_Abstract_Interfaces): Add support for concurrent types with
        (Has_Abstract_Interfaces): Add support for concurrent types with
        interface types.
        interface types.
        (Is_Parent): New subprogram that determines whether E1 is a parent
        (Is_Parent): New subprogram that determines whether E1 is a parent
        of E2. For a concurrent type its parent is the first element of its
        of E2. For a concurrent type its parent is the first element of its
        list of interface types; for other types this function provides the
        list of interface types; for other types this function provides the
        same result than Is_Ancestor.
        same result than Is_Ancestor.
        (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
        (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
        (Collect_Synchronized_Interfaces): Removed because the subprogram
        (Collect_Synchronized_Interfaces): Removed because the subprogram
        Collect_Abstract_Interfaces provides this functionality.
        Collect_Abstract_Interfaces provides this functionality.
        (Collect_Abstract_Interfaces): Minor update to give support to
        (Collect_Abstract_Interfaces): Minor update to give support to
        concurrent types and thus avoid undesired code duplication.
        concurrent types and thus avoid undesired code duplication.
        (Get_Subprogram_Entity): Handle entry calls.
        (Get_Subprogram_Entity): Handle entry calls.
        (May_Be_Lvalue): Include actuals that appear as in-out parameters in
        (May_Be_Lvalue): Include actuals that appear as in-out parameters in
        entry calls.
        entry calls.
        (Enter_Name): Do not give -gnatwh hiding warning for record component
        (Enter_Name): Do not give -gnatwh hiding warning for record component
        entities, they never result in hiding.
        entities, they never result in hiding.
2007-04-06  Ed Schonberg  
2007-04-06  Ed Schonberg  
            Robert Dewar  
            Robert Dewar  
        * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
        * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
        to chain nested components that are allocators for access discriminants
        to chain nested components that are allocators for access discriminants
        of the enclosing object.
        of the enclosing object.
        Add N_Push and N_Pop nodes
        Add N_Push and N_Pop nodes
        New field Exception_Label added
        New field Exception_Label added
        (Local_Raise_Statements): New field in N_Exception_Handler_Node
        (Local_Raise_Statements): New field in N_Exception_Handler_Node
        (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
        (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
        (Is_Coextension): New flag for allocators, to mark allocators that
        (Is_Coextension): New flag for allocators, to mark allocators that
        correspond to access discriminants of dynamically allocated objects.
        correspond to access discriminants of dynamically allocated objects.
        (N_Block_Statement): Document the fact that the corresponding entity
        (N_Block_Statement): Document the fact that the corresponding entity
        can be an E_Return_Statement.
        can be an E_Return_Statement.
        (Is_Coextension): New flag for allocators.
        (Is_Coextension): New flag for allocators.
        Remove all code for DSP option
        Remove all code for DSP option
        * sprint.ads, sprint.adb: Display basic information for class_wide
        * sprint.ads, sprint.adb: Display basic information for class_wide
        subtypes. Add handling of N_Push and N_Pop nodes
        subtypes. Add handling of N_Push and N_Pop nodes
2007-04-06  Arnaud Charlet  
2007-04-06  Arnaud Charlet  
        * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
        * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
        before propagating exception.
        before propagating exception.
2007-04-06  Olivier Hainque  
2007-04-06  Olivier Hainque  
        * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
        * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
        an address always within the call instruction from a return address.
        an address always within the call instruction from a return address.
2007-04-06  Olivier Hainque  
2007-04-06  Olivier Hainque  
            Eric Botcazou  
            Eric Botcazou  
        * trans.c (call_to_gnu) : Return an
        * trans.c (call_to_gnu) : Return an
        expression with a COMPOUND_EXPR including the call instead of emitting
        expression with a COMPOUND_EXPR including the call instead of emitting
        the call directly here.
        the call directly here.
        (gnat_to_gnu) : Do not return a non-constant low bound if the
        (gnat_to_gnu) : Do not return a non-constant low bound if the
        high bound is constant and the slice is empty.  Tidy.
        high bound is constant and the slice is empty.  Tidy.
        (tree_transform, case N_Op_Not): Handle properly the case where the
        (tree_transform, case N_Op_Not): Handle properly the case where the
        operation applies to a private type whose full view is a modular type.
        operation applies to a private type whose full view is a modular type.
        (Case_Statement_To_gnu): If an alternative is an E_Constant with an
        (Case_Statement_To_gnu): If an alternative is an E_Constant with an
        Address_Clause, use the associated Expression as the GNAT tree
        Address_Clause, use the associated Expression as the GNAT tree
        representing the choice value to ensure the corresponding GCC tree is
        representing the choice value to ensure the corresponding GCC tree is
        of the proper kind.
        of the proper kind.
        (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
        (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
        instead of just the operands, as the base GCC stabilize_reference does.
        instead of just the operands, as the base GCC stabilize_reference does.
        : New case. Directly stabilize the call if an lvalue is not
        : New case. Directly stabilize the call if an lvalue is not
        requested; otherwise fail.
        requested; otherwise fail.
        (addressable_p) : Do not test DECL_NONADDRESSABLE_P.
        (addressable_p) : Do not test DECL_NONADDRESSABLE_P.
2007-04-06  Thomas Quinot  
2007-04-06  Thomas Quinot  
        * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
        * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
        implementation of UI_Div.
        implementation of UI_Div.
        (UI_Div): Reimplement as a call to UI_Div_Rem.
        (UI_Div): Reimplement as a call to UI_Div_Rem.
        (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
        (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
        remainder, avoiding the cost of a multiplication and a subtraction.
        remainder, avoiding the cost of a multiplication and a subtraction.
        (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
        (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
        provides both quotient and remainder in a single computation.
        provides both quotient and remainder in a single computation.
        (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
        (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
        functions for uint.
        functions for uint.
        (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
        (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
        is undefined if the given n is not inversible.
        is undefined if the given n is not inversible.
2007-04-06  Olivier Hainque  
2007-04-06  Olivier Hainque  
        * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
        * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
        BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
        BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
        opcodes.
        opcodes.
2007-04-06  Eric Botcazou  
2007-04-06  Eric Botcazou  
            Olivier Hainque  
            Olivier Hainque  
        * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
        * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
        when updating the contents of the old pointer to an unconstrained array.
        when updating the contents of the old pointer to an unconstrained array.
        (end_subprog_body): Set error_gnat_node to Empty.
        (end_subprog_body): Set error_gnat_node to Empty.
        (write_record_type_debug_info): Do not be unduly sparing with our bytes.
        (write_record_type_debug_info): Do not be unduly sparing with our bytes.
        (unchecked_convert): For subtype to base type conversions, require that
        (unchecked_convert): For subtype to base type conversions, require that
        the source be a subtype if it is an integer type.
        the source be a subtype if it is an integer type.
        (builtin_decls): New global, vector of available builtin functions.
        (builtin_decls): New global, vector of available builtin functions.
        (gnat_pushdecl): Add global builtin function declaration nodes to the
        (gnat_pushdecl): Add global builtin function declaration nodes to the
        builtin_decls list.
        builtin_decls list.
        (gnat_install_builtins): Adjust comments.
        (gnat_install_builtins): Adjust comments.
        (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
        (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
        calling gnat_pushdecl, so that it knows when it handed a builtin
        calling gnat_pushdecl, so that it knows when it handed a builtin
        function declaration node.
        function declaration node.
        (builtin_decl_for): Search the builtin_decls list.
        (builtin_decl_for): Search the builtin_decls list.
2007-04-06  Eric Botcazou  
2007-04-06  Eric Botcazou  
        * s-stchop-vxworks.adb:
        * s-stchop-vxworks.adb:
        (Stack_Check): Raise Storage_Error if the argument has wrapped around.
        (Stack_Check): Raise Storage_Error if the argument has wrapped around.
2007-04-06  Robert Dewar  
2007-04-06  Robert Dewar  
            Arnaud Charlet  
            Arnaud Charlet  
        * a-diroro.ads: Inserted the pragma Unimplemented_Unit
        * a-diroro.ads: Inserted the pragma Unimplemented_Unit
        * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
        * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
        of files
        of files
        Add mention of -Sev (set initialize_scalars option from environment
        Add mention of -Sev (set initialize_scalars option from environment
        variable at run time) in gnatbind usage message.
        variable at run time) in gnatbind usage message.
        * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
        * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
        * fname-uf.ads: Minor comment fix
        * fname-uf.ads: Minor comment fix
        * osint.ads: Change pragma Elaborate to Elaborate_All
        * osint.ads: Change pragma Elaborate to Elaborate_All
        * par-load.adb: Add documentation.
        * par-load.adb: Add documentation.
        * sem_cat.ads, sem_cat.adb: Minor code reorganization
        * sem_cat.ads, sem_cat.adb: Minor code reorganization
        * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
        * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
        * s-secsta.ads: Extra comments
        * s-secsta.ads: Extra comments
        * s-soflin.ads: Minor comment fixes
        * s-soflin.ads: Minor comment fixes
        * s-stratt.ads (Block_Stream_Ops_OK): Removed.
        * s-stratt.ads (Block_Stream_Ops_OK): Removed.
        * s-wchcon.ads: Minor comment addition
        * s-wchcon.ads: Minor comment addition
        * treepr.adb: Minor change in message
        * treepr.adb: Minor change in message
        (Print_Name,Print_Node): Make these debug printouts more robust: print
        (Print_Name,Print_Node): Make these debug printouts more robust: print
        "no such..." instead of crashing on bad input.
        "no such..." instead of crashing on bad input.
2007-03-30  Rafael Ávila de Espíndola  
2007-03-30  Rafael Ávila de Espíndola  
        * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
        * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
        instead of gnat_signed_or_unsigned_type.
        instead of gnat_signed_or_unsigned_type.
        * utils.c (gnat_signed_or_unsigned_type): Remove.
        * utils.c (gnat_signed_or_unsigned_type): Remove.
        * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
        * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
        * gigi.h (gnat_signed_or_unsigned_type): Remove
        * gigi.h (gnat_signed_or_unsigned_type): Remove
2007-03-09  Roger Sayle  
2007-03-09  Roger Sayle  
        * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
        * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
        fold with the result of buildN.
        fold with the result of buildN.
        * decl.c (gnat_to_gnu_entity): Likewise.
        * decl.c (gnat_to_gnu_entity): Likewise.
        * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
        * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
        * utils.c (finish_record_type, merge_sizes, max_size, convert):
        * utils.c (finish_record_type, merge_sizes, max_size, convert):
        Likewise.
        Likewise.
        * utils2.c (gnat_truthvalue_conversion, compare_arrays,
        * utils2.c (gnat_truthvalue_conversion, compare_arrays,
        nonbinary_modular_operation, build_binary_op, build_unary_op,
        nonbinary_modular_operation, build_binary_op, build_unary_op,
        build_cond_expr): Likewise.
        build_cond_expr): Likewise.
        * utils.c (convert): Use fold_build1 when casting values to void.
        * utils.c (convert): Use fold_build1 when casting values to void.
        * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
        * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
        fold_convert instead of convert when appropriate.
        fold_convert instead of convert when appropriate.
2007-03-01  Brooks Moses  
2007-03-01  Brooks Moses  
        * Make-lang.in: Add install-pdf target as copied from
        * Make-lang.in: Add install-pdf target as copied from
        automake v1.10 rules.
        automake v1.10 rules.
2007-02-28  Andreas Schwab  
2007-02-28  Andreas Schwab  
        * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
        * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
        $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
        $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
        (doc/gnat-style.info): Likewise.
        (doc/gnat-style.info): Likewise.
2007-02-26  Brooks Moses  
2007-02-26  Brooks Moses  
        * gnat-style.texi: Standardize title page.
        * gnat-style.texi: Standardize title page.
        * gnat_rm.texi: Likewise.
        * gnat_rm.texi: Likewise.
        * gnat_ugn.texi: Likewise.
        * gnat_ugn.texi: Likewise.
2007-02-25  Mark Mitchell  
2007-02-25  Mark Mitchell  
        * decl.c (annotate_value): Adjust for refactoring of tree_map
        * decl.c (annotate_value): Adjust for refactoring of tree_map
        hierarchy.
        hierarchy.
2007-02-24  Mark Mitchell  
2007-02-24  Mark Mitchell  
        * decl.c (annotate_value): Adjust for refactoring of tree_map
        * decl.c (annotate_value): Adjust for refactoring of tree_map
        hierarchy.
        hierarchy.
2007-02-21  Ed Schonberg  
2007-02-21  Ed Schonberg  
        PR ada/18819
        PR ada/18819
        * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
        * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
        untagged derived type, add hidden components to keep discriminant
        untagged derived type, add hidden components to keep discriminant
        layout consistent, when a given discriminant of the derived type
        layout consistent, when a given discriminant of the derived type
        constraints several discriminants of the parent type.
        constraints several discriminants of the parent type.
2007-02-16  Eric Botcazou  
2007-02-16  Eric Botcazou  
            Sandra Loosemore  
            Sandra Loosemore  
        * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
        * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
        build the call expression.
        build the call expression.
        (gnat_stabilize_reference_1): Handle tcc_vl_exp.
        (gnat_stabilize_reference_1): Handle tcc_vl_exp.
        * utils.c (max_size) : Delete.
        * utils.c (max_size) : Delete.
        : New case.
        : New case.
        : Delete CALL_EXPR subcase.
        : Delete CALL_EXPR subcase.
        (build_global_cdtor): Use build_call_nary instead of build3.
        (build_global_cdtor): Use build_call_nary instead of build3.
        * utils2.c (build_call_1_expr): Likewise.
        * utils2.c (build_call_1_expr): Likewise.
        (build_call_2_expr): Likewise.
        (build_call_2_expr): Likewise.
        (build_call_0_expr): Likewise.
        (build_call_0_expr): Likewise.
        (build_call_alloc_dealloc): Likewise.
        (build_call_alloc_dealloc): Likewise.
2007-02-07  Andreas Krebbel  
2007-02-07  Andreas Krebbel  
        * raise-gcc.c (get_region_description_for, get_call_site_action_for,
        * raise-gcc.c (get_region_description_for, get_call_site_action_for,
        get_action_description_for): Replace _Unwind_Word with _uleb128_t
        get_action_description_for): Replace _Unwind_Word with _uleb128_t
        and _Unwind_SWord with _sleb128_t.
        and _Unwind_SWord with _sleb128_t.
2007-02-06  Paolo Bonzini  
2007-02-06  Paolo Bonzini  
        * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
        * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
        * decl.c: Include gt-ada-decl.h.
        * decl.c: Include gt-ada-decl.h.
        (annotate_value_cache): New.
        (annotate_value_cache): New.
        (annotate_value): Use it instead of TREE_COMPLEXITY.
        (annotate_value): Use it instead of TREE_COMPLEXITY.
2007-02-03  Kazu Hirata  
2007-02-03  Kazu Hirata  
        * misc.c, utils2.c: Fix comment typos.
        * misc.c, utils2.c: Fix comment typos.
2007-01-24  Roger Sayle  
2007-01-24  Roger Sayle  
        * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
        * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
        TREE_CONSTANT_OVERFLOW.
        TREE_CONSTANT_OVERFLOW.
        (allocatable_size_p, annotate_value): Likewise.
        (allocatable_size_p, annotate_value): Likewise.
        * trans.c (gnat_to_gnu): Likewise.
        * trans.c (gnat_to_gnu): Likewise.
        * utils.c (unchecked_convert): Likewise.
        * utils.c (unchecked_convert): Likewise.
        * utils2.c (build_simple_component_ref): Likewise.
        * utils2.c (build_simple_component_ref): Likewise.
2007-01-23  Richard Guenther  
2007-01-23  Richard Guenther  
        PR bootstrap/30541
        PR bootstrap/30541
        * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
        * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
        (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
        (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
        (gnatboot3): Likewise.
        (gnatboot3): Likewise.
        (GNATBIND): Do not define.
        (GNATBIND): Do not define.
        * Makefile.in (GNATBIND): Do not define.
        * Makefile.in (GNATBIND): Do not define.
2007-01-08  Richard Guenther  
2007-01-08  Richard Guenther  
        * cuintp.c (build_cst_from_int): Use built_int_cst_type.
        * cuintp.c (build_cst_from_int): Use built_int_cst_type.
        * trans.c (gnat_to_gnu): Likewise.
        * trans.c (gnat_to_gnu): Likewise.


Copyright (C) 2007 Free Software Foundation, Inc.
Copyright (C) 2007 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
notice and this notice are preserved.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.