+2007-05-22 Alexandre Oliva <aoliva@redhat.com>
+
+ * misc.c (enumerate_modes): Consider log2_b to always be one.
+
+2007-05-14 Rafael Avila de Espindola <espindola@google.com>
+
+ * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
+
+2007-05-02 Pascal Obry <obry@adacore.com>
+
+ * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
+ to use Stream_IO.File_Type. This is needed to make use of the UTF-8
+ encoding support of Stream_IO.
+ (Write_Unit): Idem.
+
+ * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
+ filename and corresponding encoding to match the OS requirement.
+ (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
+ routine will fail on specific devices like CON: AUX: ...
+
+ PR ada/29856: Add missing braces
+
+2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR ada/31660
+ * ada-tree.h (lang_tree_node): Fix typo in chain_next.
+
+2007-04-21 Jan Hubicka <jh@suse.cz>
+
+ * misc.c (gnat_expand_body): Don't call target for destructors,
+ avoid redundant check on syntax errors.
+
+2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
+ instead of checking GIMPLE_STMT_P in chain_next.
+
+2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ PR ada/31576
+ * system-linux-alpha.ads: Disable constant condition warning for the
+ Default_Bit_Order variable.
+ * system-linux-s390.ads: Likewise.
+ * system-linux-s390x.ads: Likewise.
+ * system-linux-sparc.ads: Likewise.
+
+2007-04-06 Javier Miranda <miranda@adacore.com>
+ Matt Heaney <heaney@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
+ a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
+ a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
+ a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
+ a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
+ a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
+ a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
+ a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
+ a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
+ a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
+ a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
+ a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
+ a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
+ a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
+ a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
+ a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
+ a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
+ i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
+ unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
+ a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
+ a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
+ a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
+ expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
+ s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
+ s-taprop-tru64.adb, s-taprop-irix.adb,
+ s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
+ s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
+ s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
+ s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
+ s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
+ a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
+ a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
+ g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
+ s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
+ s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
+ s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
+ s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
+ s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
+ s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
+ a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
+ a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
+ a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
+ a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
+ a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
+ a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
+ access types.
+ Update documentation.
+ Minor rewording.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+
+ * 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-vxworks-sparcv9.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-interix.ads,
+ system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
+ system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
+ system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
+ system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
+ system-hpux-ia64.ads, targparm.adb,
+ targparm.ads (Functions_Return_By_DSP_On_Target): Removed
+
+ * system.ads: Move Functions_Return_By_DSP to obsolete section,
+ kept for bootstrap purposes only.
+
+2007-04-06 Arnaud Charlet <charlet@adacore.com>
+
+ * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
+ s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
+ s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
+ (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+
+ * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
+ (Local_Raise): New dummy procedure called when a raise is converted
+ to a local goto. Used for debugger to detect that the exception
+ is raised.
+
+ * debug.adb: Document new d.g flag (expand local raise statements to
+ gotos even if pragma Restriction (No_Exception_Propagation) is not set)
+
+ * exp_sel.adb: Use Make_Implicit_Exception_Handler
+
+ * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
+ suppress warnings for unused handlers.
+ (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
+ warnings for raise statements not handled locally.
+ (Get_RT_Exception_Entity): New function
+ (Get_Local_Call_Entity): New function
+ (Find_Local_Handler): New function
+ (Warn_If_No_Propagation): New procedure
+ (Expand_At_End_Handler): Call Make_Implicit_Handler
+ (Expand_Exception_Handlers): Major additions to deal with local handlers
+ (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
+ Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
+ for local raise
+
+ * exp_ch11.ads (Get_RT_Exception_Entity): New function
+ (Get_Local_Call_Entity): New function
+
+ * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
+ of restrictions that the binder will never suggest adding.
+
+ * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
+ to No_Elist.
+
+ * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
+ be with'ed in the presence of pragma Restriction
+ (No_Exception_Propagation).
+
+ * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
+
+ * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
+ parameter, then the handler is not a suitable target for a local raise,
+ and this is a violation of restriction No_Exception_Propagation.
+ (Analyze_Handled_Statements): Analyze choice parameters in exception
+ handlers before analyzing statement sequence (needed for proper
+ detection of local raise statements).
+ (Analyze_Raise_Statement): Reraise statement is a violation of the
+ No_Exception_Propagation restriction.
+
+ * s-rident.ads: Add new restriction No_Exception_Propagation
+
+ * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
+ function, like Make_Exception_Handler but sets Local_Raise_Statements
+ to No_List.
+ (Add_Unique_Serial_Number): Deal with case where this is called during
+ processing of configuration pragmas.
+
+2007-04-06 Thomas Quinot <quinot@adacore.com>
+ Pat Rogers <rogers@adacore.com>
+ Pascal Obry <obry@adacore.com>
+
+ * g-stsifd-sockets.adb: New file.
+
+ * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
+ g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
+ g-socthi-vms.adb: Move signalling
+ fd management to a nested package, so that they can conveniently be
+ moved to a subunit that is shared across Windows, VMS, and VxWorks
+ (Ada implementation) or completed with imported bodies from socket.c
+ (UNIX case).
+ (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
+ subprograms.
+ (Check_Selector): Use Read_Signalling_Fd to read and discard data from
+ the signalling file descriptor.
+ (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
+ signalling file descriptor.
+ (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
+ instead of creating a pair of sockets for signalling here.
+
+ * g-socthi.adb: Ditto.
+ Set the runtime process to ignore SIGPIPEs on platforms that support
+ neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
+
+ * g-socthi-mingw.adb: Ditto.
+ (WS_Version): Use Windows 2.2.
+ Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
+
+ * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
+ Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
+
+ * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
+ added GNAT byte swapping facility
+ Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
+
+ * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
+
+ * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
+ New subprograms.
+ (__gnat_create_signalling_fds): New subprogram.
+ Set the runtime process to ignore SIGPIPEs on platforms that support
+ neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
+
+2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
+ Vincent Celier <celier@adacore.com>
+
+ * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
+ New version of Ada.Calendar which supports the new upper bound of Ada
+ time (2399-12-31 86_399.999999999).
+ The following modifications have been made to the package:
+ - New representation of time as count of nanoseconds since the start of
+ Ada time (1901-1-1 0.0).
+ - Target independent Split and Time_Of routines which service both
+ Ada 95 and Ada 2005 code.
+ - Target independent interface to the Ada 2005 children of Calendar.
+ - Integrated leap seconds into Ada 95 and Ada 2005 mode.
+ - Handling of non-leap centenial years.
+ - Updated clock function.
+ - Updated arithmetic and comparison operators.
+
+ * a-caldel.adb (To_Duration): Add call to target independent routine in
+ Ada.Calendar to handle the conversion of time to duration.
+
+ * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
+ (UTC Offset).
+ If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
+ set off to 0.
+ (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
+ targets do not have a natural time zone, GMT is used as a default.
+ (__gnat_get_task_options): New.
+
+ * a-direct.adb (Modification_Time): Add with and use clauses for
+ Ada.Calendar and Ada.
+ Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
+ since it is no longer needed.
+ (Duration_To_Time): Removed.
+ (OS_Time_To_Long_Integer): Removed.
+ (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
+ Formatting Time_Of routines which automatically handle time zones,
+ buffer periods and leap seconds.
+
+ * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
+ target independent routines in Ada.Calendar.
+
+ * a-calfor.ads, a-calfor.adb:
+ Code cleanup and addition of validity checks in various routines.
+ (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
+ Ada.Calendar.
+
+ * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
+ independent routine in Ada.Calendar.
+
+2007-04-06 Olivier Hainque <hainque@adacore.com>
+
+ * adaint.c:
+ (convert_addresses): Adjust prototype and dummy definition to expect an
+ extra file_name argument.
+
+ * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
+ filling the now expected file_name argument with the appropriate
+ argv[0] expansion.
+ (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
+ (tracebk): Array of void * instead of char *, corresponding to what
+ convert_addresses expects.
+ (exename): New static global, to hold the executable file name to be
+ used in all convert_addresses invocations.
+ (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
+ change.
+ (__gnat_gmem_a2l_initialize): Resolve exename.
+ (__gnat_convert_addresses): Use exename as the convert_addresses
+ file_name argument.
+
+ * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
+ "convert_addresses", now expecting a filename argument. Import the
+ necessary entities to compute the filename to use and pass it to
+ convert_addresses.
+
+2007-04-06 Matt Gingell <gingell@adacore.com>
+
+ * system-aix.ads: Back out previous change.
+ (Functions_Return_By_DSP): Removed
+
+2007-04-06 Pascal Obry <obry@adacore.com>
+
+ * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
+ or the monotonic used by Ada.Real_Time) to compute the sleep duration
+ on Windows.
+
+2007-04-06 Jose Ruiz <ruiz@adacore.com>
+
+ * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
+ function. Its value changes in different VxWorks versions, and it is
+ now handled by the function __gnat_get_task_options.
+
+ * s-taprop-vxworks.adb (Create_Task): Call the function
+ __gnat_get_task_options to get the required options for creating a task.
+
+2007-04-06 Pascal Obry <obry@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+
+ * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
+ dealing with filename.
+ (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
+ filename from a standard string to a wide-string depending on the
+ encoding value.
+ (__gnat_freopen): Idem.
+ (__gnat_current_time): New function (wrapper for time(3) standard C
+ function).
+
+ * g-os_lib.ads (Current_Time): New function. Returns the current
+ system time as an OS_Time value.
+
+ * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
+ (Monotonic_Clock): Same.
+
+2007-04-06 Quentin Ochem <ochem@adacore.com>
+
+ * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
+ not on a natural.
+ (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
+
+2007-04-06 Jose Ruiz <ruiz@adacore.com>
+
+ * a-retide.adb: Add elaboration code to ensure that the tasking run
+ time is initialized when using delay operations even when no task is
+ created.
+
+2007-04-06 Javier Miranda <miranda@adacore.com>
+
+ * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
+ component Num_Prim_Ops.
+ (Set_Num_Prim_Ops): Removed.
+ Remove all the assertions because all the routines of this
+ package are inline always.
+ (Get_Offset_Index): Add support to primary dispatch tables.
+ Move the documentation about the dispatch table to a-tags.ads
+ (Set_External_Tag): Removed
+ (Inherit_TSD): Removed.
+ (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
+ moved to a-tags.ads
+ (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
+ Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
+ of the TSD field "Table" because this field has been renamed to
+ "Ifaces_Table".
+ (Inherit_CPP_DT): Removed.
+ (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
+ Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
+ declarations have been moved to a-tags.ads
+ (Check_Size): Removed.
+ (Expanded_Name): Updated to get access to the new field of TSD
+ containing the address of the expanded name.
+ (Get_Access_Level/Set_Access_Level): Removed.
+ (Get_Predefined_Prim_Op_Address): Removed.
+ (Set_Predefined_Prim_Op_Address): Removed.
+ (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
+ (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
+ (Set_Expanded_Name): Removed.
+ (Inherit_DT): Removed.
+ (Inherit_CPP_DT): Removed.
+ (Set_RC_Offset): Removed.
+ (Set_TSD): Removed.
+ (Base_Address): New function that displaces "this" to point to the base
+ of the object (that is, to point to the primary tag of the object).
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
+ anonymous access component, do not create a master_id if type already
+ has one, as may happen if the type is a subcomponent of a packed array
+ type.
+ (Build_Init_Procedure, Component_Needs_Simple_Initialization,
+ Initialize_Tag): Remove code associated with the old CPP pragmas.
+ CPP_Virtual and CPP_Vtable are no longer supported.
+ (Build_Offset_To_Top_Internal): Add support for concurrent record types
+ (Build_Offset_To_Top_Functions): Add support for concurrent record types
+ (Freeze_Record_Type): Remove call to
+ Init_Predefined_Interface_Primitives.
+ (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
+ code required to initialize the tags of the secondary dispatch tables.
+ This leaves the algoritm more clear.
+ (Init_Secondary_Tags): Add support for concurrent record types
+ (Make_Predefined_Primitive_Specs): Code cleanup.
+ (Predefined_Primitive_Bodies): Code cleanup.
+ (Build_Master_Renaming): New local subprogram.
+ (Expand_N_Full_Type_Declaration): Build the master_id associated with
+ anonymous access to task type components.
+ (Expand_N_Subtype_Indication): The bounds of a range constraint in a
+ subtype indication are resolved during analysis, and must not be done
+ here.
+ (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
+
+2007-04-06 Geert Bosch <bosch@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
+ for conversion of a Float_Type'Truncation to integer.
+
+ * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
+ check if a node is an attribute that can be handled directly by the
+ back end.
+ (Expand_N_Attribute_Reference): Suppress expansion of floating-point
+ attributes that can be handled directly by the back end.
+ (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
+ use new predicate Is_Access_Protected_Subprogram_Type.
+ (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
+ and Unchecked_Union if it is generated as part of the default Output
+ procedure for a type with default discriminants.
+ (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
+ if we are compiling under restriction No_Dispatching_Calls.
+ (Constrained): Use Underlying_Type, in case the type is private without
+ discriminants, but the full type has discriminants.
+ (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
+ call to Build_Get_Access_Level.
+ (Expand_N_Attribute_Reference): The use of 'Address with class-wide
+ interface objects requires a call to the run-time subprogram that
+ returns the base address of the object.
+ (Valid_Conversion): Improve error message on illegal attempt to store
+ an anonymous access to subprogram value into a record component.
+
+ * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
+ null".
+ (Simplify_Type_Conversion): New procedure that performs simplification
+ of Int_Type (Float_Type'Truncation (X)).
+ (Resolve_Type_Conversion): Call above procedure after resolving operand
+ and before performing checks. This replaces the existing ineffective
+ code in Exp_Ch4.
+ (Set_String_Literal_Subtype): When creating the internal static lower
+ bound subtype for a string literal, use a newly created copy of the
+ subtree representing the lower bound.
+ (Resolve_Call): Exclude build-in-place function calls from transient
+ scope treatment. Update comments to describe this exception.
+ (Resolve_Equality_Op): In case of dispatching call check violation of
+ restriction No_Dispatching_Calls.
+ (Resolve_Call): If the call returns an array, the context imposes the
+ component type of the array, and the function has one non-defaulted
+ parameter, rewrite the call as the indexing of a call with a single
+ parameter, to handle an Ada 2005 syntactic ambiguity for calls written
+ in prefix form.
+ (Resolve_Actuals): If an actual is an allocator for an access parameter,
+ the master of the created object is the innermost enclosing statement.
+ (Remove_Conversions): For a binary operator, check if type of second
+ formal is numeric, to check if an abstract interpretation is present
+ in the case of exponentiation as well.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
+ copying a parameter list in a call, set properly the First_Named_Formal
+ and Next_Named_Formal fields in the new list and in the enclosing call.
+ (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
+ names, to ease typing in the debugger. Improve comments.
+ (Watch_Node): New variable, intended to be set in the debugger.
+ (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
+ called when the watched node is created.
+ (New_Node_Debugging_Output): Combined version of local procedures
+ New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
+ with a parameter so that conditional breakpoints like "if Node = 12345"
+ work.
+ (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
+ Add Elist1 function
+
+2007-04-06 Thomas Quinot <quinot@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * checks.ads, checks.adb (Selected_Range_Checks): No range check is
+ required for a conversion between two access-to-unconstrained-array
+ types.
+ (Expr_Known_Valid): Validity checks do not apply to discriminants, but
+ to discriminant constraints on discriminant objects. This rule must
+ apply as well to discriminants of protected types in private components.
+ (Null_Exclusion_Static_Checks): If No_Initialization is set on an
+ object of a null-excluding access type then don't require the
+ the object declaration to have an expression and don't emit a
+ run-time check.
+
+2007-04-06 Arnaud Charlet <charlet@adacore.com>
+ Eric Botcazou <botcazou@adacore.com>
+
+ * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
+ and made constant.
+
+ * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
+ Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
+ carry any.
+
+ * fe.h (Compiler_Abort): Add third parameter.
+
+ * misc.c (internal_error_function): Build third argument from current
+ input location and pass it to Compiler_Abort.
+
+2007-04-06 Gary Dismukes <dismukes@adacore.com>
+
+ * cstand.adb (Create_Standard): When the target's storage unit size is
+ greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
+ Standard_String.
+
+2007-04-06 Nicolas Roche <roche@adacore.com>
+
+ * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
+ absolute path can have the following form: device:/a/b. In this case
+ '/' should be inserted between the path and the filename.
+
+2007-04-06 Olivier Hainque <hainque@adacore.com>
+ Eric Botcazou <botcazou@adacore.com>
+
+ * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
+ VAR_DECL to a CONST_DECL we make for a public constant when we know the
+ corresponding definition has created the so made visible variable.
+ Handle anonymous access to protected subprogram.
+ (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
+ object with an address clause volatile. Re-enable original fix.
+ <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
+ too.
+ (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
+ associated with either the Equivalent or Root type, instead of the
+ naked type node.
+ (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
+ subtree for every field of a global record type.
+ (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
+ discriminants, invoke again variable_size on its newly computed sizes.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
+ (Next_Component_Or_Discriminant): New function and procedure
+ (First_Index, First_Literal, Master_Id,
+ Set_First_Index, Set_First_Literal, Set_Master_Id):
+ Add missing Ekind assertions.
+ (Is_Access_Protected_Subprogram_Type): New predicate.
+ (Has_RACW): New entity flag, set on package entities to indicate that
+ the package contains the declaration of a remote accecss-to-classwide
+ type.
+ (E_Return_Statement): This node type has the Finalization_Chain_Entity
+ attribute, in case the result type has controlled parts.
+ (Requires_Overriding): Add this new flag, because "requires
+ overriding" is subtly different from "is abstract" (see AI-228).
+ (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
+ Is_Abstract_Type. Make sure these are called only when appropriate.
+ (Has_Pragma_Unreferenced_Objects): New flag
+
+ * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
+ class-wide, the tag of the right-hand side must be an exact match, not
+ an ancestor of that of the object on left-hand side.
+ (Move_Activation_Chain): New procedure to create the call to
+ System.Tasking.Stages.Move_Activation_Chain.
+ (Expand_N_Extended_Return_Statement): Generate code to call
+ System.Finalization_Implementation.Move_Final_List at the end of a
+ return statement if the function's result type has controlled parts.
+ Move asserts to Build_In_Place_Formal.
+ (Move_Final_List): New function to create the call statement.
+ (Expand_N_Assignment_Statement): In case of assignment to a class-wide
+ tagged type, replace generation of call to the run-time subprogram
+ CW_Membership by call to Build_CW_Membership.
+ (Expand_N_Return_Statement): Replace generation of call to the run-time
+ subprogram Get_Access_Level by call to Build_Get_Access_Level.
+ (Expand_N_Simple_Function_Return): Replace generation of call to the
+ run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
+
+ * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
+ Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
+ access to protected operations.
+ (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
+ master and chain actual parameters to a build-in-place function call
+ involving tasks.
+ (BIP_Formal_Suffix): Add new enumeration literals to complete the case
+ statement.
+ (Make_Build_In_Place_Call_In_Allocator,
+ Make_Build_In_Place_Call_In_Anonymous_Context,
+ Make_Build_In_Place_Call_In_Assignment,
+ Make_Build_In_Place_Call_In_Object_Declaration): Call
+ Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
+ (Expand_Inlined_Call): If the subprogram is a null procedure, or a
+ stubbed procedure with a null body, replace the call with a null
+ statement without using the full inlining machinery, for efficiency
+ and to avoid invalid values in source file table entries.
+
+ * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
+ renamings of calls to build-in-place functions.
+
+ * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
+ provides the functionality of RTE_Available to record components.
+ (RTU_Entity): The function Entity has been renamed to RTU_Entity
+ to avoid undesired overloading.
+ (Entity): New subprogram that returns the entity for the referened
+ unit. If this unit has not been loaded, it returns Empty.
+ (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
+ Remove no longer used entities.
+ (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
+ (RE_Type_Specific_Data): New entity.
+ (RE_Move_Any_Value): New entity.
+ (RE_TA_A, RE_Get_Any_Type): New entities.
+ (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
+ RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
+ RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
+ (Entity): New subprogram that returns the entity for the referened
+ unit. If this unit has not been loaded, it returns Empty.
+ (RTE): Addition of a new formal that extends the search to the scopes
+ of the record types found in the chain of the package.
+
+ * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
+ "abstract subprograms must be visible" message, whether or not the type
+ is an interface; that is, remove the special case for interface types.
+ (Analyze_Function_Return): Remove error message "return of task objects
+ is not yet implemented" because this is now implemented.
+ (Create_Extra_Formals): Add the extra master and activation chain
+ formals in case the result type has tasks.
+ Remove error message "return of limited controlled objects is not yet
+ implemented".
+ (Create_Extra_Formals): Add the extra caller's finalization list formal
+ in case the result type has controlled parts.
+ (Process_Formals): In case of access formal types there is no need
+ to continue with the analysis of the formals if we already notified
+ errors.
+ (Check_Overriding_Indicator): Add code to check overriding of predefined
+ operators.
+ (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
+ flags for formals that do not require them,.
+ (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
+ hidden entity is use visible or directly visible.
+ (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
+ Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
+ Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
+ New_Overloaded_Entity): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type.
+
+ * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
+ a return statement's finalization list to the caller's list, used for
+ build-in-place functions with result type with controlled parts.
+ Remove no longer used entities.
+
+ * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
+ longer needed, because the full type is now limited, and therefore a
+ pass-by-reference type.
+ (Foreign_Task_Level): New constant.
+
+ * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
+ move tasks from the activation chain belonging to a return statement to
+ the one passed in by the caller, and update the master to the one
+ passed in by the caller.
+ (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
+ of unactivated tasks, so we don't kill the ones that are being returned
+ by a build-in-place function.
+ (Create_Task): Ignore AI-280 for foreign threads.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * errout.adb (Unwind_Internal_Type): Use predicate
+ Is_Access__Protected_Subprogram_Type.
+
+ * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
+ (Freeze_Entity, packed array case): Do not override explicitly set
+ alignment and size clauses.
+ (Freeze_Entity): An entity declared in an outer scope can be frozen if
+ the enclosing subprogram is a child unit body that acts as a spec.
+ (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
+ (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
+ Remove all code for DSP option
+
+ * layout.adb (Layout_Record_Type): Use First/
+ Next_Component_Or_Discriminant
+ (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
+ to handle properly the anonymous access case.
+
+ * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
+ for all access attributes, because overload resolution should work the
+ same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
+ causes the error message for the ambiguous "X'Access = Y'Access" and
+ "X'Unrestricted_Access = Y'Access" and so forth to match.
+ (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
+ now that anonymous access to protected operations have their own kind.
+ (Resolve_Attribute): In case of dispatching call check the violation of
+ restriction No_Dispatching_Calls.
+ (Check_Array_Type): Check new -gnatyA array index style option
+
+ * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
+ attempt to derive from a synchronized tagged type.
+ (Analyze_Type_Declaration): If there is a incomplete tagged view of the
+ type, inherit the class-wide type already created, because it may
+ already have been used in a self-referential anonymous access component.
+ (Mentions_T): Recognize self-referential anonymous access components
+ that use (a subtype of) the class-wide type of the enclosing type.
+ (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
+ Derived_Type for Prev formal on call to
+ Check_Anonymous_Access_Components rather than Empty.
+ (Make_Incomplete_Type_Declaration): Add test for case where the type has
+ a record extension in deciding whether to create a class-wide type,
+ rather than just checking Tagged_Present.
+ (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
+ to stand-alone object declarations as well as component declarations.
+ (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
+ prevent accidental overwriting when enclosing package appears in
+ a limited_with_clause.
+ (Array_Type_Declaration): If the component type is an anonymous access,
+ the associated_node for the itype is the type declaration itself.
+ (Add_Interface_Tag_Components): Modified to support concurrent
+ types with abstract interfaces.
+ (Check_Abstract_Interfaces): New subprogram that verifies the ARM
+ rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
+ (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
+ to complete the decoration of synchronized interface types. Add also
+ a call to Check_Abstract_Interfaces to verify the ARM rules.
+ (Derive_Interface_Subprograms): Modified to support concurrent types
+ with abstract interfaces.
+ (Analyze_Subtype_Indication): Resolve the range with the given subtype
+ mark, rather than delaying the full resolution depending on context.
+ (Analyze_Component_Declaration,Analyze_Interface_Declaration,
+ Analyze_Object_Declaration,Analyze_Subtype_Declaration,
+ Array_Type_Declaration,Build_Derived_Record_Type,
+ Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
+ Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
+ Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
+ called only when appropriate.
+ (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
+ to private type.
+ (Analyze_Subtype_Declaration): For an access subtype declaration, create
+ an itype reference for the anonymous designated subtype, to prevent
+ scope anonmalies in gigi.
+ (Build_Itype_Reference): New utility, to simplify construction of such
+ references.
+
+2007-04-06 Vincent Celier <celier@adacore.com>
+
+ * errutil.adb (Initialize): Initialize warnings table, if all warnings
+ are suppressed, supply an initial dummy entry covering all possible
+ source locations.
+
+ * make.adb (Scan_Make_Arg): Reject options that should start with "--"
+ and start with only one, such as "-RTS=none".
+ (Collect_Arguments): Do not check for sources outside of projects.
+ Do not collect arguments if project is externally built.
+ (Compile_Sources): Do nothing, not even check if the source is up to
+ date, if its project is externally built.
+ (Compile): When compiling a predefined source, add -gnatpg
+ as the second switch, after -c.
+ (Compile_Sources): Allow compilation of Annex J renames without -a
+ (Is_In_Object_Directory): Check if the ALI file is in the object
+ even if there is no project extension.
+ (Create_Binder_Mapping_File): Only put a unit in the mapping file for
+ gnatbind if the ALI file effectively exists.
+ (Initialize): Add the directory where gnatmake is invoked in front of
+ the path if it is invoked from a bin directory, even without directory
+ information, so that the correct GNAT tools will be used when spawned
+ without directory information.
+
+ * makeusg.adb: Change switch -S to -eS
+ Add lines for new switches -we, -wn and -ws
+ Add line for new switch -p
+
+ * prj-proc.adb (Process): Set Success to False when Warning_Mode is
+ Treat_As_Error and there are warnings.
+
+ * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
+ -gnatww Change gnatmake switch -S to -eS
+ (Scan_Make_Switches): Code reorganisation. Process separately multi
+ character switches and single character switches.
+ (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
+ False when switch is not recognized by gnatmake.
+ (Scan_Make_Switches): Set Setup_Projects True when -p or
+ --create-missing-dirs is specified.
+
+ * fname.adb (Is_Predefined_File_Name): Return True for annex J
+ renamings Calendar, Machine_Code, Unchecked_Conversion and
+ Unchecked_Deallocation only when Renamings_Included is True.
+
+ * par.adb: Allow library units Calendar, Machine_Code,
+ Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
+ when -gnatg is not specified.
+ (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
+ there is no need to generate always a record_definition_node in case
+ of synchronized interface types.
+ (SIS_Entry_Active): Initialize global variable to False
+ (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
+ indicate cases where AI-447 says "not null" is legal.
+
+ * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
+
+ * makegpr.adb (Check_Compilation_Needed): Take into account dependency
+ files with with several lines starting with the object fileb name.
+ (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
+ is specified.
+ (Initialize): Add the directory where gprmake is invoked in front of the
+ path, if it is invoked from a bin directory or with directory
+ information, so that the correct GNAT tools will be used when invoked
+ directly.
+ (Check_Compilation_Needed): Process correctly backslashes on Windows.
+
+ * vms_data.ads: Update switches/qualifiers
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+
+ * exp_aggr.adb:
+ If the array component is a discriminated record, the array aggregate
+ is non-static even if the component is given by an aggregate with
+ static components.
+ (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
+ (Convert_Aggr_In_Allocator): If the allocator is for an access
+ discriminant and the type is controlled. do not place on a finalization
+ list at this point. The proper list will be determined from the
+ enclosing object.
+ (Build_Record_Aggr_Code): If aggregate has box-initialized components,
+ initialize record controller if needed, before the components, to ensure
+ that they are properly finalized.
+ (Build_Record_Aggr_Code): For the case of an array component that has a
+ corresponding array aggregate in the record aggregate, perform sliding
+ if required.
+
+2007-04-06 Javier Miranda <miranda@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
+ run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
+
+ * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
+ accessibility on class-wide allocators if the allocator occurs at the
+ same scope level as the allocator's type. The check is guaranteed to
+ succeed in that case, even when the expression originates from a
+ parameter of the containing subprogram.
+ (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
+ under No_Dispatching_Calls restriction. During the semantic analysis
+ we already notified such violation.
+ (Tagged_Membership): Constant folding. There is no need to check
+ the tag at run-time if the type of the right operand is non
+ class-wide abstract.
+ Replace call to Is_Ancestor by call to Is_Parent
+ to support concurrent types with interface types.
+ (Expand_N_Allocator): Add an assertion associated with the generation
+ of the master_id.
+ (Expand_N_Slice): Do not enable range check to nodes associated
+ with the frontend expansion of the dispatch table.
+ (Is_Local_Access_Discriminant): Subsidiary function to
+ Expand_N_Allocator.
+ (Tagged_Membership): Replace generation of call to the run-time
+ subprogram CW_Membership by call to Build_CW_Membership.
+ (Expand_Allocator_Expression): Replace generation of call to the
+ run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
+
+ * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
+ initialize most the TSD components by means of an aggregate.
+ Modify the declaration of the object containing the TSD
+ because we now expand code that has a higher level of abstraction.
+ The TSD has a discriminant containing the Inheritance Depth Level,
+ value that is used in the membership test but also to fix the size
+ of the table of ancestors.
+ (Expand_Interface_Conversion): Insert function body at the closest place
+ to the conversion expression, to prevent access-before-elaboration
+ errors in the backend.
+ Code improved to reduce the size of the dispatch table if
+ compiling under restriction No_Dispatching_Calls plus code cleanup.
+ Code reorganization plus removal of calls to Set_Num_Prim_Ops
+ (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
+ (Expand_Dispatching_Call): Minor code reorganization plus addition of
+ code to return immediately if compiling under No_Dispatching_Calls
+ restriction.
+ (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
+ CPP_Virtual and CPP_Vtable are no longer supported.
+ (Expand_Interface_Conversion): Add missing support for interface type
+ derivations.
+ (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
+ Is_Parent to support concurrent types with interfaces.
+ (Init_Predefined_Interface_Primitives): Removed.
+ (Make_Secondary_DT): Modified to support concurrent record types.
+ (Set_All_DT_Position): Modified to support concurrent record types.
+ (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
+ with Get_External_Tag, Inherit_TSD, Set_External_Tag.
+ (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
+ with CW_Membership.
+ (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
+ with Get_Access_Level, Get_Predefined_Prim_Op_Address,
+ Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
+ Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
+ Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
+ (Expand_Dispatching_Call): Replace generation of call to the run-time
+ subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
+ calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
+ Address.
+ (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
+ the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
+ Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
+ Build_Set_Prim_Op_Address.
+ (Get_Remotely_Callable): Subprogram removed.
+ (Init_Predefined_Interface_Primitives): Replace generation of call to
+ the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
+ Prims.
+
+ * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
+ First (Parameter_Associations ()) with the call to First_Actual that
+ returns an actual parameter expression for both named and positional
+ associations.
+
+ * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
+ check violation of restriction No_Dispatching_Calls.
+ (Check_Controlling_Type): A formal of a tagged incomplete type is a
+ controlling argument.
+
+ * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
+ First/Next_Component_Or_Discriminant
+ (Insert_Actions): Add entries for new N_Push and N_Pop nodes
+ (Find_Implemented_Interface): Removed. All the calls to this subprogram
+ specify Any_Limited_Interface, and this functionality is already
+ provided by the function Has_Abstract_Interfaces.
+ (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
+ support concurrent types implementing interfaces.
+ (Find_Implemented_Interface): Removed. All the calls to this subprogram
+ specify kind Any_Limited_Interface, and this functionality is already
+ provided by the function Has_Abstract_Interfaces.
+ (Remove_Side_Effects): replace Controlled_Type by
+ CW_Or_Controlled_Type whenever the issue is related to
+ using or not the secondary stack.
+
+ * par-ch12.adb (P_Formal_Type_Definition): Update calls to
+ P_Interface_Type_Definition to fulfill the new interface (the formal
+ Is_Synchronized is no longer required).
+
+ * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
+ Update dependencies.
+
+ * exp_atag.ads, exp_atag.adb: New file
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Cyrille Comar <comar@adacore.com>
+
+ * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
+ anonymous, use finalization list of enclosing dynamic scope.
+ (Expand_N_Package_Declaration): For a library package declaration
+ without a corresponding body, generate RACW subprogram bodies in the
+ spec (just as we do for the task activation call).
+ (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
+ Is_Abstract_Type. Make sure these are called only when appropriate.
+ Remove all code for DSP option
+ (CW_Or_Controlled_Type): new subprogram.
+
+2007-04-06 Eric Botcazou <botcazou@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
+ parameter. If it is set to true, return a result capped according to
+ the global upper bound for the index of an entry family.
+ (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
+ (Build_Find_Body_Index): Adjust for above change.
+ (Entry_Index_Expression): Likewise.
+ (Is_Potentially_Large_Family): New function extracted from...
+ (Collect_Entry_Families): ...here. Call it to detect whether the family
+ is potentially large.
+ (Build_Entry_Count_Expression): If the family is potentially large, call
+ Family_Size with 'Cap' set to true.
+ (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
+ a protected version of an operation declared in the private part of
+ a protected object, because they may be invoked through a callback.
+ (Set_Privals): If the type of a private component is an anonymous access
+ type, do not create a new itype for each protected body.
+ If the body of a protected operation creates
+ controlled types (including allocators for class-widetypes), the
+ body of the corresponding protected subprogram must include a
+ finalization list.
+ (Build_Activation_Chain_Entity): Build the chain entity for extended
+ return statements.
+ (Type_Conformant_Parameters): Use common predicate Conforming_Types
+ to determine whether operation overrides an inherited primitive.
+ (Build_Wrapper_Spec): Add code to examine the parents while looking
+ for a possible overriding candidate.
+ (Build_Simple_Entry_Call): Set No_Initialization on the object used to
+ hold an actual parameter value since its initialization is separated
+ from the the declaration. Prevents errors on null-excluding access
+ formals.
+
+2007-04-06 Thomas Quinot <quinot@adacore.com>
+
+ * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
+ Do an Unchecked_Conversion to handle the passage from the Underlying
+ Type to the Base Type when calling Build_To_Any_Call and
+ Build_From_Any_Call.
+ (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
+ E_Constant, depending upon Variable formal.
+ (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
+ PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
+ parameter that requires an extra constrained parameter, declare
+ temporary for actual as a variable, not a constant.
+ (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
+ the unit being compiled is the one that contains the stub type.
+ Change primitive operation name for the RACW associated with a RAS
+ from Call to _Call so it cannot clash with any legal identifier.
+ (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
+ Is_RAS.
+ (Append_RACW_Bodies): New subprogram.
+ (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
+ Add_Receiving_Stubs_To_Declarations functions.
+ When expanding a package body, this list correspond to the
+ statements in the HSS at the end of the pacakge.
+ When expanding a package spec, this list correspond to the
+ spec declarations.
+ (Add_Receiving_Stubs_To_Declarations): Append the function
+ registering the receiving stubs at the end of the 'Stmts' list.
+ (RCI_Package_Locator): Pass the new Version generic formal when
+ instantiating a RCI_Locator package.
+ (Build_From_Any_Function): To compute the High bound for an
+ unconstrained array actual, we add the Low bound with the length.
+ Thus we must convert the low bound and the length to an appropriate
+ type before doing the sum.
+ (Build_Subprogram_Receiving_Stubs, PolyORB):
+ * Retrieve the extra formals parameters at the
+ end of the parameter stream.
+ * Use Move_Any_Value to write back out parameters
+ after executing the request as it is more efficient
+ than Copy_Any_Value.
+ * Build the any containing Extra Formals with the
+ appropriate typecode.
+ (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
+ empty Component_List.
+ (Build_Actual_Object_Declaration): New subprogram. Build and insert into
+ the tree the declaration for an object that serves as actual parameter
+ in server-side stubs.
+ (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
+ PolyORB_Support.Build_Subprogram_Receiving_Stubs):
+ Use Build_Actual_Object_Declaration to prepare the actuals.
+ (Add_Parameter_To_NVList): Set the parameter mode to In for
+ Extra Constrained Parameters.
+ (Build_General_Calling_Stubs): Set the parameter type to boolean for
+ Extra Constrained parameters.
+ (Build_To_Any_Function, Build_From_Any_Function,
+ Built_TypeCode_Function): When Typ is implicit, call the correct
+ function with the first not implicit parent type.
+ (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
+ (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
+ typecode from the Etype. Therefore we retrieve the correct typecode
+ with a call to Get_Any_Type.
+ (Copy_Specification): Do controlling formal type substitution based on
+ Is_Controlling_Formal flag, instead of caller-provided object type.
+ (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
+ a RACW primitive operation, we might get a subprogram declaration for an
+ ancestor of the RACW designated type (not for the designated type
+ itself), in the case where this operation is inherited. In this case we
+ have no easy means of determining the original tagged type for which
+ the primitive was declared, so instead we now rely on
+ Copy_Specification to use the Is_Controlling_Formal flag to determine
+ which formals require type substitution.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
+ GNAT.Current_Exception are not allowed if pragma Restrictions
+ (No_Exception_Propagation) is set and in any case make the associated
+ handler unsuitable as a target for a local raise statement.
+ (Expand_Dispatching_Constructor_Call): Replace generation of call to the
+ run-time subprogram CW_Membership by call to Build_CW_Membership.
+ (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
+ by a function call, a temporary must be created before expanding the
+ Constructor_Call itself, to prevent out-of-order elaboration in the
+ back-end when stack checking is enabled..
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
+ result are the bounds of the left operand, not the right.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_strm.adb
+ (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
+ discriminant defaults.
+ (Build_Record_Or_Elementary_Output_Procedure): Ditto.
+ (Make_Component_List_Attributes): Ditto.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
+ an association with a box as providing a value even though the
+ initialization procedure for the type is not available.
+ (Resolve_Record_Aggregate): Check that a choice of an association with a
+ box corresponds to a component of the type.
+ (Resolve_Record_Aggregate): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type.
+
+ * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
+ assert.
+
+ * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
+ called only when appropriate.
+
+2007-04-06 Olivier Hainque <hainque@adacore.com>
+
+ * g-alleve.ads (Low Level Vector type definitions): Map each to the
+ associated vector view instead of all to the unsigned char view.
+
+ * g-altcon.adb (Generic_Conversions): New internal generic package,
+ offering facilities for all the Vector/View conversion routines
+ implemented by this unit.
+ (To_View/To_Vector - all versions): Reimplemented in a systematic
+ manner, using the internal Generic_Conversions facilities.
+
+2007-04-06 Pascal Obry <obry@adacore.com>
+
+ * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
+ string.
+ (Create): Free the source string before storing the new one.
+
+2007-04-06 Vincent Celier <celier@adacore.com>
+
+ * g-debpoo.adb (Validity): New package with a complete new
+ implementation of subprograms Is_Valid and Set_Valid.
+ (Is_Valid): Move to local package Validity
+ (Set_Valid): Move to local package Validity
+
+2007-04-06 Arnaud Charlet <charlet@adacore.com>
+
+ * g-expect.adb (Get_Command_Output): When expanding the output buffer
+ we must ensure that there is enough place for the new data we are going
+ to copy in.
+
+2007-04-06 Thomas Quinot <quinot@adacore.com>
+
+ * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
+ computation.
+
+2007-04-06 Jose Ruiz <ruiz@adacore.com>
+ Vincent Celier <celier@adacore.com>
+
+ * gnatcmd.adb (B_Start): Add prefix of binder generated file.
+ (Stack_String): Add this String that contains the name of the Stack
+ package in the project file.
+ (Packages_To_Check_By_Stack): Add this list that contains the packages
+ to be checked by gnatstack, which are the naming and the stack packages.
+ (Check_Files): If no .ci files were specified for gnatstack we add all
+ the .ci files belonging to the projects, including binder generated
+ files.
+ (Non_VMS_Usage): Document that gnatstack accept project file switches.
+ (GNATCmd): Update the B_Start variable if we are in a VMS environment.
+ Add gnatstack to the list of commands that use project file related
+ switches, and get the single attribute Switches from the stack package
+ in a project file when calling gnatstack. Parse the -U flag for
+ processing files belonging to all projects in the project tree.
+ Remove all processing for command Setup
+
+ * prj-attr.adb: Add new package Stack with single attribute Switches
+
+ * vms_conv.ads (Command_Type): Add command Stack.
+ Move to body declarations that are only used in the body: types Item_Id,
+ Translation_Type, Item_Ptr, Item and its subtypes.
+
+ * vms_conv.adb: (Initialize): Add data for new command Stack.
+ Add declarations moved from the spec: types Item_Id, Translation_Type,
+ Item_Ptr, Item and its subtypes.
+ (Cargs_Buffer): New table
+ (Cargs): New Boolean global variable
+ (Process_Buffer): New procedure to create arguments
+ (Place): Put character in table Buffer or Cargs_Buffer depending on the
+ value of Cargs.
+ (Process_Argument): Set Cargs when processing qualifiers for GNAT
+ COMPILE
+ (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
+ empty, for table Cargs_Buffer.
+ (Initialize): Remove component Setup in Command_List
+
+2007-04-06 Vincent Celier <celier@adacore.com>
+
+ * gprep.adb (Process_Files.Process_One_File): Use full file name when
+ issuing pragma Source_Reference.
+
+2007-04-06 Emmanuel Briot <briot@adacore.com>
+
+ * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
+ [[:xdigit:]] character class.
+ Also raise an exception when an invalid character class is used.
+
+2007-04-06 Pascal Obry <obry@adacore.com>
+
+ * i-cstrea.ads: (fopen): Add encoding parameter.
+ (freopen): Idem.
+ Change reference from a-sysdep.c to sysdep.c in comment.
+ Update copyright notice.
+ This set of patch add support for the encoding form parameter.
+
+ * mingw32.h (S2WSU): New macro to convert from a string to a
+ wide-string using the UTF-8 encoding. The S2WS macro supports now only
+ standard 8bits encoding.
+ (WS2SU): As above but converting from wide-sring to string.
+ This is needed as it is necessary to have access to both versions in the
+ runtime for the form parameter encoding support.
+ This set of patch add support for the encoding form parameter.
+ (S2WS): Improve implementation to handle cases where the filename is not
+ UTF-8 encoded. In this case we default to using the current code page
+ for the conversion.
+
+ * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
+ type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
+ the constants defined in adaint.h.
+ (fopen): Add encoding parameter.
+ (freopen): Idem.
+
+ * s-ficobl.ads (AFCB): Add Encoding field to record the filename
+ encoding. This is needed for the Reset routine (freopen low level-call).
+
+ * s-fileio.adb (Open): Decode encoding form parameter and set the
+ corresponding encoding value into AFCB structure.
+ (Reset): Pass the encoding value to freopen.
+ (Close): Move the call to Lock_Task to the beginning of the procedure.
+
+2007-04-06 Geert Bosch <bosch@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * i-fortra.ads: Add Double_Complex type.
+
+ * impunit.adb: (Is_Known_Unit): New function
+ Add Gnat.Byte_Swapping
+ Add GNAT.SHA1
+ Add new Ada 2005 units
+ Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
+ Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
+ Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
+ Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
+
+ * impunit.ads (Is_Known_Unit): New function
+
+ * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
+ a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
+ a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
+ g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
+ s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
+ s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
+ New files.
+
+ * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
+
+ * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
+
+2007-04-06 Eric Botcazou <botcazou@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+
+ * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
+ __gnat_adjust_context_for_raise.
+ (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
+ implementation of floating point operations as native x86 targets.
+ So the FPU should be initialized in the same way using finit. Fix
+ floating point operations accuracy issues.
+ (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
+ member in struct sigaction, so as to avoid warning for incompatible
+ pointer types.
+
+2007-04-06 Serguei Rybin <rybin@adacore.com>
+
+ * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
+ switches from previously loaded tree
+
+2007-04-06 Thomas Quinot <quinot@adacore.com>
+
+ * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
+ cases where a given dependency has a body or not.
+ (Write_With_File_Names): New subprogram, common code for the two cases
+ above.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * lib-xref.ads, lib-xref.adb:
+ Modify the loop that collects type references, to include interface
+ types that the type implements. List each of these interfaces when
+ building the entry for the type.
+ (Generate_Definition): Initialize component Def and Typ of new entry
+ in table Xrefs, to avoid to have these components unitialized.
+ (Output_References): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type.
+ (Generate_Reference): Add barrier to do not generate the warning
+ associated with Ada 2005 entities with entities generated by the
+ expander.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+ Vincent Celier <celier@adacore.com>
+
+ * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
+ Update 'Exception Handling Control' chapter which was outdated.
+ Minor fix to documentation of -gnatwq
+ Remove section "Adapting the Run Time to a New C++ Compiler" because
+ it is now obsolete.
+ Add passage on need of -nostart-files in some non-ada-main cases.
+ Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
+ Update documentation about Interfacing with C++
+ Add documentation for new gnatmake switch -p
+ Add missing protocol part in URLs.
+ Document -gnatyA
+ Document pragma Compile_Time_Error
+ Add documentation for Object_Size indicating that stand alone
+ objects can have a larger size in some cases.
+ Add node for GNAT.Byte_Swapping, GNAT.SHA1
+ Update reference to the Ravenscar profile.
+ Document pragma Unreferenced_Objects
+
+ * gnat-style.texi: Fix typo
+
+2007-04-06 Vincent Celier <celier@adacore.com>
+
+ * mlib.adb (Building_Library): Only output "building a library..." in
+ verbose mode
+
+ * mlib-prj.adb (Build_Library): Only output lists of object and ALI
+ files in verbose mode.
+
+ * mlib-utl.adb (Ar): Only output the first object files when not in
+ verbose mode.
+ (Gcc): Do not display all the object files if not in verbose mode, only
+ the first one.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+
+ * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
+ it no longer destroys the contents of Name_Buffer or Name_Len and
+ non-standard and invalid names are handled better.
+ (Get_Decoded_Name_String): Improve performance by using
+ Name_Has_No_Encodings flag in the name table.
+ (Is_Valid_Name): New function to determine whether a Name_Id is valid.
+ Used for debugging printouts.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
+ (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
+ there is no need to generate always a record_definition_node in case
+ of synchronized interface types.
+ (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
+ (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
+ illegal in Ada 95, in cases where it is legal. Change the warnings to
+ errors in other cases. Don't give the error unless the "not null"
+ parses properly. Correct the source position at which the error occurs.
+ (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
+ P_Null_Exclusion, to suppress "not null" warnings.
+ (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
+ associated goto statements.
+
+ * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
+ of END RECORD
+
+ * scans.ads (Type_Token_Location): New flag
+
+ * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
+ (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
+ P_Null_Exclusion, to suppress "not null" warnings.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Vincent Celier <celier@adacore.com>
+
+ * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
+ (Extensions_Allowed): No longer sets Ada_Version
+ Entry for pragma Unreferenced_Objects
+
+ * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
+ system.tasking if pragma priority used in a procedure
+ (Analyze_Pragma, case Warning): Handle dot warning switches
+ (Process_Compile_Time_Warning_Or_Error): New procedure
+ (Analyze_Pragma): Add processing for Compile_Time_Error
+ Add support for extra arguments External_Name and Link_Name.
+ Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
+ (Process_Import_Or_Interface): Add support for the use of pragma Import
+ with tagged types.
+ (Extensions_Allowed): No longer affects Ada_Version
+ (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
+ Is_Abstract_Type. Make sure these are called only when appropriate.
+ Add processing for pragma Unreferenced_Objects
+
+ * snames.h, snames.ads, snames.adb: Add entry for pragma
+ Compile_Time_Error
+ Add new standard name Minimum_Binder_Options for new gprmake
+ Add new standard names for gprmake: Archive_Suffix,
+ Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
+ Library_Support, Library_Version_Options,
+ Shared_Library_Minimum_Options,
+ Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
+ Change Name_Call to Name_uCall so that it cannot clash with a legal
+ subprogram name.
+ Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
+ Append C_Plus_Plus to convention identifiers as synonym for CPP
+ Add new standard names Stack and Builder_Switches
+ Add new standard names: Compiler_Minimum_Options, Global_Config_File,
+ Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
+ Run_Path_Option, Toolchain_Version.
+ Entry for pragma Unreferenced_Objects
+
+ * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
+ switches, without repetition of "eD". Make sure that last character of
+ -gnatep= switch is not taken as -gnat switch character.
+ Complete rewrite of circuit for handling saving compilation options
+ Occasioned by need to support dot switchs for -gnatw, but cleans up
+ things in general.
+ -gnatX does not affect Ada_Version
+ Include -gnatyA in -gnatg style switches
+
+ * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
+ warnings on return objects.
+ (Warn_On_Useless_Assignment): Exclude warnings on return objects
+ (Set_Dot_Warning_Switch): New procedure
+ (Check_References): Add missing case of test for
+ Has_Pragma_Unreferenced_Objects
+ (Output_Unreferenced_Messages): Implement effect of new pragma
+ Unreferenced_Objects, remove special casing of limited controlled
+ variables.
+
+2007-04-06 Vincent Celier <celier@adacore.com>
+
+ * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
+ the default project path, initially done during elaboration of the
+ package.
+ If the prefix returned by Sdefault is null, get the prefix from a call
+ to Executable_Prefix_Path.
+ (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
+ null.
+
+ * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
+ canonical directory name to open the directory from which files are
+ retrieved.
+ (Record_Other_Sources): Idem.
+ (Locate_Directory): Add the possibility to create automatically missing
+ directories when Setup_Projects is True.
+ Call Locate_Directory so that the directory will be created when
+ Setup_Projects is True, for object dir, library dir, library ALI dir,
+ library source copy dir and exec dir.
+
+ * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
+ versions of GNAT.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
+ Use First/Next_Component_Or_Discriminant
+ (Analyze_Record_Representation_Clause):
+ Use First/Next_Component_Or_Discriminant
+ (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
+ (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
+ definition if type is unconstrained.
+ (Adjust_Record_For_Reverse_Bit_Order): New procedure
+ (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type.
+ (Adjust_Record_For_Reverse_Bit_Order): New procedure
+
+ * repinfo.adb (List_Record_Info): Use First/
+ Next_Component_Or_Discriminant.
+
+ * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
+ New procedure.
+
+ * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
+ Include -gnatyA in default switches
+
+ * opt.ads: (Warn_On_Non_Local_Exception): New flag
+ (Warn_On_Reverse_Bit_Order): New flag
+ (Extensions_Allowed): Update the documentation.
+ (Warn_On_Questionable_Missing_Parens): Now on by default
+
+ * usage.adb: Add documentation of -gnatw.x/X switches
+ Document new -gnatyA style switch
+ -gnatq warnings are on by default
+
+2007-04-06 Ed Falis <falis@adacore.com>
+
+ * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
+ full word is no longer compared twice.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch10.adb (Install_Limited_Context_Clauses.
+ Expand_Limited_With_Clause): Use a new copy of selector name in the
+ call to Make_With_Clause. This fixes the tree structure for ASIS
+ purposes. Nothing is changed in the compiler behaviour.
+ (Process_Body_Clauses): Handle properly use clauses whose prefix is
+ a package renaming.
+ (Install_Limited_With_Clauses): Do not install non-limited view when it
+ is still incomplete.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
+ when capturing size information, instead of base type, which for a
+ formal array type will be the unconstrained type.
+ (Analyze_Formal_Object_Declaration): Add check for illegal default
+ expressions for a formal in object of a limited type.
+ (Instantiate_Object): Ditto.
+ (Check_Formal_Package_Instance): Skip entities that are formal objects,
+ because they were defaulted in the formal package and no check applies
+ to them.
+ (Check_Formal_Package_Instance): Extend conformance check to other
+ discrete types beyond Integer.
+ (Process_Default): Copy directly the unmatched formal. A generic copy
+ has already been performed in Analyze_Formal_Package.
+ (Analyze_Associations): If a formal subprogram has no match, check for
+ partial parametrization before looking for a default, to prevent
+ spurious errors.
+ (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
+ not set the instantiation environment before analyzing the actuals.
+ Fixes regression on 8515-003 with implementation of AI-133.
+ Set_Instance_Env checks whether the generic unit is a predefined
+ unit, in which case the instance must be analyzed with the latest Ada
+ mode. This setting must take place after analysis of the actuals,
+ because the actuals must be analyzed and frozen in the Ada mode extant
+ outside of the current instantiation.
+ (Save_Env, Restore_Env): Preserve and restore the configuration
+ parameters so that predefined units can be compiled in the proper Ada
+ mode.
+ (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
+ Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
+ and Is_Abstract_Type.
+ (Analyze_Formal_Package): For better error recovery, Add exception
+ handler to catch Instantion_Error, which can be raised in
+ Analyze_Associations
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
+ prefix type is a discriminated subtype of the type of the formal.
+ (Analyze_Allocator): Collect all coextensions regardless of the context.
+ Whether they can be allocated statically is determined in exp_ch4.
+ (Analyze_Selected_Component): If the prefix is a limited view and the
+ non-limited view is available, use the non-limited one.
+ (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
+ therefore illegal), suggest a qualified expression rather than a type
+ conversion, because a type conversion would be illegal in this context.
+ (Anayze_Allocator): Trace recursively all nested allocators so that all
+ coextensions are on the corresponding list for the root. Do no mark
+ coextensions if the root allocator is within a declaration for a stack-
+ allocated object, because the access discriminants will be allocated on
+ the stack as well.
+ (Analyze_Call): Remove restriction on calls to limited functions for the
+ cases of generic actuals for formal objects, defaults for formal objects
+ and defaults for record components.
+ (Analyze_Allocator): Before analysis, chain coextensions on the proper
+ element list. Their expansion is delayed until the enclosing allocator
+ is processed and its finalization list constructed.
+ (Try_Primitive_Operation): If the prefix is a concurrent type, looks
+ for an operation with the given name among the primitive operations of
+ the corresponding record type.
+ (Analyze_Selected_Component): If the prefix is a task type that
+ implements an interface, and there is no entry with the given name,
+ check whether there is another primitive operation (e.g. a function)
+ with that name.
+ (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
+ properly the indexing of a function call written in prefix form, where
+ the function returns an array type, and all parameters of the function
+ except the first have defaults.
+ (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
+ the original operands, rather than relocating them, for efficiency and
+ to work properly when an operand is overloaded.
+ (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
+ Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
+ (Analyze_Selected_Component): If the prefix is a private extension, only
+ scan the visible components, not those of the full view.
+ (Try_Primitive_Operation): If the operation is a procedure, collect all
+ possible interpretations, as for a function, because in the presence of
+ classwide parameters several primitive operations of the type can match
+ the given arguments.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
+ tag-indeterminate call to an abstract function, when the left-hand side
+ is not classwide.
+ (Analyze_Loop_Statement): Improve detection of infinite loops
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+
+ * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
+ out of Analyze_Package_Declaration, because processing must be applied
+ to package bodies as well, for deferred constants completed by pragmas.
+ (Analyze_Package_Declaration): When the package declaration being
+ analyzed does not require an explicit body, call Check_Completion.
+ (May_Need_Implicit_Body): An implicit body is required when a package
+ spec contains the declaration of a remote access-to-classwide type.
+ (Analyze_Package_Body): If the package contains RACWs, append the
+ pending subprogram bodies generated by exp_dist at the end of the body.
+ (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type.
+ (Preserve_Full_Attributes): The full entity list is not an attribute
+ that must be preserved from full to partial view.
+
+ * sem_dist.adb (Add_RAS_Dereference_TSS):
+ Change primitive name to _Call so it cannot clash with any legal
+ identifier, and be special-cased in Check_Completion.
+ Mark the full view of the designated type for the RACW associated with
+ a RAS as Comes_From_Source to get proper view switching when installing
+ private declarations.
+ Provite a placeholder nested package body along with the nested spec
+ to have a place for Append_RACW_Bodies to generate the calling stubs
+ and stream attributes.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * sem_ch8.adb (Has_Components): If the argument is an incomplete type
+ that is a limited view, check the non-limited view if available.
+ (Undefined): Refine error message for missing with of Text_IO
+ (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
+ to distinguish real missing with cases.
+ Fix format of all missing with messages
+ (Analyze_Subprogram_Renaming): Emit proper error message on illegal
+ renaming as body when renamed entity is abstract.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
+ predicate recursive, to handle complex expressions on literals whose
+ spurious ambiguity comes from the abstract interpretation of some
+ subexpression.
+ (Interface_Present_In_Ancestor): Add support to concurrent record
+ types.
+ (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
+ Is_Abstract_Subprogram and Is_Abstract_Type.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
+ dereference of a local object R created as a reference to another
+ object O, use the access level of O.
+ (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
+ rather than local Same_Formal_Type, to check whether protected operation
+ overrides an inherited one.
+ (Same_Formal_Type): New predicate, used when matching signatures of
+ overriding synchronized operations, to handle the case when a formal
+ has a type that is a generic actual.
+ (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
+ predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
+ (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
+ syntactic ambiguities involving indexing of function calls that return
+ arrays.
+ (Abstract_Interface_List): New subprogram that returns the list of
+ abstract interfaces associated with a concurrent type or a
+ concurrent record type.
+ (Interface_Present_In_Parent): New subprogram used to check if a
+ given type or some of its parents implement a given interface.
+ (Collect_Abstract_Interfaces): Add support for concurrent types
+ with interface types.
+ (Has_Abstract_Interfaces): Add support for concurrent types with
+ interface types.
+ (Is_Parent): New subprogram that determines whether E1 is a parent
+ of E2. For a concurrent type its parent is the first element of its
+ list of interface types; for other types this function provides the
+ same result than Is_Ancestor.
+ (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
+ (Collect_Synchronized_Interfaces): Removed because the subprogram
+ Collect_Abstract_Interfaces provides this functionality.
+ (Collect_Abstract_Interfaces): Minor update to give support to
+ concurrent types and thus avoid undesired code duplication.
+ (Get_Subprogram_Entity): Handle entry calls.
+ (May_Be_Lvalue): Include actuals that appear as in-out parameters in
+ entry calls.
+ (Enter_Name): Do not give -gnatwh hiding warning for record component
+ entities, they never result in hiding.
+
+2007-04-06 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
+ to chain nested components that are allocators for access discriminants
+ of the enclosing object.
+ Add N_Push and N_Pop nodes
+ New field Exception_Label added
+ (Local_Raise_Statements): New field in N_Exception_Handler_Node
+ (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
+ (Is_Coextension): New flag for allocators, to mark allocators that
+ correspond to access discriminants of dynamically allocated objects.
+ (N_Block_Statement): Document the fact that the corresponding entity
+ can be an E_Return_Statement.
+ (Is_Coextension): New flag for allocators.
+ Remove all code for DSP option
+
+ * sprint.ads, sprint.adb: Display basic information for class_wide
+ subtypes. Add handling of N_Push and N_Pop nodes
+
+2007-04-06 Arnaud Charlet <charlet@adacore.com>
+
+ * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
+ before propagating exception.
+
+2007-04-06 Olivier Hainque <hainque@adacore.com>
+
+ * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
+ an address always within the call instruction from a return address.
+
+2007-04-06 Olivier Hainque <hainque@adacore.com>
+ Eric Botcazou <botcazou@adacore.com>
+
+ * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
+ expression with a COMPOUND_EXPR including the call instead of emitting
+ the call directly here.
+ (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
+ high bound is constant and the slice is empty. Tidy.
+ (tree_transform, case N_Op_Not): Handle properly the case where the
+ operation applies to a private type whose full view is a modular type.
+ (Case_Statement_To_gnu): If an alternative is an E_Constant with an
+ Address_Clause, use the associated Expression as the GNAT tree
+ representing the choice value to ensure the corresponding GCC tree is
+ of the proper kind.
+ (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
+ instead of just the operands, as the base GCC stabilize_reference does.
+ <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
+ requested; otherwise fail.
+ (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
+
+2007-04-06 Thomas Quinot <quinot@adacore.com>
+
+ * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
+ implementation of UI_Div.
+ (UI_Div): Reimplement as a call to UI_Div_Rem.
+ (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
+ remainder, avoiding the cost of a multiplication and a subtraction.
+ (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
+ provides both quotient and remainder in a single computation.
+ (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
+ functions for uint.
+ (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
+ is undefined if the given n is not inversible.
+
+2007-04-06 Olivier Hainque <hainque@adacore.com>
+
+ * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
+ BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
+ opcodes.
+
+2007-04-06 Eric Botcazou <botcazou@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
+ when updating the contents of the old pointer to an unconstrained array.
+ (end_subprog_body): Set error_gnat_node to Empty.
+ (write_record_type_debug_info): Do not be unduly sparing with our bytes.
+ (unchecked_convert): For subtype to base type conversions, require that
+ the source be a subtype if it is an integer type.
+ (builtin_decls): New global, vector of available builtin functions.
+ (gnat_pushdecl): Add global builtin function declaration nodes to the
+ builtin_decls list.
+ (gnat_install_builtins): Adjust comments.
+ (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
+ calling gnat_pushdecl, so that it knows when it handed a builtin
+ function declaration node.
+ (builtin_decl_for): Search the builtin_decls list.
+
+2007-04-06 Eric Botcazou <botcazou@adacore.com>
+
+ * s-stchop-vxworks.adb:
+ (Stack_Check): Raise Storage_Error if the argument has wrapped around.
+
+2007-04-06 Robert Dewar <dewar@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+
+ * a-diroro.ads: Inserted the pragma Unimplemented_Unit
+
+ * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
+ of files
+ Add mention of -Sev (set initialize_scalars option from environment
+ variable at run time) in gnatbind usage message.
+
+ * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
+
+ * fname-uf.ads: Minor comment fix
+
+ * osint.ads: Change pragma Elaborate to Elaborate_All
+
+ * par-load.adb: Add documentation.
+
+ * sem_cat.ads, sem_cat.adb: Minor code reorganization
+
+ * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
+
+ * s-secsta.ads: Extra comments
+
+ * s-soflin.ads: Minor comment fixes
+
+ * s-stratt.ads (Block_Stream_Ops_OK): Removed.
+
+ * s-wchcon.ads: Minor comment addition
+
+ * treepr.adb: Minor change in message
+ (Print_Name,Print_Node): Make these debug printouts more robust: print
+ "no such..." instead of crashing on bad input.
+
+2007-03-30 Rafael Avila de Espindola <espindola@google.com>
+
+ * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
+ instead of gnat_signed_or_unsigned_type.
+ * utils.c (gnat_signed_or_unsigned_type): Remove.
+ * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
+ * gigi.h (gnat_signed_or_unsigned_type): Remove
+
+2007-03-09 Roger Sayle <roger@eyesopen.com>
+
+ * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
+ fold with the result of buildN.
+ * decl.c (gnat_to_gnu_entity): Likewise.
+ * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
+ * utils.c (finish_record_type, merge_sizes, max_size, convert):
+ Likewise.
+ * utils2.c (gnat_truthvalue_conversion, compare_arrays,
+ nonbinary_modular_operation, build_binary_op, build_unary_op,
+ build_cond_expr): Likewise.
+
+ * utils.c (convert): Use fold_build1 when casting values to void.
+ * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
+ fold_convert instead of convert when appropriate.
+
+2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Make-lang.in: Add install-pdf target as copied from
+ automake v1.10 rules.
+
+2007-02-28 Andreas Schwab <schwab@suse.de>
+
+ * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
+ $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
+ (doc/gnat-style.info): Likewise.
+
+2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * gnat-style.texi: Standardize title page.
+ * gnat_rm.texi: Likewise.
+ * gnat_ugn.texi: Likewise.
+
+2007-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (annotate_value): Adjust for refactoring of tree_map
+ hierarchy.
+
+2007-02-24 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (annotate_value): Adjust for refactoring of tree_map
+ hierarchy.
+
+2007-02-21 Ed Schonberg <schonberg@adacore.com>
+
+ PR ada/18819
+ * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
+ untagged derived type, add hidden components to keep discriminant
+ layout consistent, when a given discriminant of the derived type
+ constraints several discriminants of the parent type.
+
+2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+
+ * trans.c (call_to_gnu): Use build_call_list instead of build3 to
+ build the call expression.
+ (gnat_stabilize_reference_1): Handle tcc_vl_exp.
+ * utils.c (max_size) <tcc_exceptional>: Delete.
+ <tcc_vl_exp>: New case.
+ <tcc_expression>: Delete CALL_EXPR subcase.
+ (build_global_cdtor): Use build_call_nary instead of build3.
+ * utils2.c (build_call_1_expr): Likewise.
+ (build_call_2_expr): Likewise.
+ (build_call_0_expr): Likewise.
+ (build_call_alloc_dealloc): Likewise.
+
+2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * raise-gcc.c (get_region_description_for, get_call_site_action_for,
+ get_action_description_for): Replace _Unwind_Word with _uleb128_t
+ and _Unwind_SWord with _sleb128_t.
+
+2007-02-06 Paolo Bonzini <bonzini@gnu.org>
+
+ * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
+ * decl.c: Include gt-ada-decl.h.
+ (annotate_value_cache): New.
+ (annotate_value): Use it instead of TREE_COMPLEXITY.
+
+2007-02-03 Kazu Hirata <kazu@codesourcery.com>
+
+ * misc.c, utils2.c: Fix comment typos.
+
+2007-01-24 Roger Sayle <roger@eyesopen.com>
+
+ * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
+ TREE_CONSTANT_OVERFLOW.
+ (allocatable_size_p, annotate_value): Likewise.
+ * trans.c (gnat_to_gnu): Likewise.
+ * utils.c (unchecked_convert): Likewise.
+ * utils2.c (build_simple_component_ref): Likewise.
+
+2007-01-23 Richard Guenther <rguenther@suse.de>
+
+ PR bootstrap/30541
+ * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
+ (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
+ (gnatboot3): Likewise.
+ (GNATBIND): Do not define.
+ * Makefile.in (GNATBIND): Do not define.
+
+2007-01-08 Richard Guenther <rguenther@suse.de>
+
+ * cuintp.c (build_cst_from_int): Use built_int_cst_type.
+ * trans.c (gnat_to_gnu): Likewise.
+
+2006-12-07 Geoffrey Keating <geoffk@apple.com>
+
+ * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
+ * adaint.c: Likewise.
+
+2006-12-05 Aldy Hernandez <aldyh@redhat.com>
+
+ Merge from gimple-tuples-branch:
+ 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
+
+ * ada-tree.h (lang_tree_node): Handle gimple tuples.
+ * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
+ GIMPLE_MODIFY_STMT.
+
+2006-12-02 Kazu Hirata <kazu@codesourcery.com>
+
+ * Makefile.in, mingw32.h, trans.c: Fix comment typos.
+ * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
+ Fix typos.
+
+2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/27936
+ * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
+ if the initializer takes into account the padding.
+
+2006-11-11 Richard Guenther <rguenther@suse.de>
+
+ * trans.c (maybe_stabilize_reference): Remove handling of
+ FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
+
+2006-11-05 Arnaud Charlet <charlet@adacore.com>
+
+ PR ada/29707
+ * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
+ (To_Target_Priority): New function.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
+ a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
+ s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
+ a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
+ a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
+ a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
+ a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
+ a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
+ a-szbzha.adb: Minor reformatting. Fix header.
+
+ * a-numaux-x86.adb: Add parentheses for use of unary minus
+ * a-ngcefu.adb: Supply missing parentheses for unary minus
+ * a-ngcoty.adb: Add parens for use of unary minus
+ * a-ngelfu.adb: Add missing parens for unary minus
+ * a-tifiio.adb: Add parentheses for uses of unary minus
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
+ with multiplying operator.
+ (Expected_Type_Is_Any_Real): New function to determine from the Parent
+ pointer whether the context expects "any real type".
+ (Resolve_Arithmetic_Op): Do not give an error on calls to the
+ universal_fixed "*" and "/" operators when they are used in a context
+ that expects any real type. Also set the type of the node to
+ Universal_Real in this case, because downstream processing requires it
+ (mainly static expression evaluation).
+ Reword some continuation messages
+ Add some \\ sequences to continuation messages
+ (Resolve_Call): Refine infinite recursion case. The test has been
+ sharpened to eliminate some false positives.
+ Check for Current_Task usage now includes entry barrier, and is now a
+ warning, not an error.
+ (Resolve): If the call is ambiguous, indicate whether an interpretation
+ is an inherited operation.
+ (Check_Aggr): When resolving aggregates, skip associations with a box,
+ which are priori correct, and will be replaced by an actual default
+ expression in the course of expansion.
+ (Resolve_Type_Conversion): Add missing support for conversion from
+ a class-wide interface to a tagged type. Minor code cleanup.
+ (Valid_Tagged_Converion): Add support for abstact interface type
+ conversions.
+ (Resolve_Selected_Component): Call Generate_Reference here rather than
+ during analysis, and use May_Be_Lvalue to distinguish read/write.
+ (Valid_Array_Conversion): New procedure, abstracted from
+ Valid_Conversion, to incorporate accessibility checks for arrays of
+ anonymous access types.
+ (Valid_Conversion): For a conversion to a numeric type occurring in an
+ instance or inlined body, no need to check that the operand type is
+ numeric, since this has been checked during analysis of the template.
+ Remove legacy test for scope name Unchecked_Conversion.
+
+ * sem_res.ads: Minor reformatting
+
+ * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
+ (PE_Current_Task_In_Entry_Body): New exception code
+ (SE_Restriction_Violation): Removed, not used
+
+ * a-except.ads: Update comments.
+
+ * types.h, types.ads: Add definition for Validity_Check
+ (PE_Current_Task_In_Entry_Body): New exception code
+ (SE_Restriction_Violation): Removed, not used
+
+2006-10-31 Thomas Quinot <quinot@adacore.com>
+
+ * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
+ error status.
+
+2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
+ Jose Ruiz <ruiz@adacore.com>
+
+ * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
+ part of Ada.Calendar: all subprogram raise Unimplemented.
+ (Split_W_Offset): Temp function body, raising Unimplemented
+
+ * a-calend.ads, a-calend-vms.ads:
+ Add imported variable Invalid_TZ_Offset used to designate targets unable
+ to support time zones.
+ (Unimplemented): Temporary function raised by the body of new
+ subprograms below.
+ (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
+ unit provides handling of leap seconds and is used by the new Ada 2005
+ packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
+ (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
+ version returns an extra value which is the offset to UTC.
+
+ * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
+ (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
+ (Split_W_Offset): New function body.
+ (Time_Of): When a date is close to UNIX epoch, compute the time for
+ that date plus one day (that amount is later substracted after
+ executing mktime) so there are no problems with time zone adjustments.
+
+ * a-calend-mingw.adb: Remove Windows specific version no longer needed.
+
+ * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
+ a-catizo.ads, a-catizo.adb: New files.
+
+ * impunit.adb: Add new Ada 2005 entries
+
+ * sysdep.c: Add external variable __gnat_invalid_tz_offset.
+ Rename all occurences of "__gnat_localtime_r" to
+ "__gnat_localtime_tzoff".
+ (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
+ zone data and calculate the GMT offset.
+ (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
+ Use the field "tm_gmtoff" to extract the GMT offset.
+ (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
+ the external variable "timezone" to calculate the GMT offset.
+
+2006-10-31 Arnaud Charlet <charlet@adacore.com>
+ Jose Ruiz <ruiz@adacore.com>
+
+ * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
+ s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
+ s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
+ s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
+ System.Any_Priority to a POSIX priority on the target.
+
+ * system-linux-ia64.ads:
+ Extend range of Priority types on Linux to use the whole range made
+ available by the system.
+
+ * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
+ function maps from System.Any_Priority to a POSIX priority on the
+ target.
+ (PTHREAD_PRIO_PROTECT): Set real value.
+ (PTHREAD_PRIO_INHERIT): Now a function.
+ (SIGCPUFAIL): New signal.
+ (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
+ are documented as reserved by the OS.
+
+ * system-aix.ads: Use the full range of priorities provided by the
+ system on AIX.
+
+ * s-taprop-posix.adb: Call new function To_Target_Priority.
+ (Set_Priority): Take into account Task_Dispatching_Policy and
+ Priority_Specific_Dispatching pragmas when determining if Round Robin
+ must be used for scheduling the task.
+
+ * system-linux-x86_64.ads, system-linux-x86.ads,
+ system-linux-ppc.ads: Extend range of Priority types on Linux to use
+ the whole range made available by the system.
+
+ * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
+ s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
+ s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
+ when deallocating the TCB in order to avoid potential references to
+ deallocated data.
+ (Set_Priority): Take into account Task_Dispatching_Policy and
+ Priority_Specific_Dispatching pragmas when determining if Round Robin
+ or FIFO within priorities must be used for scheduling the task.
+
+ * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
+ the Thread field (to be used internally by the run-time system) and the
+ kernel-level task id in the LWP field (to be used by the debugger).
+ (Create_Task): Reorganize to unify the calls to taskSpawn into a single
+ instance, and propagate the current task options to the spawned task.
+ (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
+ (Initialize): Set Round Robin dispatching when the corresponding pragma
+ is in effect.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
+ system-linux-hppa.ads, system-hpux-ia64.ads,
+ system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
+ system-vxworks-sparcv9.ads, system-solaris-x86.ads,
+ system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
+ system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
+ system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
+ system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
+ system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
+ Default_Bit_Order) to kill constant condition warnings for references
+ to this switch.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
+ mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
+ mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
+ Ext_To, when building the library file name
+
+ * mlib-tgt-vxworks.adb: ditto.
+ (Get_Target_Suffix): Add support for x86 targets.
+
+ * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
+
+ * mlib-tgt-darwin.adb:
+ Use Append_To, instead of Ext_To, when building the library file name
+ (Flat_Namespace): New global variable.
+ (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
+ (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
+ (Link_Shared_Libgcc): Delete.
+ (Build_Dynamic_Library): Adjust for above changes.
+ Use Opt package.
+ (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
+
+2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
+
+ * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
+ (Initialize): Add type conversions required by above change.
+
+2006-10-31 Jose Ruiz <ruiz@adacore.com>
+
+ * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
+ (getpid): New body for this function that uses the underlying taskIdSelf
+ function for VxWorks 5 and VxWorks 6 in kernel mode.
+ (unsigned_int): New type, modular to allow logical bit operations.
+ (taskOptionsGet): New imported function.
+
+ * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
+ field to be compliant with the type used by the corresponding operating
+ system primitive.
+
+2006-10-31 Pascal Obry <obry@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+ Vincent Celier <celier@adacore.com>
+
+ * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
+ ASCII version of the registry API. This is needed as the GNAT runtime
+ is now UNICODE by default.
+ Include version.h.
+ (get_gcc_version): Do not hardcode the return value.
+ (__gnat_file_time_name): On Windows properly set the default returned
+ value to -1 which corresponds to Invalid_Time.
+ (__gnat_fopen): New routine. A simple wrapper on all plateforms
+ except on Windows where it does conversion for unicode support.
+ (__gnat_freopen): Idem.
+ (__gnat_locate_exec_on_path): If environment variable PATH does not
+ exist, return a NULL pointer
+
+ * adaint.h: (__gnat_fopen): Declare.
+ (__gnat_freopen): Likewise.
+
+ * mingw32.h (_tfreopen): Define this macro here for older MingW
+ version.
+ Activate the unicode support on platforms using a MingW runtime
+ version 3.9 or newer.
+
+ * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
+ This is needed for proper unicode support on Windows.
+ (freopen): Idem.
+
+2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
+ Nicolas Setton <setton@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * gigi.h: (tree_code_for_record_type): Declare.
+ (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
+ (get_global_renaming_pointers): Rename to
+ invalidate_global_renaming_pointers.
+ (static_ctors): Delete.
+ (static_dtors): Likewise.
+ (gnat_write_global_declarations): Declare.
+ (create_var_decl): Adjust descriptive comment to indicate that the
+ subprogram may return a CONST_DECL node.
+ (create_true_var_decl): Declare new function, similar to
+ create_var_decl but forcing the creation of a VAR_DECL node.
+ (get_global_renaming_pointers): Declare.
+ (add_global_renaming_pointer): Likewise.
+
+ * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
+
+ * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
+ tree before setting TREE_ADDRESSABLE for by-reference return mechanism
+ processing.
+ (gnat_to_gnu_entity): Remove From_With_Type from computation for
+ imported_p.
+ <E_Access_Type>: Use the Non_Limited_View as the full view of the
+ designated type if the pointer comes from a limited_with clause. Make
+ incomplete designated type if it is in the main unit and has a freeze
+ node.
+ <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
+ Underlying_Full_View similarly. Return earlier if the full view already
+ has an associated tree.
+ (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
+ (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
+ (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
+ reference type built for objects with an address clause.
+ Use create_true_var_decl with const_flag set for
+ DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
+ TREE_READONLY set.
+ (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
+ for Character and Wide_Character types. This info is read by the
+ dwarf-2 writer, and is needed to be able to use the command "ptype
+ character" in the debugger.
+ (gnat_to_gnu_entity): When generating a type representing
+ a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
+ so that debug writers can distinguish it from ordinary integers.
+ (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
+ addition to TREE_READONLY to assert the constantness of variables for
+ elaboration purposes.
+ (gnat_to_gnu_entity, subprogram cases): Change loops on formal
+ parameters to call new Einfo function First_Formal_With_Extras.
+ (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
+ protected type with its corresponding discriminant, to obtain a usable
+ declaration
+ (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
+ for a multiple elaboration of the "equivalent" type.
+ (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
+ into record_global_renaming_pointer.
+ (gnat_to_gnu_entity) <E_Array_Type>: Do not force
+ TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
+ <E_Array_Subtype>: Likewise.
+ (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
+ incomplete subtypes and incomplete subtypes of incomplete types visible
+ through a limited with clause.
+ (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
+ the base index type for the maximum size of the array only if they are
+ constant.
+ (gnat_to_gnu_entity, renaming object case): Do not wrap up the
+ expression into a SAVE_EXPR if stabilization failed.
+
+ * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
+ a result decl into DECL_BY_REFERENCE on this decl, now what is expected
+ by lower level compilation passes.
+ (gnat_genericize): New function, lowering a function body to GENERIC.
+ Turn the type of RESULT_DECL into a real reference type if the decl
+ has been marked DECL_BY_REFERENCE, and adjust references to the latter
+ accordingly.
+ (gnat_genericize_r): New function. Tree walking callback for
+ gnat_genericize.
+ (convert_from_reference, is_byref_result): New functions. Helpers for
+ gnat_genericize_r.
+ (create_type_decl): Call gnat_pushdecl before calling
+ rest_of_decl_compilation, to make sure that field TYPE_NAME of
+ type_decl is properly set before calling the debug information writers.
+ (write_record_type_debug_info): The heuristics which compute the
+ alignment of a field in a variant record might not be accurate. Add a
+ safety test to make sure no alignment is set to a smaller value than
+ the alignment of the field type.
+ (make_dummy_type): Use the Non_Limited_View as the underlying type if
+ the type comes from a limited_with clause. Do not loop on the full view.
+ (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
+ (dummy_node_table): New global variable, moved from decl.c.
+ (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
+ (save_gnu_tree): Use above macros.
+ (get_gnu_tree): Likewise.
+ (present_gnu_tree): Likewise.
+ (init_dummy_type): New function, moved from decl.c. Use above macros.
+ (make_dummy_type): Likewise.
+ (tree_code_for_record_type): New function extracted from make_dummy_type
+ (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
+ (static_ctors): Change it to a vector, make static.
+ (static_dtors): Likewise.
+ (end_subprog_body): Adjust for above change.
+ (build_global_cdtor): Moved from trans.c.
+ (gnat_write_global_declarations): Emit global constructor and
+ destructor, and call cgraph_optimize before emitting debug info for
+ global declarations.
+ (global_decls): New global variable.
+ (gnat_pushdecl): Store the global declarations in global_decls, for
+ later use.
+ (gnat_write_global_declarations): Emit debug information for global
+ declarations.
+ (create_var_decl_1): Former create_var_decl, with an extra argument to
+ state whether the creation of a CONST_DECL is allowed.
+ (create_var_decl): Behavior unchanged. Now a wrapper around
+ create_var_decl_1 allowing CONST_DECL creation.
+ (create_true_var_decl): New function, similar to create_var_decl but
+ forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
+ (create_field_decl): Do not always mark the field as addressable
+ if its type is an aggregate.
+ (global_renaming_pointers): New static variable.
+ (add_global_renaming_pointer): New function.
+ (get_global_renaming_pointers): Likewise.
+
+ * misc.c (gnat_dwarf_name): New function.
+ (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
+ (gnat_post_options): Add comment about structural alias analysis.
+ (gnat_parse_file): Do not call cgraph_optimize here.
+ (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
+
+ * trans.c (process_freeze_entity): Don't abort if we already have a
+ non dummy GCC tree for a Concurrent_Record_Type, as it might
+ legitimately have been elaborated while processing the associated
+ Concurrent_Type prior to this explicit freeze node.
+ (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
+ exception handler volatile if it is of variable size.
+ (process_type): Remove bypass for types coming from a limited_with
+ clause.
+ (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
+ actual, convert the corresponding gnu_actual to the real destination
+ type when necessary.
+ (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
+ originally TREE_READONLY but whose elaboration cannot be performed
+ statically.
+ Part of fix for F504-021.
+ (tree_transform, subprogram cases): Change loops on formal parameters to
+ call new Einfo function First_Formal_With_Extras.
+ (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
+ stemming from type conversion for the lhs.
+ (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
+ number of bits per unit for components of records.
+ (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
+ (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
+ with At_End_Proc after the SJLJ EH cleanup.
+ (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
+ compilation unit.
+ (elaborate_all_entities): Do not retest type_annotate_only.
+ (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
+ result type of an abstract subprogram, which may be an itype associated
+ with an anonymous access result (related to AI-318-02).
+ (build_global_cdtor): Move to utils.c.
+ (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
+ this choice is not a null tree nor an integer constant.
+ (gigi): Run unshare_save_expr via walk_tree_without_duplicates
+ on the body of elaboration routines instead of mark_unvisited.
+ (add_stmt): Do not mark the tree.
+ (add_decl_expr): Tweak comment.
+ (mark_unvisited): Delete.
+ (unshare_save_expr): New static function.
+ (call_to_gnu): Issue an error when making a temporary around a
+ procedure call because of non-addressable actual parameter if the
+ type of the formal is by_reference.
+ (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
+ after building the elaboration routine.
+
+2006-10-31 Bob Duff <duff@adacore.com>
+
+ * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
+ as finalization-started, so we can raise Program_Error on 'new'.
+
+ * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
+ collection has already started.
+
+ * s-finimp.ads (Collection_Finalization_Started): Added new special
+ flag value for indicating that a collection's finalization has started.
+
+ * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
+ create a task whose master has already waited for dependent tasks.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * lib.adb, lib.ads: (In_Predefined_Unit): New functions
+
+ * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
+ a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
+ a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
+ a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
+ a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
+ a-except-2005.ads: Add pragma Preelaborable_Warning
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Jose Ruiz <ruiz@adacore.com>
+
+ * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
+
+ * ali.adb (Get_Name): Properly handle scanning of wide character names
+ encoded with brackets notation.
+ (Known_ALI_Lines): Add S lines to this list.
+ (Scan_ALI): Acquire S (priority specific dispatching) lines.
+ New flag Elaborate_All_Desirable in unit table
+
+ * ali.ads (Priority_Specific_Dispatching): Add this range of
+ identifiers to be used for Priority_Specific_Dispatching table entries.
+ (ALIs_Record): Add First_Specific_Dispatching and
+ Last_Specific_Dispatching that point to the first and last entries
+ respectively in the priority specific dispatching table for this unit.
+ (Specific_Dispatching): Add this table for storing each S (priority
+ specific dispatching) line encountered in the input ALI file.
+ New flag Elaborate_All_Desirable in unit table
+
+ * bcheck.adb: (Check_Configuration_Consistency): Add call to
+ Check_Consistent_Dispatching_Policy.
+ (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
+ verifying that the use of Priority_Specific_Dispatching,
+ Task_Dispatching_Policy, and Locking_Policy is consistent across the
+ partition.
+
+ * bindgen.adb: (Public_Version_Warning): function removed.
+ (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
+ required information from ALI files in order to initialize the table
+ containing the specific dispatching policy.
+ (Gen_Adainit_Ada): Generate the variables required for priority specific
+ dispatching entries (__gl_priority_specific_dispatching and
+ __gl_num_specific_dispatching).
+ (Gen_Adainit_C): Generate the variables required for priority specific
+ dispatching entries (__gl_priority_specific_dispatching and
+ __gl_num_specific_dispatching).
+ (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
+ pragma entries.
+ (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
+ (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
+ (Tab_To): Removed.
+ (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
+ a call to gnat_set_globals.
+ Generate a string containing settings from
+ Priority_Specific_Dispatching pragma entries.
+ (Gen_Object_Files_Options): Do not include the runtime libraries when
+ pragma No_Run_Time is specified.
+
+ * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
+ consistency with s-intman-posix.adb.
+ (__gnat_error_handler, case FreeBSD): Account for the fact that the
+ handler is installed with SA_SIGINFO.
+ (__gnat_adjust_context_for_raise, FreeBSD case): New function for
+ FreeBSD ZCX support, copied from Linux version.
+ Add MaRTE-specific definitions for the linux target. Redefine sigaction,
+ sigfillset, and sigemptyset so the routines defined by MaRTE.
+ (__gl_priority_specific_dispatching): Add this variable that stores the
+ string containing priority specific dispatching policies in the
+ partition.
+ (__gl_num_specific_dispatching): Add this variable that indicates the
+ highest priority for which a priority specific dispatching pragma
+ applies.
+ (__gnat_get_specific_dispatching): Add this routine that returns the
+ priority specific dispatching policy, as set by a
+ Priority_Specific_Dispatching pragma appearing anywhere in the current
+ partition. The input argument is the priority number, and the result
+ is the upper case first character of the policy name.
+ (__gnat_set_globals): Now a dummy function.
+ (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
+ mechargs instead of sigargs, as the latter can be retrieved from the
+ former and sigargs is not what we want on ia64.
+ (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
+ mechargs argument.
+ (__gnat_adjust_context_for_raise, ia64-vms): New function.
+ (tasking_error): Remove unused symbol.
+ (_abort_signal): Move this symbol to the IRIX specific part since this
+ is the only target that uses this definition.
+ (Check_Abort_Status): Move this symbol to the IRIX specific part since
+ this is the only target that uses this definition.
+ (Lock_Task): Remove unused symbol.
+ (Unlock_Task): Remove unused symbol.
+
+ * lib-writ.adb (Write_ALI): Output new S lines for
+ Priority_Specific_Dispatching pragmas.
+ Implement new flag BD for elaborate body desirable
+
+ * lib-writ.ads: Document S lines for Priority Specific Dispatching.
+ (Specific_Dispatching): Add this table for storing the entries
+ corresponding to Priority_Specific_Dispatching pragmas.
+ Document new BD flag for elaborate body desirable
+
+ * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
+ of known pragmas.
+
+2006-10-31 Javier Miranda <miranda@adacore.com>
+
+ * a-tags.ads, a-tags.adb:
+ (Predefined_DT): New function that improves readability of the code.
+ (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
+ Inherit_DT): Use the new function Predefined_DT to improve code
+ readability.
+ (Register_Interface_Tag): Update assertion.
+ (Set_Interface_Table): Update assertion.
+ (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
+ determining progenitor interfaces in Tags.
+ (Inherit_CPP_DT): New subprogram.
+
+ * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
+ analysis of the thunk code.
+ (Expand_Interface_Conversion): Handle run-time conversion of
+ access to class wide types.
+ (Expand_Dispatching_Call): When generating the profile for the
+ subprogram itype for a dispatching operation, properly terminate the
+ formal parameters chaind list (set the Next_Entity of the last formal
+ to Empty).
+ (Collect_All_Interfaces): Removed. This routine has been moved to
+ sem_util and renamed as Collect_All_Abstract_Interfaces.
+ (Set_All_DT_Position): Hidden entities associated with abstract
+ interface primitives are not taken into account in the check for
+ 3.9.3(10); this check is done with the aliased entity.
+ (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
+ interfacing with CPP by default.
+ (Expand_Interface_Conversion): Add missing support for static conversion
+ from an interface to a tagged type.
+ (Collect_All_Interfaces): Add new out formal containing the list of
+ abstract interface types to cleanup the subprogram Make_DT.
+ (Make_DT): Update the code to generate the table of interfaces in case
+ of abstract interface types.
+ (Is_Predefined_Dispatching_Alias): New function that returns true if
+ a primitive is not a predefined dispatching primitive but it is an
+ alias of a predefined dispatching primitive.
+ (Make_DT): If the ancestor of the type is a CPP_Class and we are
+ compiling under full ABI compatibility mode we avoid the generation of
+ calls to run-time services that fill the dispatch tables because under
+ this mode we currently inherit the dispatch tables in the IP subprogram.
+ (Write_DT): Emit an "is null" indication for a null procedure primitive.
+ (Expand_Interface_Conversion): Use an address as the type of the formal
+ of the internally built function that handles the case in which the
+ target type is an access type.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * bindusg.ads, bindusg.adb:
+ Change to package and rename procedure as Display, which
+ now ensures that it only outputs usage information once.
+
+2006-10-31 Jose Ruiz <ruiz@adacore.com>
+
+ * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
+ using RTPs.
+
+ * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
+ when using RTPs.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * treepr.adb: Use new subtype N_Membership_Test
+
+ * checks.ads, checks.adb: Add definition for Validity_Check
+ (Range_Or_Validity_Checks_Suppressed): New function
+ (Ensure_Valid): Test Validity_Check suppressed
+ (Insert_Valid_Check): Test Validity_Check suppressed
+ (Insert_Valid_Check): Preserve Do_Range_Check flag
+ (Validity_Check_Range): New procedure
+ (Expr_Known_Valid): Result of membership test is always valid
+ (Selected_Range_Checks): Range checks cannot be applied to discriminants
+ by themselves. Disabling those checks must also be done for task types,
+ where discriminants may be used for the bounds of entry families.
+ (Apply_Address_Clause_Check): Remove side-effects if address expression
+ is non-static and is not the name of a declared constant.
+ (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
+ Code cleanup and new error messages.
+ (Enable_Range_Check): Test for some cases of suppressed checks
+ (Generate_Index_Checks): Suppress index checks if index checks are
+ suppressed for array object or array type.
+ (Apply_Selected_Length_Checks): Give warning for compile-time detected
+ length check failure, even if checks are off.
+ (Ensure_Valid): Do not generate a check on an indexed component whose
+ prefix is a packed boolean array.
+ * checks.adb: (Alignment_Checks_Suppressed): New function
+ (Apply_Address_Clause_Check): New procedure, this is a completely
+ rewritten replacement for Apply_Alignment_Check
+ (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
+ we request a discriminal value only in case of discriminants.
+ (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
+ assignments where the target subtype is unconstrained and the target
+ object is a parameter or dereference (other aliased cases are known
+ to be unconstrained).
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
+ prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
+ vms_conv.adb: Fix bad table increment values (much too small)
+
+ * table.adb (Realloc): Make sure we get at least some new elements
+ Defends against silly small values for table increment
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
+ entities. Move other fields around to make this possible
+ (Is_Derived_Type): Add missing call to Is_Type.
+ (Extra_Formals): New function for subprograms, entries, subprogram
+ types.
+ (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
+ (First_Formal_With_Extras): New function for subprogs, entries, subp
+ types.
+ (Write_Field28_Name): New procedure for node display of "Extra_Formals".
+ Add node information for E_Return_Statement.
+ (Elaborate_Body_Desirable): New flag
+ (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
+ to be Is_Inherently_Limited_Type, because return-by-reference has
+ no meaning in Ada 2005.
+ (E_Return_Statement): New entity kind.
+ (Return_Applies_To): Field of E_Return_Statement.
+ (Is_Return_Object): New flag in object entities.
+ (Is_Dynamic_Scope): Make it True for E_Return_Statement.
+ (Must_Have_Preelab_Init): New flag
+ (Known_To_Have_Preelab_Init): New flag
+ (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
+ (Is_Visible_Formal): New flag on entities in formal packages.
+ (Low_Bound_Known): New flag
+ (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
+ Incomplete_Kind.
+ (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
+ output when Id is an incomplete subtype.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
+ Avoid abbreviation Creat
+ (Finalize): List all sources in extended mail source if -gnatl
+ switch is active.
+ Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
+ (Finalize): Implement new -gnatl=xxx switch to output listing to file
+ (Set_Specific_Warning_On): New procedure
+ (Set_Specific_Warning_Off): New procedure
+ Add implementation of new insertion \\
+ (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
+ (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
+ types.
+ (Error_Msg_Internal): Make sure that we set Last_Killed to
+ True when a message from another package is suppressed.
+ Implement insertion character ~ (insert string)
+ (First_Node): Minor adjustments to get better placement.
+
+ * frontend.adb:
+ Implement new -gnatl=xxx switch to output listing to file
+
+ * gnat1drv.adb:
+ Implement new -gnatl=xxx switch to output listing to file
+
+ * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
+ (Commands_To_Stdout): New flag
+ Implement new -gnatl=xxx switch to output listing to file
+ New switch Dump_Source_Text
+ (Warn_On_Deleted_Code): New warning flag for -gnatwt
+ Define Error_Msg_Line_Length
+ (Warn_On_Assumed_Low_Bound): New switch
+
+ * osint.ads, osint.adb
+ (Normalize_Directory_Name): Fix bug.
+ Implement new -gnatl=xxx switch to output listing to file
+ (Concat): Removed, replaced by real concatenation
+ Make use of concatenation now allowed in compiler
+ (Executable_Prefix.Get_Install_Dir): First get the full path, so that
+ we find the 'lib' or 'bin' directory even when the tool has been
+ invoked with a relative path.
+ (Executable_Name): New function taking string parameters.
+
+ * osint-c.ads, osint-c.adb:
+ Implement new -gnatl=xxx switch to output listing to file
+
+ * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
+
+ * switch-c.adb:
+ Implement new -gnatl=xxx switch to output listing to file
+ Recognize new -gnatL switch
+ (no longer keep in old warning about old style usage)
+ Use concatenation to simplify code
+ Recognize -gnatjnn switch
+ (Scan_Front_End_Switches): Clean up handling of -gnatW
+ (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
+ (Set_Specific_Warning_Off): New procedure
+ (Warning_Specifically_Suppressed): New function
+ (Validate_Specific_Warnings): New procedure
+ (Output_Msg_Text): Complete rewrite to support -gnatjnn
+
+ * err_vars.ads: Implement insertion character ~ (insert string)
+
+2006-10-31 Bob Duff <duff@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
+ the parent part is a build-in-place function call, generate assignments.
+ (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
+ are build-in-place function calls.
+ (Replace_Self_Reference): New subsidiary of
+ Make_OK_Assignment_Statement, to replace an access attribute that is a
+ self-reference into an access to the appropriate component of the
+ target object. Generalizes previous mechanism to handle self-references
+ nested at any level.
+ (Is_Self_Referential_Init): Remove, not needed.
+ (Is_Self_Referential_Init): New predicate to simplify handling of self
+ referential components in record aggregates.
+ (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
+ check for presence of entity before checking for self-reference.
+ (Has_Default_Init_Comps): Return True if a component association is a
+ self-reference to the enclosing type, which can only come from a
+ default initialization.
+ (Make_OK_Assignment_Statement): If the expression is of the form
+ Typ'Acc, where Acc is an access attribute, the expression comes from a
+ default initialized self-referential component.
+ (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
+ that has been derived from several abstract interfaces we must also
+ initialize the tags of the secondary dispatch tables.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * exp_attr.adb:
+ (Expand_Access_To_Protected_Op): If the context indicates that an access
+ to a local operation may be transfered outside of the object, create an
+ access to the wrapper operation that must be used in an external call.
+ (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
+ target, pass the Valid attribute applied to a floating-point prefix on
+ to the back end without expansion.
+ (Storage_Size): Use the new run-time function Storage_Size to retrieve
+ the allocated storage when it is specified by a per-object expression.
+ (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
+ Nothing to do here, the attribute has been rewritten during semantic
+ analysis.
+ (Expand_Attribute_Reference): Handle expansion of the new Priority
+ attribute
+ (Find_Fat_Info): Handle case of universal real
+ (Expand_Access_To_Protected_Op): Fix use of access to protected
+ subprogram from inside the body of a protected entry.
+ (Expand_Access_To_Protected_Op): Common procedure for the expansion of
+ 'Access and 'Unrestricted_Access, to transform the attribute reference
+ into a fat pointer.
+ (Is_Constrained_Aliased_View): New predicate to help determine whether a
+ subcomponent's enclosing variable is aliased with a constrained subtype.
+ (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
+ test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
+ an aliased prefix must be known to be constrained in order to use True
+ for the attribute value, and now it's possible for some aliased views
+ to be unconstrained.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
+ (Expand_Entity_Reference): Correct error of not handling subprogram
+ formals in current_value processing.
+
+2006-10-31 Javier Miranda <miranda@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
+ register in the final list objects containing class-wide interfaces;
+ otherwise we incorrectly register the tag of the interface in the final
+ list.
+ (Make_Controlling_Function_Wrappers): Add missing barrier to do not
+ generate the wrapper if the parent primitive is abstract. This is
+ required to report the correct error message.
+ (Expand_N_Subtype_Indication): Do validity checks on range
+ (Clean_Task_Names): If an initialization procedure includes a call to
+ initialize a task (sub)component, indicate that the procedure will use
+ the secondary stack.
+ (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
+ compatibility for interfacing with CPP by default.
+ (Expand_N_Object_Declaration): Only build an Adjust call when the
+ object's type is a nonlimited controlled type.
+ * exp_ch3.adb: Add with and use of Exp_Ch6.
+ (Expand_N_Object_Declaration): Check for object initialization that is a
+ call to build-in-place function and apply Make_Build_In_Place_Call_In_
+ Object_Declaration to the call.
+ (Freeze_Type): When the designated type of an RACW was not frozen at the
+ point where the RACW was declared, validate the primitive operations
+ with respect to E.2.2(14) when it finally is frozen.
+ (Build_Initialization_Call,Expand_Record_Controller): Rename
+ Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
+ return-by-reference has no meaning in Ada 2005.
+ (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
+ to register tag of the immediate ancestor interfaces in the
+ run-time structure.
+ (Init_Secondary_Tags): Moved to the specification to allow the
+ initialization of extension aggregates with abstract interfaces.
+ (Build_Master_Renaming): Make public, for use by function declarations
+ whose return type is an anonymous access type.
+ (Freeze_Record_Type): Replace call to Insert_List_Before by call to
+ Insert_List_Before_And_Analyze after the generation of the specs
+ associated with null procedures.
+ (Expand_Tagged_Root): Update documentation in its specification.
+ (Init_Secondary_Tags): Update documentation.
+ (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
+ tibility mode and the immediate ancestor is a CPP_Pragma tagged type
+ then generate code to inherit the contents of the dispatch table
+ directly from the ancestor.
+ (Expand_Record_Controller): Insert controller component after tags of
+ implemented interfaces.
+ (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
+ create null procedure overridings when null procedures are inherited
+ from interfaces.
+ (Make_Null_Procedure_Specs): New procedure to generate null procedure
+ declarations for overriding null primitives inherited from interfaces.
+ (Is_Null_Interface_Procedure): New function in
+ Make_Null_Procedure_Specs.
+ (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
+ immediate ancestor of a tagged type is an abstract interface type we
+ must generate the specification of the predefined primitives associated
+ with controlled types (because the dispatch table of the ancestor is
+ null and hence these entries cannot be inherited). This is required to
+ elaborate well the dispatch table.
+
+2006-10-31 Javier Miranda <miranda@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
+ conversion.
+ (Expand_N_In): Do validity checks on range
+ (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
+ (Expand_N_Allocator): For "new T", if the object is constrained by
+ discriminant defaults, allocate the right amount of memory, rather than
+ the maximum for type T.
+ (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
+ when the allocator is initialized by a build-in-place call, since the
+ allocator is already rewritten as a reference to the function result,
+ and this prevents an unwanted duplication of the function call.
+ Add with and use of Exp_Ch6.
+ (Expand_Allocator_Expresssion): Check for an allocator whose expression
+ is a call to build-in-place function and apply
+ Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
+ untagged designated types).
+ (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
+ optimization if source or target is biased.
+ (Expand_N_Allocator): Add comments for case of an allocator within a
+ function that returns an anonymous access type designating tasks.
+ (Expand_N_Allocator): apply discriminant checks for access
+ discriminants of anonymous access types (AI-402, AI-416)
+
+2006-10-31 Bob Duff <duff@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
+
+ * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
+ (Expand_N_Assignment_Statement): Call
+ Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
+ build-in-place function call. Currently, this can happen only for
+ assignments that come from aggregates.
+ Add -gnatd.l --Use Ada 95 semantics for limited function returns,
+ in order to alleviate the upward compatibility introduced by AI-318.
+ (Expand_N_Extended_Return_Statement): Add support for handling the
+ return object as a build-in-place result.
+ (Expand_Non_Function_Return): Implement simple return statements nested
+ within an extended return.
+ (Enable_New_Return_Processing): Turn on the new processing of return
+ statements.
+ (Expand_Non_Function_Return): For a return within an extended return,
+ don't raise Program_Error, because Sem_Ch6 now gives a warning.
+ (Expand_N_Extended_Return_Statement): Implement AI-318
+ (Expand_Simple_Function_Return): Ditto.
+ (Expand_N_If_Statement): Handle new -gnatwt warning
+ (Expand_N_Case_Statement): Handle new -gnatwt warning
+ (Expand_N_Assignment): Handle assignment to the Priority attribute of
+ a protected object.
+ (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
+ validity checking of assignments to elementary record components.
+ (Expand_N_Return_Statement): return Class Wide types on the secondary
+ stack independantly of their controlled status since with HIE runtimes,
+ class wide types are not potentially controlled anymore.
+
+ * expander.adb (Expand): Add case for new N_Extended_Return_Statement
+ node kind.
+
+ * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
+ Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
+ it expects a block, procedure, or task. The return statement will get
+ turned into a block, and Expand_Cleanup_Actions will happen then.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
+ capability.
+ (Expand_Inlined_Call): Tagged types are by-reference types, and
+ therefore should be replaced by a renaming declaration in the expanded
+ body, as is done for limited types.
+ (Expand_Call): If this is a call to a function with dispatching access
+ result, propagate tag from context.
+ (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
+ CPP by default.
+ (Make_Build_In_Place_Call_In_Assignment): New procedure to do
+ build-in-place when the right-hand side of an assignment is a
+ build-in-place function call.
+ (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
+ of the explicit dereference of the allocator to the result subtype of
+ the build-in-place function. This is needed to satisfy type checking
+ in cases where the caller's return object is created by an allocator for
+ a class-wide access type and the type named in the allocator is a
+ specific type.
+ (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
+ conversion of the reference to the declared object to the result subtype
+ of the build-in-place function. This is needed to satisfy type checking
+ in cases where the declared object has a class-wide type. Also, in the
+ class-wide case, change the type of the object entity to the specific
+ result subtype of the function, to avoid passing a class-wide object
+ without explicit initialization to the back end.
+ (Register_Interface_DT_Entry): Moved outside the body of
+ Freeze_Subprogram because this routine is now public; it is called from
+ Check_Dispatching_Overriding to handle late overriding of abstract
+ interface primitives.
+ (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
+ adding an implicit access actual on a call to a build-in-place function.
+ (Expand_Actuals): Test for an actual parameter that is a call to a
+ build-in-place function and apply
+ Make_Build_In_Place_Call_In_Anonymous_Context to the call.
+ (Is_Build_In_Place_Function): New function to determine whether an
+ entity is a function whose calls should be handled as build-in-place.
+ (Is_Build_In_Place_Function_Call): New function to determine whether an
+ expression is a function call that should handled as build-in-place.
+ (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
+ calls to build-in-place functions as the initialization of an allocator.
+ (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
+ handling calls to build-in-place functions in contexts that do not
+ involve init of a separate object (for example, actuals of subprogram
+ calls).
+ (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
+ handling calls to build-in-place functions as the initialization of an
+ object declaration.
+ (Detect_Infinite_Recursion): Add explicit parameter Process to
+ instantiation of Traverse_Body to avoid unreferenced warning.
+ (Check_Overriding_Inherited_Interfaces): Removed.
+ (Register_Interface_DT_Entry): Code cleanup.
+ (Register_Predefined_DT_Entry): Code cleanup.
+ (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
+ inlined statements if within a transient scope.
+ (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
+ formal parameters with occurrences of actuals in inlined body, establish
+ visibility on the proper view of the actual's subtype for the body's
+ context.
+ (Freeze_Subprogram): Do nothing if we are compiling under full ABI
+ compatibility mode and we have an imported CPP subprogram because
+ for now we assume that imported CPP primitives correspond with
+ objects whose constructor is in the CPP side (and therefore we
+ don't need to generate code to register them in the dispatch table).
+ (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
+ aligned selected component.
+ (Add_Call_By_Copy_Node): Add missing code to handle the case in which
+ the actual of an in-mode parameter is a type conversion.
+ (Expand_Actuals): If the call does not come from source and the actual
+ is potentially misaligned, let gigi handle it rather than rejecting the
+ (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
+ Class Wide types as returning by reference independantly of their
+ controlled status since with HIE runtimes class wide types are not
+ potentially controlled anymore.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
+ references that are private components of the protected object.
+ (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
+ (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
+ instantiation to deal with warnings.
+ (Initialize_Protection): If expression for priority is non-static, use
+ System_Priority as its expected type, in case the expression has not
+ been analyzed yet.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
+ initialization of Homonym_Len.
+ (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
+ names from fully qualified name. Fixes problem of duplicate
+ external names differing only in the presence of such a block name.
+
+2006-10-31 Thomas Quinot <quinot@adacore.com>
+ Pablo Oliveira <oliveira@adacore.com>
+
+ * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
+ subprogram Ids, even if they are not yet assigned.
+ (Build_Subprogram_Id): It is now this function that will take care of
+ calling Assign_Subprogram_Ids if necessary.
+ (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
+ should be done only once they are assigned.
+ (Build_From_Any_Function, case of tagged types): Add missing call to
+ Allocate_Buffer.
+ (Corresponding_Stub_Type): New subprogram. Returns the associated stub
+ type for an RACW type.
+ (Add_RACW_Features): When processing an RACW declaration for which the
+ designated type is already frozen, enforce E.2.2(14) rules immediately.
+ (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
+ special reordering of controlling formals.
+
+ * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
+ associated stub type for an RACW type.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
+ fixed-point operations in an integer context, i.e. as operands of a
+ conversion to an integer type, indicate that result must be rounded.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
+ cases, pass the encoding method, since it is now required by the run
+ time.
+
+ * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
+ assumption that Str'First = 1.
+ (Value_Wide_Character): Takes EM (encoding method) parameter and passes
+ it on to the Value_Wide_Wide_Character call.
+ (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
+ properly handles a string of the form quote-encoded_wide_char-quote.
+
+ * s-wchcnv.adb: Minor reformatting
+
+2006-10-31 Javier Miranda <miranda@adacore.com>
+
+ * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
+ run-time membership test to ensure that the constructed object
+ implements the target abstract interface.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
+ Machine_Attribute pragma internally to implement the user pragma.
+ Add processing for pragma Interface so that it is now completely
+ equivalent to pragma Import.
+
+ * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
+ so that it can be applied to all entities, including record components
+ and enumeration literals.
+ (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
+ priority ranges are correct, verify compatibility against task
+ dispatching and locking policies, and if everything is correct an entry
+ is added to the table containing priority specific dispatching entries
+ for this compilation unit.
+ (Delay_Config_Pragma_Analyze): Delay processing
+ Priority_Specific_Dispatching pragmas because when processing the
+ pragma we need to access run-time data, such as the range of
+ System.Any_Priority.
+ (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
+ Allow pragma Unreferenced as a context item
+ Add pragma Preelaborable_Initialization
+ (Analyze_Pragma, case Interface): Interface is extended so that it is
+ now syntactically and semantically equivalent to Import.
+ (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
+ insertion characters.
+ Add handling for Pragma_Wide_Character_Encoding
+ (Process_Restrictions_Restriction_Warnings): Ensure that a warning
+ never supercedes a real restriction, and that a real restriction
+ always supercedes a warning.
+ (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
+ appropriate form.
+
+2006-10-31 Bob Duff <duff@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
+ Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
+ Is_Inherently_Limited_Type, because return-by-reference has no meaning
+ in Ada 2005.
+ (Find_Node_To_Be_Wrapped): Use new method of determining the result
+ type of the function containing a return statement, because the
+ Return_Type field was removed. We now use the Return_Applies_To field.
+
+ * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
+ (Build_Task_Image_Decl): If procedure is not called from an
+ initialization procedure, indicate that function that builds task name
+ uses the sec. stack. Otherwise the enclosing initialization procedure
+ will carry the indication.
+ (Insert_Actions): Remove N_Return_Object_Declaration. We now use
+ N_Object_Declaration instead.
+ (Kill_Dead_Code): New interface to implement -gnatwt warning for
+ conditional dead code killed, and change implementation accordingly.
+ (Insert_Actions): Add N_Return_Object_Declaration case.
+ Correct comment to mention N_Extension_Aggregate node.
+ (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
+ attempts to save information for global variables which cannot be
+ safely tracked.
+ (Get_Current_Value_Condition): Handle conditions the other way round
+ (constant on left). Also handle right operand of AND and AND THEN
+ (Set_Current_Value_Condition): Corresponding changes
+ (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
+ (Get_Current_Value_Condition): Handle simple boolean operands
+ (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
+ (Get_Current_Value_Condition): If the variable reference is within an
+ if-statement, does not appear in the list of then_statments, and does
+ not come from source, treat it as being at unknown location.
+ (Get_Current_Value_Condition): Enhance to allow while statements to be
+ processed as well as if statements.
+ (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
+ come from source.
+ (OK_To_Do_Constant_Replacement): Allow constant replacement within body
+ of loop. This is safe now that we fixed Kill_Current_Values.
+ (OK_To_Do_Constant_Replacement): Check whether current scope is
+ Standard, before examining outer scopes.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
+ When True, apply VMS treatment to children of packages A, G, I and S.
+ For F320-016
+
+ * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * freeze.adb: Add handling of Last_Assignment field
+ (Warn_Overlay): Supply missing continuation marks in error msgs
+ (Freeze_Entity): Add check for Preelaborable_Initialization
+
+ * g-comlin.adb: Add Warnings (Off) to prevent new warning
+
+ * g-expect.adb: Add Warnings (Off) to prevent new warning
+
+ * lib-xref.adb: Add handling of Last_Assignment field
+ (Generate_Reference): Centralize handling of pragma Obsolescent here
+ (Generate_Reference): Accept an implicit reference generated for a
+ default in an instance.
+ (Generate_Reference): Accept a reference for a node that is not in the
+ main unit, if it is the generic body corresponding to an subprogram
+ instantiation.
+
+ * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
+
+ * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
+ -gnatwq/Q.
+ (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
+ exception handler.
+ (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
+ use clauses, to avoid messages on packages used to qualify, and also
+ to avoid messages from obsolescent units.
+ (Warn_On_Useless_Assignments): Don't generate messages for imported
+ and exported variables.
+ (Warn_On_Useless_Assignments): New procedure
+ (Output_Obsolescent_Entity_Warnings): New procedure
+ (Check_Code_Statement): New procedure
+
+ * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
+ Change name Is_Ada_2005 to Is_Ada_2005_Only
+ (Last_Assignment): New field for useless assignment warning
+
+2006-10-31 Olivier Hainque <hainque@adacore.com>
+
+ * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
+ closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
+
+2006-10-31 Bob Duff <duff@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * g-awk.adb (Default_Session, Current_Session): Compile this file in
+ Ada 95 mode, because it violates the new rules for AI-318.
+
+ * g-awk.ads: Use overloaded subprograms in every case where we used to
+ have a default of Current_Session. This makes the code closer to be
+ correct for both Ada 95 and 2005.
+
+ * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
+ code, relying on the fact that the compiler generates a warning
+ instead of an error in -gnatg mode.
+
+ * lib-xref.ads (Xref_Entity_Letters): Add entry for new
+ E_Return_Statement entity kind.
+ Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
+
+ * par.adb (P_Interface_Type_Definition): Addition of one formal to
+ report an error if the reserved word abstract has been previously found.
+ (SS_End_Type): Add E_Return for new extended_return_statement syntax.
+
+ * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
+ parenthesized range attribute usage
+ (P_Expression_No_Right_Paren): Add missing comment about error recovery.
+
+ * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
+ in the syntax for extended_return_statement. This is not in the latest
+ RM, but the ARG is expected to issue an AI allowing this.
+ (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
+ N_Return_Object_Declaration. We now use N_Object_Declaration instead.
+ (P_Return_Object_Declaration, P_Return_Subtype_Indication,
+ P_Return_Statement): Parse the new syntax for extended_return_statement.
+
+ * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
+ Output_End_Missing): Add error-recovery code for the new
+ extended_return_statement syntax; that is, the new E_Return entry on
+ the scope stack.
+
+ * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
+ limited to nonlimited, because otherwise we violate the new Ada 2005
+ rules about returning limited types in function Create_AST_Handler in
+ s-asthan.adb.
+
+ * sem.adb (Analyze): Add cases for new node kinds
+ N_Extended_Return_Statement and N_Return_Object_Declaration.
+
+ * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
+ type is in the same category as type of context before applying check,
+ to prevent anomalies in instantiations.
+ (Resolve_Aggregate): Remove test for limited components in aggregates.
+ It's unnecessary in Ada 95, because if it has limited components, then
+ it must be limited. It's wrong in Ada 2005, because limited aggregates
+ are now allowed.
+ (Resolve_Record_Aggregate): Move check for limited types later, because
+ OK_For_Limited_Init requires its argument to have been resolved.
+ (Get_Value): When copying the component default expression for a
+ defaulted association in an aggregate, use the sloc of the aggregate
+ and not that of the original expression, to prevent spurious
+ elaboration errors, when the expression includes function calls.
+ (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
+ were missing. We also didn't handle qualified expressions. Now also
+ allow function calls. Use new common routine OK_For_Limited_Init.
+ (Resolve_Extension_Aggregate): Minor fix to bad error message (started
+ with space can upper case letter).
+
+ * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
+ Has_Static_Discriminants flag
+ (Record_Type_Declaration): Diagnose an attempt to declare an interface
+ type with discriminants.
+ (Process_Range_Expr_In_Decl): Do validity checks on range
+ (Build_Discriminant_Constraints): Use updated form of
+ Denotes_Discriminant.
+ (Process_Subtype): If the subtype is a private subtype whose full view
+ is a concurrent subtype, introduce an itype reference to prevent scope
+ anomalies in gigi.
+ (Build_Derived_Record_Type, Collect_Interface_Primitives,
+ Record_Type_Declaration): The functionality of the subprograms
+ Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
+ is now performed by a single routine.
+ (Build_Derived_Record_Type): If the type definition includes an explicit
+ indication of limitedness, then the type must be marked as limited here
+ to ensure that any access discriminants will not be treated as having
+ a local anonymous access type.
+ (Check_Abstract_Overriding): Issue a detailed error message when an
+ abstract subprogram was not overridden due to incorrect mode of its
+ first parameter.
+ (Analyze_Private_Extension_Declaration): Add support for the analysis of
+ synchronized private extension declarations. Verify that the ancestor is
+ a limited or synchronized interface or in the generic case, the ancestor
+ is a tagged limited type or synchronized interface and all progenitors
+ are either limited or synchronized interfaces.
+ Derived_Type_Declaration): Check for presence of private extension when
+ dealing with synchronized formal derived types.
+ Process_Full_View): Enchance the check done on the usage of "limited" by
+ testing whether the private view is synchronized.
+ Verify that a synchronized private view is completed by a protected or
+ task type.
+ (OK_For_Limited_Init_In_05): New function.
+ (Analyze_Object_Declaration): Move check for limited types later,
+ because OK_For_Limited_Init requires its argument to have been resolved.
+ Add -gnatd.l --Use Ada 95 semantics for limited function returns,
+ in order to alleviate the upward compatibility introduced by AI-318.
+ (Constrain_Corresponding_Record): If the constraint is for a component
+ subtype, mark the itype as frozen, to avoid out-of-scope references to
+ discriminants in the back-end.
+ (Collect_Implemented_Interfaces): Protect the recursive algorithm of
+ this subprogram against wrong sources.
+ (Get_Discr_Value, Is_Discriminant): Handle properly references to a
+ discriminant of limited type completed with a protected type, when the
+ discriminant is used to constrain a private component of the type, and
+ expansion is disabled.
+ (Find_Type_Of_Object): Do not treat a return subtype that is an
+ anonymous subtype as a local_anonymous_type, because its accessibility
+ level is the return type of the enclosing function.
+ (Check_Initialization): In -gnatg mode, turn the error "cannot
+ initialize entities of limited type" into a warning.
+ (OK_For_Limited_Init): Return true for generated nodes, since it
+ sometimes violates the legality rules.
+ (Make_Incomplete_Declaration): If the type for which an incomplete
+ declaration is created happens to be the currently visible entity,
+ preserve the homonym chain when removing it from visibility.
+ (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
+ inherited subprograms.
+ (Access_Definition): If this is an access to function that is the return
+ type of an access_to_function definition, context is a type declaration
+ and the scope of the anonymous type is the current one.
+ (Analyze_Subtype_Declaration): Add the defining identifier of a regular
+ incomplete subtype to the set of private dependents of the original
+ incomplete type.
+ (Constrain_Discriminated_Type): Emit an error message whenever an
+ incomplete subtype is being constrained.
+ (Process_Incomplete_Dependents): Transform an incomplete subtype into a
+ corresponding subtype of the full view of the original incomplete type.
+ (Check_Incomplete): Properly detect invalid usage of incomplete types
+ and subtypes.
+
+2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * g-catiio.ads, g-catiio.adb (Value): New function.
+ Given an input String, try and parse a valid Time value.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * g-debpoo.adb (Is_Valid): Correctly compute Offset using
+ Integer_Address arithmetic, as in Set_Valid.
+
+2006-10-31 Arnaud Charlet <charlet@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
+ handling executable extension manually and duplicating code.
+
+ * make.adb: Implement new -S switch
+ (Gnatmake): Use new function Osint.Executable_Name instead
+ of handling executable extension manually.
+
+ * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
+ is specified, the executable name ends with this suffix.
+ Take advantage of Osint.Executable_Name instead of duplicating code.
+
+ * switch-m.adb: Recognize new gnatmake -S switch
+
+ * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
+ variable.
+ (Get_Target_Parameters): Set Executable_Extension_On_Target if
+ available.
+
+ * makeusg.adb: Add line for gnatmake -S switch
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
+ call it with -static-libgcc, as there are some platforms, such as
+ Darwin, where one of these two switches is compulsory to link.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
+ instead of ADA_PROJECT_PATH, for the project path.
+ (Gnatls): When displaying the project path directories, use host dir
+ specs.
+
+ * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
+ names in the project path, as absolute paths may correspond to
+ multi-valued VMS logical names.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
+ absolute path name.
+ (Locate_Regular_File): Ditto
+ (Change_Dir): Remove, no longer used
+ (Normalize_Pathname): Do not use Change_Dir to get the drive letter
+ on Windows. Get it calling Get_Current_Dir.
+ (OpenVMS): Remove imported boolean, no longer needed.
+ (Normalize_Pathname)[VMS]: Do not resolve directory names.
+ (Pid_To_Integer): New function to convert a Process_Id to Integer
+
+2006-10-31 Thomas Quinot <quinot@adacore.com>
+
+ * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
+ sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
+ to No_Socket.
+ (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
+ W_Sig_Socket.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
+ initial letter o as a zero.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
+ variant records
+ (Layout_Variant_Record): Retrieve the discriminants from the entity
+ rather than from the type definition, because in the case of a full
+ type for a private type we need to take the discriminants from the
+ partial view.
+ (Layout_Component_List): When applying the Max operator to variants with
+ a nonstatic size, check whether either operand is static and scale that
+ operand from bits to storage units before applying Max.
+ (Layout_Type): In VMS, if a C-convention access type has no explicit
+ size clause (and does not inherit one in the case of a derived type),
+ then the size is reset to 32 from 64.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * lib-load.adb (Load_Unit): Skip the test for a unit not found when
+ its file has already been loaded, according to the unit being loaded,
+ not to the current value of Multiple_Unit_Index.
+
+2006-10-31 Thomas Quinot <quinot@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+
+ * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
+ (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
+ possible.
+ (a-except.o): Pass it to the compiler.
+ (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
+ (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
+ a-calend-mingw.adb version.
+
+ * Makefile.rtl: Added s-dsaser.
+ Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
+ (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
+ Ada.Dispatching.Round_Robin.
+ Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
+
+ * Make-lang.in: Remove all references to gt-ada-decl.h.
+ Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
+ sources.
+ Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
+ Update dependencies.
+
+ * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * mlib-utl.adb (Initialized): Remove, no longer used
+ (Initialize): Remove, no longer used
+ (Ar): If Ar_Exec is null, get the location of the archive builder and,
+ if there is one, the archive indexer. Fail if the archive builder cannot
+ be found.
+ (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
+ be found.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
+ Process_Body_Clauses): If the context of a body includes a use clause
+ for P.Q then a with_clause for P in the same body is not redundant,
+ even if the spec also has a with_clause on P.
+ Add missing continuation mark to error msg
+ (Build_Limited_Views): A limited view of a type is tagged if its
+ declaration includes a record extension.
+ (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
+ node, even if the subunit has errors. This avoids malfunction by
+ Lib.Check_Same_Extended_Unit in the presence of syntax errors.
+ (Analyze_Compilation_Unit): Add circuit to make sure we get proper
+ generation of obsolescent messages for with statements (cannot do
+ this too early, or we cannot implement avoiding the messages in the
+ case of obsolescent units withing obsolescent units).
+ (Install_Siblings): If the with_clause is on a remote descendant of
+ an ancestor of the current compilation unit, find whether there is
+ a sibling child unit that is immediately visible.
+ (Remove_Private_With_Clauses): New procedure, invoked after completing
+ the analysis of the private part of a nested package, to remove from
+ visibility the private with_clauses of the enclosing package
+ declaration.
+ (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
+ now centralized in Generate_Reference.
+ (Install_Limited_Context_Clauses): Remove superfluous error
+ message associated with unlimited view visible through use
+ and renamings. In addition, at the point in which the error
+ is reported, we add the backslash to the text of the error
+ to ensure that it is reported as a single error message.
+ Use new // insertion for some continuation messages
+ (Expand_Limited_With_Clause): Use copy of name rather than name itself,
+ to create implicit with_clause for parent unit mentioned in original
+ limited_with_clause.
+ (Install_Limited_With_Unit): Set entity of parent identifiers if the
+ unit is a child unit. For ASIS queries.
+ (Analyze_Subunit): If the subunit appears within a child unit, make all
+ ancestor child units directly visible again.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * par-ch10.adb (P_Context_Clause): Minor error message fix
+
+2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * par-ch12.adb: Grammar update and cleanup.
+ (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
+ support for synchronized derived type definitions.
+ Add the new actual Abstract_Present to every call to
+ P_Interface_Type_Definition.
+ (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
+ a formal object declaration with an access definition or a subtype mark
+ with a null exclusion.
+ (P_Generic_Association): Handle association with box, and others_choice
+ with box, to support Ada 2005 partially parametrized formal packages.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
+ (P_Type_Declaration): Remove barrier against the reserved word "limited"
+ after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
+ (P_Type_Declaration): Minor code cleanup. Add support for synchronized
+ private extensions.
+ (P_Type_Declaration): Add the new actual Abstract_Present to every call
+ to P_Interface_Type_Definition.
+ (P_Interface_Type_Definition): Addition of one formal to report an error
+ if the reserved word abstract has been previously found.
+ (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
+ object renaming declaration with an access definition or subtype mark
+ with a possible null exclusion.
+
+ * par-ch9.adb: Minor error msg fix
+
+ * par-load.adb: Add missing continuation mark to error msg
+
+ * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
+ unknown attribute in unknown package or in package that does not need
+ to be checked.
+ (Parse_Package_Declaration): Do not issue warning for unknown package in
+ quiet output.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
+ (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
+ Packages_To_Check.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
+ on VMS, change "__" to '.' before checking the name.
+ (Record_Ada_Source): Always add the source file name in the list of
+ of sources, even if it is not the first time, as it is for another
+ source index.
+ (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
+ dot, instead of replacing only the first '_'.
+
+ * prj-part.adb (Parse): Convert project file path to canonical form
+
+ * prj-proc.adb (Recursive_Process): Make sure that, when a project is
+ extended, the project id of the project extending it is recorded in its
+ data, even when it has already been processed as an imported project.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * repinfo.adb (List_Entities): Don't list entities from renaming
+ declarations.
+
+2006-10-31 Arnaud Charlet <charlet@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
+ only a restriction warning is active for the given restriction. This is
+ desirable because we do not want to modify code in the case where only
+ a warning is set.
+ (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
+ causes overriding of real restrictions.
+ Take advantage of new No_Restrictions constant.
+
+ * raise.h: (__gnat_set_globals): Change profile.
+
+2006-10-31 Arnaud Charlet <charlet@adacore.com>
+
+ * rtsfind.adb: Remove s-polint from comment as it exists no more.
+
+ * rtsfind.ads:
+ Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
+ Move all the entities in obsolete package System.PolyORB_Interface to
+ System.Partition_Interface.
+ (RE_Storage_Size): New function in System.Tasking.
+ (RE_Get_Ceiling): New entity.
+ (RE_Set_Ceiling): New entity.
+ (RO_PE_Get_Ceiling): New entity.
+ (RO_RE_Set_Ceiling): New entity.
+ (Inherit_CPP_DT): New entity
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * scng.adb (Scan, case of numeric literal): Better msg for identifier
+ starting with a digit.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
+ properly an attempt to apply Unchecked_Access to a protected operation.
+ (OK_Self_Reference): New subprogram to check the legality of an access
+ attribute whose prefix is the type of an enclosing aggregate.
+ Generalizes previous mechanism to handle attribute references nested
+ arbitrarily deep within the aggregate.
+ (Analyze_Access_Attribute): An access attribute whose prefix is a type
+ can appear in an aggregate if this is a default-initialized aggregate
+ for a self-referential type.
+ (Resolve_Attribute, case Access): Ditto.
+ Add support for new implementation defined attribute Stub_Type.
+ (Eval_Attribute, case Attribute_Stub_Type): New case.
+ (Analyze_Attribute, case Attribute_Stub_Type): New case.
+ (Stream_Attribute_Available): Implement using new subprogram from
+ sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
+ Has_Specified_Stream_Attribute flag.
+ Disallow Storage_Size and Storage_Pool for access to subprogram
+ (Resolve_Attribute, case 'Access et al): Take into account anonymous
+ access types of return subtypes in extended return statements. Remove
+ accessibility checks on anonymous access types when Unchecked_Access is
+ used.
+ (Analyze_Attribute): Add support for the use of 'Class to convert
+ a class-wide interface to a tagged type.
+ Add support for the attribute Priority.
+ (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
+ whether the designated type is discriminated with a constrained partial
+ view and require static matching in that case.
+ Add local variable Des_Btyp. The Designated_Type
+ of an access to incomplete subtype is either its non-limited view if
+ coming from a limited with or its etype if regular incomplete subtype.
+
+ * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
+ Fix predicate to identify and allow cases of (expander-generated)
+ references to tag of designated object of a RACW.
+ (Validate_Static_Object_Name): In Ada 2005, a formal object is
+ non-static, and therefore cannot appear as a primary in a preelaborable
+ package.
+ (Has_Stream_Attribute_Definition): New subprogram, abstracted from
+ Has_Read_Write_Attributes.
+ (Has_Read_Write_Attributes): Reimplement in termes of
+ Has_Stream_Attribute_Definition.
+ (Missing_Read_Write_Attributes): When checking component types in a
+ record, unconditionally call Missing_Read_Write_Attributes recursively
+ (remove guard checking for Is_Record_Type / Is_Access_Type).
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
+ useless assignments here and conditionalize it on absence of exception
+ handlers.
+ (Analyze_Exception_Handlers): Small code reorganization of error
+ detection code, for new handling of formal packages.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
+ that has been constant-folded, preserve information of original tree,
+ for ASIS uses.
+ (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
+ generated private extension declaration if the formal derived type is
+ synchronized. Carry synchronized present over to the generated private
+ extension.
+ (Validate_Derived_Type_Instance): Ensure that the actual of a
+ synchronized formal derived type is a synchronized tagged type.
+ (Instantiate_Formal_Package): When creating the instantiation used to
+ validate the actual package of a formal declared without a box, check
+ whether the formal itself depends on a prior actual.
+ (Instantiate_Formal_Subprogram): Create new entities for the defining
+ identifiers of the formals in the renaming declaration, for ASIS use.
+ (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
+ a renaming declaration or a subtype declaration for an actual in an
+ instance, capture location information of declaration in generic, for
+ ASIS use.
+ (Instantiate_Formal_Package): Add comments on needed additional tests.
+ AI-317 (partial parametrization) is fully implemented.
+ (Validate_Private_Type_Instance): Add check for actual which
+ must have preelaborable initialization
+ Use new // insertion for some continuation messages
+ (Analyze_Formal_Object_Declaration): Change usage of Expression to
+ Default_Expression. Add type retrieval when the declaration has an
+ access definition. Update premature usage of incomplete type check.
+ (Check_Access_Definition): New subsidiary routine. Check whether the
+ current compilation version is Ada 05 and the supplied node has an
+ access definition.
+ (Instantiate object): Alphabetize local variables. Handle the creation
+ of new renaming declarations with respect to the kind of definition
+ used - either an access definition or a subtype mark. Guard against
+ unnecessary error message in the context of anonymous access types after
+ they have been resolved. Add check for required null exclusion in a
+ formal object declaration.
+ (Switch_View): A private subtype of a non-private type needs to be
+ switched (the base type can have been switched without its private
+ dependents because of the last branch of Check_Private_View.
+ (Check_Private_View): Do not recompute Base_Type (T), instead use cached
+ value from BT.
+ (Instantiate_Type): Emit an error message whenever a class-wide type of
+ a tagged incomplete type is used as a generic actual.
+ (Find_Actual_Type): Extend routine to handle a component type in a child
+ unit that is imported from a formal package in a parent.
+ (Validate_Derived_Type_Instance): Check that analyzed formal and actual
+ agree on constrainedness, rather than checking against ultimate ancestor
+ (Instantiate_Subprogram_Body): Create a cross-reference link to the
+ generic body, for navigation purposes.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+
+ * sem_ch13.adb: Storage pool cannot be given for access to subprogram
+ type.
+ (New_Stream_Subprogram): When processing an attribute definition clause
+ for a stream-oriented subprogram, record an entity node occurring at
+ the point of clause to use for checking the visibility of the clause,
+ as defined by 8.3(23) as amended by AI-195.
+ (New_Stream_Subprogram): New procedure, factoring behaviour from both
+ New_Stream_Function and New_Stream_Procedure.
+ (New_Stream_Function, New_Stream_Procedure): Removed.
+ (Analyze_Attribute_Definition_Clause, case Address): Check new
+ Alignment_Check check
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
+ generate the same errors compiling under -gnatc.
+ (Try_Object_Operation): If no candidate interpretation succeeds, but
+ there is at least one primitive operation with the right name, report
+ error in call rather than on a malformed selected component.
+ (Analyze_Selected_Component): If the prefix is an incomplete type from
+ a limited view, and the full view is available, use the full view to
+ determine whether this is a prefixed call to a primitive operation.
+ (Operator_Check): Verify that a candidate interpretation is a binary
+ operation before checking the type of its second formal.
+ (Analyze_Call): Add additional warnings for function call contexts not
+ yet supported.
+ (Analyze_Allocator): Move the check for "initialization not allowed for
+ limited types" after analyzing the expression. This is necessary,
+ because OK_For_Limited_Init looks at the structure of the expression.
+ Before analysis, we don't necessarily know what sort of expression it
+ is. For example, we don't know whether F(X) is a function call or an
+ indexed component; the former is legal in Ada 2005; the latter is not.
+ (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
+ were missing. We also didn't handle qualified expressions. Now also
+ allow function calls. Use new common routine OK_For_Limited_Init.
+ (Analyze_Type_Conversion): Do not perform some legality checks in an
+ instance, because the error message will be redundant or spurious.
+ (Analyze_Overloaded_Selected_Component): Do not do style check when
+ setting an entity, since we do not know it is the right entity yet.
+ (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
+ (Analyze_Overloaded_Selected_Component): Same change
+ (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
+ since regular incomplete subtypes are transformed into corresponding
+ subtypes of their full views.
+ (Complete_Object_Operation): Treat name of transformed subprogram call
+ as coming from source, for browsing purposes.
+ (Try_Primitive_Operation): If formal is an access parameter, compare
+ with base type of object to determine whether it is a primitive
+ operation.
+ (Operator_Check): If no interpretation of the operator matches, check
+ whether a use clause on any candidate might make the operation legal.
+ (Try_Class_Wide_Operation): Check whether the first parameter is an
+ access type whose designated type is class-wide.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
+ warn on infinite loops.
+ Add \\ to some continuation messages
+ (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
+ (Process_Bounds): If the bounds are integer literals that result from
+ constant-folding, and they carry a user-defined type, preserve that type
+ rather than treating this as an integer range.
+ (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
+ (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
+ (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
+ left hand side of assignment.
+ (Analyze_Assignment): Add suport to manage assigments to the attribute
+ priority of a protected object.
+ (Check_Possible_Current_Value_Condition): Allow fully qualified names
+ not just identifiers.
+ (Check_Possible_Current_Value_Condition): Acquire left operand of AND
+ or AND THEN for possible tracking.
+ (Analyze_Iteration_Scheme): Check for setting Current_Value for the
+ case of while loops so we can track values in the loop body.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Hristian Kirtchev <kirtchev@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
+ procedure cannot be a protected operation (it is a basic_declaration,
+ not a subprogram_declaration).
+ (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
+ Subp. Add logic for entry processing.
+ (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
+ Determine whether an entry or subprogram of a protected or task type
+ override an inherited primitive of an implemented interface.
+ (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
+ Update the actual used in calls to Check_Overriding_Indicator.
+ (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
+ generate the proper reference to the parent unit, for cross-reference.
+ (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
+ Is_Formal.
+ Add -gnatd.l --Use Ada 95 semantics for limited function returns,
+ (Add_Extra_Formal): Revise procedure to allow passing in associated
+ entity, scope, and name suffix, and handle setting of the new
+ Extra_Formals field.
+ (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
+ pass new parameters. Add support for adding the new extra access formal
+ for functions whose calls are treated as build-in-place.
+ (Analyze_A_Return_Statement): Correct casing in error message.
+ Move Pop_Scope to after Analyze_Function_Return, because an extended
+ return statement really is a full-fledged scope. Otherwise, visibility
+ doesn't work right. Correct use of "\" for continuation messages.
+ (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
+ evilly trying to call Analyze_Object_Declaration directly. Otherwise,
+ the node doesn't get properly marked as analyzed.
+ (Analyze_Subprogram_Body): If subprogram is a function that returns
+ an anonymous access type that denotes a task, build a Master Entity
+ for it.
+ (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
+ proper usage of null exclusion in a result definition.
+ (Process_Formals): Code cleanup and new error message.
+ (Process_Formals): Detect incorrect application of null exclusion to
+ non-access types.
+ (Conforming_Types): Handle conformance between [sub]types and itypes
+ generated for entities that have null exclusions applied to them.
+ (Maybe_Primitive_Operation): Add an additional type retrieval when the
+ base type is an access subtype. This case arrises with null exclusions.
+ (New_Overloaded_Entity): Do not remove the overriden entity from the
+ homonym chain if it corresponds with an abstract interface primitive.
+ (Process_Formals): Replace membership test agains Incomplete_Kind with a
+ call to the synthesized predicate Is_Incomplete_Type.
+ (Analyze_Subprogram_Body): Check wrong placement of abstract interface
+ primitives.
+ (Analyze_Subprogram_Declaration): Check that abstract interface
+ primitives are abstract or null.
+ (Analyze_Subprogram_Specification): Remove previous check for abstract
+ interfaces because it was not complete.
+ (Has_Interface_Formals): Removed.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
+ of Analyze_Package_Body, to create Itype references for anonymous
+ access types created in the package declaration, whose designated types
+ may have only a limited view.
+ (Analyze_Package_Specification): For the private part of a nested
+ package, install private_with_clauses of enclosing compilation unit if
+ we are in its visible part.
+ (Declare_Inherited_Private_Subprograms): Complete barrier
+ to ensure that the primitive operation has an alias to some parent
+ primitive. This is now required because, after the changes done for the
+ implementation of abstract interfaces, the contents of the list of
+ primitives has entities whose alias attribute references entities of
+ such list of primitives.
+ (Analyze_Package_Specification): Simplify code that handles parent units
+ of instances and formal packages.
+ (Uninstall_Declarations): Check the convention consistency among
+ primitive overriding operations of a tagged record type.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Hristian Kirtchev <kirtchev@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb: Minor error msg rewording
+ (Undefined): When checking for misspellings, invert arguments (to get
+ expected and found set right)
+ (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
+ (Analyze_Generic_Renaming): Same fix
+ (Use_One_Package): Do not take into account the internal entities of
+ abstract interfaces during the analysis of entities that are marked
+ as potentially use-visible.
+ (Find_Type): Handle the case of an attribute reference for
+ implementation defined attribute Stub_Type (simply let the analysis of
+ the attribute reference rewrite it).
+ (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
+ type that appears in a Use_Type clause.
+ (Analyze_Object_Renaming): Add support for renaming of the Priority
+ attribute.
+ (Find_Type): In Ada 2005, a task type can be used within its own body,
+ when it appears in an access definition.
+ (Analyze_Object_Renaming): Remove warning on null_exclusion.
+ (Analyze_Object_Renaming): Introduce checks for required null exclusion
+ in a formal object declaration or in a subtype declaration.
+ (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
+ (Check_Null_Exclusion): New local routine to
+ Analyze_Subprogram_Renaming. Check whether the formals and return
+ profile of a renamed subprogram have required null exclusions when
+ their counterparts of the renaming already impose them.
+ (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
+ Determine whether an entity is inside a generic scope.
+ (In_Open_Scope): First pass of documentation update.
+ (Find_Expanded_Name): Add support for shadow entities associated with
+ limited withed packages. This is required to handle nested packages.
+ (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
+ that makes a renaming of a limited withed package illegal.
+
+2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
+ Check_Overriding_Indicator.
+ (Analyze_Task_Definition): Ditto.
+ (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
+ (Check_Overriding_Indicator): To find overridden interface operation,
+ examine only homonyms that have an explicit subprogram declaration, not
+ inherited operations created by an unrelated type derivation.
+ (Check_Overriding_Indicator): When checking for the presence of "null"
+ in a procedure, ensure that the queried node is a procedure
+ specification.
+ (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
+ type when the formal is an access to variable.
+ (Analyze_Protected_Type): Add check for Preelaborable_Initialization
+ (Analyze_Task_Type): Same addition
+ (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
+ provide navigation capabilities for entries.
+
+2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
+ inherited from an interface ancestor by another interface in the
+ context of an instance as 'late'.
+ (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
+ of a call to a function that dispatches on access result.
+ (Check_Dispatching_Operation): In case of late overriding of a primitive
+ that covers abstract interface subprograms we register it in all the
+ secondary dispatch tables associated with abstract interfaces.
+ (Check_Dispatching_Call): Add check that a dispatching call is not made
+ to a function with a controlling result of a limited type. This is a
+ current implementation restriction.
+ (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
+ (Check_Dispatching_Operation): Do no emit a warning if the controlling
+ argument is an interface type that is a generic formal.
+ (Is_Interface_Subprogram): Removed.
+ (Check_Dispatching_Operation): If the subprogram is not a dispatching
+ operation, check the formals to handle the case in which it is
+ associated with an abstract interface type.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
+ Add new calls to this procedure during traversal
+ (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
+ another unit if expansion is disabled.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * sem_eval.adb (Compile_Time_Compare): Make use of information from
+ Current_Value in the conditional case, to evaluate additional
+ comparisons at compile time.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Hristian Kirtchev <kirtchev@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
+ subprogram type to provide better diagnostics in case of ambiguity.
+ (Covers): Handle coverage of formal and actual anonymous access types in
+ the context of generic instantiation.
+ (Covers/Interface_Present_In_Ancestors): Use the base type to manage
+ abstract interface types; this is required to handle concurrent types
+ with discriminants and abstract interface types.
+ (Covers): Include type coverage of both regular incomplete subtypes and
+ incomplete subtypes of incomplete type visibles through a limited with
+ clause.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Hristian Kirtchev <kirtchev@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
+ messages for entities in packages which are not used.
+ (Collect_Synchronized_Interfaces): New procedure.
+ (Overrides_Synchronized_Primitive): New function.
+ (Denotes_Discriminant): Extend predicate to apply to task types.
+ Add missing continuation marks in error msgs
+ (Unqualify): New function for removing zero or more levels of
+ qualification from an expression. There are numerous places where this
+ ought to be used, but we currently only deal properly with zero or one
+ level.
+ (In_Instance); The analysis of the actuals in the instantiation of a
+ child unit is not within an instantiation, even though the parent
+ instance is on the scope stack.
+ (Safe_To_Capture_Value): Exclude the case of variables that are
+ renamings.
+ (Check_Obsolescent): Removed
+ (Is_Aliased_View): A reference to an enclosing instance in an aggregate
+ is an aliased view, even when rewritten as a reference to the target
+ object in an assignment.
+ (Get_Subprogram_Entity): New function
+ (Known_To_Be_Assigned): New function
+ (Type_Access_Level): Compute properly the access level of a return
+ subtype that is an anonymous access type.
+ (Explain_Limited_Type): Correct use of "\" for continuation messages.
+ (Is_Transfer): The new extended_return_statement causes a transfer of
+ control.
+ (Has_Preelaborable_Initialization): New function
+ (Has_Null_Exclusion): New function. Given a node N, determine whether it
+ has a null exclusion depending on its Nkind.
+ Change Is_Lvalue to May_Be_Lvalue
+ (May_Be_Lvalue): Extensive additional code to deal with subprogram
+ arguments (IN parameters are not Lvalues, IN OUT parameters are).
+ (Safe_To_Capture_Value): Extend functionality so it can be used for
+ the current value condition case.
+ (Has_Compatible_Alignment): New function
+ (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
+ objects to handle the Ada 2005 case, where aliasedness no longer implies
+ that the object is constrained. In particular, for dereferenced names,
+ the designated object must be assumed to be unconstrained.
+ (Kill_Current_Values): Properly deal with the case where we encounter
+ a loop in the scope chain.
+ (Safe_To_Capture_Value): Do not let a loop stop us from capturing
+ a value.
+ (Compile_Time_Constraint_Error): Improve error message in error case
+
+ * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
+ associated with entities of abstract interface primitives.
+ Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * s-osinte-tru64.adb:
+ Mark Asm statements Volatile to prevent warnings (seems a
+ reasonable change anyway)
+ Fixes new warnings
+
+ * s-mastop-irix.adb: Add Volatile to Asm statements
+ Suppresses warning, and seems appropriate in any case
+
+ * s-osinte-vms.adb: Add Volatile to Asm statement
+
+ * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
+
+ * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
+ returned.
+ Add call to Check_Code_Statement
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
+ Synchronized_Present): Add Formal_Derived_Type_Definition and
+ Private_Extension_Declaration to the list of assertions.
+ (Is_Entry_Barrier_Function): New flag
+ (Has_Self_Reference): New flag on aggregates, to indicate that they
+ contain a reference to the enclosing type, inserted through a default
+ initialization.
+ (Next_Rep_Item): Move from Node4 to Node5.
+ (Entity): Add this field for N_Attribute_Definition_Clause.
+ (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
+ (N_Return_Object_Declaration): Remove this node kind. We now use
+ N_Object_Declaration instead.
+ (Actual_Designated_Subtype): Move to a different place to make room in
+ N_Extended_Return_Statement.
+ (Procedure_To_Call): Move to a different place to make room in
+ N_Extended_Return_Statement.
+ (Return_Type): Removed this field to make room in return statements
+ (both kinds).
+ (Return_Statement_Entity): New field in return statements, in part to
+ replace Return_Type, and in part to support the fact that return
+ statements are now pushed on the scope stack during semantic analysis.
+ (Return_Object_Declarations): New field to support extended return
+ statements.
+ (N_Extended_Return_Statement): New node for extended_return_statement
+ nonterminal.
+ (N_Return_Object_Declaration): New node for part of
+ extended_return_statement nonterminal. Needed because all the necessary
+ fields won't fit in N_Extended_Return_Statement.
+ Generic_associations now carry the Box_Present flag, to indicate a
+ default for an actual in a partially parametrized formal package.
+
+ * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
+ (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
+ and for the new predefined dispatching policies: EDF_Across_Priorities,
+ Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
+ Introduce new name Stub_Type for implementation defined attribute.
+ Add pragma Preelaborable_Initialization
+ Add entry for Priority attribute.
+ Add Pragma_Wide_Character_Encoding
+ (Get_Convention_Name): Given a convention id, this function returns the
+ corresponding name id from the names table.
+
+2006-10-31 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Bob Duff <duff@adacore.com>
+
+ * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
+ print null exclusion twice in the case of an access definition,
+ Implement new -gnatL switch
+ Remove N_Return_Object_Declaration. We now use
+ N_Object_Declaration instead. Implement the case for
+ N_Extended_Return_Statement. Alphabetize the cases.
+ Add cases for new nodes N_Extended_Return_Statement and
+ N_Return_Object_Declaration. The code is not yet written.
+ Update the output for N_Formal_Object_Declaration
+ and N_Object_Renaming_Declaration.
+ (Write_Itype): Account for the case of a modular integer subtype whose
+ base type is private.
+
+2006-10-31 Arnaud Charlet <charlet@adacore.com>
+
+ * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
+ Remove elaboration code, now done in the binder.
+
+ * s-rident.ads: Make this unit Preelaborate.
+ (No_Restrictions): New constant used to clean up code and follow
+ preelaborate constraints.
+
+ * s-stalib.adb:
+ Add System.Restrictions dependence, referenced directly from the
+ binder generated file.
+
+2006-10-31 Gary Dismukes <dismukes@adacore.com>
+
+ * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
+ True when AAMP extended floating-point is in use (48-bit). Change type
+ ByteLF to ByteLLF, add new array type ByteLF and condition the size of
+ the two byte array types on AFloat. Change type of IV_Ilf overlay
+ variable from Byte8 to ByteLF. Add appropriate initializations of
+ floating-point overlays for AAMP cases.
+
+2006-10-31 Javier Miranda <miranda@adacore.com>
+
+ * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
+ (Get_Ceiling): New subprogram that returns
+ the ceiling priority of the protected object.
+ (Set_Ceiling): New subprogram that sets the new ceiling priority of
+ the protected object.
+
+ * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
+
+ * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
+
+2006-10-31 Jose Ruiz <ruiz@adacore.com>
+
+ * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
+ requeuing to the same protected object to give higher priority tasks
+ the opportunity to execute.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+
+ * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
+ add more precise check for the character sequence that follows '[' to
+ avoid possible confusion in case if '[' is the last character of a
+ string literals.
+ (Scan_Wide): Always allow brackets encoding
+
+2006-10-31 Olivier Hainque <hainque@adacore.com>
+
+ * s-stchop.ads: make this unit preelaborate. This is desirable in
+ general and made mandatory by the use of this unit by s-taprop which
+ is itself preelaborate.
+
+ * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
+ Td_Events component.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
+ in file names.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * makegpr.adb (Check_Compilation_Needed): Take into account path names
+ with spaces.
+ (Check_Compilation_Needed): When checking a C or C++ source, do not
+ resolve symbolic links.
+ (Display_Command): New Boolean parameter Ellipse, defaulted to False.
+ When not in verbose mode and Ellipse is True, display "..." for the
+ first argument with Display set to False.
+ (Build_Global_Archive): Always set Display True for the first object
+ file. Call Display_Command with Ellipse set to True.
+
+2006-10-31 Matt Heaney <heaney@adacore.com>
+
+ * a-crbtgo.ads: Commented each subprogram
+
+ * a-crbtgo.adb: Added reference to book from which algorithms were
+ adapted.
+
+ * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
+ indicate which child.
+ (Generic_Conditional_Insert): changed parameter name from "Success" to
+ "Inserted".
+ (Generic_Unconditional_Insert_With_Hint): improved algorithm
+
+ * a-coorse.adb (Replace_Element): changed parameter name in call to
+ conditional insert operation.
+
+ * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
+
+ * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
+ Generic_Iteration
+
+ * a-ciorse.adb (Replace_Element): changed parameter name in call to
+ conditional insert operation.
+
+ * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
+ Generic_Iteration.
+
+ * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
+ instead of mode inout.
+
+ * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
+ draft
+ (Generic_Read): preserve existing buckets array if possible
+ (Generic_Write): don't send buckets array length anymore
+
+ * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
+ instead of mode inout.
+
+ * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
+ (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
+
+ * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
+ (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
+ (Replace_Element): local operation is now an instantiation
+
+ * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
+ check current length.
+ (Generic_Replace_Element): new operation
+
+2006-10-31 Doug Rupp <rupp@adacore.com>
+
+ * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
+ Call TBK$SYMBOLIZE without omitting parameters.
+
+2006-10-31 Vincent Celier <celier@adacore.com>
+
+ * symbols-processing-vms-ia64.adb,
+ symbols-processing-vms-alpha.adb (Process): Do not include symbols
+ that come from generic instantiations in bodies.
+
+2006-10-31 Pat Rogers <rogers@adacore.com>
+
+ * a-rttiev.ads, a-rttiev.adb:
+ This is a significant redesign primarily for the sake of automatic
+ timer task termination but also to fix a design flaw.
+ Therefore we are now using an RTS lock, instead of a protected
+ object, to provide mutual exclusion to the queue of pending events
+ and the type Timing_Event is no longer a protected type.
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Cyrille Comar <comar@adacore.com>
+ Ben Brosgol <brosgol@adacore.com>
+
+ * debug.adb: Update flags documentation
+
+ * gnat_ugn.texi: Add documentation for new -gnatwq switch
+ Clean up documentation for several other warning switches
+ Clarify how task stack size can be specified with various
+ versions of Windows.
+ Add note that -gnatVo includes ranges including loops
+ Add documentation for -gnatL switch
+ Add note on elaboration warning for initializing variables
+ Add documentation for new -gnatwt warning switch
+ Document new form of pragma Warnings (On|Off, string)
+ Add comment on use of pragma Warnings to control warnings
+ Add documentation for -gnatjnn switch
+ Modify section on interfacing with C for VMS 64-bit.
+ Add doc for -gnatVe/E
+ Add documentation of new warning flags -gnatww/-gnatwW
+ Add warnings about address clause overlays to list of warnings
+ (Exception Handling Control): Document that the option --RTS must be
+ used consistently for gcc and gnatbind.
+ Clarify that inlining is not always possible
+ Update documentation on pragma Unchecked_Union.
+
+ * gnat_rm.texi:
+ Add documentation for new extended version of pragma Obsolescent
+ Add documentation for implementation defined attribute 'Stub_Type.
+ Add note on use of Volatile in asm statements
+ Add documentation on use of pragma Unreferenced in context clause
+ Document new form of pragma Warnings (On|Off, pattern)
+ Document pragma Wide_Character_Encoding
+ Add note that pragma Restrictions (No_Elaboration_Code) is only fully
+ enforced if code generation is active.
+ Add section on pragma Suppress to document GNAT specific check
+ Alignment_Check
+ Clarify difference between No_Dispatching_Calls & No_Dispatch.
+ Add documentation for pragma Restrictions (No_Elaboration_Code)
+
+ * gnat-style.texi:
+ Add comments on layout of subprogram local variables in the
+ presence of nested subprograms.
+
+ * ug_words: Resync.
+
+ * elists.ads: Minor reformatting
+ Node returns Node_Or_Entity_Id (doc change only)
+
+ * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
+
+ * g-arrspl.ads (Create): Update comments.
+
+ * sem.ads: Add details on the handling of the scope stack.
+
+ * usage.adb: Update documentation.
+
+ * validsw.ads, validsw.adb:
+ Add definition of Validity_Check_Components and implement -gnatVe/E
+
+ * vms_data.ads: Add missing VMS qualifiers.
+
+ * s-addope.ads: Add documentation on overflow and divide by zero
+
+2006-10-31 Robert Dewar <dewar@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+
+ * fmap.adb: Put routines in alpha order
+
+ * g-boumai.ads: Remove redundant 'in' keywords
+
+ * g-cgi.adb: Minor reformatting
+
+ * g-cgi.ads: Remove redundant 'in' keywords
+
+ * get_targ.adb: Put routines in alpha order
+
+ * prj-attr.ads: Minor reformatting
+
+ * s-atacco.ads: Minor reformatting
+
+ * scn.adb: Put routines in alpha order
+
+ * sinput-l.adb: Minor comment fix
+
+ * sinput-p.adb: Minor comment fix
+
+ * s-maccod.ads: Minor reformatting
+
+ * s-memory.adb: Minor reformatting
+
+ * s-htable.adb: Fix typo in comment.
+
+ * s-secsta.adb: Minor comment update.
+
+ * s-soflin.adb: Minor reformatting
+
+ * s-stoele.ads:
+ Add comment about odd qualification in Storage_Offset declaration
+
+ * s-strxdr.adb:
+ Remove unnecessary 'in' keywords for formal parameters.
+
+ * treeprs.adt: Minor reformatting
+
+ * urealp.adb: Put routines in alpha order
+
+ * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
+ taking string.
+
+ * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
+
+ * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
+
+ * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
+ workaround as on other platforms.
+
+ * g-eacodu-vms.adb: Remove redundant 'in' keywords
+ * g-expect-vms.adb: Remove redundant 'in' keywords
+
+ * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
+ clear error message if the list-of-files file cannot be opened.
+
+ * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
+ equality operator is always visible.
+
+ * lang.opt: Woverlength-strings: New option.
+
+ * nmake.adt:
+ Update copyright, since nmake.ads and nmake.adb have changed.
+
+ * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
+ (Binder_Output_Time_Stamps_Set): removed.
+ (Old_Binder_Output_Time_Stamp): idem.
+ (New_Binder_Output_Time_Stamp): idem.
+ (Recording_Time_From_Last_Bind): idem.
+ (Recording_Time_From_Last_Bind): Make constant.
+
+ * output.ads, output.adb (Write_Str): Allow LF characters
+ (Write_Spaces): New procedure
+
+ * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
+
+ * inline.adb: Minor reformatting
+
+ * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
+
+ * s-mastop-vms.adb: Remove redundant 'in' keywords
+
+ * s-osprim-vms.adb: Remove redundant 'in' keywords
+
+ * s-trafor-default.adb: Remove redundant 'in' keywords
+
+ * 9drpc.adb: Remove redundant 'in' keywords
+
+ * s-osinte-mingw.ads: Minor reformatting
+
+ * s-inmaop-posix.adb: Minor reformatting
+
+ * a-direio.ads: Remove quotes from Compile_Time_Warning message
+
+ * a-exexda.adb: Minor code reorganization
+
+ * a-filico.adb: Minor reformatting
+
+ * a-finali.adb: Minor reformatting
+
+ * a-nudira.ads: Remove quote from Compile_Time_Warning message
+
+ * a-numeri.ads: Minor reformatting
+
+ * a-sequio.ads: Remove quotes from Compile_Time_Warning message
+
+ * exp_pakd.ads: Fix obsolete comment
+
+ * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
+ a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
+ Probably not a bug, but certainly neater and more efficient.
+
+ * a-tienio.adb: Minor reformatting
+
+ * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
+ Avoid assuming low bound of string is 1.
+
+ * gnatbind.adb: Change Bindusg to package and rename procedure as
+ Display, which now ensures that it only outputs usage information once.
+ (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
+
+ * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
+ Table'First.
+
+ * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
+ warning.
+ (Match): Add pragma Assert to ensure that Matches'First is zero
+
+ * g-regpat.ads (Match): Document that Matches lower bound must be zero
+
+ * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
+ documented preconditions (also kills warnings about bad indexes).
+
+ * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
+ is 1.
+ (Build_Import_Library): Ditto;
+
+ * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
+
+ * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
+
+ * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
+ lower bound of choice table is 1.
+
+ * sem_case.ads (Analyze_Choices): Document that lower bound of
+ Choice_Table is 1.
+
+ * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
+ string is 1.
+
+ * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
+ and add appropriate Assert pragma to suppress warnings.
+
+ * atree.h, atree.ads, atree.adb
+ Change Elist24 to Elist25
+ Add definitions of Field28 and Node28
+ (Traverse_Field): Use new syntactic parent table in sinfo.
+
+ * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
+
+ * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
+
+ * exp_tss.adb: Put routines in alpha order
+
+ * fe.h: Remove redundant declarations.
+
+2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
+
+ * utils.c (builtin_function): Rename to gnat_builtin_function.
+ Move common code to add_builtin_function.
+ * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
+ gnat_builtin_function.
+ * gigi.h (builtin_function): Rename to gnat_builtin_function.
+ Change the signature.
+
+2006-10-16 Brooks Moses <bmoses@stanford.edu>
+
+ * Makefile.in: Add TEXI2PDF definition.
+ * Make-lang.in: Add "ada.pdf" target.
+
+2006-10-03 Kazu Hirata <kazu@codesourcery.com>
+
+ * decl.c, utils.c: Fix comment typos.
+ * utils.c: Fix a typo.
+
+2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
+ on "pure" Ada subprograms if SJLJ exceptions are used.
+ * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
+ on the declaration node of JMPBUF_SAVE.
+ * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
+ of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
+ * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
+
+2006-08-20 Laurent GUERBY <laurent@guerby.net>
+
+ PR ada/28716
+ g-socket.adb (Bind_Socket): Call Set_Address.
+
+2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/15802
+ * decl.c (same_discriminant_p): New static function.
+ (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
+ subtype and we have discriminants, fix up the COMPONENT_REFs
+ for the discriminants to make them reference the corresponding
+ fields of the parent subtype after it has been built.
+
+2006-09-15 Roger Sayle <roger@eyesopen.com>
+
+ PR ada/18817
+ * utils.c (max_size): Perform constant folding of (A ? B : C) - D
+ into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
+
+2006-09-13 Olivier Hainque <hainque@adacore.com>
+
+ PR ada/29025
+ * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
+ of a SAVE_EXPR, just make the operand addressable/not-readonly and
+ let the common gimplifier code make and propagate a temporary copy.
+ (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
+ out/in-out actuals and defer setting the addressable/readonly bits
+ to the gimplifier.
+
+2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/28591
+ * decl.c (components_to_record): Defer emitting debug info for the
+ record type associated with the variant until after we are sure to
+ actually use it.
+
+2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/21952
+ * gigi.h (gnat_internal_attribute_table): Declare.
+ * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
+ * utils.c (gnat_internal_attribute_table): New global variable.
+ (builtin_function): Always call decl_attributes on the builtin.
+ (handle_const_attribute): New static function.
+ (handle_nothrow_attribute): Likewise.
+
+2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
+
+2006-06-23 Olivier Hainque <hainque@adacore.com>
+
+ * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
+ not been able to get a constant upper bound from TYPE_SIZE_UNIT.
+
+2006-06-20 James A. Morrison <phython@gcc.gnu.org>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/18692
+ * Make-lang.in: Add check-gnat to lang_checks. Rename existing
+ check-gnat into check-acats.
+
+2006-06-17 Karl Berry <karl@gnu.org>
+
+ * gnat-style.texi (@dircategory): Use "Software development"
+ instead of "Programming", following the Free Software Directory.
+
+2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR ada/27944
+ * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
+
+2006-06-06 Laurent GUERBY <laurent@guerby.net>
+
+ PR ada/27769
+ mlib-utl.adb: Use Program_Name.
+
+2006-05-28 Kazu Hirata <kazu@codesourcery.com>
+
+ * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
+ sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
+ trans.c, utils.c: Fix comment typos. Follow spelling
+ conventions.
+ * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
+ conventions.
+
+2006-05-19 Nicolas Setton <setton@adacore.com>
+
+ * misc.c (gnat_dwarf_name): New function.
+ (LANG_HOOKS_DWARF_NAME): Define to it.
+
+2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
+ (ada/misc.o): Likewise.
+ (ada/utils.o): Likewise.
+
+2006-04-08 Aurelien Jarno <aurel32@debian.org>
+
+ * Makefile.in: Add Ada support for GNU/kFreeBSD.
+ * s-osinte-kfreebsd-gnu.ads: New file.
+
+2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
+
+ * Make-lang.in: Rename docdir to gcc_docdir.
+
+2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gigi.h (get_ada_base_type): Delete.
+ * utils2.c (get_ada_base_type): Likewise.
+ * trans.c (convert_with_check): Operate in the real base type.
+
+2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
+
+2006-03-02 Richard Sandiford <richard@codesourcery.com>
+
+ * utils.c (create_var_decl): Use have_global_bss_p when deciding
+ whether to make the decl common.
+
+2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+ * Make-lang.in (Ada): Remove.
+ (.PHONY): Remove Ada
+
+2006-02-17 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
+ aggregate, check the interpretations of the other operand to find one
+ that may be a boolean array.
+
+ (Analyze_Selected_Component): Fix flow-of-control typo in case where
+ the prefix is a private extension.
+
+2006-02-17 Eric Botcazou <botcazou@adacore.com>
+
+ PR ada/26315
+ * utils2.c (find_common_type): If both input types are BLKmode and
+ have the same constant size, keep using the first one.
+
+ * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
+
+ * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
+
+ * misc.c (gnat_handle_option): New case for -Woverlength-strings.
+
+2006-02-17 Jose Ruiz <ruiz@adacore.com>
+
+ * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
+ s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
+ s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
+ s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
+ Abort_Defer/Undefer pairs to avoid the possibility of a task being
+ aborted while owning a lock.
+
+2006-02-17 Javier Miranda <miranda@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
+ through an access to class-wide interface we force the displacement of
+ the pointer to the allocated object to reference the corresponding
+ secondary dispatch table.
+ (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
+ if Long_Shifts are supported on the target, even if 64 bit divides
+ are not supported (configurable run time mode).
+ (Expand_N_Type_Conversion): Do validity check if validity checks on
+ operands are enabled.
+ (Expand_N_Qualified_Expression): Do validity check if validity checks
+ on operands are enabled.
+
+2006-02-17 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
+ must be materialized when the renamed expression is an explicit
+ dereference.
+
+2006-02-17 Ed Schonberg <schonberg@adacore.com>
+
+ * freeze.adb (Statically_Discriminated_Components): Return false if
+ the bounds of the type of the discriminant are not static expressions.
+
+ * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
+ the bounds of the discriminant type are not static.
+
+2006-02-17 Robert Dewar <dewar@adacore.com>
+
+ * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
+ then we close To if it is valid.
+
+2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * init.c (facility_resignal_table): new array
+ (__gnat_default_resignal_p): enhance default predicate to resignal if
+ VMS condition has one of the predefined facility codes.
+
+2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * Makefile.in: Use VMS64 specialized versions of several units in
+ Interfaces.C hierarchy to be compatible with HP C default size choices.
+ Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
+
+2006-02-17 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
+ instantiation, the corresponding entity is the related_instance of the
+ wrapper package created for the instance.
+
+2006-02-17 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
+ the current instance is nested within another instance in a child unit.
+
+2006-02-17 Javier Miranda <miranda@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
+ type we cannot inherit the primitive operations; we inherit the
+ Corresponding_Record_Type (which has the list of primitive operations).
+ (Check_Anonymous_Access_Types): When creating anonymous access types for
+ access components, use Rewrite in order to preserve the tree structure,
+ for ASIS use.
+ (Analyze_Object_Declaration): For limited types with access
+ discriminants with defaults initialized by an aggregate, obtain
+ subtype from aggregate as for other mutable types.
+ (Derived_Type_Declaration): If the derived type is a limited interface,
+ set the corresponding flag (Is_Limited_Record is not sufficient).
+
+2006-02-17 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
+ to inline a function that returns an unconstrained type, the return
+ expression must be the first variable declared in the body of the
+ function.
+
+2006-02-17 Javier Miranda <miranda@adacore.com>
+
+ * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
+ abstract interface type, the static analysis is not enough to know if
+ the interface is implemented or not by the source tagged type. Hence
+ we must pass the work to the expander to generate the required code to
+ evaluate the conversion at run-time.
+ (Resolve_Equality_Op): Do not apply previous
+ transformation if expansion is disasbled, to prevent anomalies when
+ locating global references in a generic unit.
+
+2006-02-17 Vincent Celier <celier@adacore.com>
+
+ * snames.ads, snames.adb: New standard names for new project attributes:
+ archive_builder, archive_indexer, compiler_pic_option,
+ config_body_file_name, config_body_file_name_pattern,
+ config_file_switches, config_file_unique, config_spec_file_name,
+ config_spec_file_name_pattern, default_builder_switches,
+ default_global_compiler_switches, default_language,
+ dependency_file_kind, global_compiler_switches, include_path,
+ include_path_file, language_kind, linker_executable_option,
+ linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
+ roots, runtime_project.
+
+2006-02-17 Matthew Heaney <heaney@adacore.com>
+
+ * a-convec.ads, a-convec.adb:
+ (operator "&"): handle potential overflow for large index types
+ (Insert): removed Contraint_Error when using large index types
+ (Insert_Space): removed Constraint_Error for large index types
+ (Length): moved constraint check from Length to Insert
+
+ * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
+ as not null access.
+ Explicit raise statements now include an exception message.
+ (operator "&"): handle potential overflow for large index types
+ (Insert): removed Contraint_Error when using large index types
+ (Insert_Space): removed Constraint_Error for large index types
+ (Length): moved constraint check from Length to Insert
+
+2006-02-17 Robert Dewar <dewar@adacore.com>
+
+ * s-wchcnv.adb: Document handling of [ on output (we do not change
+ this to ["5B"] and the new comments say why not.
+
+ * gnat_ugn.texi:
+ Add note for -gnatVo that this now includes the cases of type
+ conversions and qualified expressions.
+ Add comments on handling of brackets encoding for Text_IO
+
+2006-02-17 Ramon Fernandez <fernandez@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * expander.adb: Fix typo in comment
+
+ * exp_pakd.adb: Fix typo
+ Minor comment reformatting.
+
+ * g-dyntab.adb: Minor reformatting
+
+ * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
+ aliased subprograms to look for the abstract interface subprogram.
+
+2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * env.c (__gnat_setenv): Use size_t.
+ (__gnat_unsetenv): Likewise.
+ (__gnat_clearenv): Likewise.
+
+2006-02-16 Arnaud Charlet <charlet@adacore.com>
+
+ * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+
+ * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
+ g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
+ i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
+ s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
+ s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
+ s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
+ s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
+ s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
+ s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
+ no longer used.
+
+2006-02-13 Jose Ruiz <ruiz@adacore.com>
+
+ * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
+ protection against race conditions is not needed.
+ (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
+ fallback handler.
+ (Set_Specific_Handler): Add mutual exclusive access to the specific
+ handler.
+ (Specific_Handler): Add mutual exclusive access for retrieving the
+ specific handler.
+
+ * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
+ back handler.
+
+ * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
+ Fall_Back_Handler and Specific_Handler.
+
+ * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
+ termination handlers.
+ Set two different owerflow depending on the maximal stack size.
+
+ * s-solita.adb (Task_Termination_Handler_T): Document why explicit
+ protection against race conditions is not needed when executing the
+ task termination handler.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
+ a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
+ a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
+ a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
+ a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
+ a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
+ a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
+ a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
+ a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
+ a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
+ a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
+ a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
+ a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
+ a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
+ a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
+ a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
+ a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
+ a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
+ a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
+ a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
+ g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
+ g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
+ mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
+ prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
+ s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
+ s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
+ s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
+ s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
+ s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
+ s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
+ a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
+ fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
+ par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
+ system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
+ reformatting.
+
+2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
+ s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
+ s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
+ s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
+ a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
+ s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
+ a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
+ s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
+ s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+
+ * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
+ s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
+ s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
+ s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
+ s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
+ s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
+ replaced by anonymous access type.
+ (pthread_sigmask): Now take an access sigset_t
+
+ * s-osinte-hpux.ads: Ditto.
+ (pthread_mutex_t, pthread_cond_t): Update definitions to support
+ properly 32 and 64 bit ABIs.
+
+2006-02-13 Pascal Obry <obry@adacore.com>
+
+ * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
+ s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
+ s-taprop-linux.adb, s-taprop-solaris.adb,
+ s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
+ adjustement is already done when calling this routine.
+
+2006-02-13 Pascal Obry <obry@adacore.com>
+
+ * system-mingw.ads (Underlying_Priorities): Update the priority mapping
+ table to take advantage of the 16 priority levels available on Windows
+ 2000 and XP. On NT4 there are only 7 priority levels, this is properly
+ supported by this new mapping.
+
+2006-02-13 Nicolas Setton <setton@adacore.com>
+
+ * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
+ (get_encoding): New subprogram. Extracts the encodings from an encoded
+ Ada name.
+
+2006-02-13 Pascal Obry <obry@adacore.com>
+ Nicolas Roche <roche@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+
+ * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
+ support.
+ (__gnat_try_lock): Add unicode support by using a specific section on
+ Windows.
+ (__gnat_get_current_dir): Idem.
+ (__gnat_open_read): Idem.
+ (__gnat_open_rw): Idem.
+ (__gnat_open_create): Idem.
+ (__gnat_create_output_file): Idem.
+ (__gnat_open_append): Idem.
+ (__gnat_open_new): Idem.
+ (__gnat_file_time_name): Idem.
+ (__gnat_set_file_time_name): Idem.
+ (__gnat_stat): Idem.
+ (win32_no_block_spawn): Idem.
+ (__gnat_locate_exec_on_path): Idem.
+ (__gnat_opendir): New routine.
+ (__gnat_closedir): Idem.
+ (__gnat_readdir): Add new parameter length (pointer to int). Update
+ implementation to use it and add specific Win32 code for Unicode
+ support.
+ (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
+ (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
+ (convert_addresses): Do not define this dummy routine on VMS.
+
+ * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
+ runtime Unicode support will be activated.
+ (S2WS): String to Wide-String conversion. This version just copy a
+ string in non Unicode version.
+ (WS2S): Wide-String to String conversion. This version just copy a
+ string in non Unicode version.
+
+ * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
+ (Open): Now import __gnat_opendir from adaint.c.
+ (Read): Change the implementation to support unicode characters. It is
+ not possible to use strlen() on Windows as this version supports only
+ standard ASCII characters. So the length of the directory entry is now
+ returned from the imported __gnat_readdir routine.
+ Update copyright notice.
+
+ * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
+ (opendir): Moved to adaint.c.
+
+ * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
+ (Get_Directory): Fix wrong indexing.
+ (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
+ __gnat_getenv from env.c
+ (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
+ from env.c
+
+ * env.h, env.c: New file.
+
+ * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
+ adaint.c by __gnat_getenv from env.c
+
+ * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
+ adaint.c by __gnat_getenv from env.c
+
+ * Make-lang.in: Add env.o in the list of C object needed by gnat1
+ and gnatbind.
+ Update dependencies.
+
+2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ Olivier Hainque <hainque@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
+
+ * gigi.h (value_factor_p): Add prototype and description, now public.
+
+ * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
+ promotion for field with rep clause if the associated size was proven
+ to be in error.
+ Expand comments describing attempts to use a packable type.
+ (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
+ E_Floating_Point_Subtype>: Inherit alias set of what we are making a
+ subtype of to ensure conflicts amongst all subtypes in a hierarchy,
+ necessary since these are not different types and pointers may
+ actually designate any subtype in this hierarchy.
+ (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
+ discriminants but put them into record only if not Unchecked_Union;
+ pass flag to components_to_record showing Unchecked_Union.
+ (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
+ components before variants; don't set TYPE_UNCHECKED_UNION_P.
+ (components_to_record): New argument UNCHECKED_UNION.
+ Remove special case code for Unchecked_Union and instead use main code
+ with small changes.
+
+ PR ada/26096
+ (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
+ variable with the expression being built, only its inner field.
+
+ * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
+ emit_sequence_entry_statements.
+ (emit_sequence_entry_statements, body_with_handlers_p): Delete.
+ (establish_gnat_vms_condition_handler): Move before
+ Subprogram_Body_to_gnu.
+ (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
+ for a subprogram if it has a foreign convention or is exported.
+ (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
+ substituted for a CONST_DECL.
+ (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
+ Etype to assoc_to_constructor.
+ (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
+ discriminants of Unchecked_Union.
+ (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
+ don't need cluttering preprocessor directives.
+ (establish_gnat_vms_condition_handler): New function. Establish the GNAT
+ condition handler as current in the compiled function.
+ (body_with_handlers_p): New function. Tell whether a given sequence of
+ statements node is attached to a package or subprogram body and involves
+ exception handlers possibly nested within inner block statements.
+ (emit_sequence_entry_statements): New function, to emit special
+ statements on entry of sequences when necessary. Establish GNAT
+ condition handler in the proper cases for VMS.
+ (Handled_Sequence_Of_Statements_to_gnu): Start block code with
+ emit_sequence_entry_statements.
+
+ * utils2.c (find_common_type): If both input types are BLKmode and
+ have a constant size, use the smaller one.
+ (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
+ the same.
+
+ * utils.c (value_factor_p): Make public, to allow uses from other gigi
+ units.
+ (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
+ (convert, case UNION_TYPE): Remove special treatment for unchecked
+ unions.
+
+ PR ada/18659
+ (update_pointer_to): Update variants of pointer types to unconstrained
+ arrays by attaching the list of fields of the main variant.
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * a-exexpr.adb, a-exexpr-gcc.adb
+ (Process_Raise_Exception): Removed, merged with Propagate_Exception.
+ (Propagate_Exception): Now take extra From_Signal_Handler parameter.
+ Remove code unused for exception propagation for the compiler itself
+ from a-except.adb and update to still share separate packages.
+
+ * a-except.ads, a-except.adb: Ditto.
+ Add comments that this version is now used only by the compiler and
+ other basic tools. The full version that includes the Ada 2005 stuff
+ is in separate files a-except-2005.ads/adb. The reason is that we do
+ not want to cause bootstrap problems with compilers not recognizing
+ Wide_Wide_String.
+ Add exception reason code PE_Implicit_Return
+ Add new exception reason code (Null Exception_Id)
+
+ * a-except-2005.adb, a-except-2005.ads: New files.
+
+ * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
+
+ * s-wchcon.adb: New file.
+
+ * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
+ (traceback.o deps): Likewise.
+ (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
+ Activate build of GMEM instrumentation library on VMS targets.
+ (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
+ Use a-except-2005.ads/adb for all run-time library builds unless
+ specified otherwise.
+ [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
+ s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
+ Use s-parame.adb on all native platforms.
+ Use s-parame-vxworks.adb on all vxworks platforms.
+ Add env.c env.h in LIBGNAT_SRCS
+ Add env.o in LIBGNAT_OBJS
+ (GNATMAKE_OBJS): Remove ctrl_c.o object.
+ (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
+ s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
+ supports VxWorks 6 RTPs.
+ (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
+ i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
+
+ * types.h, types.ads (Terminate_Program): New exception
+ Add comment on modifying multiple versions of a-except.adb when the
+ table of exception reasons is modified.
+ Add exception reason code PE_Implicit_Return
+ Add new exception reason code (Null Exception_Id)
+
+ * clean.adb (Initialize): Get the target parameters before checking
+ if target is OpenVMS. Move the OpenVMS specific code here from package
+ body elaboration code.
+
+2006-02-13 Thomas Quinot <quinot@adacore.com>
+ Vincent Celier <celier@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * ali-util.adb (Get_File_Checksum): Update to account for change in
+ profile of Initialize_Scanner.
+
+ * gprep.adb (Gnatprep): Update to account for change in profile of
+ Initialize_Scanner.
+ (Process_One_File): Same.
+
+ * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
+ common code between Get_Code_Unit and Get_Source_Unit. Reimplement
+ that behaviour using the new Unit information recorded in the source
+ files table, rather than going through all units every time.
+ (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
+ (Get_Source_Unit): Same.
+
+ * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
+ change in profile of Initialize_Scanner.
+ (Prepare_To_Preprocess): Same.
+
+ * lib.ads: Fix typo in comment (templace -> template).
+
+ * prj-part.adb (Parse_Single_Project): Update to account for change in
+ profile of Initialize_Scanner.
+
+ * scn.adb (Initialize_Scanner): Account for change in profile of
+ Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
+ Also record the association of the given Source_File_Index to the
+ corresponding Unit_Number_Type.
+
+ * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
+ procedure.
+ (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
+ Remove Unit formal for generic scanner: this formal
+ is only relevant to Scn (the scanner instance used to parse Ada source
+ files), not to other instances. Update comment accordingly.
+ (Scan): Use new function Snames.Is_Keyword_Name.
+
+ * sinfo-cn.adb: Fix typo in comment.
+
+ * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
+ Unit.
+
+ * sinput.ads (Source_File_Record): New component Unit, used to capture
+ the unit identifier (if any) associated to a source file.
+
+ * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
+ Unit in Source_File_Record.
+
+ * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
+ in profile of Initialize_Scanner.
+
+ * scans.adb (Initialize_Ada_Keywords): New procedure
+
+ * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
+ Ada keywords in the Namet table, without the need to call
+ Initialize_Scanner.
+
+ * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
+ (Is_Keyword_Name): New function
+
+ * snames.ads: Add subtype Configuration_Pragma_Names
+ Add pragma Ada_2005 (synonym for Ada_05)
+ (Is_Keyword_Name): New function
+
+ * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+
+ * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
+ index.
+
+ * a-stwima.adb (To_Set): Add extra check when N = 0.
+
+ * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+
+ * s-parame-mingw.adb, s-parame-linux.adb,
+ s-parame-solaris.adb: Removed, replaced by s-parame.adb
+
+ * s-parame-vxworks.ads: Fix typo.
+
+ * s-parame-vxworks.adb: New file.
+
+ * s-parame.adb: Version now used by all native platforms.
+ (Default_Stack_Size): Use 2 megs for default stack size and use
+ __gl_default_stack_size when available.
+ (Minimum_Stack_Size): Use 12K.
+
+ * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
+ (Create_Task): Refine implementation taking advantage of the XP stack
+ size support. On XP, we now create the thread using the flag
+ STACK_SIZE_PARAM_IS_A_RESERVATION.
+
+ * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
+
+ * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
+ XP and 0 on older Windows versions.
+
+ * interfac-vms.ads: Removed, no longer used.
+
+2006-02-13 Matthew Heaney <heaney@adacore.com>
+
+ * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
+ a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
+ a-cohase.adb: All explicit raise statements now include an exception
+ message.
+
+ * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
+ (Update_Element_Preserving_Key): renamed op to just Update_Element.
+ Explicit raise statements now include an exception message
+
+ * a-cihase.ads, a-cohase.ads: Removed comment.
+
+ * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
+ a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
+ a-szbzha.adb, a-szfzha.ads: New files.
+
+2006-02-13 Matthew Heaney <heaney@adacore.com>
+
+ * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
+ quicksort.
+
+2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * lang.opt: Wvariadic-macros: New option.
+ Wold-style-definition: Likewise.
+ Wmissing-format-attribute: Likewise.
+
+ * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
+ -Wold-style-definition and -Wmissing-format-attribute.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
+
+ * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
+
+2006-02-13 Nicolas Roche <roche@adacore.com>
+
+ * a-envvar.adb, a-envvar.ads: New files.
+
+2006-02-13 Douglas Rupp <rupp@adacore.com>
+
+ * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
+
+ * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
+
+2006-02-13 Pat Rogers <rogers@adacore.com>
+
+ * a-rttiev.adb, a-rttiev.ads: New files.
+
+2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
+ a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
+
+ * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
+ sem_case.adb: Minor code reorganization (not Present should be No)
+
+2006-02-13 Geert Bosch <bosch@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
+ 0, since the lower bound of the actual string may be greater than one.
+
+ PR ada/20753
+ * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
+ layout is requested.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * back_end.adb (Scan_Compiler_Arguments): Check if
+ Search_Directory_Present is True and, if it is, add the argument in
+ the source search directory path.
+
+ * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
+ Search_Directory_Present to True.
+
+2006-02-13 Joel Brobecker <brobecke@adacore.com>
+
+ * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
+ volatile, to tell the compiler to preserve this variable at any level
+ of optimization.
+ (Gen_Versions_Ada): Temporarily work around codegen bug.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
+ gcc to link with option -shared-libgcc.
+ (Gnatlink): Remove duplicate switches -shared-libgcc
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * gnatvsn.ads (Current_Year): New constant, used to easily update
+ copyright on all GNAT tools.
+
+ * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
+ copyright notice.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
+ after hyphen (small aesthetic change useful for a range of numbers
+ using ^-^.
+ Suppress range checks for a couple of assignments which otherwise
+ cause validity checks with validity checking turned on.
+
+ * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
+ Improvement in error message for object.
+ (Rep_Item_Too_Late): Remove '!' in warning message.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * err_vars.ads: Suppress range checks for a couple of assignments
+ which otherwise cause validity checks with validity checking turned on.
+ Update comments.
+
+ * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
+ Make message unconditional if it is a warning.
+ (Error_Msg_NEL): Always output warning messages.
+ Suppress range checks for a couple of assignments which otherwise
+ cause validity checks with validity checking turned on.
+
+ * errout.ads (Message Insertion Characters): Document that '!' is
+ implied by '?' in error messages.
+
+ * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
+ (Gnat1drv): Use a goto to end of main subprogram instead of
+ Exit_Program (E_Success) so that finalization can occur normally.
+
+2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
+ wrapped around.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
+ Unchecked_Conversion functions.
+ (Modification_Time): Use direct conversion of OS_Time to Calendar time
+ when OpenVMS returns False.
+
+ * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
+ a-dirval.adb (OpenVMS): New Boolean function
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Thomas Quinot <quinot@adacore.com>
+
+ * checks.adb (Build_Discriminant_Checks): If the expression being
+ checks is an aggregate retrieve the values of its discriminants to
+ generate the check, rather than creating a temporary and a reference
+ to it.
+ (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
+ (Install_Null_Excluding_Check): Ditto
+ (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
+ not for the renamed object, so that the actual itype is attached in the
+ proper context.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+ Vincent Celier <celier@adacore.com>
+
+ * debug.adb: Eliminate numeric switches for binder/gnatmake
+
+ * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
+ switches for the compiler.
+ (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
+ (Scan_Make_Switches): When failing with an illegal switch, output an
+ error message with the full switch.
+ Eliminate numeric switches for binder/gnatmake
+
+ * switch.ads, switch.adb (Bad_Switch): New procedure
+
+ * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
+ Remove 0-9 as debug flag character possibilities
+ -d is now controlling the primary stack size when its value is a
+ positive. Also add checks against invalid values, and support for kb,
+ mb. Ditto for -D switch.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+ Serguei Rybin <rybin@adacore.com>
+
+ * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
+ save/restore routines.
+ Properly handle Ada_Version_Explicit and Ada_Version_Config, which
+ were not always properly handled previously.
+ Since we are changing the tree format anyway, also get rid of the
+ junk obsolete Immediate_Errors flag.
+ (Tree_Read): Change the way of reading Tree_Version_String - now we
+ read the version string from the tree even if its length is not the
+ same as the length of the version string computed from Gnatvsn.
+ (Search_Directory_Present): New Boolean flag for the compiler.
+ Define Tree_Version_String as a dynamic string.
+ (Default_Stack_Size): new variable, used to handle switch -d.
+
+ * par-prag.adb:
+ For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
+ only for main unit.
+ Add pragma Ada_2005 (synonym for Ada_05)
+ Properly handle Ada_Version_Explicit and Ada_Version_Config, which
+ were not always properly handled previously.
+
+ * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
+ explicit Ada_95 to Ada_2005.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
+ against errors in the source program: a private types for which the
+ corresponding full type declaration is missing and pragma CPP_Virtual
+ is used.
+ (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
+ (Is_Known_Null): New flag
+ (Has_Pragma_Pure): New flag
+ (No_Return): Present in all entities, set only for procedures
+ (Is_Limited_Type): A type whose ancestor is an interface is limited if
+ explicitly declared limited.
+ (DT_Offset_To_Top_Func): New attribute that is present in E_Component
+ entities. Only used for component marked Is_Tag. If present it stores
+ the Offset_To_Top function used to provide this value in tagged types
+ whose ancestor has discriminants.
+
+ * exp_ch2.adb: Update status of new Is_Known_Null flag
+
+ * sem_ch7.adb: Maintain status of new Is_Known_Null flag
+
+ * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
+ the categorization sense if Is_Pure was set by pragma Pure_Function.
+
+2006-02-13 Quentin Ochem <ochem@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
+
+ * bindusg.adb: Updated documentation for -d and -D switches.
+
+ * raise.h (__gnat_set_globals): added new parameter for
+ Default_Stack_Size.
+
+ * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
+ (__gnat_handle_vms_condition): Adjust context before raise.
+ (__gnat_install_handler): Restore the global vector setup for GCC
+ versions before 3.4, as the frame based circtuitry is not available
+ in this case.
+ (__gnat_set_globals): added a parameter default_stack_size
+ (__gl_default_stack_size): new variable.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
+ "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
+ does not exist in the Ada RM.
+ (Compatible_Int_Bounds): Determine whether two integer range bounds
+ are of equal length and have the same start and end values.
+ (Is_Int_Range_Bounds): Determine whether a node is an integer range.
+ (Build_Record_Aggr_Code): Perform proper sliding of a nested array
+ aggregate when it is part of an object declaration.
+ (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
+ constrains discriminants of its parent, add explicitly the discriminant
+ constraints of the ancestor by retrieving them from the
+ stored_constraint of the parent.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
+ attribute Mechanism_Code is applied to renamed subprogram, modify
+ prefix to point to base subprogram.
+ Max/Min attributes now violate Restriction No_Implicit_Conditionals
+
+ * sinfo.ads: Document that Mechanism_Code cannot be applied to
+ renamed subprograms so that the front-end must replace the prefix
+ appropriately.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
+ availability of RE_Interface_Tag.
+ (Build_Initialization_Call): Fix wrong access to the discriminant value.
+ (Freeze_Record_Type): Do not generate the tables associated with
+ timed and conditional dispatching calls through synchronized
+ interfaces if compiling under No_Dispatching_Calls restriction.
+ When compiling for Ada 2005, for a nonabstract
+ type with a null extension, call Make_Controlling_Function_Wrappers
+ and insert the wrapper function declarations and bodies (the latter
+ being appended as freeze actions).
+ (Predefined_Primitive_Bodies): Do not generate the bodies of the
+ predefined primitives associated with timed and conditional
+ dispatching calls through synchronized interfaces if we are
+ compiling under No_Dispatching_Calls.
+ (Build_Init_Procedure): Use RTE_Available to check if a run-time
+ service is available before generating a call.
+ (Make_Controlling_Function_Wrappers): New procedure.
+ (Expand_N_Full_Type_Declaration): Create a class-wide master for
+ access-to-limited-interfaces because they can be used to reference
+ tasks that implement such limited interface.
+ (Build_Offset_To_Top_Functions): Build the tree corresponding to the
+ procedure spec and body of the Offset_To_Top function that is generated
+ when the parent of a type with discriminants has secondary dispatch
+ tables.
+ (Init_Secondary_Tags): Handle the case in which the parent of the type
+ containing secondary dispatch tables has discriminants to generate the
+ correct arguments to call Set_Offset_To_Top.
+ (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
+
+ * a-tags.ads, a-tags.adb: (Check_Index): Removed.
+ Add Wide_[Wide_]Expanded_Name.
+ (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
+ the same functionality of Get_Prim_Op_Address but applied to predefined
+ primitive operations because the pointers to the predefined primitives
+ are now saved in a separate table.
+ (Parent_Size): Modified to get access to the separate table of primitive
+ operations or the parent type.
+ (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
+ functionality of Set_Prim_Op_Address but applied to predefined primitive
+ operations.
+ (Set_Signature): New subprogram used to store the signature of a DT.
+ (Displace): If the Offset_To_Top value is not static then call the
+ function generated by the expander to get such value; otherwise use
+ the value stored in the table of interfaces.
+ (Offset_To_Top): The type of the actual has been changed to Address to
+ give the correct support to tagged types with discriminants. In this
+ case this value is stored just immediately after the tag field.
+ (Set_Offset_To_Top): Two new formals have been added to indicate if the
+ offset_to_top value is static and hence pass this value to the run-time
+ to store it in the table of interfaces, or else if this value is dynamic
+ and then pass to the run-time the address of a function that is
+ generated by the expander to provide this value for each object of the
+ type.
+
+ * rtsfind.ads (Default_Prin_Op_Count): Removed.
+ (Default_Prim_Op_Count): New entity
+ (Get_Predefined_Prim_Op_Address): New entity
+ (Set_Predefined_Prim_Op_Address): New entity
+ (RE_Set_Signature): New entity
+
+2006-02-13 Thomas Quinot <quinot@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
+ Make_Adjust_Call done for a newly-allocated object.
+
+ * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
+ in a subprogram are wrapped in a cleanup block, indicate that the
+ subprogram contains an inner block with an exception handler.
+ (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
+ Adjust call is for a newly-allocated object. In that case we must not
+ assume that the finalization list chain pointers are correct (since they
+ come from a bit-for-bit copy of the original object's pointers) so if
+ the attach level would otherwise be zero (no change), we set it to 4
+ instead to cause the pointers to be reset to null.
+
+ * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
+ reset chain pointers to null.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
+ string, and the context requires a loop for the assignment (e.g.
+ because the left-hand side is packed), generate a unique name for the
+ temporary that holds the string, to prevent spurious name clashes.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
+ return unconstrained arrays.
+ Update comments.
+ (Expand_Call): An indirect call through an access parameter of a
+ protected operation is not a protected call.
+ Add circuit to raise CE in Ada 2005 mode following call
+ to Raise_Exception.
+ (Register_DT_Entry): Do nothing if
+ the run-time does not give support to abstract interfaces.
+ (Freeze_Subprogram): In case of dispatching operations, do not generate
+ code to register the operation in the dispatch table if the source
+ is compiled with No_Dispatching_Calls.
+ (Register_Predefined_DT_Entry): Generate code that calls the new
+ run-time subprogram Set_Predefined_Prim_Op_Address instead of
+ Set_Prim_Op_Address.
+
+ * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
+ on array assignments if the right-hand side is a function call that has
+ been inlined. Check is performed on the assignment in the block.
+ (Process_Bounds): If bounds and range are overloaded, apply preference
+ rule for root operations to disambiguate, and diagnose true ambiguity.
+ (Analyze_Assignment): Propagate the tag for a class-wide assignment with
+ a tag-indeterminate right-hand side even when Expander_Active is True.
+ Needed to ensure that dispatching calls to T'Input are allowed and
+ get the tag of the target class-wide object.
+
+ * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
+ an inherited primitive operation that already overrides several
+ abstract interface primitives. For transitivity, the new entity must
+ also override all the abstract interface primitives covered by the
+ inherited overriden primitive.
+ Emit warning if new entity differs from homograph in same scope only in
+ that one has an access parameter and the other one has a parameter of
+ a general access type with the same designated type, at the same
+ position in the signature.
+ (Make_Inequality_Operator): Use source locations of parameters and
+ subtype marks from corresponding equality operator when creating the
+ tree structure for the implicit declaration of "/=". This does not
+ change anything in behaviour except that the decoration of the
+ components of the subtree created for "/=" allows ASIS to get the
+ string images of the corresponding identifiers.
+ (Analyze_Return_Statement): Remove '!' in warning message.
+ (Check_Statement_Sequence): Likewise.
+ (Analyze_Subprogram_Body): For an access parameter whose designated type
+ is an incomplete type imported through a limited_with clause, use the
+ type of the corresponding formal in the body.
+ (Check_Returns): Implicit return in No_Return procedure now raises
+ Program_Error with a compile time warning, instead of beging illegal.
+ (Has_Single_Return): Function returning unconstrained type cannot be
+ inlined if expression in unique return statement is not an identifier.
+ (Build_Body_To_Inline): It is possible to inline a function call that
+ returns an unconstrained type if all return statements in the function
+ return the same local variable. Subsidiary procedure Has_Single_Return
+ verifies that the body conforms to this restriction.
+
+ * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
+ same type, and one of them is of an anonymous access type, convert
+ the other operand to it, so that this is a valid binary operation for
+ gigi.
+ (Resolve_Type_Conversion): Handle subtypes of protected types and
+ task types when accessing to the corresponding record type.
+ (Resolve_Allocator): Add '\' in 2-line warning message.
+ Remove '!' in warning message.
+ (Resolve_Call): Add '\' in 2-line warning message.
+ (Valid_Conversion): Likewise.
+ (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
+ resulting type may be an access type with an implicit dereference.
+ Obtain the proper component from the designated type.
+ (Make_Call_Into_Operator): Handle properly a call to predefined equality
+ given by an expanded name with prefix Standard, when the operands are
+ of an anonymous access type.
+ (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
+ Explicit_Dereference and Resolve_Selected_Component, to verify that the
+ prefix of the expression is not of an incomplete type. Allows full
+ diagnoses of all semantic errors.
+ (Resolve_Actuals): If the actual is an allocator whose directly
+ designated type is a class-wide interface we build an anonymous
+ access type to use it as the type of the allocator. Later, when
+ the subprogram call is expanded, if the interface has a secondary
+ dispatch table the expander will add a type conversion to force
+ the displacement of the pointer.
+ (Resolve_Call): If a function that returns an unconstrained type is
+ marked Inlined_Always and inlined, the call will be inlined and does
+ not require the creation of a transient scope.
+ (Check_Direct_Boolean_Op): Removed
+ (Resolve_Comparison_Op): Remove call to above
+ (Resolve_Equality_Op): Remove call to above
+ (Resolve_Logical_Op): Inline above, since this is only call.
+ (Valid_Conversion): Handle properly conversions between arrays of
+ convertible anonymous access types.
+
+ PR ada/25885
+ (Set_Literal_String_Subtype): If the lower bound is not static, wrap
+ the literal in an unchecked conversion, because GCC 4.x needs a static
+ value for a string bound.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
+ components of the corresponding record, take into account component
+ definitions that are access definitions.
+ (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
+ procedure is not considered a dispatching call and will be expanded
+ properly.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+
+ * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
+ controlling argument of the dispatching call is an abstract interface
+ class-wide type then we use it directly.
+ Check No_Dispatching_Calls restriction.
+ (Default_Prim_Op_Position): Remove the code that looks for the last
+ entity in the list of aliased subprograms. This code was wrong in
+ case of renamings.
+ (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
+ when the source is compiled with the No_Dispatching_Calls restriction.
+ (Init_Predefined_Interface_Primitives): No need to inherit primitives
+ if we are compiling with restriction No_Dispatching_Calls.
+ (Make_Disp_XXX): Addition of assertion to avoid the use of all these
+ subprograms if we are compiling under No_Dispatching_Calls restriction.
+ (Make_DT): Generate a dispatch table with a single dummy entry if
+ we are compiling with the No_Dispatching_Calls restriction. In
+ addition, in this case we don't generate code that calls to the
+ following run-time subprograms: Set_Type_Kind, Inherit_DT.
+ (Make_Select_Specific_Data_Table): Add assertion to avoid the use
+ of this subprogram if compiling with the No_Dispatching_Calls
+ restriction.
+ (Expand_Type_Conversion): Instead of using the actual parameter,
+ the argument passed as parameter to the conversion function was
+ erroneously referenced by the expander.
+ (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
+ Set_Predefined_Primitive_Op_Address and Set_Signature.
+ (Expand_Dispatching_Call): Generate call to
+ Get_Predefined_Prim_Op_Address for predefined primitives.
+ (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
+ predefined primitives.
+ (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
+ primitives we reserve one dummy entry to ensure that the tag does not
+ point to some memory that is associated with some other object. In
+ addition, remove all the old code that generated the assignments
+ associated with the signature of the dispatch table and replace them
+ by a call to the new subprogram Set_Signature.
+ (Set_All_DT_Position): Change the algorithm because now we have a
+ separate dispatch table associated with predefined primitive operations.
+ (Expand_Interface_Conversion): In case of non-static offset_to_top
+ add explicit dereference to get access to the object after the call
+ to displace the pointer to the object.
+ (Expand_Interface_Thunk): Modify the generation of the actual used
+ in the calls to the run-time function Offset_To_Top to fulfil its
+ new interface.
+ (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_dist.adb (Copy_Specification): For access parameters, copy
+ Null_Exclusion flag, which will have been set for stream subprograms
+ in Ada2005 mode.
+
+2006-02-13 Pascal Obry <obry@adacore.com>
+
+ * expect.c (__gnat_expect_portable_execvp): New implementation. The
+ previous implementation was using the C runtime spawnve routine but
+ the corresponding wait was using directly the Win32 API. This was
+ causing some times a lock when waiting for an event using
+ WaitForSingleObject in __gnat_waitpid. This new implementation uses
+ the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
+ API fixes this problem.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
+ call.
+
+2006-02-13 Thomas Quinot <quinot@adacore.com>
+
+ * exp_pakd.ads: Fix typos in comments.
+
+ * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
+ array reference that is an explicit dereference, mark the converted
+ (packed) array reference as analyzed to prevent a forthcoming
+ reanalysis from resetting its type to the original (non-packed) array
+ type.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_util.ads, exp_util.adb (Find_Prim_Op,
+ Is_Predefined_Primitive_Operation): When
+ searching for the predefined equality operator, verify that operands
+ have the same type.
+ (Is_Predefined_Dispatching_Operation): Remove the code that looks
+ for the last entity in the list of aliased subprograms. This code
+ was wrong in case of renamings.
+ (Set_Renamed_Subprogram): New procedure
+ (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
+ Exp_Type constant computed when entering this subprogram.
+ (Known_Null): New function
+ (OK_To_Do_Constant_Replacement): New function
+ (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
+ (Side_Effect_Free): An attribute reference 'Input is not free of
+ side effect, unlike other attributes that are functions. (from code
+ reading).
+ (Remove_Side_Effects): Expressions that involve packed arrays or records
+ are copied at the point of reference, and therefore must be marked as
+ renamings of objects.
+ (Is_Predefined_Dispatching_Operation): Return false if the operation is
+ not a dispatching operation.
+
+ PR ada/18819
+ (Remove_Side_Effects): Lift enclosing type conversion nodes for
+ elementary types in all cases.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+
+ * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
+ task types when accessing to the corresponding record type.
+ Remove '!' in warning message.
+
+2006-02-13 Olivier Hainque <hainque@adacore.com>
+
+ * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
+ to avoid useless and space inefficient overalignments on targets where
+ Max_Alignment is larger than 16.
+
+2006-02-13 Pascal Obry <obry@adacore.com>
+
+ * g-catiio.adb (Sec_Number): New type used to compute the number of
+ seconds since 1-1-1970.
+ (Image) [Natural]: The parameter was an Integer, as we can't deal with
+ negative numbers (years, months...) it is better to have a Natural here.
+ Code clean-up.
+ (Image) [Number]: Change parameter from Long_Integer to Number.
+ (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
+ overflow for dates past year 2038.
+
+2006-02-13 Matthew Heaney <heaney@adacore.com>
+
+ * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
+ Constraint_Error.
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+
+ * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
+ native platforms.
+ (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
+ finalization can occur normally.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * gnatcmd.adb (Rules_Switches): New table
+ (Add_To_Rules_Switches): New procedure
+ (GNATCmd): For command CHECK, put all options following "-rules" in the
+ Rules_Switches table. Append these -rules switches after the -cargs
+ switches.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
+ These two cases were generating incorrect output, and if this unit
+ was built with checks on, generated a discriminant mismatch constraint
+ error.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * lib-xref.adb (Get_Type_Reference): For a private type whose full
+ view is an array type, indicate the component type as well, for
+ navigation purposes.
+ (Generate_Reference): Don't consider array ref on LHS to be a case
+ of violating pragma Unreferenced.
+ Do not give Ada 2005 warning except on real reference.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
+ main source, add switch -mdebug-main=_ada_ so that the executable can
+ be debugged by the standard VMS debugger.
+ (Gnatmake): Set No_Main_Subprogram to True when there is no main
+ subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
+ Exit the Multi_Main_Loop when Unique_Compile is True after compilation
+ of the last source, as the binding and linking phases are never
+ performed.
+ Set all executable obsolete when rebuilding a library.
+
+ * makeutl.adb (Linker_Options_Switches): Do not process empty linker
+ options.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+
+ PR ada/23973
+ * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
+ code to improve the error message reported when the program has
+ declarations of abstract interface types and it is not compiled with
+ the -gnat05 switch.
+ (P_Access_Definition): Reorganize the code to improve the error
+ message reported when the new Ada 2005 syntax for anonymous
+ access types is used and the program is not compiled with the
+ -gnat05 switch.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
+ stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
+ (MODE_IN)
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+
+ * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
+ against source containing syntax errors.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * prj.adb (Reset): Initialize the first element of table Namings with
+ the standard naming data.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * prj.ads (Error_Warning): New enumeration type
+
+ * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
+ unknown, use the location of the project to report the error.
+ (When_No_Sources): New global variable
+ (Report_No_Ada_Sources): New procedure
+ (Check): New parameter When_No_Sources. Set value of global variable
+ When_No_Sources,
+ (Find_Sources): Call Report_No_Ada_Sources when appropriate
+ (Get_Sources_From_File): Ditto
+ (Warn_If_Not_Sources): Better warning messages indicating the unit name
+ and the file name.
+
+ * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
+ Call Prj.Proc.Process with parameter When_No_Sources.
+
+ * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
+ Call Recursive_Check with parameter When_No_Sources.
+ (Recursive_Check): New parameter When_No_Sources. Call itself and
+ Prj.Nmsc.Check with parameter When_No_Sources.
+ (Process): New parameter When_No_Sources. Call Check with parameter
+ When_No_Sources.
+ (Copy_Package_Declarations): New procedure to copy renamed parameters
+ and setting the location of the declared attributes to the location
+ of the renamed package.
+ (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
+ packages.
+
+2006-02-13 Vincent Celier <celier@adacore.com>
+
+ * prj-makr.adb (Make): Preserve the comments from the original project
+ file.
+ When removing nodes (attributes Source_Dirs, Source_Files,
+ Source_List_File and package Naming), save the comments and attach the
+ saved comments to the newly created nodes.
+ Do not add a with clause for the naming package if one already exists.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
+
+ * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
+ aliased entities to look for the overriden abstract interface
+ subprogram.
+ (Is_Interface_Subprogram): Complete documentation.
+ (Check_Dispatching_Operation): Do not generate code to register the
+ operation in the dispatch table if the source is compiled with
+ restriction No_Dispatching_Calls.
+ (Override_Dispatching_Operation): Check for illegal attempt to override
+ No_Return procedure with procedure that is not No_Return
+ (Check_Dispatching_Call): Suppress the check for an abstract operation
+ when the original node of an actual is a tag-indeterminate attribute
+ call, since the attribute, which must be 'Input, can never be abstract.
+ (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
+ call to the Input attribute (even when rewritten).
+ (Propagate_Tag): Augment comment to indicate the possibility of a call
+ to an Input attribute.
+
+ * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
+ calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
+
+ * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
+ No_Wide_Characters is no longer partition-wide
+ No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
+ rather than GNAT
+
+2006-02-13 Douglas Rupp <rupp@adacore.com>
+
+ * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+
+ * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
+ handles default-initialized components to keep separate the management
+ of this feature but also avoid the unrequired resolution and
+ expansion of components that do not have partially initialized
+ values.
+ (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
+ (Check_Bounds): Likewise.
+ (Check_Length): Likewise.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
+ abstract interface type call analyze_and_resolve to expand the type
+ conversion into the corresponding displacement of the
+ reference to the base of the object.
+ (Eval_Attribute, case Width): For systems where IEEE extended precision
+ is supported, the maximum exponent occupies 4 decimal digits.
+ (Accessibility_Message): Add '\' in 2-line warning message.
+ (Resolve_Attribute): Likewise.
+ (case Attribute_Access): Significantly revise checks
+ for illegal access-to-subprogram Access attributes to properly enforce
+ the rules of 3.10.2(32/2).
+ Diagnose use of current instance with an illegal attribute.
+
+ * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
+ to a Node_Id.
+ (Enclosing_Generic_Unit): New function to return a node's innermost
+ enclosing generic declaration node.
+ (Compile_Time_Constraint_Error): Remove '!' in warning messages.
+ (Type_Access_Level): The accessibility level of anonymous acccess types
+ associated with discriminants is that of the current instance of the
+ type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
+ (Compile_Time_Constraint_Error): Handle case of conditional expression.
+ (Kill_Current_Values_For_Entity): New function
+ (Enter_Name): Change formal type to Entity_Id
+
+2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch10.adb (Check_Redundant_Withs): New procedure in
+ Analyze_Compilation_Unit.
+ Detect and warn on redundant with clauses detected in a package spec
+ and/or body when -gnatwr is used.
+ (Analyze_Context): Analyze config pragmas before other items
+ (Install_Context_Items): Don't analyze config pragmas here
+ (Install_Limited_Withed_Unit): Set limited entity of package in
+ with_clause so that cross-reference information or warning messages on
+ unused packages can be properly generated
+ (Is_Visible_Through_Renamings): Return false if the limited_with_clause
+ has Error_Posted set. Prevent infinite loops in illegal programs.
+ (Check_Private_Child_Unit): Move test for a nonprivate with clause down
+ to the point of the error test requiring the current unit to be private.
+ This ensures that private with clauses are not exempted from the basic
+ checking for being a descendant of the same library unit parent as a
+ withed private descendant unit.
+ (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
+ handle private with clauses properly, as well as to account for cases
+ where the withed unit is a public descendant of a private ancestor
+ (in which case the current unit must be a descendant of the private
+ ancestor's parent). The spec comments were updated accordingly. Also,
+ the old error message in this subprogram was replaced with error
+ messages that mirror the errors tested and reported by
+ Check_Private_Child_Unit.
+ Parameter and variable names improved for readability.
+ (Install_Limited_Context_Clauses): Remove test for a withed unit being
+ private as the precondition for calling
+ Check_Private_Limited_Withed_Unit since that subprogram has been
+ revised to test public units as well as private units.
+
+2006-02-13 Thomas Quinot <quinot@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+ Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
+ that Scope_Stack.First = 1.
+ Properly handle Ada_Version_Explicit and Ada_Version_Config, which
+ were not always properly handled previously.
+ (Formal_Entity): Complete rewrite, to handle properly some complex case
+ with multiple levels of parametrization by formal packages.
+ (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
+ to the corresponding derived type declaration for proper semantics.
+
+ * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
+ (Check_Component): Enforce restriction on components of
+ unchecked_unions: a component in a variant cannot contain tasks or
+ controlled types.
+ (Unchecked_Union): Allow nested variants and multiple discriminants, to
+ conform to AI-216.
+ Add pragma Ada_2005 (synonym for Ada_05)
+ Properly handle Ada_Version_Explicit and Ada_Version_Config, which
+ were not always properly handled previously.
+ Document that pragma Propagate_Exceptions has no effect
+ (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
+ (Set_Convention_From_Pragma): Check that if a convention is
+ specified for a dispatching operation, then it must be
+ consistent with the existing convention for the operation.
+ (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
+ longer required to specify an vtable-ptr component in the record. For
+ compatibility reasons we leave the support for the previous definition.
+ (Analyze_Pragma, case No_Return): Allow multiple arguments
+
+ * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
+ non-overrideen inherited operation with a controlling result as
+ illegal only its implicit declaration comes from the derived type
+ declaration of its result's type.
+ (Check_Possible_Deferred_Completion): Relocate the object definition
+ node of the subtype indication of a deferred constant completion rather
+ than directly analyzing it. The analysis of the generated subtype will
+ correctly decorate the GNAT tree.
+ (Record_Type_Declaration): Check whether this is a declaration for a
+ limited derived record before analyzing components.
+ (Analyze_Component_Declaration): Diagnose record types not explicitly
+ declared limited when a component has a limited type.
+ (Build_Derived_Record_Type): Code reorganization to check if some of
+ the inherited subprograms of a tagged type cover interface primitives.
+ This check was missing in case of a full-type associated with a private
+ type declaration.
+ (Constant_Redeclaration): Check that the subtypes of the partial and the
+ full view of a constrained deferred constant statically match.
+ (Mentions_T): A reference to the current type in an anonymous access
+ component declaration must be an entity name.
+ (Make_Incomplete_Type_Declaration): If type is tagged, set type of
+ class_wide type to refer to full type, not to the incomplete one.
+ (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
+ available. Required to give support to the certified run-time.
+ (Analyze_Component_Declaration): In case of anonymous access components
+ perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
+ (Process_Discriminants): For an access discriminant, use the
+ discriminant specification as the associated_node_for_itype, to
+ simplify accessibility checks.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
+ abstract interpretations on an operator, remove interpretations that
+ yield Address or a type derived from it, if one of the operands is an
+ integer literal.
+ (Try_Object_Operation.Try_Primitive_Operation,
+ Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
+ location when creating the new reference to a primitive or class-wide
+ operation as a part of rewriting a subprogram call.
+ (Try_Primitive_Operations): If context requires a function, collect all
+ interpretations after the first match, because there may be primitive
+ operations of the same type with the same profile and different return
+ types. From code reading.
+ (Try_Primitive_Operation): Use the node kind to choose the proper
+ operation when a function and a procedure have the same parameter
+ profile.
+ (Complete_Object_Operation): If formal is an access parameter and prefix
+ is an object, rewrite as an Access reference, to match signature of
+ primitive operation.
+ (Find_Equality_Type, Find_One_Interp): Handle properly equality given
+ by an expanded name with prefix Standard, when the operands are of an
+ anonymous access type.
+ (Remove_Abstract_Operations): If the operation is abstract because it is
+ inherited by a user-defined type derived from Address, remove it as
+ well from the set of candidate interpretations of an overloaded node.
+ (Analyze_Membership_Op): Membership test not applicable to cpp-class
+ types.
+
+2006-02-13 Bob Duff <duff@adacore.com>
+
+ * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
+ redundant use clauses.
+ In particular, if the scope of two use clauses overlaps, but one is not
+ entirely included in the other, we should not warn. This can happen
+ with nested packages.
+ (Analyze_Subprogram_Renaming): Protect the compiler against previously
+ reported errors. The bug was reported when the compiler was built
+ with assertions enabled.
+ (Find_Type): If the node is a 'Class reference and the prefix is a
+ synchronized type without a corresponding record, return the type
+ itself.
+
+2006-02-13 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
+ if this is the full-declaration associated with a private declaration
+ that implement interfaces, then the private type declaration must be
+ limited.
+ (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
+ as aliased. The use of the 'access attribute is not available for such
+ object (for this purpose the object should be explicitly marked as
+ aliased, but being an anonymous type this is not possible).
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * sem_elab.adb (Same_Elaboration_Scope): A package that is a
+ compilation unit is an elaboration scope.
+ (Add_Task_Proc): Add '\' in 2-line warning message.
+ (Activate_All_Desirable): Deal with case of unit with'ed by parent
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Javier Miranda <miranda@adacore.com>
+
+ * sem_type.adb (Write_Overloads): Improve display of candidate
+ interpretations.
+ (Add_One_Interp): Do not add to the list of interpretations aliased
+ entities corresponding with an abstract interface type that is an
+ immediate ancestor of a tagged type; otherwise we have a dummy
+ conflict between this entity and the aliased entity.
+ (Disambiguate): The predefined equality on universal_access is not
+ usable if there is a user-defined equality with the proper signature,
+ declared in the same declarative part as the designated type.
+ (Find_Unique_Type): The universal_access equality operator defined under
+ AI-230 does not cover pool specific access types.
+ (Covers): If one of the types is a generic actual subtype, check whether
+ it matches the partial view of the other type.
+
+2006-02-13 Thomas Quinot <quinot@adacore.com>
+
+ * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
+ line. This is necessary to allow In_Extended_Main_Unit to provide
+ correct results for itypes while writing out expanded source.
+ (Close_File): No need to update the source_index_table here since it's
+ now done for each line.
+
+2006-02-13 Ed Schonberg <schonberg@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
+ preserve the source unit where the itype is declared, and prevent a
+ backend abort.
+ (Note_Implicit_Run_Time_Call): New procedure
+ (Write_Itype): Handle missing cases (E_Class_Wide_Type and
+ E_Subprogram_Type)
+
+ * sprint.ads: Document use of $ for implicit run time routine call
+
+2006-02-13 Quentin Ochem <ochem@adacore.com>
+
+ * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
+ task name.
+
+2006-02-13 Bob Duff <duff@adacore.com>
+
+ * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
+ Scan_Unsigned, so we do not scan leading blanks and sign twice.
+ Integer'Value("- 5") and Integer'Value("-+5") now correctly
+ raise Constraint_Error.
+
+ * s-vallli.adb (Scan_Long_Long_Integer): Call
+ Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
+ do not scan leading blanks and sign twice.
+ Integer'Value("- 5") and Integer'Value("-+5") now correctly
+ raise Constraint_Error.
+
+ * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
+ Scan_Long_Long_Unsigned): Split out most of the processing from
+ Scan_Long_Long_Unsigned out into
+ Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
+ This prevents scanning leading blanks and sign twice.
+ Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
+ See RM-3.5(44).
+
+ * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
+ out most of the processing from Scan_Unsigned out into
+ Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
+ This prevents scanning leading blanks and sign twice.
+
+ * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
+ use with Modular'Value attribute.
+ (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
+ attribute.
+
+2006-02-13 Robert Dewar <dewar@adacore.com>
+
+ * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
+
+2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
+ (PPC VxWorks): Likewise.
+ (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
+ (forced_callee): Make non-inlinable and non-pure.
+ (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
+
+2006-02-13 Arnaud Charlet <charlet@adacore.com>
+ Ben Brosgol <brosgol@adacore.com>
+ Robert Dewar <dewar@adacore.com>
+
+ * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
+ support.
+ Document that gnatbind -M option is for cross environments only.
+ Added description of using gnatmem to trace gnat rtl allocs and deallocs
+ Add note on use of $ to label implicit run time calls
+ Add documentation for -gnatyI (check mode IN)
+ Updated chapter on compatibility with HP Ada
+ VMS-oriented edits.
+ Ran spell and corrected errors
+ Add documentation for gnatbind -d and rework documentation of -D
+ at the same time.
+ Add subprogram/data elimination section.
+ Minor editing of annex A.
+ Add section for gnatcheck.
+ Add documentation for restriction No_Dispatching_Calls
+ Add documentation for pragma Ada_2005
+ Remove mention of obsolete pragma Propagate_Exceptions
+ Document that pragma Unreferenced can appear after DO in ACCEPT
+ Clarify Pure_Function for library level units
+ Mention Max/Min in connection with No_Implicit_Conditionals
+ No_Wide_Characters restriction is no longer partition-wide
+ Add a nice example for Universal_Literal_String attribute
+ Document that pragma No_Return can take multiple arguments
+
+ * ug_words: Added entry for gnatcheck
+
+ * g-ctrl_c.ads (Install_Handler): Enhance comments
+
+ * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
+
+ * g-trasym.ads: Add documentation on how to do off line symbolic
+ traceback computation.
+
+ * s-fatgen.adb: Add comments for Unaligned_Valid
+
+ * stand.ads: Fix typo in comment
+
+2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
+
+2006-02-06 Roger Sayle <roger@eyesopen.com>
+
+ * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
+
2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/25926
Quentin Ochem <ochem@adacore.com>
Florian Villoing <villoing@adacore.com>
- * a-taster.ads, a-taster.adb: New files.
+ * a-taster.ads, a-taster.adb: New files.
* a-elchha.adb (Last_Chance_Handler): Change the task termination soft
link to the version that does nothing. This way the task termination
dealing with dispatching selects and abort, 'Callable, 'Terminated only
for concurrent types.
- * exp_sel.ads, exp_sel.adb: New files.
+ * exp_sel.ads, exp_sel.adb: New files.
* exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
2005-12-09 Robert Dewar <dewar@adacore.com>
* i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
- i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
+ i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
2005-12-05 Paolo Bonzini <bonzini@gnu.org>
- * Makefile.in (gnatlib): Fix regex, using \. instead of . when
+ * Makefile.in (gnatlib): Fix regex, using \. instead of . when
a period is meant.
2005-12-02 Richard Guenther <rguenther@suse.de>
2005-11-23 Laurent GUERBY <laurent@guerby.net>
- * mlib-prj.adb (Build_Library): Initialize Delete.
+ * mlib-prj.adb (Build_Library): Initialize Delete.
2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
2005-11-18 Laurent GUERBY <laurent@guerby.net>
- PR ada/24857
- * Makefile.in: Use s-auxdec-empty for RTEMS.
+ PR ada/24857
+ * Makefile.in: Use s-auxdec-empty for RTEMS.
2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
PR ada/24857
* s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
-
+
2005-11-16 Richard Guenther <rguenther@suse.de>
* Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
- PR ada/24855
- * raise-gcc.c: Add missing stdarg.h include.
+ PR ada/24855
+ * raise-gcc.c: Add missing stdarg.h include.
2005-11-16 Richard Guenther <rguenther@suse.de>
Ed Schonberg <schonberg@adacore.com>
PR ada/18434
-
* types.ads: Include All_Checks in Suppress_Array
* checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
(Save_Occurrence_And_Private): Move GCC EH related code to
a-exexpr-gcc.adb
(Raise_Current_Excep): Add new variable Id with pragma
- volatile, to ensure that the variable lives on stack.
+ volatile, to ensure that the variable lives on stack.
* a-exexpr-gcc.adb, raise-gcc.c: New file.
Javier Miranda <miranda@adacore.com>
PR ada/15604
-
* sem_type.adb (Covers): In an inlined body, a composite type matches
a private type whose full view is a composite type.
(Interface_Present_In_Ancestor): Protect the frontend against
subprogram Complete_Subprograms_Derivation already does the
job associated with the second call.
- * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
- conversion to the full view when generating an operation for a
- discriminant whose type may currently be private.
+ * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
+ conversion to the full view when generating an operation for a
+ discriminant whose type may currently be private.
2005-09-01 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
2005-07-07 Olivier Hainque <hainque@adacore.com>
PR ada/22301
-
* raise.c: Only include unwind.h if IN_RTS, and provide dummy type
definitions for the Unwind wrappers in the compiler case.
N_Object_Declaration, only perform the checks if the Object_Definition
is not an Access_Definition.
- * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
- where the parent of an the access definition is an N_Object_Declaration
- when determining the Associated_Node_For_Itype and scope of an
- anonymous access-to-subprogram type.
+ * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
+ where the parent of an the access definition is an N_Object_Declaration
+ when determining the Associated_Node_For_Itype and scope of an
+ anonymous access-to-subprogram type.
* exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
Corresponding_Spec on the body created for a null procedure. Add ???
2005-07-04 Robert Dewar <dewar@adacore.com>
PR ada/22039
-
* s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
2005-07-04 Matthew Gingell <gingell@adacore.com>
2005-07-04 Sergey Rybin <rybin@adacore.com>
- * gnat_ugn.texi: Add description of --eol gnatpp option
+ * gnat_ugn.texi: Add description of --eol gnatpp option
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
Thomas Quinot <quinot@adacore.com>
- * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
+ * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
if the user wants all calls of a subprogram to be flagged,
independently of whether they are made from within the same unit or
another unit.
- Mention restriction for pragma Linker_Alias on some platforms.
- Document pragma Linker_Constructor and Linker_Destructor.
- Rewrite documentation of Weak_External, Linker_Section and
- Linker_Alias pragmas.
+ Mention restriction for pragma Linker_Alias on some platforms.
+ Document pragma Linker_Constructor and Linker_Destructor.
+ Rewrite documentation of Weak_External, Linker_Section and
+ Linker_Alias pragmas.
2005-07-04 Arnaud Charlet <charlet@adacore.com>
s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
Rewrite to correspond to new wide character names in AI-395
- * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
- default procedures.
+ * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
+ default procedures.
2005-06-14 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
2005-06-14 Thomas Quinot <quinot@adacore.com>
PR ada/6717
-
* g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
broadcast address.
(Create_Selector): Bind listening socket used to create the signalling
For objects and parameters of a generic private type, retain the '*'
indicator to distinguish such an entity from its type.
- * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
- to store information about instantiated entities.
+ * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
+ to store information about instantiated entities.
- * ali.adb (Scan_ALI): Add support for parsing the reference to the
- generic parent
+ * ali.adb (Scan_ALI): Add support for parsing the reference to the
+ generic parent
- * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
- (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
- information.
+ * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
+ (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
+ information.
2005-06-10 Doug Rupp <rupp@adacore.com>
Arnaud Charlet <charlet@adacore.com>
2005-06-14 Robert Dewar <dewar@adacore.com>
PR ada/15613
-
* par-ch2.adb (Scan_Pragma_Argument): New procedure
(P_Pragma): Implement RM 2.8(4) check for no pos args after named args
characters are now considered graphic characters and hence yield false
in this call.
- * nmake.adt: Modify header so that xnmake does not generate output
- files with multiple blank lines.
+ * nmake.adt: Modify header so that xnmake does not generate output
+ files with multiple blank lines.
- * treeprs.adt: Remove a blank line so that output from xtreeprs does
- not have an extra blank line
+ * treeprs.adt: Remove a blank line so that output from xtreeprs does
+ not have an extra blank line
2005-06-14 Gary Dismukes <dismukes@adacore.com>
Ed Schonberg <schonberg@adacore.com>
PR ada/10671
-
* sem_prag.adb: Implement pragma Persistent_BSS
Remove obsolete pragma Persistent_Data, Persistent_Object
Set Ada_Version_Explicit, for implementation of AI-362
* nmake.adt: Modify header so that xnmake does not generate output
files with multiple blank lines.
- * treeprs.adt: Remove a blank line so that output from xtreeprs does
- not have an extra blank line
+ * treeprs.adt: Remove a blank line so that output from xtreeprs does
+ not have an extra blank line
2005-06-14 Sergey Rybin <rybin@adacore.com>
Add UNNECESSARY_BLANK_LINES for -gnatyu
Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
- * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
+ * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
2005-06-14 Vincent Celier <celier@adacore.com>
object directories of project files before directories in ADA_*_PATH
environment variables.
- * g-trasym.ads: Document that IRIX is supported
+ * g-trasym.ads: Document that IRIX is supported
2005-06-10 Arnaud Charlet <charlet@adacore.com>
2005-04-16 Laurent GUERBY <laurent@guerby.net>
- PR ada/18847
- * a-nudira.adb (Value): Check for valid string.
- * a-nuflra.adb (Value): Likewise.
+ PR ada/18847
+ * a-nudira.adb (Value): Check for valid string.
+ * a-nuflra.adb (Value): Likewise.
2005-04-11 Richard Sandiford <rsandifo@redhat.com>
Generic_Dispatching_Constructor.
PR ada/20300
-
* sem_ch8.adb (Find_Direct_Name): Go to root type for check of
character type cases.
(Analyze_Subprogram_Renaming): Add special handling for
* Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
- * 5xcrtl.ads: Renamed to...
- * s-crtl-vms64.ads: ...this new file
+ * 5xcrtl.ads: Renamed to...
+ * s-crtl-vms64.ads: ...this new file
2005-03-17 Robert Dewar <dewar@adacore.com>
PR ada/19519
-
* namet.adb (Copy_One_Character): Set proper wide character encoding
for upper half character if we have upper half encoding.
2005-03-15 Robert Dewar <dewar@adacore.com>
PR ada/13470
-
* a-stunau.ads, a-stunau.adb:
Change interface to allow efficient (and correct) implementation
The previous changes to allow extra space in unbounded strings had
PR ada/19408
PR ada/19140
PR ada/20255
-
* decl.c (gnat_to_gnu_field): Reject aliased components with a
representation clause that prescribes a size not equal to the rounded
size of their types.
PR ada/20226
PR ada/20344
-
* init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
when IN_RTS. This is to work around a bootstrap path problem.
2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
- Fix for c330001 - PR ada/19386
-
+ PR ada/19386
* decl.c:
(gnat_to_gnu_field): Do not necessarily invoke make_packable_type
on the field if Pragma Component_Alignment (Storage_Unit).
2005-02-09 Arnaud Charlet <charlet@adacore.com>
PR ada/16592
-
* Makefile.in: Link all gnat tools with -static-libgcc, since
-shared-libgcc is now used by default on some systems (e.g. linux with
recent binutils).
2004-10-04 Bernard Banner <banner@gnat.com>
PR ada/13897
-
* Makefile.in: Add section for powerpc linux
Add variant i-vxwork-x86.ads
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).
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-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-06-11 Hristian Kirtchev <kirtchev@gnat.com>
PR ada/15587
-
* einfo.ads: Minor comment updates for Has_Completion and
E_Constant list of flags.
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-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>
2004-05-03 Olivier Hainque <hainque@act-europe.fr>
PR ada/15152
-
* exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
alone. Replacing object references by literals is inappropriate in a
so low level context.
2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
Nathanael Nerode <neroden@gcc.gnu.org>
- PR ada/6637, PR ada/5911
+ PR ada/6637
+ PR ada/5911
Merge with libada-branch:
* config-lang.in: Build libada only when ada is built.
Fixes ACATS regressions.
PR ada/13353
-
* sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
be inlined.
2003-12-03 Thomas Quinot <quinot@act-europe.fr>
PR ada/11724
-
* adaint.h, adaint.c, g-os_lib.ads:
Do not assume that the offset argument to lseek(2) is a 32 bit integer,
on some platforms (including FreeBSD), it is a 64 bit value.
2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Part of PR ada/12806
-
* ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
tree, not integer.
* Makefile.generic: Add missing substitution on object_deps handling.
- PR ada/5909:
+ PR ada/5909
* Make-lang.in (check-ada): Enable ACATS test suite.
2003-10-27 Robert Dewar <dewar@gnat.com>
2003-10-24 Pascal Obry <obry@gnat.com>
+ PR ada/12014
* adadecode.c (ostrcpy): New function.
(__gnat_decode): Use ostrcpy of strcpy.
(has_prefix): Set first parameter a const.
(has_suffix): Set first parameter a const.
Update copyright notice. Fix source name in header.
Removes a trailing space.
- PR ada/12014.
2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
2003-10-23 Thomas Quinot <quinot@act-europe.fr>
- PR ada/11978:
+ PR ada/11978
* exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
External_Tag attribute definition clauses.
2003-10-23 Ed Schonberg <schonberg@gnat.com>
- PR ada/7613:
+ PR ada/7613
* exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
child unit, generate a fully qualified name to avoid spurious errors
when the context contains renamings of different child units with
2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
- * Makefile.in: Disable build of gnatpsta. PR ada/10110.
+ PR ada/10110
+ * Makefile.in: Disable build of gnatpsta.
* cstreams.c (__gnat_full_name): Minor improvements and clean up
of previous change.
2003-06-04 Olivier Hainque <hainque@act-europe.fr>
- PR ada/9953:
+ PR ada/9953
* 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
and turn ZCX_By_Default back to False since the underlying support
is not quite there yet.
2003-02-18 Ben Elliston <bje@redhat.com>
- Part of fix for PR ada/9406
+ Part of PR ada/9406
* gnat_ug.texi (Binder output file): Grammar fix.
2003-02-18 Ben Elliston <bje@redhat.com>
2002-12-14 Geert Bosch <bosch@gnat.com>
+ PR ada/5690
* sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
case of a body created for a Renaming_As_Body, on which
- conformance checks are not performed. Fixes PR ada/5690.
+ conformance checks are not performed.
2002-11-30 Zack Weinberg <zack@codesourcery.com>
solution to buffer overflow bug on GNU/Linux.
2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
- Closes PR ada/5856 and PR ada/6919 !
+
+ PR ada/5856
+ PR ada/6919
* bindgen.adb: Remove all references to Public_Version.
* comperr.adb: Remove all references to Public_Version and
GNATPRO_Version; correct bug reporting instructions.
GNATPRO version.
2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
+
PR ada/6919
* adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
GNU/Linux.
* config-lang.in: Remove diff_excludes.
2002-11-05 Graham Stott <graham.stott@btinternet.com>
+
PR ada/8358
* trans.c (gnu_pending_elaboration_lists): New GC root.
(build_unit_elab): Use..
2002-10-30 Geert Bosch <bosch@gnat.com>
+
PR ada/6558
* misc.c : Include optabs.h
* Make-lang.in (misc.o): Add dependency on optabs.h
2002-10-29 Geert Bosch <bosch@gnat.com>
+
PR ada/6558
* Make-lang.in (gnatbind): Depend on CONFIG_H
2002-10-29 Geert bosch <bosch@gnat.com>
+
PR ada/6558
* misc.c: Unrevert misc.c (1.13)
maintainership comments.
2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
+
PR ada/5904
* 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb