+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.
+
+ * trans.c (struct stmt_group): Delete field GLOBAL.
+ (gnat_init_stmt_group): Do not initialize it.
+ (call_to_gnu): Use save_expr, not protect_multiple_eval.
+ (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
+ (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
+ (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
+ (start_stmt_group): Likewise.
+ (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
+
+ * utils2.c (ggc.h): Include.
+ (build_call_raise): Call build_int_cst, not build_int_2.
+
+ * utils.c (gnat_init_decl_processing): Fix arg to
+ build_common_tree_nodes.
+ (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
+ (gnat_define_builtin): Set built_in_decls.
+ (init_gigi_decls): Call build_int_cst, not build_int_2.
+
+ * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
+ (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
+ (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
+ (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
+ SET_TYPE_MODULE): Use them.
+ (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
+ (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
+ (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
+ SET_TYPE_ADA_SIZE): Likewise.
+ (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
+ (DECL_CONST_CORRESPONDING_VAR,
+ SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
+ (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
+ (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
+ (TYPE_RM_SIZE_NUM): New macro.
+ (TYPE_RM_SIZE): Modified to use above.
+
+ * cuintp.c: (build_cst_from_int): New function.
+ (UI_To_gnu): Use it.
+
+ * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
+ (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
+ (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
+ MIN_EXPR for the size, copy it into new.
+
+2004-09-01 Robert Dewar <dewar@gnat.com>
+
+ * exp_ch6.adb (Expand_Call): Properly handle validity checks for
+ packed indexed component where array is an IN OUT formal. This
+ generated garbage code previously.
+
+ * gnat_ugn.texi: Document -fverbose-asm
+
+ * gnat-style.texi: Minor updates (note that boolean constants and
+ variables are joined with AND/OR rather than short circuit forms).
+
+2004-09-01 Ed Schonberg <schonberg@gnat.com>
+
+ * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
+ it is an upward conversion of an untagged type with no representation
+ change.
+
+2004-09-01 Thomas Quinot <quinot@act-europe.fr>
+
+ * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
+ System.Partition_Interface.
+
+ * checks.adb (Apply_Access_Checks): Do not generate checks when
+ expander is not active (but check for unset reference to prefix of
+ dereference).
+
+ * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
+ pragma Debug as an if statement with a constant condition, for
+ consistent treatment of entity references contained within the
+ enclosed procedure call.
+
+2004-09-01 Vincent Celier <celier@gnat.com>
+
+ * bindgen.adb: (Set_EA_Last): New procedure
+ (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
+ Set_EA_Last.
+ (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
+ (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
+ linked without errors.
+ (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
+ ST and EA.
+ (Gen_Exception_Table_C): Correct same bugs
+
+ * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
+
+ * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
+ on Windows, make sure that the drive letter is in upper case.
+
+ * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
+ Windows, when the drive letter is added and Case_Sensitive is True, the
+ drive letter is forced to upper case.
+
+ * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
+ to Options_2 for the call to MLib.Utl.Gcc.
+
+ * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
+ directory separator when defining BASE_DIR.
+
+2004-09-01 Pascal Obry <obry@gnat.com>
+
+ * gprcmd.adb (Extend): Do not output trailing directory separator. This
+ is not needed and it confuses Windows GNU/make which does not report
+ directory terminated by a slash as a directory.
+ (gprcmd): Idem for "pwd" internal command.
+
+ * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
+ target names rewrite to fix regressions with recent version of
+ GNU/make. Starting with GNU/make 3.80 the pipe character was not
+ handled properly anymore.
+
+2004-09-01 Andreas Schwab <schwab@suse.de>
+
+ * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
+ * raise.c [!IN_RTS]: Undef abort.
+
+2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * utils2.c (build_allocator): Use ssize_int.
+
+ * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
+
+2004-08-27 Andreas Schwab <schwab@suse.de>
+
+ * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
+
+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>
+
+ * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
+ * 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
+ build_common_tree_nodes call.
+
+2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ * utils2.c (build_allocator): Use build_int_cst for negative
+ size types.
+
+2004-08-18 Richard Henderson <rth@redhat.com>
+
+ * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
+
+2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
+ call.s
+ * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
+ (gnat_to_gnu): Likewise.
+
+2004-08-16 Pascal Obry <obry@gnat.com>
+
+ * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
+ backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
+ option and not mdll anymore. Update comment.
+
+2004-08-16 Pascal Obry <obry@gnat.com>
+
+ * bld.adb (Put_Include_Project): Properly handle directory separators
+ on Windows.
+
+2004-08-16 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
+ decreasing the number of allocated junk nodes while searching for the
+ appropriate subprogram.
+
+2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
+
+ * cuintp.c (UI_To_gnu): Use build_int_cst..
+ * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
+ * utils.c (init_gigi_decls): Likewise.
+ * utils2.c (build_call_raise): Likewise.
+
+2004-08-13 Olivier Hainque <hainque@act-europe.fr>
+
+ * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
+ for a global aliased object with a variable size and an unconstrained
+ nominal subtype, pretend there is no initializer if the one we have is
+ incomplete, and avoid referencing an inexistant component in there. The
+ part we have will be rebuilt anyway and the reference may confuse
+ further operations.
+
+2004-08-13 Thomas Quinot <quinot@act-europe.fr>
+
+ * einfo.ads: Minor reformatting
+
+ * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
+ restrictions in the ALI if we only want to warn about violations.
+
+2004-08-13 Vincent Celier <celier@gnat.com>
+
+ * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
+ when creating a new Unit_Record in table Units.
+
+ * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
+ that are violated, if any.
+
+ * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
+ add directory separator if path already ends with a directory separator.
+
+2004-08-13 Ed Schonberg <schonberg@gnat.com>
+
+ * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
+ unit, this is an attempt to inline a construct that is not available in
+ the current restricted mode, so abort rather than trying to continue.
+
+ * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
+ discriminants that rename those of the parent, recover names of
+ original discriminants for the constraint on the full view of the
+ parent.
+ (Complete_Private_Subtype): Do not create a subtype declaration if the
+ subtype is an itype.
+
+ * gnat_rm.texi: Added section on implementation of discriminated
+ records with default values for discriminants.
+
+2004-08-13 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15601
+ * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
+ the second operand is overloaded.
+
+2004-08-10 Richard Henderson <rth@redhat.com>
+
+ * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
+ add __builtin_alloca.
+
+2004-08-10 Richard Henderson <rth@redhat.com>
+
+ * config-lang.in (boot_language): Yes.
+
+2004-08-09 Thomas Quinot <quinot@act-europe.fr>
+
+ * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
+ from complaining on potential uninitialized reference.
+ Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
+ new specification and test explicitly for non-zero return value.
+
+ * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
+ returning C.int, to avoid using a derived boolean type.
+
+ * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
+ Duplicate_Subexpr_No_Checks in preference to direct use of
+ Remove_Side_Effects and New_Copy_Tree.
+ Clear Comes_From_Source on prefix of 'Size attribute reference.
+
+ * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
+ g-socthi-vxworks.adb: Change calls to
+ 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:
+ (Is_Socket_In_Set): Declare imported function as returning C.int, to
+ avoid using a derived boolean type.
+
+2004-08-09 Albert Lee <lee@gnat.com>
+
+ * system-irix-n32.ads: Refine tasking priority constants for IRIX.
+
+2004-08-09 Pascal Obry <obry@gnat.com>
+
+ * gnat_ugn.texi: Document new way to build DLLs on Windows using
+ GCC's -shared option.
+
+ * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
+ Options_2 parameter (options put after object files).
+
+2004-08-09 Olivier Hainque <hainque@act-europe.fr>
+
+ * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
+ ignore overflows on low and high bounds of an index to also account for
+ differences in signedness between sizetype and gnu_index_subtype.
+ These are as legitimate as the ones caused by a lower TYPE_PRECISION
+ on sizetype.
+
+2004-08-09 Robert Dewar <dewar@gnat.com>
+
+ * s-solita.ads, s-solita.adb: Minor reformatting
+
+ * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
+ Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
+ obsolescent section
+ Add note that No_Implicit_Conditionals does not suppress
+ run time constraint checks.
+
+ * vms_conv.ads: Minor reformatting
+
+ * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
+ and necessary for following change).
+ (Mark): Return new format Mark_Id containing sec stack address
+ (Release): Use sec stack address from Mark_Id avoiding Self call
+
+ * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
+ pointer (cleanup and necessary for following change).
+ Define Mark_Id as record containing address of secondary stack, that way
+ Release does not need to find the stack again, decreasing the number of
+ calls to Self and improving efficiency.
+
+ * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
+
+ * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
+ case variable into the individual case branches when possible.
+
+ * sem_ch11.adb: Minor reformatting
+
+ * prj.ads: Correct spelling of suffixs
+
+ * prj-nmsc.adb: Minor reformatting
+ Correct spelling suffixs throughout (also in identifiers)
+
+ * freeze.adb: Minor spelling correction
+
+ * exp_ch2.adb: Cleanups to handling of Current_Value
+ (no functional effect).
+
+ * bld.adb: Correct spelling of suffixs
+
+ * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
+
+2004-08-09 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15408
+
+ * sem_ch7.adb (Install_Private_Declarations): In the body of the
+ package or of a child, private entities are both immediately_visible
+ and not hidden.
+
+2004-08-09 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
+ there are no range checks on the value of the literal.
+
+ * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
+ wrapped is the triggering alternative of an asynchronous select, action
+ statements mustbe inserted before the select itself.
+
+ * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
+ case where the prefix is a protected function call.
+ (Resolve_Attribute, case 'Access): The attribute reference on a
+ subprogram is legal in a generic body if the subprogram is declared
+ elsewhere.
+
+2004-08-09 Vincent Celier <celier@gnat.com>
+
+ * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
+ languages, otherwise building the library may fail with unresolved
+ symbols.
+ (Compile_Sources): Do not build libraries if -c switch is used
+
+ * gnatlink.adb (Process_Args): New switches -M and -Mmap
+ (Write_Usage): If map file creation is supported, output new switches
+ -M and -Mmap.
+ (Gnatlink): When -M is specified, add the necessary switch(es) to the
+ gcc call, when supported.
+
+ * Makefile.in: Added indepsw.o to the object list for gnatlink
+ Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
+
+ * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
+ indepsw.adb, indepsw.ads: New files.
+
+2004-08-09 Bernard Banner <banner@gnat.com>
+
+ * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
+
+ * Makefile.in: add section for vxworks x86
+
+2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
+
+ * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
+ per-object constrained components where the discriminant is of an
+ Access type.
+ (Build_Record_Init_Proc): Add condition to prevent the inheritance of
+ the parent initialization procedure for derived Unchecked_Unions.
+ Instead, derived Unchecked_Unions build their own initialization
+ procedure.
+ (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
+ Check the body of the subprogram for details.
+ (Freeze_Record_Type): Prevent the inheritance of discriminant checking
+ functions for derived Unchecked_Union types by introducing a condition.
+ Allow the creation of TSS equality functions for Unchecked_Unions.
+ (Make_Eq_Case): Rename formal parameter Node to E in function signature.
+ Add formal parameter Discr to function signature. Discr is used to
+ control the generated case statement for Unchecked_Union types.
+ (Make_Eq_If): Rename formal parameter Node to E in function signature.
+
+ * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
+ Unchecked_Unions.
+ Check the body of the subprogram for details.
+ (Expand_Composite_Equality): Augment composite type equality to include
+ correct handling of Unchecked_Union components.
+ (Expand_N_In): Add condition to detect illegal membership tests when the
+ subtype mark is a constrained Unchecked_Union and the expression lacks
+ inferable discriminants, and build a Raise_Program_Error node.
+ (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
+ to detect types that contain components of unconstrained Unchecked_Union
+ subtype. Add condition to detect equality between types that have an
+ unconstrained Unchecked_Union component, and build a Raise_Program_Error
+ node. Add condition to detect equality between Unchecked_Union types
+ that lack inferable discriminants, and build a Raise_Program_Error node.
+ Otherwise build a TSS equality function call.
+ (Expand_N_Type_Conversion): Add condition to detect illegal conversions
+ from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
+ with the operand lacking inferable discriminants, and build a Raise_
+ Program_Error node.
+ (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
+ composite equality.
+ (Has_Inferable_Discriminants): Implement new predicate for objects and
+ expressions of Unchecked_Union type. Check the body of subprogram for
+ details.
+ (Has_Unconstrained_UU_Components): Add function
+ Component_Is_Unconstrained_UU. It is used to detect whether a single
+ component is of an unconstrained Unchecked_Union subtype. Add function
+ Variant_Is_Unconstrained_UU. It is used to detect whether a single
+ component inside a variant is of an unconstrained Unchecked_Union type.
+
+ * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
+ inferred discriminant values. Add condition to generate a case
+ statement with an inferred discriminant as the switch.
+ (Make_Component_List_Assign): Introduce a Boolean flag that determines
+ the behaviour of the subprogram in the presence of an Unchecked_Union.
+ Add condition to trigger the usage of the inferred discriminant value
+ as the generated case statement switch.
+ (Make_Field_Assign): Introduce a Boolean flag that determines the
+ behaviour of the subprogram in the presence of an Unchecked_Union. Add
+ condition to trigger the usage of the inferred discriminant value as
+ the right-hand side of the generated assignment.
+
+ * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
+ parameter generation when dealing with Unchecked_Unions.
+
+ * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
+ checks for Unchecked_Unions.
+
+ * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
+
+ * exp_attr.adb (Expand_N_Attribute_Reference): Produce
+ Raise_Program_Error nodes for the execution of Read and Write
+ attributes of Unchecked_Union types and the execution of Input and
+ Output attributes of Unchecked_Union types that lack default
+ discriminant values.
+
+ * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
+ Unchecked_Union. Add procedure Check_Component. It is used to inspect
+ per-object constrained components of Unchecked_Unions for being
+ Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
+ check individual components withing a variant.
+
+ * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
+ comparison of Unchecked_Unions.
+ (Resolve_Equality_OP): Remove guard that prevents equality between
+ Unchecked_Unions.
+
+ * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
+ of component subtypes for Unchecked_Union components.
+ (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
+ since it is the actual subtype.
+
+ * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
+ pass of Unchecked_Union subtypes as generic actuals to formal types
+ that lack known_discriminant_parts or that are derived Unchecked_Union
+ types, and do nothing. In any other case, produce an error message.
+
+ * sem_ch3.adb (Analyze_Component_Declaration): Add function
+ Contains_POC. It determines whether a constraint uses the discriminant
+ of an enclosing record type.
+ Add condition to detect per-object constrained component and set the
+ appropriate flag.
+ (Derived_Type_Declaration): Remove guard that prevents derivation from
+ Unchecked_Union types.
+ (Process_Subtype): Remove quard that prevents the creation of Unchecked_
+ Union subtypes.
+
+ * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
+ references to Unchecked_Union discriminants.
+
+ * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
+ formal generation when dealing with Unchecked_Unions.
+ (Set_Actual_Subtypes): Add condition to prevent generation of actual
+ subtypes for Unchecked_Unions.
+
+ * sem_ch7.adb (Analyze_Package_Specification): Add procedure
+ Inspect_Unchecked_Union_Completion. It is used to detect incorrect
+ completions of discriminated partial views by Unchecked_Unions and
+ produce an error message.
+
+2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * trans.c (struct stmt_group): New field, GLOBAL.
+ (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
+ (struct elab_info): New struct.
+ (elab_info_list, gnu_elab_proc_stack): New variables.
+ (Compilation_Unit_to_gnu): New procedure.
+ (gigi): Call it and also handle elaboration procs we've saved.
+ (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
+ global field from parent.
+ (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
+ (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
+ (start_stmt_group): Initialize global field from parent.
+ (add_decl_expr): Set to global for current statement group.
+ (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
+ post.
+
+ * utils.c (global_bindings_p): True when no current_function_decl; no
+ longer check current_binding_level.
+
+2004-08-09 Ben Brosgol <brosgol@gnat.com>
+
+ * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
+ choice.
+
+ * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
+
+2004-08-06 Andreas Schwab <schwab@suse.de>
+
+ * utils.c (gnat_define_builtin): Remove second parameter of
+ make_decl_rtl.
+ (begin_subprog_body): Likewise.
+
+2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
+
+ * sem_util.adb (Requires_Transient_Scope): Temporarily disable
+ optimization, not supported by the tree-ssa back-end.
+
+2004-07-26 Olivier Hainque <hainque@act-europe.fr>
+
+ * s-mastop-irix.adb: Update comments.
+
+ * a-except.adb (Exception_Information): Raise Constraint_Error if
+ exception Id is Null_Id.
+ This is required behavior, which is more reliably and clearly checked
+ at the top level interface level.
+
+2004-07-26 Javier Miranda <miranda@gnat.com>
+
+ * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
+ call if a component has no default_expression and the box is used.
+
+ * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
+ default_expression and you use box, it behaves as if you had declared a
+ stand-alone object.
+ (Resolve_Record_Aggregate): If a component has no default_expression and
+ you use box, it behaves as if you had declared a stand-alone object.
+
+ * sem_ch10.adb (Install_Siblings): Do not make visible the private
+ entities of private-with siblings.
+
+2004-07-26 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
+ for a component of an itype, set the parent pointer for analysis,
+ there is no list in which to insert it.
+
+ * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
+ bona-fide renamings, not for inherited operations.
+
+ * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
+ actual for a formal that is an access parameter, create local
+ finalization list even if the expression is not an aggregate.
+
+2004-07-26 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/16213
+ * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
+ Diagnose properly illegal subprogram renamings that are library units.
+
+2004-07-26 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15588
+ * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
+ conversion rewritten as an unchecked conversion, check that original
+ expression is a variable.
+
+ * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
+ unchecked_conversion, create new node rather than rewriting in place,
+ to preserve original construct.
+
+2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * gigi.h (gnat_expand_body): Deleted.
+
+ * Make-lang.in: (trans.o): Depends on function.h.
+
+ * misc.c: (gnat_expand_body): Moved to here.
+
+ * trans.c (gnat_expand_body_1): Deleted.
+ (gnat_expand_body): Moved from here.
+ (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
+ (add_stmt): Check for marked visited with global_bindings_p.
+ (gnat_gimplify_expr, case COMPONENT_REF): New case.
+ (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
+
+ * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
+ VIEW_CONVERT_EXPR if not operation type.
+
+ * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
+ fat pointer.
+
+ * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
+ changes: reformatting of negation operators, removing unneeded
+ inequality comparison with zero, converting equality comparisons with
+ zero to negations, changing int/0/1 to bool/false/true, replace calls
+ to gigi_abort with abort, and various other similar changes.
+
+2004-07-26 Vincent Celier <celier@gnat.com>
+
+ * gnatcmd.adb (GNATCmd): Add processing for new built-in command
+ "setup".
+
+ * make.adb (Gnatmake): Fail when a library is not present and there is
+ no object directory.
+
+ * mlib-prj.adb (Check_Library): No need to check if the library needs
+ to be rebuilt if there is no object directory, hence no object files
+ to build the library.
+
+ * opt.ads (Setup_Projects): New Boolean flag.
+
+ * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
+ Location.
+ Create directory when Kind /= "" and in "gnat setup". Report error if
+ directory cannot be created.
+ (Ada_Check): Create library interface copy dir if it does not exist
+ and we are in "gnat setup".
+ (Find_Sources): No error if in "gnat setup" and no Ada sources were
+ found.
+ (Language_Independent_Check): Create object directory, exec directory
+ and/or library directory if they do not exist and we are in
+ "gnat setup".
+
+ * vms_conv.ads: (Command_Type): New command Setup.
+
+ * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
+
+ * vms_data.ads: Add qualifiers/switches for new built-in command
+ "setup".
+
+2004-07-25 Richard Henderson <rth@redhat.com>
+
+ * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
+ DECL_IGNORED_P on RESULT_DECL.
+
+2004-07-20 Olivier Hainque <hainque@act-europe.fr>
+
+ * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
+ allocation and potentially overflowing update with
+ Tailored_Exception_Information. Use the sec-stack free procedural
+ interface to output Exception_Information instead.
+
+ * a-except.adb (To_Stderr): New subprogram for character, and string
+ version moved from a-exextr to be visible from other separate units.
+ (Tailored_Exception_Information): Remove the procedural version,
+ previously used by the default Last_Chance_Handler and not any more.
+ Adjust various comments.
+
+ * a-exexda.adb: Generalize the exception information procedural
+ interface, to minimize the use of secondary stack and the need for
+ local buffers when the info is to be output to stderr:
+ (Address_Image): Removed.
+ (Append_Info_Character): New subprogram, checking for overflows and
+ outputing to stderr if buffer to fill is of length 0.
+ (Append_Info_String): Output to stderr if buffer to fill is of length 0.
+ (Append_Info_Address, Append_Info_Exception_Name,
+ Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
+ Append_Info_Basic_Exception_Traceback,
+ Append_Info_Exception_Information): New subprograms.
+ (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
+ (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
+ Exception_Info_Maxlength, Exception_Name_Length,
+ Exception_Message_Length): New subprograms.
+ (Exception_Information): Use Append_Info_Exception_Information.
+ (Tailored_Exception_Information): Use
+ Append_Info_Basic_Exception_Information.
+ Export services for the default Last_Chance_Handler.
+
+ * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
+ other separate units.
+
+2004-07-20 Vincent Celier <celier@gnat.com>
+
+ * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
+
+2004-07-20 Ed Schonberg <schonberg@gnat.com>
+
+ * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
+ emit itype references for the designated types of component types that
+ are declared outside of the full record declaration, and that may
+ denote a partial view of that record type.
+
+2004-07-20 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15607
+ * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
+ which is the designated type in an access component declaration, to the
+ list of incomplete dependents of the parent type, to avoid elaboration
+ issues with out-of-scope subtypes.
+ (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
+ full view of the parent.
+
+2004-07-20 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15610
+ * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
+ entities that are hidden, such as references to generic actuals
+ outside an instance.
+
+2004-07-20 Javier Miranda <miranda@gnat.com>
+
+ * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
+ support to the new notation.
+ (Analyze_Selected_Component): Add call to Try_Object_Operation.
+
+2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
+
+ * s-taprob.adb: Adding the elaboration code required for initializing
+ the tasking soft links that are common to the full and the restricted
+ run times.
+
+ * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
+ restricted run time has been moved to the package
+ System.Soft_Links.Tasking.
+
+ * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
+ restricted run time has been moved to the package
+ System.Soft_Links.Tasking.
+
+ * Makefile.rtl: Add entry for s-solita.o in run-time library list.
+
+ * s-solita.ads, s-solita.adb: New files.
+
+2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
+ Case_Statement_to_gnu): Split off from gnat_to_gnu.
+ (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
+ Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
+ Exception_Handler_to_gnu_zcx): Likewise.
+
+2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gigi.h (builtin_function): Declare.
+
+2004-07-15 Robert Dewar <dewar@gnat.com>
+
+ * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
+ reformatting
+
+ * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
+ access values as an example of a warning.
+
+ * gnat_rm.texi: Document new attribute Has_Access_Values
+
+ * gnat-style.texi: Document that box comments belong on nested
+ subprograms
+
+ * sem_util.ads (Has_Access_Values): Improved documentation
+
+ * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
+
+ * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
+ (Process_Interface_Name): Call to this new procedure
+ (Set_Extended_Import_Export_External_Name): Call to this new procedure
+
+ * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
+
+ * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
+
+ * einfo.ads: Minor comment typo fixed
+
+2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
+
+ * snames.adb: Add _atcb.
+
+ * snames.ads: Add Name_uATCB.
+
+ * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
+ (in the expanded code) when using the restricted run time.
+
+ * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
+ a in parameter in order to allow ATCBs to be preallocated (in the
+ expanded code).
+
+ * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
+ order to allow ATCBs to be preallocated. In case of error, the ATCB is
+ deallocated in System.Tasking.Stages.
+
+ * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
+ order to allow ATCBs to be preallocated.
+
+ * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
+ here. It was previously done in Initialize_ATCB.
+
+ * rtsfind.ads: Make the Ada_Task_Control_Block visible.
+
+ * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
+ Restricted run time.
+
+ * exp_ch3.adb: When using the Restricted run time, pass the
+ preallocated Ada_Task_Control_Block when creating a task.
+
+2004-07-15 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_util.adb (Normalize_Actuals): If there are no actuals on a
+ function call that is itself an actual in an enclosing call, diagnose
+ problem here rather than assuming that resolution will catch it.
+
+ * sem_ch7.adb (Analyze_Package_Specification): If the specification is
+ the local copy of a generic unit for a formal package, and the generic
+ is a child unit, install private part of ancestors before compiling
+ private part of spec.
+
+ * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
+ use scope entities rather than tree structures, to handle properly
+ parent units that are instances rewritten as bodies for inlining
+ purposes.
+
+ * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
+ Remove_Parents): Handle properly a parent unit that is an
+ instantiation, when the unit has been rewritten as a body for inlining
+ purposes.
+
+ * par.adb (Goto_List): Global variable to collect goto statements in a
+ given unit, for use in detecting natural loops.
+
+ * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
+ use in detecting natural loops.
+
+ * par-labl.adb (Find_Natural_Loops): Recognize loops create by
+ backwards goto's, and rewrite as a infinite loop, to improve locality
+ of temporaries.
+
+ * exp_util.adb (Force_Evaluation): Recognize a left-hand side
+ subcomponent that includes an indexed reference, to prevent the
+ generation of copies that would miscompile the desired assignment
+ statement.
+ (Build_Task_Image_Decls): Add a numeric suffix to
+ generated name for string variable, to avoid spurious conflicts with
+ the name of the type of a single protected object.
+
+ * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
+ loop with an explicit exit statement, to avoid generating an
+ out-of-range value with 'Succ leading to spurious constraint_errors
+ when compiling with -gnatVo.
+
+2004-07-15 Thomas Quinot <quinot@act-europe.fr>
+
+ * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
+ might not be analyzed yet, even if its Etype is already set (case of an
+ unchecked conversion built using Unchecked_Convert_To, for example).
+ If the prefix has already been analyzed, this will be a nop anyway.
+
+ * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
+ controller type, or an assignment of a record type with controlled
+ components, copy only user data, and leave the finalization chain
+ pointers untouched.
+
+2004-07-15 Vincent Celier <celier@gnat.com>
+
+ * make.adb (Collect_Arguments): Improve error message when attempting
+ to compile a source not part of any project, when -x is not used.
+
+ * prj.ads: (Defined_Variable_Kind): New subtype
+
+ * prj-attr.adb (Register_New_Package): Two new procedures to register
+ a package with or without its attributes.
+ (Register_New_Attribute): Mew procedure to register a new attribute in a
+ package.
+ New attribute oriented subprograms: Attribute_Node_Id_Of,
+ Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
+ Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
+ Next_Attribute.
+ New package oriented subprograms: Package_Node_Id_Of,
+ Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
+
+ * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
+ type.
+ (Package_Node_Id): Now a private, self initialized type
+ (Register_New_Package): New procedure to register a package with its
+ attributes.
+ New attribute oriented subprograms: Attribute_Node_Id_Of,
+ Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
+ Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
+ Next_Attribute.
+ New package oriented subprograms: Package_Node_Id_Of,
+ Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
+
+ * prj-dect.adb (Parse_Attribute_Declaration,
+ Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
+
+ * prj-makr.adb (Make): Parse existing project file before creating
+ other files. Fail if there was an error during parsing.
+
+ * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
+ new spec of Prj.Attr.
+
+ * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
+ to new spec of Prj.Attr.
+
+2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * utils2.c: Fix typo in comment.
+
+2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
+ * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
+
+2004-07-14 Andreas Schwab <schwab@suse.de>
+
+ * trans.c (gnat_init_stmt_group): Remove duplicate definition.
+
+2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
+ object type.
+ (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
+ TYPE_STUB_DECL.
+
+ * misc.c (gnat_types_compatible_p): New function.
+ (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
+ (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
+
+ * trans.c (gigi): Move processing of main N_Compilation_Unit here.
+ (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
+ 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, case N_Identifier): Don't reference DECL_INITIAL of
+ PARM_DECL.
+
+ * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
+ (gnat_pushlevel): Set TREE_USE on BLOCK node.
+ (gnat_install_builtins): Add __builtin_memset.
+
+2004-07-13 Olivier Hainque <hainque@act-europe.fr>
+
+ * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
+ for a renaming, stabilize the initialization expression if we are at a
+ local level. At the local level, uses of the renaming may be performed
+ by a direct dereference of the initializing expression, and we don't
+ want possible variables there to be evaluated for every use.
+
+ * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
+ Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
+ them on the way. Account for the fact that we may introduce side
+ effects in the process.
+
+2004-07-13 Richard Henderson <rth@redhat.com>
+
+ * misc.c (default_pass_by_ref): Use pass_by_reference.
+
+2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
+ LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
+
+2004-07-08 Richard Henderson <rth@redhat.com>
+
+ * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
+ commentary.
+
+2004-07-06 Vincent Celier <celier@gnat.com>
+
+ * vms_conv.ads: Minor reformatting.
+ Alphabetical order for enumerated values of type Command_Type, to have
+ the command in alphabetical order for the usage.
+
+ * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
+ the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
+
+ * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
+
+ * makegpr.adb (Global_Archive_Exists): New global Boolean variable
+ (Add_Archive_Path): Only add the global archive if there is one.
+ (Build_Global_Archive): Set Global_Archive_Exists depending if there is
+ or not any object file to put in the global archive, and don't build
+ a global archive if there is none.
+ (X_Switches): New table
+ (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
+ in the X_Switches table, if any.
+ (Initialize): Make sure the X_Switches table is empty
+ (Scan_Arg): Record -X switches in table X_Switches
+
+ * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
+
+ * make.adb: Minor comment fix
+
+ * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
+ invoked with directory information, add the directory in front of the
+ path.
+
+ * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
+ invoked with directory information, add the directory in front of the
+ path.
+
+ * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
+ when Keep_Temporary_Files is False.
+ (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
+ directory information, add the directory in front of the path.
+ When not on VMS, handle new switch -dn before the command to set
+ Keep_Temporary_Files to True.
+ (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
+ everywhere.
+
+ * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
+ invoked with directory information, add the directory in front of the
+ path.
+
+2004-07-06 Thomas Quinot <quinot@act-europe.fr>
+
+ * snames.ads, snames.adb (Name_Stub): New name for the distributed
+ systems annex.
+
+ * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
+ New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
+
+ * g-socket.adb (To_Timeval): Fix incorrect conversion of
+ Selector_Duration to Timeval for the case of 0.0.
+
+ * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
+ documentation from Evolve_And_Then.
+
+2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
+
+ * s-taprop-tru64.adb, s-taprop-os2.adb,
+ s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
+
+2004-07-06 Robert Dewar <dewar@gnat.com>
+
+ * s-osinte-hpux.ads, s-osinte-freebsd.ads,
+ s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
+ s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
+ s-interr-sigaction.adb, s-taprop-irix-athread.adb,
+ s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
+ s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
+ s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
+ s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
+ a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
+ a-tags.ads, bindgen.ads, checks.adb, checks.adb,
+ csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
+ exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
+ g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
+ i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
+ sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
+ sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
+ sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
+ s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
+ s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
+ s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
+ vms_data.ads: Minor reformatting,
+ Fix bad box comment format.
+
+ * gnat_rm.texi: Fix minor grammatical error
+
+ * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
+
+ * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
+ more cases of discriminated records to be recognized as not needing a
+ secondary stack.
+ (Has_Access_Values): New function.
+
+ * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
+
+ * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
+ Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
+ with LRM terminology).
+ Change terminology in comments primitive type => elementary type.
+
+2004-07-06 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15602
+ * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
+ parameters do not impose any requirements on the presence of a body.
+
+2004-07-06 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15593
+ * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
+ compilation unit and is in an open scope at the point of instantiation,
+ assume that a body may be present later.
+
+2004-07-06 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
+ Improve error message when specified size is not supported.
+
+ * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
+ is never a primitive operation.
+
+2004-07-05 Andreas Schwab <schwab@suse.de>
+
+ * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
+ RECORD_OR_UNION_CHECK.
+ (TYPE_CONTAINS_TEMPLATE_P): Likewise.
+
+2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
+ dependency on xgnatugn, instead build it via a submake.
+ (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
+
+2004-07-04 Richard Henderson <rth@redhat.com>
+
+ * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
+
+2004-07-01 Richard Henderson <rth@redhat.com>
+
+ * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
+ * utils.c (max_size): Likewise.
+
+2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
+ and rest_of_type_compilation; add arg to create_*_decl.
+ (annotate_decl_with_node): Deleted.
+ (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
+ * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
+ (get_current_block_context, gnat_pushdecl): New declarations.
+ (gnat_init_stmt_group): Likewise.
+ (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
+ * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
+ (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
+ (gnat_init): Call gnat_init_stmt_group.
+ * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
+ (gnu_pending_elaboration_list): Deleted.
+ (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
+ (gigi): Rearrange initialization calls and move some to last above.
+ (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
+ 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.
+ (add_stmt): Remove handling of DECL_EXPR from here.
+ If not in function, mark visited.
+ (add_decl_expr): Put global at top level.
+ Check for cases of DECL_INITIAL we have to handle here.
+ (process_type): Add extra arg to create_type_decl.
+ (build_unit_elab): Rework to just gimplify.
+ * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
+ (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
+ (get_pending_elaborations, pending_elaborations_p): Likewise.
+ (push_pending_elaborations, pop_pending_elaborations): Likewise.
+ (get_elaboration_location, insert_elaboration_list): Likewise.
+ (gnat_binding_level): Renamed from ada_binding_level.
+ (init_gnat_to_gnu): Don't clear pending_elaborations.
+ (global_bindings_p): Treat as global if no current_binding_level.
+ (set_current_block_context): New function.
+ (gnat_pushdecl): Renamed from pushdecl; major rework.
+ All callers changed.
+ (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
+ (finish_record_type): Call call pushdecl for stub decl.
+ (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,
+ mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
+ mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
+ mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
+ a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
+
+ * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
+ deal with problem of inefficient slices on machines with strict
+ alignment, when the slice is a component of a composite.
+
+ * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
+ machines, we need the check there as well.
+
+2004-06-28 Ed Schonberg <schonberg@gnat.com>
+
+ * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
+ determine safe copying direction for overlapping slice assignments
+ when component is controlled.
+
+ * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
+ formal derived type in the actual for a formal package are visible in
+ the enclosing instance.
+
+2004-06-28 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15600
+ * sem_util.adb (Trace_Components): Diagnose properly an illegal
+ circularity involving a private type whose completion includes a
+ self-referential component.
+ (Enter_Name): Use Is_Inherited_Operation to distinguish a source
+ renaming or an instantiation from an implicit derived operation.
+
+2004-06-28 Pascal Obry <obry@gnat.com>
+
+ * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
+ DLL.
+ (Library_File_Name_For): Idem.
+
+2004-06-28 Matthew Gingell <gingell@gnat.com>
+
+ * g-traceb.ads: Add explanatory note on the format of addresses
+ expected by addr2line.
+
+2004-06-28 Jerome Guitton <guitton@act-europe.fr>
+
+ * Makefile.in: Force debugging information on s-tasdeb.adb,
+ a-except.adb and s-assert.adb needed by the debugger.
+
+2004-06-28 Vincent Celier <celier@gnat.com>
+
+ * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
+ Need_To_Build_Lib.
+ (Gnatmake): Ditto.
+
+ * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
+
+ * prj.adb: Minor reformatting
+ (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
+
+ * prj.ads: Comment updates
+ Minor reformatting
+ (Project_Data): Change Flag1 to Need_To_Build_Lib.
+ Remove Flag2: not used.
+
+ * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
+ declaration.
+
+ * gnat_ugn.texi: Put a "null;" declaration in one project file example
+
+ * gnat_rm.texi: Document Empty declarations "null;".
+
+ * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
+ front of the linker options.
+ (Link_Foreign): Put the global archives and the libraries in front of
+ the linker options.
+
+2004-06-28 Javier Miranda <miranda@gnat.com>
+
+ * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
+ (RTU_Loaded): Code cleanup
+ (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
+ withed predefined units.
+
+ * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
+ explicitly withed predefined units.
+ Fix typo in comment
+
+ * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
+ explicitly withed predefined units.
+
+2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * ada-tree.def (DECL_STMT): Deleted.
+ * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
+ (DECL_STMT_VAR): Deleted.
+ * decl.c: add_decl_stmt now add_decl_expr.
+ * gigi.h: Likewise.
+ * trans.c: Likewise.
+ (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
+ (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
+ (add_stmt): Only handle padded type here.
+ (add_stmt_with_node): Allow gnat_node to not be present.
+ (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
+ (gnat_gimplify_stmt, case DECL_STMT): Deleted.
+ (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
+ make a SAVE_EXPR for the entire fat pointer.
+ * utils.c (pushdecl): Walk a DECL_EXPR in global case.
+ (create_index_type): Make a DECL_EXPR.
+ (end_subprog_body): Don't call allocate_struct_function here but
+ do clear cfun.
+
+2004-06-25 Pascal Obry <obry@gnat.com>
+
+ * makegpr.adb (Build_Library): Remove parameter Lib_Address and
+ Relocatable from Build_Dynamic_Library call.
+
+ * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
+ Relocatable are now synonym.
+
+ * Makefile.in: Use s-parame-mingw.adb on MingW platform.
+
+ * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
+ Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
+ call.
+
+ * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
+ 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-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.
+
+ * mlib-tgt-mingw.adb: Ditto.
+ (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
+
+ * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
+ the initial thread stack size.
+
+ * a-strmap.ads: Move package L to private part as it is not used in
+ the spec. Found while reading code.
+
+2004-06-25 Olivier Hainque <hainque@act-europe.fr>
+
+ * tracebak.c: Introduce support for a GCC infrastructure based
+ implementation of __gnat_backtrace.
+
+ * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
+ any more. Use accessors instead. This eases maintenance and relaxes
+ some alignment constraints.
+ (_GNAT_Exception structure): Remove the Ada specific fields
+ (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
+ a-exexpr.adb.
+ (is_handled_by, __gnat_eh_personality): Replace component references to
+ exception structure by use of the new accessors.
+
+ * init.c (__gnat_initialize): Adjust comments to match the just
+ reverted meaning of the -static link-time option.
+
+ * adaint.c (convert_addresses): Arrange not to define a stub for
+ mips-irix any more, as we now want to rely on a real version from a
+ recent libaddr2line.
+
+ * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
+ the personality routine can use them and not have to rely on a C
+ counterpart of the record anymore. This simplifies maintenance and
+ relaxes the constraint of having Standard'Maximum_Alignment match
+ BIGGEST_ALIGNMENT.
+ Update comments, and add a section on the common header alignment issue.
+
+2004-06-25 Geert Bosch <bosch@gnat.com>
+
+ * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
+ polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
+
+2004-06-25 Robert Dewar <dewar@gnat.com>
+
+ * gnat_rm.texi: Fix section on component clauses to indicate that the
+ restriction on byte boundary placement still applies for bit packed
+ arrays.
+ Add comment on stack usage from Initialize_Scalars
+
+ * gnat_ugn.texi: Add documentation for -gnatyLnnn
+
+ * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
+ limiting nesting level.
+
+ * usage.adb: Add line for -gnatyLnnn switch
+
+ * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
+ sem_ch13.adb, exp_aggr.adb: Minor reformatting
+
+ * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
+ type as well as on the subtype. This corrects a problem in freeze in
+ setting alignments of atomic types.
+
+ * sem_eval.ads: Minor comment typo fixed
+
+ * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
+ level. Minor reformatting.
+
+ * fname.adb (Is_Predefined_File_Name): Require a letter after the
+ minus sign. This means that file names like a--b.adb will not be
+ considered predefined.
+
+ * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
+ record Test new flag and give diagnostic for bad component clause.
+ (Freeze_Entity): Set alignment of array from component alignment in
+ cases where this is safe to do.
+
+ * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
+ arrays.
+
+ * cstand.adb: (Create_Standard): Set alignment of String to 1
+
+ * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
+
+ * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
+ code in the common constrained array cases.
+
+ * a-storio.adb: Change implementation to avoid possible alignment
+ problems on machines requiring strict alignment (data should be moved
+ as type Buffer, not type Elmt).
+
+ * checks.adb (Apply_Array_Size_Check): Improve these checks by
+ killing the overflow checks which we really do not need (64-bits is
+ enough).
+
+2004-06-25 Vincent Celier <celier@gnat.com>
+
+ * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
+ (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
+ inconditionally for the main project.
+ (Recursive_Add_Archives.Add_Archive_Path): New procedure
+ (Link_Executables.Check_Time_Stamps): New procedure
+ (Link_Executables.Link_Foreign): New procedure
+ Changes made to reduce nesting level of this package
+ (Check): New procedure
+ (Add_Switches): When not in quiet output, check that a switch is not
+ the concatenation of several valid switches. If it is, issue a warning.
+ (Build_Global_Archive): If the global archive is rebuilt, linking need
+ to be done.
+ (Compile_Sources): Rebuilding a library archive does not imply
+ rebuilding the global archive.
+ (Build_Global_Archive): New procedure
+ (Build_Library): New name for Build_Archive, now only for library
+ project
+ (Check_Archive_Builder): New procedure
+ (Create_Global_Archive_Dependency_File): New procedure
+ (Gprmake): Call Build_Global_Archive before linking
+ * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
+ throughout.
+ (Scan_Arg): Display the Copyright notice when -v is used
+
+ * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
+ for gnatls.
+
+ * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
+ COMPILE.
+ Add new GNAT LIST qualifier /FILES=
+ Added qualifier /DIRECTORY= to GNAT METRIC
+ Added qualifier /FILES= to GNAT METRIC
+ Added qualifier /FILES to GNAT PRETTY
+
+ * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
+ to take into account both versions of the switch.
+
+ * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
+ always be the last switch to the gcc driver. Disable switch storing so
+ that switches automatically added by the gcc driver are not put in the
+ ALI file.
+
+ * prj.adb (Project_Empty): Take into account changes in components of
+ Project_Data.
+
+ * prj.ads (Languages_Processed): New enumaration value All_Languages.
+
+ * prj.ads (Project_Data): Remove component Lib_Elaboration: never
+ used. Split Boolean component Ada_Sources_Present in two Boolean
+ components Ada_Sources_Present and Other_Sources_Present.
+ Minor reformatting
+
+ * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
+ instead of Sources_Present.
+ (Set_Ada_Paths.Add.Recursive_Add): Ditto
+
+ * prj-nmsc.adb: Minor reformatting
+ (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
+ (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
+ Check_Ada_Naming_Scheme.
+ Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
+ throughout.
+
+ * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
+ In_Limited.
+ Make sure that all cycles where there is at least one "limited with"
+ are detected.
+ (Parse_Single_Project): New Boolean parameter In_Limited
+
+ * prj-proc.adb (Recursive_Check): When Process_Languages is
+ All_Languages, call first Prj.Nmsc.Ada_Check, then
+ Prj.Nmsc.Other_Languages_Check.
+
+ * prj-proc.adb (Process): Use Ada_Sources_Present or
+ Other_Sources_Present (instead of Sources_Present) depending on
+ Process_Languages.
+
+ * lang-specs.h: Keep -g and -m switches in the same order, and as the
+ last switches.
+
+ * lib.adb (Switch_Storing_Enabled): New global Boolean flag
+ (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
+ False.
+ (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
+ False.
+
+ * lib.ads (Disable_Switch_Storing): New procedure.
+
+ * make.adb: Modifications to reduce nesting level of this package.
+ (Check_Standard_Library): New procedure
+ (Gnatmake.Check_Mains): New procedure
+ (Gnatmake.Create_Binder_Mapping_File): New procedure
+ (Compile_Sources.Compile): Add switch -gnatez as the last option
+ (Display): Never display -gnatez
+
+ * Makefile.generic:
+ When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
+
+ * gnatcmd.adb (Check_Project): New function
+ (Process_Link): New procedure to reduce nesting depth
+ (Check_Files): New procedure to reduce the nesting depth.
+ For GNAT METRIC, include the inherited sources in extending projects.
+ (GNATCmd): When GNAT LS is invoked with a project file and no files,
+ add the list of files from the sources of the project file. If this list
+ is too long, put it in a temp text files and use switch -files=
+ (Delete_Temp_Config_Files): Delete the temp text file that contains
+ a list of source for gnatpp or gnatmetric, if one has been created.
+ (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
+ in the project file is too large, create a temporary text file that
+ list them and pass it to the tool with "-files=<temp text file>".
+ (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
+
+ * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
+ generated file is in not in Ada.
+
+ * gnatls.adb: Remove all parameters And_Save that are no longer used.
+ (Scan_Ls_Arg): Add processing for -files=
+ (Usage): Add line for -files=
+
+ * g-os_lib.adb (On_Windows): New global constant Boolean flag
+ (Normalize_Pathname): When on Windows and the path starts with a
+ directory separator, make sure that the resulting path will start with
+ a drive letter.
+
+ * clean.adb (Clean_Archive): New procedure
+ (Clean_Project): When there is non-Ada code, delete the global archive,
+ the archive dependency files, the object files and their dependency
+ files, if they exist.
+ (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
+
+2004-06-25 Thomas Quinot <quinot@act-europe.fr>
+
+ * sinfo.ads: Fix typo in comment.
+
+ * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
+ the TSS for remote access-to-subprogram types, since these TSS are
+ always present once the type has been analyzed.
+ (RAS_E_Dereference): Same.
+
+ * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
+ reference raises Bad_Attribute, mark the reference as analyzed so the
+ node (and any children resulting from rewrites that could have occurred
+ during the analysis that ultimately failed) is not analyzed again.
+
+ * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
+
+ * exp_dist.adb: Minor comment fix.
+
+ * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
+ type is an anonymous access type, no unchecked deallocation of the
+ allocated object can occur. If the object is controlled, attach it with
+ a count of 1. This allows attachment to the Global_Final_List, if
+ no other relevant list is available.
+ (Get_Allocator_Final_List): For an anonymous access type that is
+ the type of a discriminant or record component, the corresponding
+ finalisation list is the one of the scope of the type.
+
+2004-06-25 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_ch3.adb (Replace_Type): When computing the signature of an
+ inherited subprogram, use the first subtype if the derived type
+ declaration has no constraint.
+
+ * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
+ before applying previous optimization. Minor code cleanup.
+
+ * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
+ placed at the beginning of an unpacked record without explicit
+ alignment, a slice of it will be aligned and does not need a copy when
+ used as an actual.
+
+2004-06-25 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15591
+ PR ada/15592
+ * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
+ reference is written with expressions mimicking parameters.
+
+2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
+
+ PR ada/15589
+ * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
+ STEP 2a. The constraints of a full type declaration of a derived record
+ type are checked for conformance with those declared in the
+ corresponding private extension declaration. The message
+ "not conformant with previous declaration" is emitted if an error is
+ detected.
+
+2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
+
+ * g-traceb.ads: Document the need for -E binder switch in the spec.
+
+ * g-trasym.ads: Document the need for -E binder switch in the spec.
+
+2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
+
+ * sem_prag.adb: Add handling of pragma Detect_Blocking.
+
+ * snames.h, snames.ads, snames.adb: Add entry for pragma
+ Detect_Blocking.
+
+ * s-rident.ads: Change reference to pragma Detect_Blocking.
+
+ * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
+ system.ads.
+
+ * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
+ to indicate whether pragma Detect_Blocking is active.
+
+ * par-prag.adb: Add entry for pragma Detect_Blocking.
+
+ * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
+ of not handling WITH.
+ Note that this replaces the previous update which was incorrect.
+
+2004-06-25 Javier Miranda <miranda@gnat.com>
+
+ * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
+ use-clauses to have a clean environment.
+
+ * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
+ the installation of the use-clauses to stablish a clean environment in
+ case of compilation of a separate unit; otherwise the call to
+ use_one_package is protected by the barrier Applicable_Use.
+
+ * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
+ the installation of the use-clauses to stablish a clean environment in
+ case of compilation of a separate unit.
+ (End_Use_Clauses): Minor comment cleanup.
+
+2004-06-25 Sergey Rybin <rybin@act-europe.fr>
+
+ * gnat_ugn.texi: Add description of the gnatpp 'files' switch
+
+2004-06-23 Richard Henderson <rth@redhat.com>
+
+ * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
+
+2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * decl.c (elaborate_expression, elaborate_expression_1): Arguments
+ now bool instead of int.
+ (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
+ * trans.c (gnu_switch_label_stack): New function.
+ (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
+ elaboration of renamed entity returns.
+ (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
+ (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
+ (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
+ (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
+ DECL_SIZE_UNIT and simplify variable-sized case.
+ (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
+ Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
+ (gnat_stabilize_reference): Add arg to COMPONENT_REF.
+ (build_unit_elab): Disable for now.
+ * utils.c (mark_visited): New function.
+ (pushdecl): Walk tree to call it for global decl.
+ (update_pointer_to): Update all variants of pointer and ref types.
+ Add arg to COMPONENT_REF.
+ (convert): Likewise.
+ Move check for converting between variants lower down.
+ * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
+ (build_allocator): Don't force type of MODIFY_EXPR.
+ (gnat_mark_addressable, case VAR_DECL): Unconditionally call
+ put_var_into_stack.
+
+2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
+ * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
+ * decl.c (gnat_to_gnu_entity): Also set force_global for imported
+ subprograms.
+ * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
+ all callers changed.
+ (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
+ the way that EXIT_STMT finds the loop label.
+ (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
+ (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
+ (add_stmt): Use annotate_with_locus insted of setting directly.
+ (pos_to_construct): Set TREE_PURPOSE of each entry to index.
+ (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
+ * utils.c (gnat_install_builtins): Install __builtin_memcmp.
+ (build_vms_descriptor): Add extra args to ARRAY_REF.
+ (convert): Use VIEW_CONVERT_EXPR between aggregate types.
+ * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
+ New cases.
+ (build_binary_op): Don't make explicit CONVERT_EXPR.
+ Add extra rgs to ARRAY_REF.
+
+2004-06-14 Pascal Obry <obry@gnat.com>
+
+ * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
+ Windows. Fix minor typo.
+
+ * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
+ which is now supported on Windows. With this implementation using the
+ Library Project feature is no different on Windows than on UNIX.
+
+2004-06-14 Vincent Celier <celier@gnat.com>
+
+ * makegpr.adb (Compile_Sources): Nothing to do when there are no
+ non-Ada sources.
+
+ * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
+
+ * prj-part.adb (Parse_Single_Project): When a duplicate project name is
+ found, show the project name and the path of the previously parsed
+ project file.
+
+2004-06-14 Ed Schonberg <schonberg@gnat.com>
+
+ * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
+ array, avoid copying the actual before the call.
+
+2004-06-14 Thomas Quinot <quinot@act-europe.fr>
+
+ * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
+ Instead, allocate memory on worst-case alignment assumptions, and then
+ return an aligned address within the allocated zone.
+
+2004-06-14 Robert Dewar <dewar@gnat.com>
+
+ * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
+ elab entities in predefined units in No_Run_Time_Mode.
+ (Gen_Adainit_C): Same fix
+ (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
+ units in No_Run_Time_Mode
+ (Gen_Elab_Calls_C): Same fix
+
+ * symbols-vms-alpha.adb: Minor reformatting
+
+ * g-debpoo.ads: Minor reformatting
+
+ * lib.adb (In_Same_Extended_Unit): Version working on node id's
+
+ * lib.ads (In_Same_Extended_Unit): Version working on node id's
+
+ * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
+ working on nodes.
+
+ * make.adb: Minor reformatting
+
+ * par-ch12.adb: Minor reformatting
+
+ * par-prag.adb: Add dummy entry for pragma Profile_Warnings
+
+ * prj-strt.adb: Minor reformatting
+
+ * restrict.ads, restrict.adb: Redo handling of profile restrictions to
+ be more general.
+
+ * sem_attr.adb: Minor reformatting
+
+ * sem_ch7.adb: Minor reformatting
+
+ * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
+ for type in the same unit as the object declaration.
+
+ * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
+ static string expressions and not just string literals.
+ Minor reformatting
+ (Set_Warning): Reset restriction warning flag for restriction pragma
+ Implement pragma Profile_Warnings
+ Implement pragma Profile (Restricted)
+ Give obolescent messages for old restrictions and pragmas
+
+ * snames.h, snames.ads, snames.adb: Add new entry for pragma
+ Profile_Warnings.
+
+ * s-rident.ads: Add declarations for restrictions required by profile
+ Restricted and profile Ravenscar.
+
+ * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
+
+ * gnat_ugn.texi: Correct some missing entries in the list of GNAT
+ configuration pragmas.
+
+2004-06-11 Vincent Celier <celier@gnat.com>
+
+ * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
+ gnatsym, when symbol policy is Restricted.
+
+ * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
+ gnatsym, when symbol policy is Restricted.
+
+ * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
+ read the symbol file.
+ (Finalize): Fail in symbol policy Restricted if a symbol in the original
+ symbol file is not in the object files. Do not create a new symbol file
+ when symbol policy is Restricted.
+
+ * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
+ in Scng.
+
+ * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
+ Restricted.
+ (Usage): Line for new switch -R
+
+ * make.adb (Initialize): When the platform is not VMS, add the
+ directory where gnatmake is invoked in the front of the path, if
+ gnatmake is invoked with directory information. Change the Scan_Args
+ while loop to a for loop.
+ (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
+ if Depth is equal or greater than the proposed depth, there is nothing
+ to do.
+ (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
+ instead of 0.
+
+ * prj.ads: Add new symbol policy Restricted.
+
+ * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
+ with the new parameters Check_All_Labels and Case_Location.
+
+ * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
+ (Library_Symbol_File needs to be defined).
+
+ * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
+ and Case_Location If Check_All_Labels is True, check that all values of
+ the string type are used, and output warning(s) if they are not.
+
+ * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
+ and Case_Location.
+
+ * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
+
+ * gnat_ugn.texi: Update documentation about the library directory in
+ Library Projects.
+
+ * makegpr.adb (Display_Command): In verbose mode, also display the
+ value of the CPATH env var, when the compiler is gcc.
+ (Initialize): Change the Scan_Args while loop to a for loop
+ (Compile_Individual_Sources): Change directory to object directory
+ before compilations.
+
+ * symbols.ads: New symbol policy Restricted.
+
+2004-06-11 Olivier Hainque <hainque@act-europe.fr>
+
+ * a-except.adb (Raise_After_Setup family): Remove. The responsibility
+ is now taken care of internally in the Exception_Propagation package
+ and does not require clients assistance any more.
+
+ * a-exexpr.adb (Is_Setup_And_Not_Propagated,
+ Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
+ functions. Helpers to maintain a predicate required in the handling of
+ occurrence transfer between tasks.
+ This is now handled internally and does not require clients assistance
+ for the setup/propagate separation anymore.
+ (Setup_Exception, Propagate_Exception): Simplify the Private_Data
+ allocation strategy, handle the Setup_And_Not_Propagated predicate and
+ document.
+
+ * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
+ raise_after_setup, now that everything is handled internally within the
+ setup/propagation engine.
+
+2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
+
+ * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
+ Add additional conditions for the case of an actual being a simple
+ name or literal. Improve inlining by preventing the generation
+ of temporaries with a short lifetime (one use).
+
+2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
+
+ PR ada/15587
+
+ * einfo.ads: Minor comment updates for Has_Completion and
+ E_Constant list of flags.
+
+ * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
+ and constant redeclarations now set the Has_Completion flag of their
+ defining identifiers.
+
+ * sem_ch7.adb (Analyze_Package_Spec): Add procedure
+ Inspect_Deferred_Constant_Completion.
+ Used to detect private deferred constants that have not been completed
+ either by a constant redeclaration or pragma Import. Emits error message
+ "constant declaration requires initialization expression".
+
+ * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
+ completes a deferred constant.
+
+2004-06-11 Geert Bosch <bosch@gnat.com>
+
+ * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
+
+ * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
+ calculating exponent for scaling denormal numbers.
+ (Leading_Part): Properly raise Constraint_Error for zero or negative
+ Adjustment.
+ (Remainder): Properly raise Constraint_Error for zero divisor.
+
+2004-06-11 Thomas Quinot <quinot@act-europe.fr>
+
+ * sem_util.adb: Minor reformatting.
+
+ * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
+ dereference when accessing the entry parameter record.
+ (Check_Array_Type): Always check for possible implicit dereference.
+ (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
+ Abort if a pointer is still present (denoting that an implicit
+ dereference was left in the tree by the front-end).
+
+ * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
+ dereference when accessing the entry parameter record.
+ (Check_Array_Type): Always check for possible implicit dereference.
+ (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
+ Abort if a pointer is still present (denoting that an implicit
+ dereference was left in the tree by the front-end).
+
+2004-06-11 Emmanuel Briot <briot@act-europe.fr>
+
+ * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
+ message, like the compiler itself does. Easier to parse the output.
+
+ * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
+
+ * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
+ be base names, and not includes directories.
+
+2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
+
+ * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
+ so that dependencies are properly taken into account by make.
+
+2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
+
+ PR ada/15622
+ * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
+ exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
+
+2004-06-11 Jerome Guitton <guitton@act-europe.fr>
+
+ * Makefile.in (install-gnatlib): install target-specific run-time files.
+
+ * Make-lang.in: Remove obsolete targets.
+
+2004-06-11 Ed Schonberg <schonberg@gnat.com>
+
+ * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
+ specification, to catch misuses of program unit names.
+
+ * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
+ superfluous conversions in an instance.
+
+2004-06-11 Ed Schonberg <schonberg@gnat.com>
+
+ PR ada/15403
+
+ * sem_ch12.adb (Save_References): If operator node has been folded to
+ enumeration literal, associated_node must be discarded.
+
+2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
+
+ * s-stchop-vxworks.adb: Add required pragma Convention to
+ Task_Descriptor because it is updated by a C function.
+
+2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
+
+ PR ada/15568
+
+ * Makefile.in: Remove target specific SO_OPT on IRIX
+
+2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
+ (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
+ (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
+ (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
+ (STMT_STMT, USE_STMT): New statement codes.
+ (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
+ * ada-tree.h: Reflect above changes.
+ (struct tree_loop_id): Deleted.
+ (union lang_tree_node, struct lang_decl, struct lang_type):
+ Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
+ and DECL_LANGUAGE_SPECIFIC to reflect these changes.
+ (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
+ (IS_ADA_STMT): New macro.
+ * decl.c (annotate_decl_with_node): New function.
+ (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
+ (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
+ Call add_stmt_with_node to do needed assignments.
+ Add call to update setjmp buffer directly, not via EXPR_STMT.
+ (maybe_variable): Argment GNAT_NODE deleted.
+ * gigi.h (maybe_variable): Likewise.
+ (make_transform, add_stmt_with_node, set_block_for_group): New.
+ (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
+ (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
+ (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
+ (set_lineno, set_lineno_from_sloc): Likewise.
+ (record_code_position, insert_code_for): Likewise.
+ (gnat_poplevel): Now returns void.
+ (end_subprog_body): Now takes argument.
+ * misc.c (cgraph.h, tree-inline.h): New includes.
+ (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
+ (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
+ (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
+ (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
+ (gnat_parse_file): Don't set immediate_size_expand.
+ Call cgraph functions.
+ (gnat_expand_expr): Remove most cases.
+ (record_code_position, insert_code_for): Remove from here.
+ * trans.c (toplev.h, tree-gimple.h): Now included.
+ (discard_file_names): Deleted.
+ (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
+ (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
+ (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
+ (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
+ (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
+ (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
+ (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
+ (set_block_for_group, add_stmt_list): Likewise.
+ (start_stmt_group): Renamed from start_block_stmt.
+ (end_stmt_group): Likewise, from end_block_stmt.
+ (build_stmt_group): Likewise, from build_block_stmt, also add arg.
+ (gigi): Don't set discard_file_names or call set_lineno.
+ Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
+ (tree_transform): Deleted, now renamed to be gnat_to_gnu.
+ Numerous changes throughout to reflect new names and complete
+ function-at-a-time implementation.
+ (gnat_expand_stmt): Delete or comment out all cases.
+ (process_inlined_subprograms): Use add_stmt.
+ (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
+ call set_lineno; also remove unneeded block handling.
+ (process_type): Remove unneeded block handling.
+ (build_unit_elab): Remove calls to deleted functions.
+ * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
+ (tree-dump.h): Likewise.
+ (struct ada_binding_level): Add field jmpbuf_decl.
+ (gnat_define_builtin, gnat_install_builtins): New.
+ (gnat_gimplify_function, gnat_finalize): Likewise.
+ (gnat_poplevel): No longer return BLOCK, set it instead.
+ Remove code dealing with nested functions.
+ (gnat_init_decl_processing): Also set size_type_node.
+ Call gnat_install_builtins.
+ (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
+ (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
+ Remove special-case for "main".
+ (end_subprog_body): Add arg and rework for tree-ssa.
+ (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
+ Add case for BOOLEAN_TYPE.
+ * utils2.c (rtl.h): Now include.
+ (build_call_raise): Test Debug_Flag_NN directly.
+ (build_call_alloc_dealloc): Don't use local stack allocation for now.
+ (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
+ (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
+
+2004-06-07 Robert Dewar <dewar@gnat.com>
+
+ * a-direct.ads, einfo.ads: Minor comment updates
+
+ * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
+ s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
+ s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
+ s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
+ s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
+
+ * s-interr-sigaction.adb: Remove unreferenced variable
+ (Attached_Interrupts). Minor reformatting.
+ Avoid use of variable I (replace by J).
+
+ * par-ch10.adb: Fix text of one error message
+
+ * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
+ exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
+ exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
+ 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_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,
+ snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
+ 2005 support.
+
+2004-06-07 Doug Rupp <rupp@gnat.com>
+
+ * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
+
+ * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
+
+ * mlib-tgt-vms-ia64.adb: New file.
+
+ * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
+ Add mlib-tgt-vms-ia64.adb
+ Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
+ Move to alpha specific ifeq section.
+ Add VMS specific versions of symbols.adb
+ Renaming of 5q vms files.
+
+ * 5qsystem.ads renamed to system-vms_64.ads.
+
+2004-06-07 Vincent Celier <celier@gnat.com>
+
+ * a-calend.ads: Add a GNAT Note comment after function Time_Of to
+ explain that when a time of day corresponding to the non existing hour
+ on the day switching to DST is specified, Split may return a different
+ value for Seconds.
+
+ * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
+ to GNAT PRETTY.
+
+ * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
+ (Normalize_Pathname): Only resolve VMS logical names when on VMS.
+
+ * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
+ to False.
+ If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
+ the linking options.
+ (Build_Library.Check_Libs): On VMS, if there is a dependency on
+ g-trasym.ads, set Gtrasymobj_Needed to True.
+
+ * prj-attr.adb: Add new package Metrics for gnatmetric
+
+ * prj-nmsc.adb (Record_Other_Sources): Put source file names in
+ canonical case to take into account files with upper case characters on
+ Windows.
+ (Ada_Check): Load the reference symbol file name in the name buffer to
+ check it, not the symbol file name.
+
+ * snames.ads, snames.adb: Add standard name Metrics (name of project
+ file package for gnatmetric).
+
+ * vms_conv.ads: Add Metric to Comment_Type
+
+ * vms_conv.adb (Initialize): Add component dor Metric in Command_List
+
+ * vms_data.ads: Add qualifiers for GNAT METRIC
+
+ * makegpr.adb (Link_Executables): Take into account the switches
+ specified in package Linker of the main project.
+
+2004-06-07 Thomas Quinot <quinot@act-europe.fr>
+
+ * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
+ the index of the last element is Units.Last, not Units.Table'Last
+ (which is usually not a valid index within the actually allocated
+ storage for the table).
+
+ * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
+ determines whether to generate a call to a checked storage pool
+ Dereference action.
+ Generate such a call only for a dereference that either comes from
+ source, or is the result of rewriting a dereference that comes from
+ source.
+
+2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
+
+ * bindgen.adb (Gen_Output_File): Add support for GAP builds.
+
+2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
+
+ (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
+ file level, elaborate the stride for inner dimensions in alignment
+ units, not bytes.
+
+ * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
+ in a comment.
+
+2004-06-07 Javier Miranda <miranda@gnat.com>
+
+ * exp_ch6.adb: Correct wrong modification in previous patch
+
+2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
+
+ * g-trasym.ads: Corrected comment to properly reflect level of support
+ on VMS.
+
+2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
+
+ * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
+ includes case of a variable referenced on the left hand side of an
+ assignment, therefore remove redundant code. Variables and prefixes of
+ indexed or selected components are now marked as referenced on left
+ hand side. Warnings are now properly emitted when variables or prefixes
+ are assigned but not read.
+
+ * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
+ left hand side referenced variables. Private access types do not
+ produce the warning "variable ... is assigned but never read".
+ Add also additional checks to left hand side referenced variables.
+ Aliased, renamed objects and access types do not produce the warning
+ "variable ... is assigned but never read" since other entities may read
+ the memory location.
+
+2004-06-07 Jerome Guitton <guitton@act-europe.fr>
+
+ * Makefile.in: In the powerpc/vxworks-specific section, restore
+ EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
+ by mistake).
+
+2004-06-07 Ed Schonberg <schonberg@gnat.com>
+
+ * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
+ predefined operators.
+ Removes spurious type errors from g-trasym-vms.adb.
+
+ * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
+ distinct from the operator appearing in the source, call appropriate
+ routine to insert conversions when needed, and complete resolution of
+ node.
+ (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
+ interpretations for rewritten right operand.
+ (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
+ the other operand is overloaded and the context is a type conversion.
+
+2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * ada-tree.def (BLOCK_STMT): Now has two operands.
+ (BREAK_STMT): New.
+
+ * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
+
+ * gigi.h: (gnat_poplevel): Now returns a tree.
+
+ * trans.c (end_block_stmt): Add arg; all callers changed.
+ (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
+ (start_block_stmt): Clear BLOCK_STMT_BLOCK.
+ (add_stmt): Set TREE_TYPE.
+ (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
+ (gnat_expand_stmt, case BREAK_STMT): New case.
+
+ * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
+
+2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
+
+ * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
+ procedure Set_Stack_Size that is not needed.
+
+2004-06-07 Sergey Rybin <rybin@act-europe.fr>
+
+ * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
+ used for gnatpp input file and for the files upon which it depends
+
+2004-06-07 Ben Brosgol <brosgol@gnat.com>
+
+ * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
+
+2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
+
+ * gnatvsn.ads: Bump version numbers appropriately.
+ Add new build type.
+
+2004-06-07 Pascal Obry <obry@gnat.com>
+
+ * gnat_ugn.texi: Improve comments about imported names and link names
+ on Windows. Add a note about the requirement to use -k gnatdll's option
+ when working with a DLL which has stripped stdcall symbols (no @nn
+ suffix).
+
2004-05-27 Vincent Celier <celier@gnat.com>
* vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
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,