OSDN Git Service

2004-10-04 Laurent GUERBY <laurent@guerby.net>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
index d170497..31ab953 100644 (file)
@@ -1,3 +1,684 @@
+2004-10-04  Laurent GUERBY <laurent@guerby.net>
+
+       PR ada/15156
+       * Makefile.in: Define and use RANLIB_FLAGS.
+       
+2004-10-04  Pascal Obry  <obry@gnat.com>
+
+       * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
+       other x86 platforms).
+
+2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
+
+       * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
+       in general and triggers stack alignment adjustment for thread entry
+       points on targets where this is necessary.
+
+2004-10-04  Bernard Banner  <banner@gnat.com>
+
+       PR ada/13897
+
+       * Makefile.in: Add section for powerpc linux
+       Add variant i-vxwork-x86.ads
+
+       * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
+
+2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
+
+       * init.c (__gnat_initialize): Call an Ada subprogram to perform the
+       table registration calls when need be. Ensures no reference to the crt
+       ctors symbol are issued in the SJLJ case, which avoids possible
+       undefined symbol errors in the case of modules to be statically linked
+       with the kernel.
+
+2004-10-04  Javier Miranda  <miranda@gnat.com>
+
+       * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
+       in-line the code corresponding to subprogram Analyze_Actuals. In
+       addition, analyze the actuals only in case of subprogram call.
+
+2004-10-04  Ed Falis  <falis@gnat.com>
+
+       * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
+
+2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
+
+       * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
+       in the documentation.
+
+2004-10-04  Robert Dewar  <dewar@gnat.com>
+
+       * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
+       IF and CASE.
+       (Analyze_Block_Statement): Add circuitry to detect following dead code
+       (Check_Unreachable_Code): Handle case of block exit
+
+2004-10-04  Robert Dewar  <dewar@gnat.com>
+
+       * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
+       (XMatchD): Avoid warning for Logic_Error call
+
+2004-10-04  Robert Dewar  <dewar@gnat.com>
+
+       * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
+       consider expressions buried within a procedure actual to be an actual.
+       This caused some blowups with uses of packed slices within a procedure
+       actual.
+
+2004-10-04  Robert Dewar  <dewar@gnat.com>
+
+       * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
+       longer need to be initialized to zero.
+       (Get_Simple_Init_Val): Modular packed arrays no longer need to be
+       initialized to zero.
+
+       * checks.adb (Expr_Known_Valid): Packed arrays are now always
+       considered valid, even if the representation is modular. That's correct
+       now that we no longer initialize packed modular arrays to zero.
+
+       * exp_dbug.ads: Clarify documentation on handling of PAD and JM
+       suffixes. These are now documented as the only cases in which the
+       debugger ignores outer records.
+       Previously, the spec allowed arbitrary suffixes for this purpose.
+       Change name of LJM to JM for packed array pad records
+       Create separate section on packed array handling, and add a whole new
+       set of comments to this section describing the situation with packed
+       modular types and justification requirements depending on endianness.
+
+2004-10-04  Robert Dewar  <dewar@gnat.com>
+
+       * a-except.adb: Add a comment for last change
+
+       * einfo.ads: Minor spelling correction in comment
+
+       * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
+
+       * sem_ch11.adb: Fix a case of using | instead of \ for continuation
+       messages.
+
+       * sem_util.ads: Minor comment update
+
+2004-10-04  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
+       Inline_Always when in Configurable_Run_Time mode.
+
+       * sem_prag.adb (Process_Convention): If entity is an inherited
+       subprogram, apply convention to parent subprogram if in same scope.
+       (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
+       when in Configurable_Run_Time mode.
+
+2004-10-04  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
+       class_wide type after component list has been inherited.
+
+2004-10-04  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_ch12.adb (Check_Generic_Actuals): New predicate
+       Denotes_Previous_Actual, to handle properly the case of a private
+       actual that is also the component type of a subsequent array actual.
+       The visibility status of the first actual is not affected when the
+       second is installed.
+       (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
+       make fully recursive the treatment of formals of packages declared
+       with a box.
+       (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
+       the above on exit from an instantiation.
+       (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
+       current instantiation which is now complete.
+       (Analyze_Package_Instantiation): No instantiated body is needed if the
+       main unit is generic. Efficient, and avoid anomalies when a instance
+       appears in a package accessed through rtsfind.
+
+2004-10-04  Ed Schonberg  <schonberg@gnat.com>
+
+       * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
+       do not generate a declaration for a temporary if the call is part of a
+       library-level instantiation.
+
+2004-10-04  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_util.adb (Explain_Limited_Type): Ignore internal components when
+       searching for a limited component to flag.
+
+       * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
+       expansion of Input, to account for the fact that the implicit call
+       generated by the attribute reference must freeze the user-defined
+       stream subprogram. This is only relevant to 'Input, because it can
+       appear in an object declaration, prior to the body of the subprogram.
+
+       * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
+       expansion can proceed and further errors uncovered.
+       (Minor clean up): Fix cases of using | instead of \ for continuation
+       messages.
+
+2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
+
+       * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
+       (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
+       Use gcc_assert and gcc_unreachable.
+
+       * decl.c (gnat_to_gnu_entity, case object): Check and process a
+       specified alignment before validating size.
+       (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
+       stripped-down declaration for the type of the inner field when making
+       a JM type.
+
+       * utils.c (finish_record_type): Do not compute the size in units
+       incrementally. Instead compute it once for the rep clause case.
+       Use gcc_assert and gcc_unreachable.
+
+2004-10-04  Vincent Celier  <celier@gnat.com>
+
+       * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
+       in file name.
+       (Is_Valid_Path_Name): Take '/' as a directory separator.
+
+2004-10-04  Vincent Celier  <celier@gnat.com>
+
+       * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
+       (Extended_Project) only if Extended_Project is defined, to avoid
+       assertion error.
+       (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
+       resolved path.
+       (Parse_Single_Project): Ditto.
+
+       * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
+       Add_To_Project_Path for virtual projects.
+
+2004-10-04  Vincent Celier  <celier@gnat.com>
+
+       * mlib-tgt-tru64.adb, mlib-tgt-aix.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-mingw.adb, 
+       mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
+       parameter Options_2.
+
+       * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
+       Build_Dynamic_Library with an empty Options_2.
+
+       * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
+       default anymore.
+
+       * makegpr.adb (Get_Imported_Directories.add): Remove trailing
+       directory separator, if any.
+       (Gprmake): Do not allow mains on the command line for library projects.
+       Do not attempt to link when the project is a library project.
+       (Library_Opts): New table to store Library_Options.
+       (Build_Library): If Library_Options is specified, pass these options
+       when building a shared library.
+
+2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
+
+       * s-tposen.adb (Service_Entry): The object must be always unlocked at
+       the end of this procedure now that the unlock operation was inserted
+       by the expander.
+
+2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
+
+       * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
+       corresponding to the Preallocated_Stacks flags in System.
+       (Get_Target_Parameters): Including the processing for
+       Preallocated_Stacks.
+
+       * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads, 
+       system-vms_64.ads, system-unixware.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-aix.ads, 
+       system-vxworks-sparcv9.ads, system-vxworks-xscale.ads, 
+       system-solaris-x86.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-os2.ads, system-interix.ads, 
+       system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
+       system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
+       system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
+       used to signal whether the compiler creates the required stacks and
+       descriptors for the different tasks (when True) or it is done by the
+       underlying operating system at run time (when False).
+       It is initially set to False in all targets.
+
+       * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
+       if it is supported by the target.
+       (Make_Task_Create_Call): Pass the stack address if it has been
+       previously created. Otherwise pass a Null_Address.
+
+       * snames.adb: Add _stack.
+
+       * snames.ads: Add Name_uStack. Required to allow the expander to
+       statically allocated task stacks.
+
+       * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
+       Stack_Address argument.
+       Check that its value is equal to Null_Address because this target does
+       not support the static stack allocation.
+
+2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
+
+       * usage.adb: Change "pragma inline" to "pragma Inline" in information
+       and error messages
+
+2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
+
+       * exp_dist.adb: Split declaration of asynchronous flag out of
+       Add_RACW_Read_Attribute.
+       Minor reformatting for better alignment with PolyORB version.
+       Store the entity for the asynchronous flag of an RACW, rather than the
+       expression, in the asynchronous flags table. This will allow this flag
+       to be used in other subprograms beside Add_RACW_Read_Attribute.
+
+2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
+
+       * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
+       g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
+       g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb, 
+       g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads, 
+       g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
+       sockets constant MSG_NOSIGNAL (Linux-specific).
+       Add new sockets constant MSG_Forced_Flags, list of flags to be set on
+       all Send operations.
+       For Linux, set MSG_NOSIGNAL on all send operations to prevent them
+       from trigerring SIGPIPE.
+       Rename components to avoid clash with Ada 2005 possible reserved
+       word 'interface'.
+       (Check_Selector): When the select system call returns with an error
+       condition, propagate Socket_Error to the caller.
+
+2004-10-01  Jan Hubicka  <jh@suse.cz>
+
+       * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
+
+2004-09-23  Robert Dewar  <dewar@gnat.com>
+
+       PR ada/17540
+
+       * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
+       instead do this at freeze time (we won't do it if there is an address
+       clause).
+       Change "pragma inline" to "pragma Inline" in information and error
+       messages.
+       Minor reformatting.
+
+       * freeze.adb (Check_Address_Clause): Remove previous change, not the
+       right way of doing things after all.
+       (Freeze_Entity): For object, set Is_Public for imported entities
+       unless there is an address clause present.
+
+2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
+
+       * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
+       dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
+       ensures proper handling of types with rep clauses, which might have
+       their TYPE_SIZE set already.
+
+2004-09-21  Robert Dewar  <dewar@gnat.com>
+
+       * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
+       packed array types in both little- and big-endian cases. This change
+       ensures that we no longer count on the unused bits being initialized
+       for such types (and in particular ensures that equality testing will
+       only read the relevant bits).
+       Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
+       These changes mean that we no longer need to initialize small packed
+       arrays.
+       (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
+       optimization to an LJM field as to its parent field.
+
+       * ada-tree.h, trans.c, utils.c, utils2.c:
+       Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
+
+2004-09-20  Jan Hubicka  <jh@suse.cz>
+
+       * utils.c (gnat_finalize): Remove.
+       (end_subprog_body): Directly call cgraph_finalize_function;
+       do not lower the nested functions.
+
+2004-09-20  Robert Dewar  <dewar@gnat.com>
+
+       PR ada/17540
+
+       * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
+       if an address clause is present, since that means that the Import
+       should be ignored.
+
+2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
+
+       * 5tsystem.ads: Removed, no longer used.
+
+2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
+           Zack Weinberg  <zack@codesourcery.com>
+
+       * ada-tree.def: Use tree_code_class enumeration constants
+       instead of code letters.
+       * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
+       Update for new tree-class enumeration constants.
+
+2004-09-17  Vincent Celier  <celier@gnat.com>
+
+       * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
+       capabilities of the general project manager.
+
+2004-09-09  Vincent Celier  <celier@gnat.com>
+
+       * a-direct.ads: Add pragma Ada_05
+       (Directory_Entry_Type): Give default value to component Kind to avoid
+       not initialized warnings.
+
+       * a-direct.adb (Current_Directory): Remove directory separator at the
+       end.
+       (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
+       an existing directory.
+       (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
+       (Size (String)): Function C_Size returns Long_Integer, not File_Size.
+       Convert the result to File_Size.
+
+       * prj.ads: (Project_Error): New exception
+
+       * prj-attr.adb: Except in procedure Initialize, Fail comes from
+       Prj.Com, not from Osint.
+       (Attrs, Package_Attributes): Tables moved to private part of spec
+       (Add_Attribute, Add_Unknown_Package): Moved to new child package
+       Prj.Attr.PM.
+       (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
+       Prj.Project_Error after call to Fail.
+       (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
+       Fail. Check that package name is not already in use.
+
+       * prj-attr.ads: Comment updates to indicate that all subprograms may be
+       used by tools, not only by the project manager, and to indicate that
+       exception Prj.Prj_Error may be raised in case of problem.
+       (Add_Unknown_Package, Add_Attribute): Moved to new child package
+       Prj.Attr.PM.
+       (Attrs, Package_Attributes): Table instantiations moved from the body to
+       the private part to be accessible from Prj.Attr.PM body.
+
+       * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
+       from new package Prj.Attr.PM.
+       (Parse_Attribute_Declaration): Call Add_Attribute from new package
+       Prj.Attr.PM.
+
+       * Makefile.in: Add prj-attr-pm.o to gnatmake object list
+
+       * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
+       instead of Elaboration_Checks).
+
+       * a-calend.adb: Minor reformatting
+
+2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gigi.h (maybe_pad_type): New declaration.
+       (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
+
+       * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
+
+       * cuintp.c: Convert to use buildN.
+
+       * decl.c (maybe_pad_type): No longer static.
+       (gnat_to_gnu_entity, case E_Function): Handle case of returning by
+       target pointer.
+       Convert to use buildN.
+
+       * trans.c (call_to_gnu): Add arg GNU_TARGET; support
+       TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
+       (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
+       RHS.
+       (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
+       (gnat_gimplify_expr, case ADDR_EXPR): New case.
+       Convert to use buildN.
+
+       * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
+       TREE_READONLY for const.
+       Convert to use buildN.
+
+       * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
+       (create_var_decl): Refine when TREE_STATIC is set.
+       Convert to use buildN.
+
+2004-09-09  Gary Dismukes  <dismukes@gnat.com>
+
+       * gnat_ugn.texi: Delete text relating to checking of ali and object
+       consistency.
+
+       * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
+       routines.
+
+2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
+
+       * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
+       pragmas recognized by GNAT.
+
+       * gnat_rm.texi: Document pragma Detect_Blocking.
+
+       * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
+       raise Program_Error if called from a protected operation.
+
+       * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
+       the protected action nesting level.
+       (Lock_Read_Only): When pragma Detect_Blocking is active increase the
+       protected action nesting level.
+       (Unlock): When pragma Detect_Blocking is active decrease the protected
+       action nesting level.
+
+       * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
+       Protected_Action_Nesting.
+
+       * s-taskin.ads: Adding the field Protected_Action_Nesting to the
+       Common_ATCB record. It contains the dynamic level of protected action
+       nesting for each task. It is needed for checking whether potentially
+       blocking operations are called from protected operations.
+       (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
+       Detect_Blocking is active or not in the partition.
+
+       * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
+       raise Program_Error if called from a protected operation.
+       (Task_Entry_Call): When pragma Detect_Blocking is active, raise
+       Program_Error if called from a protected operation.
+       (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
+       Program_Error if called from a protected operation.
+
+       * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
+       raise Program_Error if called from a protected operation.
+
+       * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
+       raise Program_Error if called from a protected operation, and increase
+       the protected action nesting level.
+       (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
+       Program_Error if called from a protected operation, and increase the
+       protected action nesting level.
+       (Unlock_Entries): When pragma Detect_Blocking is active decrease the
+       protected action nesting level.
+
+       * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
+       raise Program_Error if called from a protected operation, and increase
+       the protected action nesting level.
+       (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
+       Program_Error if called from a protected operation, and increase the
+       protected action nesting level.
+       (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
+       raise Program_Error if called from a protected operation.
+       (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
+       active, raise Program_Error if called from a protected operation.
+       (Unlock_Entry): When pragma Detect_Blocking is active decrease the
+       protected action nesting level.
+
+       * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
+       insertion of the statement raising Program_Error. The run time
+       contains the required machinery for handling that.
+
+       * sem_util.ads: Change comment associated to procedure
+       Check_Potentially_Blocking_Operation.
+       This procedure does not insert a call for raising the exception because
+       that is currently done by the run time.
+
+       * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
+
+       * init.c: Add the global variable __gl_detect_blocking that indicates
+       whether pragma Detect_Blocking is active (1) or not (0). Needed for
+       making the pragma available at run time.
+       (__gnat_set_globals): Pass and update the detect_blocking parameter.
+
+       * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
+       pragma Detect_Blocking is active.
+
+       * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
+
+       * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
+       DB is found in the ali file. Any unit compiled with pragma
+       Detect_Blocking active forces its effect in the whole partition.
+
+       * a-retide.adb (Delay_Until): Raise Program_Error if pragma
+       Detect_Blocking is active and delay is called from a protected
+       operation.
+
+       * bindgen.adb (Gen_Adainit_Ada): When generating the call to
+       __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
+       Detect_Blocking is active (0 otherwise).
+       (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
+       as Detect_Blocking parameter if pragma Detect_Blocking is active (0
+       otherwise).
+
+2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
+
+       * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
+       GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
+       package.
+
+       * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
+       (Register_Receiving_Stub): Add Subp_Info formal parameter.
+       Update API in placeholder implemetation of s-parint to reflect changes
+       in distribution runtime library.
+
+       * sem_ch3.adb (Expand_Derived_Record): Rename to
+       Expand_Record_Extension.
+
+       * sem_disp.adb (Check_Controlling_Formals): Improve error message for
+       primitive operations of potentially distributed object types that have
+       non-controlling anonymous access formals.
+
+       * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
+       subprogram.
+       New implementation of expansion for remote access-to-subprogram types,
+       based on the RACW infrastructure.
+       This version of sem_dist is compatible with PolyORB/DSA as well as
+       GLADE.
+
+       * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
+       Asynchrronous that applies to a remote access-to-subprogram type, mark
+       the underlying RACW type as asynchronous.
+
+       * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
+        __gnat_using_gnu_linker to 1.
+
+       * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
+       g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
+       GNAT.Perfect_Hash_Generators, and remove the empty
+       GNAT.Perfect_Hash package.
+
+       * atree.adb: Minor reformatting
+
+       * exp_ch3.adb (Expand_Derived_Record): Rename to
+       Expand_Record_Extension.
+       (Build_Record_Init_Proc.Build_Assignment): The default expression in
+       a component declaration must remain attached at that point in the
+       tree so New_Copy_Tree copies it if the enclosing record type is derived.
+       It is therefore necessary to take a copy of the expression when building
+       the corresponding assignment statement in the init proc.
+       As a side effect, in the case of a derived record type, we now see the
+       original expression, without any rewriting that could have occurred
+       during expansion of the ancestor type's init proc, and we do not need
+       to go back to Original_Node.
+
+       * exp_ch3.ads (Expand_Derived_Record): Rename to
+       Expand_Record_Extension.
+
+       * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
+       Returns the RACW type used to implement a remote access-to-subprogram
+       type.
+       (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
+       New subprograms. Used to create a proxy tagged object for a remote
+       subprogram. The proxy object is used as the designated object
+       for RAS values on the same partition (unless All_Calls_Remote applies).
+       (Build_Get_Unique_RP_Call): New subprogram. Build a call to
+       System.Partition_Interface.Get_Unique_Remote_Pointer.
+       (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
+       Renamed from Add_RAS_*_Attribute.
+       (Add_Receiving_Stubs_To_Declarations): Generate a table of local
+       subprograms.
+       New implementation of expansion for remote access-to-subprogram types,
+       based on the RACW infrastructure.
+
+       * exp_dist.ads (Copy_Specification): Update comment to note that this
+       function can copy the specification from either a subprogram
+       specification or an access-to-subprogram type definition.
+
+2004-09-09  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
+       in an instance, between an explicit subprogram an one inherited from a
+       type derived from an actual.
+
+       * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
+       add a polling call if the subprogram is to be inlined by the back-end,
+       to avoid repeated calls with multiple inlinings.
+
+       * checks.adb (Apply_Alignment_Check): If the expression in the address
+       clause is a call whose name is not a static entity (e.g. a dispatching
+       call), treat as dynamic.
+
+2004-09-09  Robert Dewar  <dewar@gnat.com>
+
+       * g-trasym.ads: Minor reformatting
+
+       * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
+       packed arrays, since unused bits are expected to be zero for a
+       comparison.
+
+2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
+       comment.
+
+2004-09-09  Pascal Obry  <obry@gnat.com>
+
+       * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
+       enable map file generation. Add the right option to generate the map
+       file if Map_File is set to True.
+
+       * gnatdll.adb (Gen_Map_File): New variable.
+       (Syntax): Add info about new -m (Map_File) option.
+       (Parse_Command_Line): Add support for -m option.
+       (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
+       Minor reformatting.
+
+2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
+
+       * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
+       new gnatdist implementation.
+       Define a subpackage isolating the output routines specific to this
+       verbose mode.
+
+2004-09-09  Joel Brobecker  <brobecker@gnat.com>
+
+       * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
+
+       * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
+
+2004-09-09  Cyrille Comar  <comar@act-europe.fr>
+
+       * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
+       internal unit.
+
+       * opt.ads: Add Ada_Version_Runtime constant used to decide which
+       version of the language is used to compile the run time.
+
+2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
+
+       * sem_util.adb (Requires_Transient_Scope): Re-enable handling
+       of variable length temporaries for function return now that the
+       back-end and gigi support it.
+
 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
 
 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
            Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-       
+
        * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
 
 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
        * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
        * utils.c (init_gigi_decls): Likewise.
        * utils2.c (build_call_raise, build_allocator): Likewise.
-       
+
 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
 
        * utils.c (gnat_init_decl_processing): Adjust
        GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
        and test explicitly for non-zero return value.
 
-       * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads: 
+       * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
        (Is_Socket_In_Set): Declare imported function as returning C.int, to
        avoid using a derived boolean type.
 
        (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
        (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
        (mark_visited): Don't mark dummy type.
-       (tree_transform <N_Procedure_Call_Statement>): Unless this is an In     
+       (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
        parameter, we must remove any LJM building from GNU_NAME.
        (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
        (pos_to_constructor): Use int_const_binop.
        (gnat_to_gnu): If statement and not in procedure, go into elab proc.
        Delete calls to add_decl_expr; add arg to create_*_decl.
        (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
-       (gnat_to_gnu, case N_Subprogram_Body): Move some code to 
+       (gnat_to_gnu, case N_Subprogram_Body): Move some code to
        begin_subprog_body and call it.
        Don't push and pop ggc context.
        (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
        (function_nesting_depth): Deleted.
        (begin_subprog_body): Delete obsolete code.
        * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
-       
+
 2004-06-28  Robert Dewar  <dewar@gnat.com>
 
        * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
        Lib_Address and Relocatable.
        (Default_DLL_Address): Removed.
 
-       * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
-       mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, 
+       * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
+       mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
        mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
        (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
        (Default_DLL_Address): Removed.
        (Compile_Sources.Compile): Add switch -gnatez as the last option
        (Display): Never display -gnatez
 
-       * Makefile.generic: 
+       * Makefile.generic:
        When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
 
        * gnatcmd.adb (Check_Project): New function
        opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
        par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
        par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
-        sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
+       sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
        sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
        sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
        sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
 
        Renaming of target specific files for clarity
 
-        * Makefile.in: Rename GNAT target specific files.
+       * Makefile.in: Rename GNAT target specific files.
 
        * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
        3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,