OSDN Git Service

* builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h,
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
index 315ee92..a4f166d 100644 (file)
@@ -1,3 +1,411 @@
+2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * misc.c (gnat_handle_option): Use %< and %> for quoting in
+       warning message.
+
+2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * a-numaux-x86.adb (Tan): Fix fdivp syntax.
+
+2004-11-07  Andreas Schwab  <schwab@suse.de>
+
+       * Makefile.in (install-gnatlib): Remove spurious hyphen.
+
+2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR ada/18228
+       * Makefile.in (darwin): Set soext to .dylib.
+
+2004-10-26  Vincent Celier  <celier@gnat.com>
+           Thomas Quinot   <quinot@act-europe.fr>
+
+       * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
+       (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
+       there is no use of GNAT.Sockets.Constants.
+       Remove remaining pragma Import for C_Write
+       Remove C_Read and C_Write from internal implementation unit
+       GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
+       the read and write functions from the system runtime library is fine
+       on UNIX but won't work under Windows).
+
+       * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
+       (Check_Selector): Use C_Recv instead of C_Read.
+       Selectors are the GNAT.Sockets abstraction to perform a select()
+       call on a set of descriptors. To allow abortion of an ongoing
+       select operation, some data is written to a dedicated socket that
+       is always monitored.
+       Under Windows, the write and read library functions cannot operate
+       on sockets, so we need to use send and recv instead, which is portable
+       across all supported platforms.
+
+       * g-socthi.ads: Remove C_Read and C_Write from internal implementation
+       unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
+       (using the read and write functions from the system runtime library is
+       fine on UNIX but won't work under Windows).
+
+2004-10-26  Nicolas Setton  <setton@act-europe.fr>
+
+       * mlib-tgt-darwin.adb: New file.
+
+       * 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 (Archive_Indexer_Options): New
+       subprogram body.
+
+       * Makefile.in: Add support for building shared libraries under Darwin.
+       (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
+       the low level EH init subprogram to be called from __gnat_initialize.
+
+       * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
+       indicates which options to pass to the archive indexer.
+
+       * mlib-utl.adb: Add support for calling ranlib with additional
+       options. This is needed for instance under Mac OS X.
+       (Ranlib_Options): New global variable, used to store the potential
+       options to pass to ranlib.
+       (Ar): Use Ranlib_Options when spawning ranlib.
+       (Initialize): Set the value of ranlib option.
+
+2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
+
+       * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
+       instead of 8K, to reflect the real potential needs for stack-checking
+       in the ZCX case.
+
+2004-10-26  Pascal Obry  <obry@gnat.com>
+
+       * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
+
+       * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
+       Windows only the initial thread stack size can be set so it is good to
+       start we a low stack size.
+       The OS will adjust the size as needed.
+
+2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
+           Nicolas Setton  <setton@act-europe.fr>
+
+       * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
+       "__unix__" instead of "unix".
+       The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
+       sections were just mistakenly ignored. The former is
+       implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
+       Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
+       of hpux. This prevents an unwanted definition of the symbol
+       convert_addresses in adaint.o.
+
+2004-10-26  Gary Dismukes  <dismukes@gnat.com>
+
+       * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
+       compatibility with type Unwind_Word on 16-bit targets such as AAMP.
+
+2004-10-26  Cyrille Comar  <comar@act-europe.fr>
+
+       * a-filico.ads, a-filico.adb: fix incorrect header.
+
+2004-10-26  Javier Miranda  <miranda@gnat.com>
+
+       * a-ststio.ads: Fix typo in identifier
+
+2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
+
+       * sem_ch4.adb: Minor reformatting.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * checks.adb (Expr_Known_Valid): If floating-point validity checks are
+       enabled, check the result of unary and binary operations when the
+       expression is the right-hand side of an assignment.
+
+2004-10-26  Vincent Celier  <celier@gnat.com>
+
+       * clean.adb (Delete): Do not output warnings when in quiet output and
+       not in verbose mode.
+       (Force_Deletions): New Boolean flag, defaulted to False
+       (Delete): Only delete a file if it is writable, and when
+       Force_Deletions is True.
+       (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
+       (Usage): Line for new switch -f
+       (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
+       own.
+
+2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
+       JM type only if its size matches that of the wrapper.  When a size is
+       prescribed and the field is not aliased, remove the wrapper of a JM
+       type only if the size is not greater than that of the packed array.
+       (gnat_to_gnu_entity): Change the extension of packed array wrappers
+       from LJM to JM.
+
+2004-10-26  Geert Bosch  <bosch@gnat.com>
+
+       * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
+       (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
+       (Pred): Implement in terms of Succ.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * exp_aggr.adb (Safe_Component): An aggregate component that is an
+       unchecked conversion is safe for in-place use if the expression of the
+       conversion is safe.
+       (Expand_Array_Aggregate): An aggregate that initializes an allocator may
+       be expandable in place even if the aggregate does not come from source.
+       (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
+       designated object of an allocator in place, rather than building it
+       first on the stack. The previous scheme forces a full copy of the array,
+       and may be altogether unsusable if the size of the array is too large
+       for stack allocation.
+
+2004-10-26  Robert Dewar  <dewar@gnat.com>
+
+       * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
+       compares if the component is atomic.
+
+       * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
+       array assignment if the component type is atomic.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+           Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
+       is aliased and is a by_reference type, do not pass by copy.
+       (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
+       detect whether the call is in the right side of an assignment or
+       the expression of an object declaration.  Recurse on component
+       association within aggregates.
+       Call it in the condition that determines whether the temporary is
+       necessary for correct stack-checking.
+
+2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
+
+       * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
+       RACW_Type, used in the PolyORB version.
+       Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
+       version and the GARLIC version.
+
+       * snames.ads, snames.adb, s-parint.ads, s-parint.adb: 
+       Rename RCI_Info to RCI_Locator for better consistency between the
+       GARLIC and PolyORB versions of the distributed systems annex.
+       (DSA_Implementation_Name): This enumeration lists the possible
+       implementations of the Partition Communication Subsystem for the
+       Distributed Systems Annex (DSA). The three available implementations
+       are the dummy stub implementation (No_DSA), and two versions based on
+       two different distribution runtime libraries: GARLIC and PolyORB. Both
+       the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
+       technology.
+       Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
+       that organization.
+
+       * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
+       between the GARLIC and PolyORB versions of the distributed systems
+       annex.
+       Remove RE_Unbounded_Reclaim_Pool since it is unused.
+
+2004-10-26  Gary Dismukes  <dismukes@gnat.com>
+
+       * gnat1drv.adb: Suppress calling the back end when
+       Frontend_Layout_On_Target is true.
+
+2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
+
+       * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
+       Set_Read_Only): New subprograms.
+       These new routines allow the user to set or unset the Owner execute
+       and Owner write permission flags on a file.
+
+       * makegpr.adb, mlib.adb, mlib-prj.adb: Use
+       GNAT.OS_Lib.Set_Executable instead of rolling our own.
+
+2004-10-26  Matthew Gingell  <gingell@gnat.com>
+
+       * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
+
+2004-10-26  Pascal Obry  <obry@gnat.com>
+
+       * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
+       memory before the faulting page we properly test the process read
+       access for this address using appropriate Win32 routine.
+       (HPUX sections): guard with "__hpux__" instead of "hpux".
+
+2004-10-26  Robert Dewar  <dewar@gnat.com>
+
+       * lib-xref.adb (Generate_Reference): Don't complain about reference to
+       entry parameter if pragma Unreferenced set, since we do not properly
+       handle the case of multiple parameters.
+
+2004-10-26  Vincent Celier  <celier@gnat.com>
+
+       * prj-env.adb: (Contains_ALI_Files): New Boolean function
+       (Ada_Objects_Path.Add): For a library project, add to the object path
+       the library directory only if there is no object directory or if the
+       library directory contains ALI files.
+       (Set_Ada_Paths.Add.Recursive_Add): Ditto
+
+2004-10-26  Vincent Celier  <celier@gnat.com>
+
+       * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
+       extension of library projects.
+
+       * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
+       path defaults to ".:<prefix>/lib/gnat".
+       (Parse): For an extending all project, allow direct import of a project
+       that is virtually extended.
+
+       * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
+       the specified name is directly imported, return its ID. Otherwise, if
+       an extension of this project is imported, return the ID of the
+       extension.
+
+2004-10-26  Robert Dewar  <dewar@gnat.com>
+
+       * s-arit64.adb: (Le3): New function, used by Scaled_Divide
+       (Sub3): New procedure, used by Scaled_Divide
+       (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
+       correct more than one instance of failure to propagate carries
+       correctly.
+       (Double_Divide): Handle overflow case of largest negative number
+       divided by minus one.
+
+       * s-arit64.ads (Double_Divide): Document that overflow can occur in
+       the case of a quotient value out of range.
+       Fix comments.
+
+2004-10-26  Robert Dewar  <dewar@gnat.com>
+
+       * s-bitops.adb (Bit_Eq): Remove redundant check.
+
+       * s-bitops.ads: Minor comment updates
+       Change some occurrences of Address to System.Address
+
+       * s-carsi8.ads: Fix minor cut-and-paste error in comments
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
+       accessibility check to prefix that is a protected operation.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
+       empty, post message on stub.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+           Javier Miranda  <miranda@gnat.com>
+
+       * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
+       current instance appears within a unit that is directly in the context
+       of the main unit.
+       Used to determine whether the body of the instance should be analyzed
+       immediately after its spec, to make its subprogram bodies available
+       for front-end inlining.
+       (Analyze_Formal_Array_Type): Cleanup condition that checks that range
+       constraint is not allowed on the component type (AARM 12.5.3(3))
+
+2004-10-26  Cyrille Comar  <comar@act-europe.fr>
+
+       * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
+       'Storage_Pool): enhance, document & limit detection of non-sharable
+       internal pools.
+
+       * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
+
+       * s-pooglo.ads: Add more documentation now that this pool is properly
+       documented.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
+       or protected type with discriminants, do not constrain the
+       corresponding record type if the subtype declaration has no
+       discriminant constraints. This can be the case in source code, or in
+       the subtype declaration created to rename an actual type within an
+       instantiation.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
+       different kind of stub (possibly wrong name for file), do not check
+       for conformance.
+       (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
+       includes call to some function that returns an unconstrained type, do
+       not inline.
+
+2004-10-26  Ed Schonberg  <schonberg@gnat.com>
+
+       * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
+       appear in the code for the main unit. Dependencies among units in the
+       context of the main unit are established when those other units are
+       compiled. Otherwise spurious elaboration constraints can generate
+       incorrect elaboration circularities.
+
+2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
+           Ed Schonberg   <schonberg@gnat.com>
+
+       * sem_util.adb (Is_Aliased_View): Defend against the case where this
+       subprogram is called with a parameter that is not an object name. This
+       situation arises for some cases of illegal code, which is diagnosed
+       later, and in this case it is wrong to call Is_Aliased, as that might
+       cause a compiler crash.
+       (Explain_Limited_Type): Refine previous fix to include
+       inherited components of derived types, to provide complete information.
+
+       * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
+       is the prival for a protected object.
+       It is necessary to mark this entity as a variable, in addition to
+       flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
+       modified to avoid checking the Aliased flag on entities that are not
+       objects. (Checking that flag for non-objects is erroneous and could
+       lead to a compiler crash).
+
+2004-10-26  Robert Dewar  <dewar@gnat.com>
+
+       * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
+       X_Frac = 0.5, then we know that the number X must be positive.
+       (Succ): Remove the same redundant test, and also fix the primary test
+       to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
+       Minor reformatting
+       (Decompose): Add fuller comments to spec
+
+2004-10-26  Pascal Obry  <obry@gnat.com>
+
+       * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
+       validity (process must have read access). Set to 0 in all other cases.
+       (STOP_FRAME): Now check for ptr validity to avoid a segmentation
+       violation on Win32.
+       (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
+       segmentation violation.
+
+2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
+       whose type is a constructed subtype of an aliased object with an
+       unconstrained nominal subtype, convert the actual to the constructed
+       subtype before taking its address.
+
+2004-10-26  Vincent Celier  <celier@gnat.com>
+
+       * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
+       (Is_Path_Name_Case_Sensitive): New function
+
+       * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
+       (Base_Name, Simple_Name, Current_Directory, Compose,
+       Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
+       the result.
+
+2004-10-26  Cyrille Comar    <comar@act-europe.fr>
+           Vasiliy Fofanov  <fofanov@act-europe.fr>
+           Vincent Celier   <celier@gnat.com>
+
+       * gnat_ugn.texi: Generalize "finding memory problems" section into a
+       "memory management issues" section and document some of the useful
+       memory pools provided as part of the GNAT library.
+       Remove "virtual" from declaration of A::method2 in
+       the simple example of Ada/C++ mixed system.
+       Library Projects may be virtually extended: their virtual extensions
+       are not Library Projects.
+       Added section on extending project hierarchies.
+
 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
 
        * adaint.c (__gnat_get_libraries_from_registry): Cast value